Setup guide
Set up ConnectSMS, from install to your first text.
A step-by-step guide for Salesforce admins: what to prepare in Twilio, how to install and connect ConnectSMS, how to give your team access, and how to test everything before you go live.
Before you start
ConnectSMS sends and receives text messages through your own Twilio account. Setting it up means preparing that Twilio account, installing ConnectSMS in Salesforce, connecting the two, and deciding who can text from which number. ConnectSMS Setup has a checklist that tracks each step and tells you what is still missing, so you always know where you are.
What you need
- Salesforce: System Administrator access to the org, and a Lightning Experience org with a My Domain.
- Twilio: an upgraded (paid) Twilio account, or the right to create one, as an Owner or Admin of that account. Twilio bills that account directly for messages, numbers and registrations.
- For texting US numbers: your company's legal name, EIN (tax ID), website with a privacy policy and terms, and a description of how customers agree to receive texts. Twilio's carrier registration needs them.
- A mobile phone you can use to receive the test messages and reply.
- Time: about two hours of work in total, plus Twilio's review time for US registration, which can take days to weeks.
- Part 1 Prepare Twilio Account, phone number, Messaging Service and US registration. 30 min + Twilio review
- Part 2 Install ConnectSMS Install the package and open ConnectSMS Setup. 10 minutes
- Part 3 Connect and configure Twilio connection, numbers, webhook, rules and background jobs. 30–45 minutes
- Part 4 Give your team access Permission sets, number access and record pages. 15 minutes
- Part 5 Turn on sending and test Send a test, reply, try STOP and START, then roll out. 15 minutes
Part 1
Prepare your Twilio account
Everything in this part happens in the Twilio Console. When you finish, you have an account ConnectSMS can use, a phone number in a Messaging Service, and a registration under way for US texting.
Twilio is moving customers to a new Console at 1console.twilio.com, and many accounts still use the legacy Console at
console.twilio.com. The menus differ, so each step shows both paths. Choose yours to hide the other.
Step 1.1: Use an upgraded Twilio account, ideally a subaccount for this org
Where: New ConsoleSettingsAccount settingsSubaccount management Legacy ConsoleAdminAccount managementSubaccounts
- Sign up or sign in at twilio.com. If the account is still a trial, upgrade it: in the new Console, click the Trial banner or Upgrade your account; in the legacy Console, click Upgrade at the top of the screen. New trial accounts can only send Twilio's pre-written sample messages to verified numbers, so ConnectSMS can't use them.
- Get a Primary Compliance Profile approved in Trust Hub (new Console: Products & Services › Trust Hub › Profiles; legacy Console: Account › Trust Hub › Customer Profiles). Twilio says approval usually takes up to two days. Without it, texts to unverified numbers fail with error 21608 and the account is capped at 20,000 messages a day.
- Recommended: create a subaccount just for this Salesforce org, for example "ConnectSMS production", and separate ones for sandboxes. Click Create new subaccount (new Console) or Create subaccount (legacy Console), give it a name and save. A subaccount keeps this org's numbers, logs and usage apart, and Twilio contains compliance problems to the subaccount where they happen.
Step 1.2: Find the Account SID and Auth Token
Where: New ConsoleWorkbenchOverviewAPI credentials Legacy ConsoleDashboardAccount Info
ConnectSMS signs in to Twilio with two values. You paste them into ConnectSMS in step 3.1.
- Account SID: starts with
ACfollowed by 32 letters and numbers. It identifies the account. - Auth Token: a secret, like a password. It is hidden until you click show (legacy Console) or the eye icon (new Console, in the Workbench panel at the bottom of any page).
Both are also on the credentials page: Settings › Account settings › API keys & auth tokens in the new Console, or Admin › Account management › API keys & tokens in the legacy Console.
Step 1.3: Get a phone number that can send SMS
Where: New ConsoleProducts & ServicesNumbers and sendersSet up a new phone number Legacy ConsolePhone NumbersManageBuy a number
You can use a number you already have in this account, or buy one. In the legacy Console, keep SMS ticked under Capabilities, and MMS too if you want to send pictures. Search, then click Buy. In the new Console, fill in Basic information, select a number, then Purchase.
Which kind of number decides what registration it needs:
| Number | Texting US recipients needs | Notes |
|---|---|---|
| US local number (10DLC) | A2P 10DLC registration: a Brand and a Campaign (step 1.5) | A number your customers recognize as local. |
| US or Canadian toll-free number | Toll-free verification (step 1.5); also needed for Canada | Put at most one toll-free number in each Messaging Service. Twilio warns that more can get it blocked. |
| Canadian local number | No 10DLC registration | Canadian carriers filter business texts strictly. |
| Numbers in other countries | Depends on the country | Many countries need a regulatory bundle before Twilio sells you a number. |
- ConnectSMS sends from full phone numbers. Short codes and alphanumeric sender IDs are skipped when it syncs your numbers.
- Picture messages (MMS) go only to US, Canadian and Australian numbers, from MMS-capable numbers. You can check a number's capabilities in the Active numbers list (legacy Console) or the My Inventory tab (new Console).
Step 1.4: Put the number in a Messaging Service
Where: New ConsoleProducts & ServicesMessagingServices Legacy ConsoleMessagingServices
A Messaging Service is a group of numbers that share settings in Twilio, including where incoming texts go and the US campaign they are registered to. ConnectSMS sends only from numbers that belong to a Messaging Service, and each number can belong to exactly one.
You can do this step here in Twilio, or later from ConnectSMS (step 3.2). In Twilio:
- Click Create Messaging Service (new Console: Create a Messaging Service).
- Give it a friendly name, such as "Support messaging", choose the use case that fits, and create it.
- In Sender Pool (new Console: Senders), click Add Senders, keep Phone Number as the sender type, and choose your number.
- Leave the Integration settings as they are. ConnectSMS sets them for you in step 3.5.
Step 1.5: Register for US texting: A2P 10DLC or toll-free verification
Where: New ConsoleProducts & ServicesTrust HubRegistrations Legacy ConsoleMessagingRegulatory ComplianceOnboarding
US carriers block business texts from unregistered numbers. A local number that isn't in an approved A2P 10DLC campaign fails with Twilio error 30034, and an unverified toll-free number fails with 30032 (in the US and Canada). Only Twilio and the carriers can approve a registration.
A2P 10DLC, for US local numbers
-
Brand: in the new Console, open the A2P Brands tab and click Create A2P
Brand. In the legacy Console, use the Register Brand tab. Choose the type:
- Standard or Low-Volume Standard for businesses with a tax ID (EIN). Low-Volume Standard suits fewer than 6,000 message segments a day.
- Sole Proprietor for individuals without an EIN. It allows one campaign and one phone number.
- Campaign: open A2P Campaigns › Create A2P Campaign (legacy Console: Campaign Registration), choose your brand, and pick the Messaging Service from step 1.4. Describe what you send, how people agree to receive it, and give two to five sample messages. Your privacy policy must say that mobile numbers aren't shared, and include message frequency and "Message and data rates may apply".
- Wait for approval. Brands are usually checked within minutes, but a manual review can take seven business days or more. For campaigns, Twilio currently quotes 10 to 15 days (other Twilio pages say several days to three weeks). After approval, the numbers themselves can take several days to register; texts fail with error 30035 meanwhile.
- Check it: in the legacy Console, the Messaging Service's A2P & Compliance tab should show the campaign as Verified. In the new Console, check Trust Hub › Registrations.
Toll-free verification, for toll-free numbers
New Console: Numbers and senders › Phone Numbers › your number › Finish setting up your number. Legacy Console: Phone Numbers › Manage › Active numbers › your number › Regulatory Information › Verify this toll free number. You'll need the legal business name, EIN, a website with separate privacy policy and terms links, how people opt in, sample messages and your expected volume. Twilio says to allow about three to five business days.
Twilio charges one-time and monthly fees for registrations, and they change over time. Check Twilio's current A2P 10DLC fees before you submit. Who you text and how they agreed is a decision for your compliance owner; ConnectSMS enforces opt-outs but can't make that decision for you.
Step 1.6: Protect the account (recommended)
Where: New ConsoleProducts & ServicesMessagingSettings Legacy ConsoleMessagingSettings
- Geo Permissions: these control which countries the account can text. ConnectSMS itself doesn't limit countries, so this is the setting that does. New accounts allow only their home country. Review the list and allow only the countries you actually text. A blocked country shows in ConnectSMS as "Your Twilio account is not allowed to send to this country" (error 21408). Subaccounts inherit the parent's settings unless an Owner or Admin changes that.
- SMS Pumping Protection (under General): select Enabled. It blocks texts to numbers Twilio suspects of fraud, for a short time, with error 30450. Twilio doesn't charge for it for US and Canadian traffic.
- Usage triggers (optional, in Twilio billing): get an email when spending passes an amount you choose.
- Only Owners and Admins can see the Auth Token and change these settings. Keep that list short.
Part 2
Install ConnectSMS and open Setup
Install the package, give yourself the ConnectSMS Admin permission set, and open the ConnectSMS Setup checklist.
Step 2.1: Install the package from AgentExchange
- Open the ConnectSMS listing on AgentExchange (the Start your 14-day free trial button on this site) and choose to install it in your production org or a sandbox. The install includes a 14-day free trial of every feature, and no credit card is required.
- When Salesforce asks who to install it for, choose Install for Admins Only. You give everyone else access with ConnectSMS permission sets in step 4.1, which is more precise than profiles.
-
If Salesforce asks you to approve third-party access, approve it. ConnectSMS calls Twilio at
api.twilio.comandmessaging.twilio.com, and the package already includes the Remote Site Settings for them, so you don't create any yourself.
Step 2.2: Give yourself the ConnectSMS Admin permission set
Where:Salesforce SetupUsersPermission SetsConnectSMS AdminManage Assignments
- In Setup, type Permission Sets in Quick Find and open Permission Sets.
- Click ConnectSMS Admin, then Manage Assignments › Add Assignment.
- Select yourself and finish the assignment.
ConnectSMS Admin opens ConnectSMS Setup and lets you view every business number. It doesn't let you text from records by itself: like everyone else, you'll need Send access to a number (step 4.2). Without the permission set, ConnectSMS Setup shows "You don't have access to ConnectSMS Setup".
Step 2.3: Open ConnectSMS Setup and find the checklist
Where:SalesforceApp LauncherConnectSMSConnectSMS Setup
Open the App Launcher, search for ConnectSMS, open the app and click the ConnectSMS Setup tab. Use a desktop browser: on a phone, ConnectSMS Setup is read-only.
The Overview page has a Setup progress card with eight steps. Each shows Completed, To do, Needs attention, Problem or Optional, with a button that takes you to the right section. Choose Check again after you change something outside ConnectSMS, such as a Salesforce Site.
Finish setup to turn on sending Sending is off
No messages are handed to Twilio until you turn on sending. Incoming messages are still received.
-
1. Connect TwilioConnectSMS is connected to your Twilio account.Completed Review connection
-
2. Business numbers2 business number(s) ready to send.Completed Manage numbers
-
3. Replies and delivery updatesSet up the webhook so replies and delivery updates reach Salesforce.To do Set up webhook
-
4. Who can use which numberNobody can send yet.To do Give access
-
5. ConnectSMS permission setsAssign the ConnectSMS User permission set to people who send messages.Optional Assign permission sets
-
6. Records you can textPeople can text from these records: Contact, Lead, Account, Case.Completed Manage objects
-
7. Background jobsTurn on the background jobs.To do Turn on jobs
-
8. Turn on sendingFinish the steps above, then turn on sending.To do
Recreated from the ConnectSMS interface with sample data.
| Checklist step | What it checks | This guide |
|---|---|---|
| 1. Connect Twilio | An Account SID and Auth Token are saved | Step 3.1 |
| 2. Business numbers | At least one active number in a Messaging Service | Step 3.2 |
| 3. Replies and delivery updates | The webhook is set up on an active Salesforce Site | Steps 3.3 to 3.6 |
| 4. Who can use which number | At least one person has Send access to a number | Step 4.2 |
| 5. ConnectSMS permission sets | Everyone with number access has a ConnectSMS permission set | Step 4.1 |
| 6. Records you can text | At least one object is set up for texting (done from the start) | Step 3.7 |
| 7. Background jobs | The four scheduled jobs are running | Step 3.9 |
| 8. Turn on sending | Everything above is ready | Step 5.2 |
Part 3
Connect Twilio and configure ConnectSMS
Work through ConnectSMS Setup section by section: connect Twilio, bring in your numbers, set up the webhook for replies, choose your rules and turn on the background jobs.
Step 3.1: Connect your Twilio account
Where:ConnectSMS SetupTwilio connection
- Paste the Account SID and Auth Token from step 1.2.
-
Check Default country calling code. ConnectSMS adds it to phone numbers saved without a country code:
+1for the US and Canada,+44for the UK, and so on. - Click Save and verify. ConnectSMS asks Twilio to confirm the details before it saves anything. You should see "Connection saved. Twilio accepted the Account SID and Auth Token." and the Twilio account name.
If it doesn't save, nothing changes, and ConnectSMS tells you why:
- "Twilio did not accept the Account SID and Auth Token." Copy both again. If you use a subaccount, use the subaccount's own values, not the parent account's.
- "Twilio could not find an account with this Account SID." The Account SID is wrong or belongs to another account.
- 'Twilio reports that this account is …' The account is suspended or closed. Fix it in the Twilio Console; nothing can be sent until the account is active.
To replace the token later, for example after rotating it in Twilio, click Change next to the saved token, paste the new one and click Save and verify. See rotating the Auth Token.
Step 3.2: Bring in your business numbers
Where:ConnectSMS SetupBusiness numbersSync from Twilio
Click Sync from Twilio. ConnectSMS imports the phone numbers in your Twilio account with their capabilities and Messaging Service. New numbers start Active. Sync never deletes a number: if Twilio stops returning one, it's marked Not found in Twilio.
3 numbers added, 0 numbers updated, 1 numbers need attention.
| Number | Messaging Service | Status | MMS | Automation |
|---|---|---|---|---|
| +1 (415) 555-0199Support line | Support messaging | Ready | Not available | |
| +1 (415) 555-0142Sales line | Support messaging | Ready | Not available | |
| +1 (415) 555-0176+1 (415) 555-0176 | Not in a Messaging Service | Not in a Messaging Service | — | Not available |
Recreated from the ConnectSMS interface with sample data.
| Status | What it means | What to do |
|---|---|---|
| Ready | The number can send. | Nothing. |
| Not in a Messaging Service | ConnectSMS can't send from it. | Add it to a service: here with Add to a service, or in Twilio, then sync again. |
| Needs attention | Twilio reports that the number can't send SMS. | Check the number's capabilities in Twilio. |
| Not found in Twilio | The number was released or moved to another account. | Check the Twilio account; deactivate the number here if it's gone. |
Manage Messaging Services from ConnectSMS
The Messaging Services card on this page lets you do step 1.4 without leaving Salesforce:
- Create Messaging Service creates an empty service in Twilio. It isn't linked to any A2P campaign; do that in Twilio.
- Add to a service puts a number in a service. The number then uses the service's settings, including its webhook.
- Remove from service takes it out. For a registered US local number, that also takes it out of its A2P campaign, and carriers block it until it is registered again.
To buy numbers or delete a Messaging Service, use the Twilio Console, then click Sync from Twilio again.
Name each number
Open a number's menu and choose Edit number settings. The Friendly name, such as "Support line", is what people see in the From selector, so make it clear. The same dialog has the Active checkbox and Available to automation, which lets Flow, API and agent requests send from the number (step 4.5). Leave that off unless the number is meant for automated messages.
Step 3.3: Create a Salesforce Site to receive replies
Where:Salesforce SetupQuick Find: SitesSitesNew
Replies, STOP requests and delivery updates come from Twilio as web requests. Twilio can't sign in to Salesforce, so it calls a public address on a Salesforce Site in your org. ConnectSMS checks Twilio's signature on every call and rejects anything that isn't from your Twilio account. A basic Salesforce Site is enough; an Experience Cloud site also works.
- In Setup, type Sites in Quick Find and open Sites.
- If Salesforce asks you to register a Salesforce Sites domain, do that first, then click New.
- Enter a Site Label, such as "ConnectSMS Webhooks", keep Active selected and save.
- If the site isn't active yet, click Activate.
Step 3.4: Give the site's guest user the webhook permission
Where:ConnectSMS SetupInbound webhook1. Choose the Salesforce Site
- In ConnectSMS Setup, open Inbound webhook and choose Check again so the new site appears.
- Under 1. Choose the Salesforce Site, pick your site.
- Click Assign guest permission and confirm with Assign permission. ConnectSMS gives the site's guest user the ConnectSMS Webhook Guest permission set and nothing else. It only lets Twilio reach the ConnectSMS webhook; it gives no access to your records.
You'll then see "The site's guest user has the ConnectSMS webhook permission." Some ConnectSMS messages call this permission set "ConnectSMS WebHook User"; it's the same one. To assign it by hand instead, go to Setup › Sites › your site › Public Access Settings › View Users, open the guest user and add ConnectSMS Webhook Guest under Permission Set Assignments.
Step 3.5: Point your Messaging Services at ConnectSMS
Where:ConnectSMS SetupInbound webhook2. Point your Messaging Services
- Under 2. Point your Messaging Services, tick every service that holds numbers you'll use with ConnectSMS.
- Click Configure webhook on selected services.
- Read the confirmation, then click Configure webhook.
The site's guest user has the ConnectSMS webhook permission.
Services to configure
Support messaging Sales messaging Configure webhook on selected servicesRecreated from the ConnectSMS interface with sample data.
For each service you selected, ConnectSMS changes these settings in Twilio:
- Incoming messages go to the ConnectSMS webhook on your site, by POST.
- Delivery status updates go to the same address.
- The service's settings apply to all its numbers, instead of each number's own webhook.
The address looks like https://yoursitedomain.my.salesforce-sites.com/services/apexrest/csms/twilio/webhook. To check it in Twilio, open the service's
Integration settings and look at incoming messages and the delivery status callback:
New ConsoleProducts & ServicesMessagingServicesyour serviceIntegration Legacy ConsoleMessagingServicesyour serviceIntegration
Right after this step the checklist may say the webhook "needs a look", with "ConnectSMS has not received any reply or delivery update from Twilio in the last 7 days". That's expected: it clears after your first test in Part 5.
Step 3.6: Keep the signature check on Enforce
Where:ConnectSMS SetupInbound webhook3. Signature check
The signature check proves each request came from your Twilio account. Leave it on Enforce (recommended), which is the default. ConnectSMS won't let you turn on sending with any other setting.
- Monitor (troubleshooting only) accepts requests that fail the check and records them. Use it only briefly while you fix a problem.
- Off (development orgs only) lets anyone who knows the address post fake messages. Never use it with real customer data.
Step 3.7: Choose the records people can text
Where:ConnectSMS SetupRecipients
Contacts, Leads, Accounts and Cases work out of the box. ConnectSMS tries their phone fields in order and uses the first valid number: Mobile Phone, then Phone for Contacts and Leads; the Contact's numbers for Cases; Phone for Accounts, with Person Mobile Phone first when Person Accounts are on.
To text from other objects, such as Work Orders or your own custom objects, click Add object, enter the object's API name, choose Find phone fields and put the fields in order. Fields can be on the record or on one record it looks up to. Texting from any object explains the options.
| Object | Phone fields (in order) | Built-in settings | Status |
|---|---|---|---|
| Service VisitService_Visit__c |
|
Active | |
| Work OrderWorkOrder |
|
Active | |
| ContactContact |
|
Built-in | Active |
| LeadLead |
|
Built-in | Active |
| CaseCase |
|
Built-in | Active |
| AccountAccount |
|
Built-in | Active |
Showing 1–6 of 6 objects
Recreated from the ConnectSMS interface with sample data.
Step 3.8: Set your messaging policies
Where:ConnectSMS SetupPolicies
Each card on Messaging policies has a sensible default. Review them, then click Save changes.
| Policy | Default | What to decide |
|---|---|---|
| Opt-outs | A STOP to any business number blocks all of them | Whether a STOP reaches all your numbers or only the one that received it. Let your compliance owner choose. |
| Quiet hours | Off; 9 PM to 8 AM when turned on | Whether to hold outreach and automated texts overnight. One-to-one messages aren't delayed. Always set the Business time zone, which quiet hours and outreach schedules use. |
| Daily safeguard | 0 (no limit) | A daily maximum that catches mistakes such as runaway automation. Set it comfortably above your normal volume. |
| Picture and file messages (MMS) | Off | Turn on Allow attachments through temporary public links to send pictures. Twilio fetches each file from a public link that ConnectSMS deletes after the hours you set (1 to 168, default 24). |
| Automation default sender | None | The number Flow, API and agent requests use when they don't name one. Without it, those requests fail with "No sender was given and no default is configured". |
| Advanced | 50 messages per dispatcher run | Leave it unless the error log shows Salesforce limit errors. |
Step 3.9: Turn on the background jobs
Where:ConnectSMS SetupOperationsBackground jobsTurn on background jobs
A scheduled job runs every 15 minutes. It sends scheduled messages and outreach, checks messages whose outcome is unknown, and deletes expired attachment links. Messages people send right away don't wait for it.
- Open Operations and the Background jobs tab.
- Click Turn on background jobs. The first run starts within 15 minutes.
Background jobs are running. Running
Last run: Today, 2:15 PM
| Job name | Schedule | Status | Next run | Runs as |
|---|---|---|---|---|
| ConnectSMS Dispatcher :00Scheduled Apex | Every hour at :00 | Scheduled | Today, 3:00 PM | Alex Kim |
| ConnectSMS Dispatcher :15Scheduled Apex | Every hour at :15 | Scheduled | Today, 3:15 PM | Alex Kim |
| ConnectSMS Dispatcher :30Scheduled Apex | Every hour at :30 | Scheduled | Today, 2:30 PM | Alex Kim |
| ConnectSMS Dispatcher :45Scheduled Apex | Every hour at :45 | Scheduled | Today, 2:45 PM | Alex Kim |
Recreated from the ConnectSMS interface with sample data.
The jobs run as the admin who turns them on. Use an admin account that will stay active. If that person leaves, turn the jobs off and on again from another admin account. In Setup › Scheduled Jobs they appear as ConnectSMS Dispatcher :00, :15, :30 and :45. Manage them from ConnectSMS rather than deleting them there.
Part 4
Give your team access
People need two things to text: a ConnectSMS permission set, which says what they can do, and access to a business number, which says which numbers they can use.
Step 4.1: Assign ConnectSMS permission sets
Where:ConnectSMS SetupAccessPermission sets
| Permission set | Give it to | What it allows |
|---|---|---|
| ConnectSMS User | Everyone who texts customers | Send and read messages on the numbers they have access to, use templates, and work in the Inbox. |
| ConnectSMS Campaign Manager | People who run outreach | Create, launch, pause and cancel outreach, and manage shared templates. Add ConnectSMS User for one-to-one texting. |
| ConnectSMS Automation | Integration and agent users | Flow, API and agent requests can send from numbers marked Available to automation. |
| ConnectSMS Admin | ConnectSMS administrators | Everything in ConnectSMS Setup. Sending from records still needs Send access to a number. |
| ConnectSMS Webhook Guest | Only the Site guest user | Lets Twilio reach the webhook. Never assign it to people. |
Assign them in Salesforce Setup (Permission Sets › Manage Assignments), or from ConnectSMS Setup: open Access, use a person's row menu and choose Permission sets. Changes there apply right away and are audited.
Step 4.2: Give people access to business numbers
Where:ConnectSMS SetupAccessAdd access
- Click Add access.
- Under Give access to, choose A user or A public group, and pick them.
- Choose the Business number.
- Tick Can send, Can view or both. Send includes view. View only lets someone read the number's conversations without sending.
- For a person, optionally tick Use as this person's default business number, then save.
Recreated from the ConnectSMS interface with sample data.
- Public groups reach their direct members only. People in nested groups or roles don't get access. Members still need the ConnectSMS User permission set.
- ConnectSMS never picks a number for anyone. If someone has no Send access, they can read but not text.
- When you Revoke access, ConnectSMS first shows what changes, such as queued messages or outreach that would be blocked. Nothing is revoked until you confirm.
Step 4.3: Add Text Messages to your record pages
Where:SalesforceA record pageSetup gearEdit Page
ConnectSMS doesn't change your record pages, so add its component where people work. Do this for Contacts, Leads, Accounts, Cases and each object you added in Recipients.
- Open any record of that type, click the Setup gear and choose Edit Page.
- In the component list, search for ConnectSMS Text Messages and drag it onto the page, for example the right-hand column or a new tab.
- Optionally set Header label (default "Text messages"). Leave Message history height (pixels) blank so the component fits the page with the message box always visible.
- Click Save. If Salesforce asks, click Activate and choose who gets the page: org default, or specific apps, record types and profiles.
Step 4.4: Show people the Inbox
Where:SalesforceApp LauncherConnectSMS
- The ConnectSMS app has the tabs Inbox, Outreaches, Templates, SMS Messages and ConnectSMS Setup. People see the ones their permission set allows. ConnectSMS User shows Inbox and Templates.
- The utility bar of the ConnectSMS app already has Messages, a compact inbox with an unread count.
- In your other apps, such as a Sales or Service console: open Setup › App Manager, edit the app, go to Utility Items, click Add Utility Item and choose ConnectSMS Inbox (Utility Bar). You can also put the ConnectSMS Inbox component on a Home page or an app page.
Step 4.5: Set up automation users (optional)
Where:ConnectSMS SetupBusiness numbersEdit number settingsAvailable to automation
If you'll send from Flow, Apex, the REST API or Agentforce:
- Mark the numbers automation may use as Available to automation, and choose an Automation default sender under Policies.
- Give integration and agent users the ConnectSMS Automation permission set.
- Mind who runs the Flow. A record-triggered Flow runs as the person who changed the record, so that person needs Send access to the number, or ConnectSMS Automation plus a number available to automation. The Automated Process user can't hold permission sets.
Sending SMS from Salesforce Flow walks through a Flow, and the automation reference covers Apex and REST.
Part 5
Turn on sending and test end to end
Turn sending on, send a test to your own phone, reply to it, and try STOP and START. When all of that works, ConnectSMS is ready for your team.
Step 5.1: Check that setup is ready
Where:ConnectSMS SetupOverviewSetup progress
Click Check again on the Overview. The status card should say Ready to turn on sending. If it doesn't, the last checklist step lists what's still needed:
Step 5.2: Turn on sending
Where:ConnectSMS SetupOverviewTurn on sending
Click Turn on sending. The confirmation shows how many numbers and people can send. Add a reason if you like, then confirm. The change is recorded in the audit log with your name.
- People with Send access to a business number will be able to send real text messages through your Twilio account.
- 2 active business number(s) can be used.
- 1 people have access to at least one number.
- Queued and scheduled messages are handed to Twilio in the next dispatcher run (every 15 minutes).
- Twilio charges your account for every message, number and registration. ConnectSMS doesn't change those charges.
Recreated from the ConnectSMS interface with sample data.
Turn off sending is your emergency stop. It stops every ConnectSMS message at once: one-to-one, replies, outreach and automation. Queued and scheduled messages wait, and incoming messages still arrive. You'll be asked for a reason.
Step 5.3: Send a test message to your phone
Where:ConnectSMS SetupOperationsTest message
- Choose the From (business number).
- Enter your mobile number in To (mobile phone number), with the country code, for example
+1. - Keep or change the message, click Send test message and confirm. It's a real text, and Twilio charges for it.
- Click Refresh status after a minute. You want Delivered, and the text on your phone.
Status: Delivered.
Recreated from the ConnectSMS interface with sample data.
The test message goes through the same checks as every other message. It only works once sending is on. A Delivered status also proves that delivery updates reach Salesforce. If it says Failed, the reason includes a Twilio error code: see Troubleshooting.
Step 5.4: Reply from your phone
Where:ConnectSMS SetupInbound webhookLatest activity
Reply to the test text, for example "Got it". Within a few seconds:
- Inbound webhook › Latest activity shows a time for Last incoming message.
- The reply appears in the Inbox, in a conversation with your number.
- The checklist's "Replies and delivery updates" step turns Completed after you choose Check again.
If the reply doesn't arrive, see Replies don't reach Salesforce.
Step 5.5: Text from a record
Put your mobile number on a test Contact and open it. In the Text Messages component, choose your number in the From selector, write a message and click Send. Reply from your phone: the message history on the record shows both. This confirms the record page, your number access and the whole round trip.
Step 5.6: Test STOP and START
Where:ConnectSMS SetupOpt-outs
- Reply STOP to one of the test texts. Twilio sends its standard confirmation.
- Open Opt-outs: your number is listed as Opted out, with the source Inbound keyword. If you try to text yourself now, ConnectSMS blocks it and says why.
- Reply START. The opt-out is lifted and you can receive texts again. (Toll-free numbers accept START and UNSTOP.)
With the default policy, a STOP to one of your numbers blocks all of them from texting that phone. You can also add opt-outs by hand, for example when someone asks by phone, with Add opt-out.
Step 5.7: Roll out to your team
- Give your team their permission sets and number access (4.1 and 4.2).
- Check that the Text Messages component is on the record pages they use (4.3).
- Show them the Inbox and the From selector, and agree who answers which number. The shared inbox explains assigning and closing conversations.
Troubleshooting
Start with the Setup progress checklist and Operations. The Messages tab lists messages that need attention (Unknown outcome, Failed, Blocked and Stuck) with the reason, and the Errors tab holds the error log. Some ConnectSMS messages say "ConnectSMS Settings": that means ConnectSMS Setup.
| What you see | Usual cause | What to do |
|---|---|---|
| "The connection wasn't saved." Twilio did not accept the Account SID and Auth Token | A typo, a rotated token, or the parent account's details for a subaccount | Copy both values again from the account that owns the numbers (1.2) |
| A number shows Not in a Messaging Service | It isn't in any service in Twilio | Use Add to a service, or add it in Twilio and sync again |
| Turn on sending is greyed out | A required step isn't done | Read "Still needed" in the last checklist step (5.1) |
| Test message: "Sending is turned off for ConnectSMS" | The test uses the same rules as every message | Turn on sending first (5.2) |
| Replies don't reach Salesforce, and sent messages stay at Sent | The webhook isn't reaching ConnectSMS | On Inbound webhook, check that the site is active, the guest user has the permission, and every service says "Goes to ConnectSMS". Run Configure webhook again rather than pasting the address. If you just rotated the Auth Token, update it in ConnectSMS. In Twilio, open the message in Monitor › Logs › Messaging to see the webhook's response. |
| "You can't send text messages" | No ConnectSMS User permission set | Assign it (4.1) |
| "You don't have a business number to send from" | No Send access to any number | Give access (4.2). Admins need it too |
| "Texting isn't turned on for this type of record" | The object isn't in Recipients | Add it (3.7) |
| Scheduled messages and outreach don't go out; Operations shows Stuck messages | Background jobs are off, or the admin who turned them on was deactivated | Turn the jobs off and on again from an active admin (3.9) |
| Flow or API sends fail with "No sender was given and no default is configured" | No automation default sender | Choose one under Policies (3.8) |
| "The running user is not allowed to send from …" | The user running the Flow or integration has no access to that number | Give them Send access, or ConnectSMS Automation plus a number available to automation (4.5) |
| "Sending is paused because this org is a copy of the org where sending was turned on" | This is a sandbox copy | Follow Sandboxes and test orgs, then turn sending on here |
Twilio error codes
When Twilio or a carrier rejects a message, ConnectSMS shows the reason with the Twilio error code. The common ones during setup:
| Code | Meaning | What to do |
|---|---|---|
| 20003 | Twilio rejected the credentials | Update the Auth Token in ConnectSMS; check you used the right account or subaccount |
| 21211 | The recipient number isn't a valid phone number | Fix the number on the record |
| 21408 | The account isn't allowed to text this country | Allow the country in Twilio Geo Permissions (1.6) |
| 21606 | The business number can't send this kind of message | Check the number's capabilities in Twilio |
| 21608 | The account is a trial, or has no approved Primary Compliance Profile | Upgrade and get the profile approved (1.1) |
| 21610 | The recipient replied STOP | They must reply START before they can receive texts again |
| 21614 | The recipient number can't receive texts | Use a mobile number |
| 21660 | The number belongs to another Twilio account | Sync numbers; check the connected account |
| 21704, 21711 | The Messaging Service has no numbers, or the number isn't in it | Fix the service in Twilio, then Sync from Twilio |
| 30003, 30005, 30006 | The phone is off or unreachable, the number isn't in service, or it's a landline | Check the number with the customer |
| 30007 | The carrier filtered the message as possible spam | Review the content and your registration |
| 30032 | The toll-free number isn't verified yet | Finish toll-free verification (1.5) |
| 30034 | The US number isn't in an approved A2P 10DLC campaign | Register it, and keep it in the campaign's Messaging Service (1.5) |
| 30035 | The number's 10DLC registration is still being set up | Wait; this can take several days after campaign approval |
| 30450 | Blocked for a short time by SMS Pumping Protection | Try again later; contact Twilio if it keeps happening for real customers |
Sandboxes and test orgs
Set up each sandbox with its own upgraded Twilio subaccount and its own numbers, never production's. New trial accounts and Twilio's test credentials don't work with ConnectSMS.
A sandbox refresh copies production's ConnectSMS settings, including the Twilio credentials. After every refresh:
- Sending is paused in the copy automatically. Leave it off for now.
- Before anything else, open Twilio connection, click Change and save the sandbox subaccount's Account SID and Auth Token.
- Sync the numbers, set up a Salesforce Site in the sandbox, and configure the webhook for the sandbox's Messaging Services.
- Turn on the background jobs, and turn on sending when you're ready to test.
After go-live
Rotating the Auth Token
ConnectSMS uses the Auth Token both to send and to check Twilio's signature on replies, and Twilio signs replies with the primary token. So rotate at a quiet time, and do the last two steps back to back:
- In Twilio, open the credentials page, click Request a secondary token in the Auth Tokens section, and copy the new token. New ConsoleSettingsAccount settingsAPI keys & auth tokens Legacy ConsoleAdminAccount managementAPI keys & tokens
- In ConnectSMS Setup › Twilio connection, click Change, paste the secondary token and click Save and verify.
- Straight away, click Promote to Primary in Twilio. Replies that arrive between these two steps are rejected.
Adding a number later
Buy it in Twilio, add it to the right Messaging Service (the one linked to your A2P campaign, for a US local number), click Sync from Twilio, give it a friendly name, and give people access. If you created a new Messaging Service, run Configure webhook for it too.
Keep an eye on Operations
- Unknown outcome messages are ones where Twilio's answer was lost, for example in a timeout. ConnectSMS never resends them automatically; Check with Twilio looks each one up.
- Failed and Blocked messages show why. Stuck messages usually mean the background jobs aren't running.
- The Audit log records who changed the connection, numbers, access, policies, opt-outs and the sending switch.
- Usage and billing are in the Twilio Console, which bills your account directly.
Go-live checklist
Tick each item as you go. Your ticks are saved in this browser, so you can come back to the guide later.
