Any Object

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.

  • No credit card required
  • Listed on Salesforce AgentExchange
  • Then $120 per user per year
  • Runs on your own Twilio account

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 Visit SV-00427
Scheduled DateOct 14, 2026
CustomerJordan Alvarez
Site Contact Mobile+1 (312) 555-0164
SV-00427 Site 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 from ConnectSMS 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.
ObjectPhone fields (in order)Built-in settingsStatus
Service VisitService_Visit__c
  1. Site_Contact_Mobile__c
  2. Customer__r.MobilePhone
Active
Work OrderWorkOrder
  1. Contact.MobilePhone
  2. Contact.Phone
Active
ContactContact
  1. MobilePhone
  2. Phone
Built-in Active
LeadLead
  1. MobilePhone
  2. Phone
Built-in Active
CaseCase
  1. Contact.MobilePhone
  2. Contact.Phone
Built-in Active
AccountAccount
  1. 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 name Service_Visit__cFind phone fields The 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

Everything the Text Messages component does

SV-00427 Site Contact Mobile · +1 (312) 555-0164
Text messages · Updated just now ⋮
Today
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
Schedule
Oct 13, 2026 9:00 AM
Sends Tue, Oct 13 at 9:00 AM EDT (America/New_York) Send now instead
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.

How templates and merge fields work

Edit template Update "Visit confirmation" and its merge fields.
Template details
*Template nameVisit confirmation
*Use onService Visit
*Message Insert field
Hi {!Service_Visit__c.Customer__r.FirstName|there}, your visit is confirmed for {!Service_Visit__c.Scheduled_Date__c}. Reply here to change it.
143 characters • 1 segment • GSM-7 12 left in this segment

GSM-7 · 1 segment · 75 characters after merging with SV-00427

All merge fields were filled.

Recreated from the ConnectSMS interface with sample data.

Outreach

Reach the records that match your filters.

In a new outreach, choose Records that match filters, then pick your object under Kind of record. The list shows the objects enabled for texting.

  • Up to 10 conditions, all of which must be true, on fields you can read, such as tomorrow's confirmed visits
  • Or use a Salesforce report (tabular or summary) with a record ID column for your object, up to 2,000 rows
  • Opted-out, duplicate, missing and invalid numbers are left out, and every recipient is checked again at send time
  • Campaign audiences stay what they are in Salesforce: Contacts and Leads

Outreach to reports, campaigns and filtered records

New outreach
  1. Details
  2. 2Audience
  3. 3Message
  4. 4Schedule
  5. 5Review & Send

Step 2 of 5

Audience

Choose who should receive this outreach.

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

Send SMS from Salesforce Flow

FlowTechnician on the way
// Record-triggered Flow on Service_Visit__c, when Status__c changes to En Route
Send 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.

Property

Property

Custom object Property__c, texting Tenant__r.MobilePhone. Viewing confirmations, maintenance visits, move-in details.

Healthcare communication

Patient

Custom object Patient__c, texting Mobile_Phone__c. Appointment reminders and scheduling updates.

Logistics

Shipment

Custom object Shipment__c, texting Delivery_Contact_Phone__c, a text field. Delivery windows and delivery exceptions.

Permissions

Your Salesforce security still decides who sees what.

Adding an object to Recipients doesn't widen anyone's access. ConnectSMS reads records as the person, Flow or integration doing the texting.

  • Record access

    ConnectSMS reads the record as the running user, so people can only text records they can open.

  • Field-level security

    A phone field someone can't read isn't used for them, and merge fields need read access too.

  • Number access unchanged

    People send only from business numbers they have Send access to, and see history only on numbers they can view.

  • Opt-outs follow the number

    Opt-outs are stored against the phone number, so an opt-out applies whichever record you text from.

  • Admins choose the objects

    Only ConnectSMS admins can add, change or remove objects in Recipients.

  • Changes are audited

    Enabling, changing or removing an object is recorded in the ConnectSMS audit log.

Security, consent and permissions

FAQ

Texting from any object: common questions

Can ConnectSMS send SMS from a custom object?

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.

Do replies show on the custom-object record?

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.

Keep exploring

Try it now: every feature, free for 14 days

Text from the records your business runs on.

Install ConnectSMS, connect your Twilio account, and add the objects your team works in to Recipients.

  • No credit card required
  • Listed on Salesforce AgentExchange
  • Then $120 per user per year
  • Runs on your own Twilio account

ConnectSMS is published by WorkBridge Solutions. Twilio bills your Twilio account directly for messaging, including during the trial.