Notifications

Status updates by text, triggered by Salesforce.

When an order ships, a case changes status or an invoice falls due, a Flow or an Apex call sends the text. ConnectSMS applies the same number access, opt-out and policy checks as a message someone sends by hand.

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

How do you send SMS notifications from Salesforce? Add ConnectSMS's Send Text Message action to a record-triggered or scheduled Flow, or call csms.ConnectSMSApi.send from Apex. ConnectSMS checks the business number, the recipient and opt-outs, holds the text during quiet hours if you use them, and tracks its delivery status in Salesforce.

The day-to-day workflow

The record changes. The customer hears about it.

Notifications are one-way by intent but two-way by nature: customers reply to them. Send them from a number your team watches.

Order shipped

A record-triggered Flow on Order fires when the status changes to Shipped.

  1. Order status: Shipped
  2. Record-triggered Flow
  3. Send Text Message
  4. Delivery status on the record

Case update

Sent from the service line, so the customer's reply reaches the service team.

  1. Case status changes
  2. Flow picks the service line
  3. Update sent
  4. Reply lands in the inbox

Invoice reminder

A schedule-triggered Flow runs each morning and texts customers whose invoices fall due in three days.

  1. Scheduled Flow runs daily
  2. Invoices due in 3 days
  3. Personalized reminder
  4. Blocked if opted out

From another system

An ERP or warehouse system calls Salesforce's REST API, and the same rules apply.

  1. External system
  2. REST: actions endpoint
  3. Same checks as Flow
  4. Status checked by ID

Guardrails

Automation doesn't get a shortcut.

Every automated text goes through the same checks as one typed on a record, plus a few rules made for automation.

  • Idempotency keys stop a re-save or a retried job from texting twice
  • Quiet hours hold automated texts and outreach overnight, in your business time zone
  • Opt-outs are checked when the text is requested and again when it's sent
  • Automation numbers: flows can only use numbers you mark as available to automation, unless the running user has a Send grant
  • Blocked requests are recorded with the reason, so admins can see what automation tried to send
  • An optional daily safeguard caps messages per day; it's off unless you set it

Consent and opt-outs

Messaging policiesControl how messages are sent and set safety limits.
Opt-outs

Opt-outs are always enforced. Choose how far a STOP reaches.

When someone texts STOP to one of your business numbers

Quiet hours

Delay outreach and automation messages during quiet hours.

Enable quiet hours
Start time9:00 PM
End time8:00 AM
Business time zone(GMT-04:00) Eastern…
Daily safeguard

An optional safety limit you set to catch mistakes such as runaway automation.

Maximum messages per day5,000

Recreated from the ConnectSMS interface with sample data.

Apex and REST

Send from code with the same rules.

Developers call the global ConnectSMSApi class from triggers, batch jobs or services. External systems call the same actions through Salesforce's standard REST actions endpoint.

  • ConnectSMSApi.send makes no callouts, so it's safe in triggers
  • Business errors come back in the result, not as exceptions
  • REST calls go to Salesforce's standard actions endpoint for csms__CsmsSendMessageAction
  • Check progress with Get Text Message Status or getStatus

Developer reference

ApexOrder shipped notification
// Text the customer when an order ships (subscriber org Apex)
csms.ConnectSMSApi.SendRequest req = new csms.ConnectSMSApi.SendRequest();
req.recordId = order.BillToContactId;
req.templateId = shippedTemplateId;
req.idempotencyKey = order.Id + '-shipped';

csms.ConnectSMSApi.SendResult result =
    csms.ConnectSMSApi.send(new List<csms.ConnectSMSApi.SendRequest>{ req })[0];

if (!result.success) {
    // result.errorCode: OPTED_OUT, SENDER_NOT_AUTHORIZED, RECIPIENT_NO_PHONE, ...
}

Features that matter

What automated messaging depends on.

Example messages

Notifications worth reading.

Lead with the news, include the reference the customer will quote, and say what to do if something is wrong. Order and invoice texts assume your admin has enabled those objects in Recipients.

Order · record-triggered Flow

Order shipped

As written

Hi {!Order.BillToContact.FirstName|there}, order {!Order.OrderNumber} has shipped. Reply to this text if you have any questions.

What the customer receives

Hi Sarah, order 00000142 has shipped. Reply to this text if you have any questions.

83 characters · 1 segment · GSM-7

Case · record-triggered Flow

Case update

As written

Update on case {!Case.CaseNumber}: a replacement part is on its way. Reply here if you have questions.

What the customer receives

Update on case 00001042: a replacement part is on its way. Reply here if you have questions.

92 characters · 1 segment · GSM-7

Invoice__c · scheduled Flow

Payment reminder

As written

Hi {!Invoice__c.Contact__r.FirstName|there}, invoice {!Invoice__c.Name} is due on {!Invoice__c.Due_Date__c}. Reply here with any questions.

What the customer receives

Hi Sarah, invoice INV-0318 is due on 10/13/2026. Reply here with any questions.

79 characters · 1 segment · GSM-7

Dates are formatted for the user the Flow runs as.

Contact · Apex

Delivery window

As written

Hi {!Contact.FirstName|there}, your delivery is planned for tomorrow between 8 AM and noon. Reply here if nobody will be home.

What the customer receives

Hi Sarah, your delivery is planned for tomorrow between 8 AM and noon. Reply here if nobody will be home.

105 characters · 1 segment · GSM-7

Setup notes

What your admin sets up for notifications.

Most setup questions come down to one thing: which user does the automation run as, and may it send from this number?

Running user

Automation sends as a Salesforce user.

  • Give the user your automation runs as the ConnectSMS Automation permission set
  • A record-triggered Flow runs as the user who changed the record, so that user needs send rights too
  • For platform event–triggered flows, set the running user to an integration user with ConnectSMS Automation

Numbers

Pick numbers customers can reply to.

  • Mark the numbers automation may use Available to automation
  • Choose an Automation default sender for flows that leave Business Number blank
  • Send case updates from the service line and order updates from a number your team watches

Policies

Set in ConnectSMS Setup, under Policies.

  • Turn on quiet hours to hold automated texts overnight, in your business time zone
  • Choose whether a STOP blocks all your numbers or only the one that received it
  • Set an optional daily safeguard; it's off by default

Testing

Try it in a sandbox first.

  • In a sandbox copy, ConnectSMS turns sending off until an admin turns it on there
  • Check the result with Get Text Message Status or on the record timeline
  • When Success is false, route on Error Code rather than the message text

FAQ

Automated notifications: common questions

What can trigger a text from Salesforce?

Anything in Salesforce that can call an invocable action or Apex: record-triggered, schedule-triggered and platform event–triggered flows, Apex through the global ConnectSMSApi class, and external systems through the Salesforce REST API. ConnectSMSApi makes no callouts itself, so it's safe to call from a trigger.

How do I stop a flow from texting the same customer twice?

Pass an Idempotency Key that identifies the business event, such as the order ID plus -shipped. If the same key is used again, ConnectSMS returns the original message with Duplicate set to true and sends nothing new. Keys are case-sensitive and up to 255 characters.

What happens if the customer has opted out?

The text isn't sent. Send Text Message returns Success false with the error code OPTED_OUT, and the request is stored as a Blocked message with the reason, so admins can see what automation tried to send. If the customer opts out after a text was queued or scheduled, the check at send time blocks it.

Do quiet hours apply to automated notifications?

Yes, when your admin turns them on. Texts from Flow, Apex, REST, agents and outreach that would go out during quiet hours are held until quiet hours end, in your business time zone. The Scheduled For output shows when a delayed text is due. Replies in a conversation are never delayed.

Which number do automated notifications come from?

The number passed in the Business Number input, or your automation default number if the input is blank. The user the automation runs as needs either the ConnectSMS Automation permission set and a number marked Available to automation, or a Send grant on the number.

Keep exploring

Try it now: every feature, free for 14 days

Put every customer text where your team already works.

Install ConnectSMS from AgentExchange, connect your Twilio account and give your team the numbers they should text from.

  • 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.