Text to Enroll
Civify lets residents sign up for alerts without downloading an app or creating an account first. They just text a keyword to your city’s number, and the system walks them through a few quick questions to get set up.
Text ENROLL to sign up for general municipal alerts — service updates, project notices, and community notifications.
Text a project keyword — like PAVING — to follow a specific project. Every project and post can have its own keyword, so residents only get updates on what they actually care about. If they don’t have an account yet, they can sign up on the spot.
No app store, no portal login, no waiting. Just a text back.
Built-In Compliance
Every enrollment flow includes the disclosures carriers require — opt-out instructions, terms, and privacy policy — so your city’s messaging stays compliant and your texts keep getting delivered.
Keyword SMS Flow Demo
Click a flow name to play. If this looks unstyled after publish, paste the CSS file into Appearance – Customize – Additional CSS.
SMS ENROLL and Keyword Flows
ENROLL · New
Keyword · Project/Post · New
Keyword · Project/Post · Existing
Keyword · Custom Text · New
Keyword · Custom Text · Existing
Bulk Upload · Verify Phone
Keyword · Declines Offer
Keyword · Invalid Reply
Unrecognized Word
9:41...
Step 1 — initial disclosure (no org prefix wrapper)
You are subscribing to [City Name] for App Notifications and Conversational/Alerts. Reply STOP to opt out. Reply HELP for help. Msg and data rates may apply. Msg frequency varies. Terms of Service: https://civify.io/end-user-terms-of-service/. Privacy Policy: https://city.example/privacy-policy. Reply YES to continue enrollment.
Expected reply: YES, Y, or I AGREE
[CITY NAME]: Great! We will need to collect some information to build your Resident account. What is your full name? Reply STOP to unsubscribe
Expected reply: First + last name
[CITY NAME]: What is your email address? Reply STOP to unsubscribe
Expected reply: Valid email
[CITY NAME]: What’s your street address? (e.g. 123 Main St) We use it to send alerts specific to your area. Reply SKIP to add it later in the portal. Reply STOP to unsubscribe
Expected reply: Street address or SKIP
[CITY NAME]: How should we notify you? Reply with numbers (e.g. 2 or 1,2):
1 Email 2 Text/SMS 3 Automated call Reply STOP to unsubscribe
Expected reply: 1, 2, 3, or a combo (e.g. 1,2)
[CITY NAME]: What do you want to hear about? Reply with a single number (1, 2, 3, or 4):
1) Recommended (all alert categories + all projects)
2) Alert categories only
3) All projects only
4) I’ll choose later in the portal Reply STOP to unsubscribe
Expected reply: A single digit, 1–4
[CITY NAME]: Please confirm your signup:
Name: Jane Doe
Email:
[email protected]
Address: 123 Main St
Notifications: Email, Text/SMS
Subscriptions: Recommended (all categories + all projects)
Reply YES to create your account.
To fix something, reply what to change (e.g. email
[email protected]). Reply STOP to unsubscribe
Expected reply: YES or Y
[CITY NAME]: You’re subscribed! Check your email to set your password and then visit the resident portal app and add it to your home screen. https://city.example Reply STOP to unsubscribe
SMS 1 — keyword inbound opt-in disclosure (no org prefix wrapper)
You are subscribing to [City Name] for App Notifications and Conversational/Alerts. Reply STOP to opt out. Reply HELP for help. Msg and data rates may apply. Msg frequency varies. Terms of Service: https://civify.io/end-user-terms-of-service/. Privacy Policy: https://city.example/privacy-policy.
SMS 2 — keyword reply (standard org prefix + STOP footer)
[CITY NAME]: Create an account and subscribe for updates here: https://city.example/projects/main-street-repaving
Would you like to sign up for alerts for this? Reply YES to sign up. Reply STOP to unsubscribe
Expected reply: YES, Y, or I AGREE
Keyword opt-in disclosure already sent — skips ENROLL Step 1 consent message
[CITY NAME]: Great! We will need to collect some information to build your Resident account. What is your full name? Reply STOP to unsubscribe
Expected reply: First + last name
[CITY NAME]: What is your email address? Reply STOP to unsubscribe
Expected reply: Valid email
[CITY NAME]: What’s your street address? (e.g. 123 Main St) We use it to send alerts specific to your area. Reply SKIP to add it later in the portal. Reply STOP to unsubscribe
Expected reply: Street address or SKIP
[CITY NAME]: How should we notify you? Reply with numbers (e.g. 2 or 1,2):
1 Email 2 Text/SMS 3 Automated call Reply STOP to unsubscribe
Expected reply: 1, 2, 3, or a combo (e.g. 1,2)
[CITY NAME]: You’re signing up for updates on Main Street Repaving. Want additional notifications? Reply with a single number (1, 2, 3, or 4):
1) Also get recommended alerts (all categories + all projects)
2) Also get all alert categories
3) Also get all projects
4) Just Main Street Repaving Reply STOP to unsubscribe
Expected reply: A single digit, 1–4
[CITY NAME]: Please confirm your signup:
Name: Jane Doe
Email:
[email protected]
Address: 123 Main St
Notifications: Email, Text/SMS
Subscriptions: Main Street Repaving + recommended (all categories + all projects)
Reply YES to create your account.
To fix something, reply what to change (e.g. email
[email protected]). Reply STOP to unsubscribe
Expected reply: YES or Y
[CITY NAME]: You’re subscribed! Check your email to set your password and then visit the resident portal app and add it to your home screen. https://city.example Reply STOP to unsubscribe
Single SMS only — no inbound opt-in disclosure (resident is recognized)
[CITY NAME]: Open the resident portal app to subscribe to Main Street Repaving: https://city.example/projects/main-street-repaving Reply STOP to unsubscribe
No enroll session starts — resident subscribes to the item in the portal app.
SMS 1 — keyword inbound opt-in disclosure (no org prefix wrapper)
You are subscribing to [City Name] for App Notifications and Conversational/Alerts. Reply STOP to opt out. Reply HELP for help. Msg and data rates may apply. Msg frequency varies. Terms of Service: https://civify.io/end-user-terms-of-service/. Privacy Policy: https://city.example/privacy-policy.
SMS 2 — programmed custom reply (standard org prefix + STOP footer)
[CITY NAME]: Office hours are 9 AM – 5 PM, Monday through Friday. Reply STOP to unsubscribe
No enroll offer on custom text keywords.
Single SMS only — resident recognized, no opt-in disclosure
[CITY NAME]: Office hours are 9 AM – 5 PM, Monday through Friday. Reply STOP to unsubscribe
Account is created from the CSV. Resident is already subscribed. City sends two SMS messages.
SMS 1 — standard opt-in disclosure (no org prefix wrapper)
You are subscribing to [City Name] for App Notifications and Conversational/Alerts. Reply STOP to opt out. Reply HELP for help. Msg and data rates may apply. Msg frequency varies. Terms of Service: https://civify.io/end-user-terms-of-service/. Privacy Policy: https://city.example/privacy-policy.
SMS 2 — reply-to-verify prompt (standard org prefix + STOP footer)
[CITY NAME]: Reply YES to verify this phone number for alerts from [City Name]. Reply STOP to unsubscribe
Expected reply: YES, Y, I AGREE, or VERIFY
[CITY NAME]: Your number has been verified for notifications. Visit the resident app at https://city.example. Reply STOP to unsubscribe
Text/SMS is marked verified. Landline/voice is marked verified only if they are subscribed to automated calls and the landline number is the same as this text number.
You are subscribing to [City Name] for App Notifications and Conversational/Alerts. Reply STOP to opt out. Reply HELP for help. Msg and data rates may apply. Msg frequency varies. Terms of Service: https://civify.io/end-user-terms-of-service/. Privacy Policy: https://city.example/privacy-policy.
[CITY NAME]: Create an account and subscribe for updates here: https://city.example/projects/main-street-repaving
Would you like to sign up for alerts for this? Reply YES to sign up. Reply STOP to unsubscribe
Expected reply: YES, Y, or I AGREE
[CITY NAME]: No problem. You can text ENROLL anytime to sign up for resident alerts. Reply STOP to unsubscribe
Enroll session ends. Resident still has the portal link from SMS 2.
You are subscribing to [City Name] for App Notifications and Conversational/Alerts. Reply STOP to opt out. Reply HELP for help. Msg and data rates may apply. Msg frequency varies. Terms of Service: https://civify.io/end-user-terms-of-service/. Privacy Policy: https://city.example/privacy-policy.
[CITY NAME]: Create an account and subscribe for updates here: https://city.example/projects/main-street-repaving
Would you like to sign up for alerts for this? Reply YES to sign up. Reply STOP to unsubscribe
Expected reply: YES, Y, or I AGREE
[CITY NAME]: Please reply YES to sign up for alerts. Reply STOP to unsubscribe
Expected reply: YES, Y, or I AGREE
Session stays open — resident can still reply YES.
First attempt — no keyword match, falls back to generic auto-reply
This is an outbound notification phone number for [City Name]. This phone number is not monitored. For additional help, please contact [City Name] at (555) 123-4567.
Second attempt within 24 hours — generic auto-reply is throttled for this number
No SMS sent. Same phone already received the generic auto-reply in the last 24 hours.
Third attempt — still throttled
No SMS sent. Throttle still active.
After 24 hours from the first auto-reply, another unrecognized message would receive the generic auto-reply again. Keyword replies and ENROLL flows are not throttled by this rule.