Civify™

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
Direct ENROLL keyword · phone has no resident account.
Pause and show all
Click another flow, then this one again, to replay.
Project/post keyword · phone has no resident account · text-to-enroll active.
Pause and show all
Click another flow, then this one again, to replay.
Project/post keyword · phone is already registered to a resident account.
Pause and show all
Click another flow, then this one again, to replay.
Custom text keyword · phone has no resident account.
Pause and show all
Click another flow, then this one again, to replay.
Custom text keyword · phone is already registered.
Pause and show all
Click another flow, then this one again, to replay.
Resident added via bulk upload · already subscribed · city texts the standard opt-in, then asks them to reply YES to verify the phone.
Pause and show all
Click another flow, then this one again, to replay.
Project/post keyword · new resident replies NO to the signup offer.
Pause and show all
Click another flow, then this one again, to replay.
Project/post keyword · new resident sends something other than YES or NO to the offer.
Pause and show all
Click another flow, then this one again, to replay.
Text does not match any keyword · no active ENROLL session · not a reserved carrier keyword (STOP, HELP, etc.).
Pause and show all
Click another flow, then this one again, to replay.
9:41...
[City Name]Text Message · SMS
ENROLL
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
YES
[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
Jane Doe
[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
123 Main St
[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)
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
1
[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
YES
[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
PAVING
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
YES
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
Jane Doe
[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
123 Main St
[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)
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
1
[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
YES
[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
PAVING
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.
HOURS
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.
HOURS
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
YES
[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.
PAVING
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
NO
[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.
PAVING
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
MAYBE LATER
[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
HELLO
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
RANDOM
No SMS sent. Same phone already received the generic auto-reply in the last 24 hours.
Third attempt — still throttled
ANYONE THERE?
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.
Text Message
Scroll to Top