Phone & SMS
Groundbase uses your own Twilio account for SMS and voice. You sign up with Twilio directly, paste your credentials into Groundbase, and buy numbers either in Groundbase or in Twilio's console. They always live on your own Twilio account. Twilio bills you for usage at their published rates — Groundbase doesn't take a cut and doesn't carry a credit balance for you.
Connecting your Twilio account
A one-time setup. Once it's done you can text, call, and receive from Groundbase using any number on your Twilio account.
1. Create a Twilio account. Go to twilio.com and sign up. Sign-up is free and doesn't require a credit card — you only need to add billing later when you buy a number or start sending.
2. Find your Account SID and Auth Token. On the Twilio Console homepage, scroll to the Account Info card. Your Account SID starts with AC and is visible by default. Click View next to Auth Token to reveal it. Copy both.
3. Paste them into Groundbase. In Groundbase: Settings → Phone numbers → Connect Twilio. Paste the Account SID and Auth Token, click Connect.
What happens next, automatically:
- Groundbase verifies the credentials against Twilio
- Groundbase lists the phone numbers already on your Twilio account (and its subaccounts). Pick the ones to bring in (all are ticked to start) and click Import
- Inbound SMS and voice webhooks on each imported number are configured to point at Groundbase, so inbound texts and calls appear in your CRM in real time
- A default sending number is selected (you can change it any time)
Your Auth Token is stored encrypted in Groundbase's cloud database (AES-GCM, server-side key). Disconnect any time from the same Settings screen — that revokes Groundbase's access, stops the inbound webhooks, and puts each number's earlier routing back where Groundbase recorded it (see Removing a number below).
Buying a phone number
Either way, the number goes on your own Twilio account and Twilio bills you for it directly at their rates (typically ~$1.15/mo for a US local number; see Twilio's pricing). Groundbase charges nothing for numbers.
In Groundbase (once Twilio is connected):
- Settings → Phone numbers → Buy a number
- Pick the country, and optionally an area code or digits the number should contain, then Search
- Click Buy on the one you want and confirm
The number is set up for calls and texts in Groundbase straight away, with nothing to configure in Twilio.
Or in the Twilio Console:
- Phone Numbers → Manage → Buy a Number
- Search by country, area code, or capability (voice + SMS), and click Buy
- Back in Groundbase: Settings → Phone numbers → Add existing, and paste the number with its country code (for example +14165550100). Groundbase checks it's on your Twilio account, adds it to the list and sets up its calls and texts. Nothing is charged by Groundbase for a number you bought yourself.
U.S. numbers: before texting U.S. phones, the number needs A2P 10DLC registration in your Twilio account (below). Calls work right away, and Canadian numbers don't need registration.
A2P 10DLC registration (U.S. only) — step by step
If you'll be sending SMS to U.S. numbers, U.S. carriers require A2P 10DLC registration through The Campaign Registry. You handle this in your own Twilio account — Twilio walks you through registering your business (a Brand) and your messaging program (a Campaign). Unregistered traffic to U.S. numbers is heavily filtered, throttled, or blocked outright.
This applies regardless of which CRM or app you're using to send — A2P 10DLC is a Twilio + carrier requirement, not a Groundbase one.
Plan ahead. Most reviews take 1–3 business days, sometimes longer. Don't wait until your campaign needs to go out tomorrow.
Step 1 — Register your Brand.
- Log in to the Twilio Console
- Messaging → Regulatory Compliance → Brand Registration → Create a Brand
- Pick the trust level. Low-Volume Standard is the cheaper path ($4.50 one-time) and allows up to about 6,000 message segments a day across U.S. carriers (2,000 a day to T-Mobile). Standard Brand is for higher volume and costs $46 one-time: the $4.50 registration plus a $41.50 secondary vetting fee.
- Fill in your business legal details: legal name, EIN (employer identification number), business address, business website, the industry vertical, and a primary contact.
- Submit. Twilio runs your details through The Campaign Registry — typically minutes to a few hours for a verdict.
If your Brand gets rejected (most common reason: EIN doesn't match the legal name on file with the IRS), fix the details and resubmit. Twilio shows the rejection reason in the console.
Step 2 — Register your Campaign.
- Once the Brand is approved, Messaging → Regulatory Compliance → Campaign Registration → Create
- Pick a Use Case — for most Groundbase customers this is Customer Care, Account Notifications, or Marketing. Mixed Use Case is only for very specific scenarios; the others are cheaper.
- Describe the messaging program in plain English. Carriers actually read this. Be specific: "Outbound SMS to current and prospective clients of [Business Name] — appointment reminders, follow-ups on inbound web-form leads, and occasional promotions. Recipients consent via our online intake form or by texting us first. Reply STOP to opt out."
- Provide sample messages — paste in 2–3 examples of real messages you'll send (with
{{first_name}}etc. filled in). Carriers reject samples that look like phishing, promote restricted content, or omit opt-out language. IncludeReply STOP to opt outin at least one sample. - Describe opt-in. This is where most rejections happen. Describe exactly how recipients agree to receive messages — a web form with a checkbox, an inbound text from them first, a verbal opt-in over the phone, etc. Provide the URL of your opt-in form if you have one. "Bought a contact list" is not valid opt-in. A Groundbase lead form can be that form: add a required Tick box field with your consent wording, and give its link as the opt-in URL.
- Submit. Campaign review typically takes 1–3 business days.
Step 3 — Attach your phone numbers.
Once the Campaign is approved, attach the Twilio numbers you'll be sending from to that Campaign in the same console screen. Carriers route traffic by the (sending number → Campaign → Brand) chain — an attached number sends as registered traffic; an unattached number sends as unregistered (and gets filtered).
If you buy new numbers later, attach them to the Campaign too.
Cost summary (Twilio published rates).
- Low-Volume Standard Brand: $4.50 one-time (up to about 6,000 segments a day; 2,000 a day to T-Mobile)
- Standard Brand: $46 one-time ($4.50 registration + $41.50 secondary vetting)
- Campaign vetting: $15 per Campaign, charged when it's reviewed and not refunded if it's rejected
- Campaign fee: $1.50–$10 a month per Campaign depending on Use Case (Low-Volume Mixed is $1.50, most standard Use Cases $10)
- Carrier fees: each U.S. carrier adds its own per-segment fee to your texts (for example $0.0035 per outbound segment on AT&T and $0.0045 on T-Mobile)
These charges all hit your Twilio bill directly. Groundbase doesn't see them. See Twilio's A2P 10DLC pricing page for the current numbers (Twilio updates the schedule from time to time).
Tips for getting approved on the first try.
- Use the same business name on your website, your Twilio Brand, your sample messages, and your opt-in form. Mismatches are the #1 reason Campaigns get rejected.
- Include opt-out language (
Reply STOP to opt out) in at least one sample. Better: turn on Groundbase's Settings → SMS compliance auto-append so it's on every message automatically. - Be specific in the program description. "Marketing messages" is too vague. "Appointment reminders and seasonal promotions to existing roofing-quote customers" reads as legitimate.
- Don't claim consent you don't have. If your contacts came from a purchased list, your Campaign will be rejected (and may flag your Brand for further review).
Sending an SMS
Open a contact and click the SMS icon, or jump to the SMS tab in the left sidebar. Pick a thread or start a new one. Type, hit send.
Finding a conversation. Above the list, All and Unread narrow it, and Scheduled opens the texts waiting to go out. Filter narrows further: Waiting on them (your text was the last one), Never replied, Not a contact (numbers you haven't saved), and Didn't send (the last text failed). On desktop the tabs are Conversations (threads where they've replied), No reply and All, with Scheduled behind the clock icon.
Campaign and Bulk texts stay out of the list until the person replies. A text campaign or a Bulk send to 300 people would otherwise put 300 conversations in front of the ones you're having. Each text is still in that contact's history, and the moment someone replies, their conversation appears in the list with your text above the reply. Filter → Campaign & Bulk texts on the web app, or the megaphone icon on desktop (2.1.23 and later), lists the ones nobody has answered. On the phone app they don't appear in the list until a reply. A text you send one person yourself always appears.
Cost: Twilio bills your account directly per segment at Twilio's current rates (roughly ~$0.0083/segment outbound + $0.0083/segment inbound for U.S. long-code A2P at the time of writing — see Twilio's pricing page for live numbers). A single text holds 160 characters, or 70 if it has an emoji or another special character (accented letters outside the standard SMS set, non-Latin scripts, curly quotes). A longer text is sent in parts of 153 characters each (67 with an emoji or special character), so 161 characters is two segments and 320 is three. Most emoji count as two characters. The compose bar shows the segment count live.
Pictures people text you
When someone texts you a photo, it shows in the conversation; click it to see it full size. Other files sent by text (a video, a contact card, a PDF) appear as an Attachment button that downloads the file, rather than opening it. A text that is only a picture reads [Picture] in your conversation list.
Pictures are kept by Twilio and fetched when you open the conversation, so one that has been deleted from your Twilio account no longer shows. The Android app shows them too. Twilio charges more for a picture message than for a plain text; see Twilio's pricing page.
Scheduling a send
In the compose bar, click the clock icon before sending. Pick a future date and time. The message goes into your "Scheduled" queue and fires at the time you set. You can see it in SMS → Scheduled before it goes out, and cancel it from there if plans change.
Bulk SMS
In Contacts, filter to who you want to text (saved views are useful here), then click Actions → Send SMS. Each recipient gets their own thread (not a group text) — you can use {{first_name}} placeholders so it personalizes per contact. Those threads stay out of your SMS list until someone replies (see Finding a conversation above).
Built-in safety rails:
- 500 recipient cap per send, in the apps and through the API alike. If your filtered list is larger we'll prompt you to narrow it down. This prevents an accidental wide blast.
- Two-click commit modal at 100+ recipients. Before we touch the SMS API we show a confirmation modal with the total recipient count + total cost estimate (based on Twilio's published rates); you have to confirm a second time. Cheap protection against fat-finger sends.
- Throttled dispatch. We pace sends so a 500-contact blast doesn't trip carrier rate limits or look like spam.
- Quiet hours in their time. Bulk texts go out only between 8am and 9pm where each person is, worked out from their North American area code (an area code that spans two time zones waits for both). Someone whose turn falls outside those hours gets it at 8am their time, and the confirmation says how many are waiting. A number Groundbase can't place, such as one outside North America, uses your own time zone.
Same per-segment billing applies — Twilio bills your account directly. We show an estimate before you confirm.
SMS compliance — auto-append opt-out language
Settings → SMS compliance. Off by default. When on, Groundbase auto-appends a short opt-out note to your outbound SMS so recipients know how to stop receiving messages from you.
Why it matters. U.S. carriers (T-Mobile, Verizon, AT&T) expect opt-out language on every messaging program, especially cold outreach. The first message of any thread is the carrier minimum; marketing-categorized A2P 10DLC campaigns often need it on every message. Without it, your messages get filtered or your A2P campaign (registered in your own Twilio account) gets rejected.
Two modes:
- First message in a thread (carrier minimum, customer-care / transactional friendly). Appends the disclosure only to your first outbound SMS to a contact you haven't messaged before. Follow-ups in the same thread stay clean.
- Every outbound message (marketing-safe). Appends to every outbound SMS, including replies. Required by major U.S. carriers for marketing-categorized campaigns.
Disclosure text defaults to Reply STOP to opt out. Editable to anything 5–60 characters — common variations include Reply STOP to unsubscribe, STOP=opt out, etc. Inbound STOP, UNSUBSCRIBE, CANCEL, END, and QUIT are always recognized regardless of the wording you choose.
When the toggle is ON, the SMS composer shows an accent-colored "Auto-appending: '<your text>'" badge near the Send button so you don't accidentally send a customer-care reply with the STOP footer attached. Want to send a one-off without it? Turn the toggle off, send, turn it back on.
Opt-outs are enforced server-side regardless of this setting. When a recipient replies STOP to one of your numbers, that contact is hard-blocked for that user — you can't send to them again until they reply START to opt back in. The setting only controls whether the disclosure is auto-appended to outbound; the opt-out detection itself is always on.
HELP gets an automatic answer. When someone texts HELP to one of your numbers, Groundbase replies with your business name and your account email, that message and data rates may apply, and how to opt out (Reply STOP to unsubscribe), in one short text. A very long name is shortened, and the email is left out if both won't fit.
Making and receiving calls
Calling has its own article: Calling & voicemail covers the dialer, incoming calls, call history, recordings, transcripts, greetings and forwarding.
Voicemail & recordings
Every number connected to Groundbase comes with voicemail enabled. Calls that aren't answered roll to voicemail (Groundbase serves the TwiML that handles the voicemail flow on your number), the recording is captured by Twilio, transcribed automatically, and you'll see both in the Phone tab.
Voicemail transcription is currently included — Groundbase absorbs the transcription cost while we keep things simple. It covers about 300 voicemails per account each calendar month; after that, new voicemails are still saved and playable but aren't transcribed until the next month. This may move to a BYO transcription provider later; we'll give plenty of notice if it does.
To enable call recording for two-way conversations: Settings → Preferences → Calls & voicemail → Call recording. It applies to every call on the account. Groundbase does not play an automatic announcement, so disclose recording yourself where the law asks for it. Recording is off by default. Twilio bills your account directly for recording storage at Twilio's published rates. Transcription is done by Groundbase, not Twilio, so it isn't on your Twilio bill.
Voicemail drops (leave pre-recorded voicemails)
If you're doing outbound and calls keep rolling to voicemail, Voicemail drops let you leave a pre-recorded message without speaking the same thing 30 times. Set up at Settings → Voicemail drops.
Two ways to make a drop:
- Record one — Groundbase calls your phone, you record up to ~60 seconds, then hang up. The recording saves automatically.
- Upload an MP3 / WAV — drag-drop or pick a file from your computer. We accept anything Twilio can play (MP3, WAV up to ~5 MB).
To use a drop: on the contact you're calling, the in-app dialer has a Drop voicemail button. Click it, pick a saved drop, and Groundbase dispatches a fresh outbound call to that contact. When their voicemail picks up, your recorded drop plays automatically — you don't have to stay on the line. It's the same idea as the "press 1 to leave a voicemail" trick in power dialers.
You can rename, delete, or replace any saved drop from the same Settings page.
Drops cost nothing extra to store in Groundbase. The outbound call itself is billed by Twilio at their standard voice rates.
Picking a default sending number
If you have more than one number on your Twilio account, set which one Groundbase uses by default for outbound SMS and voice at Settings → Phone numbers → set as default on the row you want. The default applies to manual sends, bulk sends, campaigns, and AI-driven sends. You can still pick a different number per send when composing.
Removing a number from Groundbase
Settings → Phone numbers → click the number → Remove from Groundbase. This unhooks the number from Groundbase — inbound calls and SMS to that number stop appearing in your CRM, and Groundbase stops listing it. The number itself remains on your Twilio account; release it from your Twilio Console if you want Twilio to stop billing for it. Groundbase never releases a number at Twilio, from any screen, cron or account deletion; releasing is always your own action in the Twilio Console. Removing a number, or disconnecting Twilio, puts back the call and text routing the number had before it was connected to Groundbase (for example the phone system it used to ring), when Groundbase recorded that routing at connect time. A number with nothing recorded, such as one bought through Groundbase, is left as it is at Twilio. If you've since pointed calls or texts somewhere else yourself, that part is left alone.