Text from any Salesforce object, standard or custom.
Contacts, Leads, Accounts and Cases work out of the box. Add Work Orders, Opportunities or your own custom objects, choose which phone fields ConnectSMS uses, and your team texts from those records like any other.
Can you send SMS from a custom object in Salesforce? Yes. With ConnectSMS, an admin adds the object in ConnectSMS Setup › Recipients by its API name, such as Service_Visit__c, and chooses the phone fields to try, in order, on the record or one lookup away. Once the ConnectSMS Text Messages component is on the object's record page, people text from those records, and templates, outreach and Flow can use them too.
Service VisitSV-00427
Scheduled DateOct 14, 2026
CustomerJordan Alvarez
Site Contact Mobile+1 (312) 555-0164
SV
SV-00427Site Contact Mobile · +1 (312) 555-0164
Text messages · Updated just now ⋮
Today
Hi Jordan, your service visit is confirmed for Wed, Oct 14 between 8 and 10 AM. Reply here if you need to change it.
Sent by Alex Kim • 2:14 PM • Delivered
Thanks. The side gate will be open.
SV-00427 • 2:21 PM
Type a message to SV-00427…⋮Send
Recreated from the ConnectSMS interface with sample data.
How it works
From a new object to the first text, in three steps.
Step 1 · Admin
Add the object in Recipients
In ConnectSMS Setup › Recipients, choose Add object, enter the API name, such as
Service_Visit__c, then Find phone fields and put them in the order ConnectSMS should
try.
Step 2 · Admin
Put the component on the page
In Lightning App Builder, drag ConnectSMS Text Messages onto the object's record page. The
component can go on any record page, and it works in the Salesforce mobile app layout.
Step 3 · Your team
Text, template, reach out, automate
People text from the record. Templates can be set to use the object, outreach can target its records, and Flow
or Apex can send with a record ID.
Recipients
Every object your team can text from, in one list.
ConnectSMS Setup › Recipients lists the objects people can text from and the phone fields ConnectSMS tries for each, in order. Only ConnectSMS admins can change it.
RecipientsChoose which records people can text from, and which phone fields ConnectSMS uses.
+ Add object
Objects people can text fromConnectSMS tries the phone fields in the order listed and uses the first valid number. Built-in settings for Contact, Lead, Account and Case apply until you customize them.
Object
Phone fields (in order)
Built-in settings
Status
Service VisitService_Visit__c
Site_Contact_Mobile__c
Customer__r.MobilePhone
Active
Work OrderWorkOrder
Contact.MobilePhone
Contact.Phone
Active
ContactContact
MobilePhone
Phone
Built-in
Active
LeadLead
MobilePhone
Phone
Built-in
Active
CaseCase
Contact.MobilePhone
Contact.Phone
Built-in
Active
AccountAccount
Phone
Built-in
Active
Showing 1–6 of 6 objects
Recreated from the ConnectSMS interface with sample data.
Built-in until you customize
Contact and Lead use Mobile Phone, then Phone. Case uses its contact's Mobile Phone, then Phone. Account uses Phone, with Person Mobile Phone first when Person Accounts are on.
The first valid number wins
ConnectSMS tries the fields in the order listed and uses the first one that holds a valid number. On the record, people can choose another of the record's numbers.
Pause or remove an object
Deactivate stops new messages from those records. Delete removes your settings, and built-in objects go back to their defaults. Existing messages are kept.
Add an object
Name the object, then pick its phone fields.
Enter the object's API name from Setup › Object Manager and choose Find phone fields. ConnectSMS lists the phone and text fields on the record, and the phone fields on records it looks up to.
Standard objects such as WorkOrder or Opportunity, and custom objects ending in __c
Fields on the record, such as Site_Contact_Mobile__c, or one lookup away, such as Customer__r.MobilePhone
Related fields show as Customer › Mobile Phone, so you can see which record the number comes from
Use the arrows to set the order, and Active to decide whether people can text from these records yet
ConnectSMS rejects a path that goes through more than one relationship, a lookup that can point to more than one kind
of record, and fields that aren't phone or text fields. Objects whose records can't be texted, such as custom
settings and platform events, can't be added. If an object has no phone field ConnectSMS can use, add a Phone field
to the object first.
Add an object
*Object API nameService_Visit__cFind phone fieldsThe API name from Setup, Object Manager. Custom objects end in __c.
Phone fields
Available phone fields
Office Phone (Office_Phone__c)
Customer › Phone (Customer__r.Phone)
Customer › Home Phone (Customer__r.HomePhone)
›‹
Fields ConnectSMS tries, in order
Site Contact Mobile (Site_Contact_Mobile__c)
Customer › Mobile Phone (Customer__r.MobilePhone)
↑↓
Use the arrows to change the order. ConnectSMS uses the first field that holds a valid number.
CancelSave
Recreated from the ConnectSMS interface with sample data.
On the record
The same texting tools, on your own records.
On a Service Visit, a Work Order or an Opportunity, the Text Messages component works as it does on a Contact: history, composer, templates and scheduling in one place.
Records with several phone fields show Phone number to text; numbers that can't be used are marked
The history shows conversations with the record's numbers on the business numbers you can view, replies included
Merge fields read the record, such as {!Service_Visit__c.Scheduled_Date__c}
Preview, MMS where supported, and scheduling in 15-minute slots up to 35 days ahead
Can the technician call when they're 10 minutes away?
SV-00427 • 9:12 AM
Yes, Sam will call you from the van before arriving.
Sent by Alex Kim • 9:15 AM • Delivered
Hi Jordan, a reminder that your service visit is tomorrow between 8 and 10 AM.⋮Schedule
Recreated from the ConnectSMS interface with sample data.
Works everywhere ConnectSMS does
Enable an object once. Use it across ConnectSMS.
Templates, outreach, Flow and Apex read the same Recipients settings, so an object you add is available to all of them.
Templates
Set Use on to the object and insert its fields, or fields one lookup away.
Outreach
Choose the object under Kind of record and filter its records, or use a report with its record IDs.
Flow and Apex
Send Text Message takes a Record ID for a Contact, Lead, Account, Case or another enabled object.
Inbox
A conversation that starts from a record is linked to it, so the inbox shows Service Visit: SV-00427.
Templates
Templates built on your object's fields.
Set a template's Use on to your object. Insert field offers the object's fields and the fields of records it looks up to, one level deep.
{!Service_Visit__c.Scheduled_Date__c} fills in the visit date. {!Service_Visit__c.Customer__r.FirstName|there} reaches the customer's first name through the lookup, with there as the fallback when it's blank.
The preview merges the template with a real record, and a field that can't be filled blocks sending until it's fixed.
Who should receive this outreach?Members of a Salesforce CampaignRecords that match filtersRecords in a Salesforce report
Kind of recordService Visit
Phone number to textFirst phone field that has a valid number
Only include records where all of these are true
Scheduled_Date__cequalsTOMORROW
Status__cequalsConfirmed
+ Add condition
Recreated from the ConnectSMS interface with sample data.
Flow and Apex
Automate texts from any enabled object.
The Send Text Message action takes a Record ID for a Contact, Lead, Account, Case or another object your admin enabled. In a record-triggered Flow on your object, that's {!$Record.Id}.
ConnectSMS uses the first valid phone field from Recipients, or the configured field you name in Phone Field
The record and its phone are read as the Flow's running user
An Idempotency Key makes sure a re-saved record never sends the same text twice
Apex does the same with ConnectSMSApi, and business problems such as an opted-out number come back as
error codes rather than exceptions.
Automation reference
// Record-triggered Flow on Service_Visit__c, when Status__c changes to En RouteSend Text Message (ConnectSMS)
Record ID {!$Record.Id}
Template ID {!OnTheWayTemplateId}
Idempotency Key {!OnTheWayKey}
Phone Field blank = the first valid field from Recipients
Business Number blank = the automation default number// The template "Technician on the way" is set to Use on: Service Visit
OnTheWayKey = {!$Record.Id} & '-en-route'
Examples
Objects teams text from, by industry.
A few common setups. Your objects and field names will differ: what matters is a phone or text field on the record, or on one record it looks up to.
Field service
Work Order and Service Appointment
Standard objects, texting Contact.MobilePhone. Arrival windows, technician on the way, job complete.
Sales
Opportunity
Standard object, texting Account.Phone or a contact lookup such as Primary_Contact__r.MobilePhone. Quote follow-ups and renewal reminders.
Automotive
Vehicle
Custom object Vehicle__c, texting Customer__r.MobilePhone. Service due, parts arrived, vehicle ready for pickup.
Yes. A ConnectSMS admin opens ConnectSMS Setup › Recipients, chooses Add object, enters the object's API name, such as Service_Visit__c, and picks the phone fields to use, in order. After the ConnectSMS Text Messages component is added to the object's record page in Lightning App Builder, people can text from those records.
Which phone fields can ConnectSMS use on a record?
Phone or text fields on the record itself, such as Site_Contact_Mobile__c, or on one related record through a lookup, such as Customer__r.MobilePhone. Paths through more than one relationship and lookups that can point to more than one kind of record can't be used. ConnectSMS tries the fields in the order you set and uses the first one that holds a valid number.
Why does a record say texting isn't turned on?
The Text Messages component shows Texting isn't turned on for Service Visit records when the object hasn't been added in Recipients, or has been deactivated. Once an admin adds or reactivates the object in ConnectSMS Setup › Recipients, the same record can be texted.
Can templates use fields from a custom object?
Yes. Set the template's Use on to the object and insert its fields, such as {!Service_Visit__c.Scheduled_Date__c}, or a field one lookup away, such as {!Service_Visit__c.Customer__r.FirstName|there}. Merge fields are filled in from the record you text from, and only with fields the sender can read.
Yes. The Text Messages component shows the conversations with the record's phone numbers, replies included, on the business numbers you can view. A conversation that starts from the record is linked to it, so the inbox shows it as Service Visit: SV-00427. When a new number texts in first, ConnectSMS links the conversation automatically only when exactly one Contact, or failing that exactly one open Lead, has that number.
What happens if we deactivate or delete an object?
Deactivating stops people from starting new messages from those records; existing messages and conversations are kept. Deleting removes your phone field choices. Contact, Lead, Account and Case go back to their built-in settings, and for other objects people can no longer text from those records. Existing messages are kept either way.