Order shipped
A record-triggered Flow on Order fires when the status changes to Shipped.
- Order status: Shipped
- Record-triggered Flow
- Send Text Message
- Delivery status on the record
Notifications
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.
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
Notifications are one-way by intent but two-way by nature: customers reply to them. Send them from a number your team watches.
A record-triggered Flow on Order fires when the status changes to Shipped.
Sent from the service line, so the customer's reply reaches the service team.
A schedule-triggered Flow runs each morning and texts customers whose invoices fall due in three days.
An ERP or warehouse system calls Salesforce's REST API, and the same rules apply.
Guardrails
Every automated text goes through the same checks as one typed on a record, plus a few rules made for automation.
Recreated from the ConnectSMS interface with sample data.
Apex and REST
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 triggerscsms__CsmsSendMessageActiongetStatus// 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
Ten ConnectSMS actions in Flow Builder, including Send Text Message, Get Text Message Status and Cancel Scheduled Text Message.
csms.ConnectSMSApi with send, preview, cancel, status, conversation and reply methods.
The same actions through Salesforce's standard REST endpoint, for systems outside Salesforce.
Choose which business numbers automation may use, and a default for flows that don't name one.
Queued, Sending, Sent, Delivered or Failed. If Twilio's answer is lost, the message is marked Unknown and checked with Twilio, never resent automatically.
Keep notification wording in shared templates, so changing a sentence doesn't mean editing a Flow.
Example messages
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
As written
What the customer receives
Case · record-triggered Flow
As written
What the customer receives
Invoice__c · scheduled Flow
As written
What the customer receives
Dates are formatted for the user the Flow runs as.
Contact · Apex
As written
What the customer receives
Setup notes
Most setup questions come down to one thing: which user does the automation run as, and may it send from this number?
Automation sends as a Salesforce user.
Pick numbers customers can reply to.
Set in ConnectSMS Setup, under Policies.
Try it in a sandbox first.
FAQ
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.
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.
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.
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.
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.
Every ConnectSMS action and input, step by step.
How service teams handle the replies your notifications get.
Callouts, webhooks, status callbacks and signatures, explained.
Try it now: every feature, free for 14 days
Install ConnectSMS from AgentExchange, connect your Twilio account and give your team the numbers they should text from.
ConnectSMS is published by WorkBridge Solutions. Twilio bills your Twilio account directly for messaging, including during the trial.