---
title: "Salesforce + OmniChannels.ai: message customers from Flow and Apex"
description: "Send WhatsApp and SMS from Salesforce Flow HTTP Callouts or Apex through the OmniChannels.ai API, and bring delivery statuses back into Salesforce records."
canonical: "https://omnichannels.ai/integrations/salesforce/"
language: "en"
updated: "2026-10-10"
publisher: "BroadNet Technologies"
brand: "OmniChannels.ai"
---

# Salesforce + OmniChannels.ai: message customers from Flow and Apex

Canonical: https://omnichannels.ai/integrations/salesforce/
Language: en
Publisher: OmniChannels.ai by BroadNet Technologies

**In short:** Salesforce can send WhatsApp and SMS through the OmniChannels.ai REST API with a Flow HTTP Callout or an Apex callout, keeping your Bearer token in a Named Credential and External Credential. Delivery statuses and replies come back through our webhook to middleware or an automation tool, which updates Salesforce records. There is no AppExchange package; you use Salesforce's own callout features.

Connect via API & webhooks

## What you can do

### Follow up new leads

When a lead is created from a web form, a record-triggered flow sends an SMS or WhatsApp template to the lead's mobile number, if they opted in.

### Remind customers about appointments

A scheduled path on an event, service appointment or custom object sends a reminder before the visit.

### Message on opportunity stage changes

When an opportunity moves to a stage such as closed won, send the primary contact a welcome or onboarding message.

### Send renewal reminders

A scheduled flow finds contracts or assets near their renewal date and sends an approved WhatsApp template.

### Log statuses and replies on the record

Middleware receives statuses and inbound replies from our webhook and creates a task or updates a field on the related record.

## How it connects

For outbound messages, Salesforce calls our API directly. Create an External Credential that adds the Authorization: Bearer header and a Named Credential for https://api.broadnet.me, then use a Flow HTTP Callout action or an Apex callout. HTTP Callout in Flow suits JSON requests such as POST /sms/sendSms. Bulk sends and most other channel sends use multipart/form-data, which usually needs Apex or an automation tool in between.

For the way back, our platform posts delivery statuses and inbound messages to the one webhook URL configured on your account. Point it at middleware you control or an automation tool such as n8n, Make or Zapier, which matches the message ID you stored and updates Salesforce through its REST API or a connector.

- Credentials: Named Credential plus External Credential holding the Bearer token
- Flow HTTP Callout for JSON requests; Apex for multipart and complex logic
- Store the returned message ID on the record to match statuses later
- Approved WhatsApp templates for business-initiated messages outside the 24-hour window
- Callouts count against Salesforce limits; send in bulk from a batch job, not record by record

## Set it up

1. **Request API access:** Request test access and receive an API token. Test sends go only to your own verified numbers. (Guide: https://omnichannels.ai/developers/authentication/)
2. **Create the credentials:** In Setup, create an External Credential with a custom header Authorization: Bearer <token> and a Named Credential for https://api.broadnet.me, and grant access through a permission set.
3. **Add the callout:** In Flow Builder, create an HTTP Callout action for POST /sms/sendSms using the Named Credential, or write an Apex class for multipart channel sends. (Guide: https://omnichannels.ai/developers/sms/)
4. **Trigger it from your flow:** Call the action from a record-triggered or scheduled flow and save the returned message ID on the record.
5. **Bring statuses back:** Ask our team to point your account's webhook at your middleware or automation tool, which updates the matching Salesforce record. (Guide: https://omnichannels.ai/developers/webhooks/)
6. **Test in a sandbox:** Run the flow in a sandbox with a test record that uses your verified number, then check the status on the record.

## Example workflow

Salesforce Flow or Apex (Lead created, stage changed or renewal date reached) → OmniChannels.ai API (HTTP callout through a Named Credential) → Customer's phone (SMS or WhatsApp template delivered) → Delivery status webhook (Posted to your middleware or automation tool) → Update Salesforce (Status or reply written to the related record)

## Questions

### Is there an OmniChannels.ai package on AppExchange?

No. Salesforce calls our public REST API with its own HTTP callout features, Flow HTTP Callout or Apex, using a Named Credential that holds your token.

### Can Flow send every channel without code?

Flow HTTP Callout works well for JSON requests such as a single SMS. Bulk sends and most other channel sends use multipart/form-data, which usually needs an Apex callout or an automation tool in between.

### Can our webhook post straight into Salesforce?

Not in a useful form, because the payload fields vary by channel and need mapping to your records. Send them to middleware or an automation tool that maps the fields and calls the Salesforce API.

### Where should the API token live?

In an External Credential referenced by a Named Credential, never in flow variables or Apex code, so it is encrypted and access is controlled through permission sets.

## Developer guides

- https://omnichannels.ai/developers/authentication/
- https://omnichannels.ai/developers/sms/
- https://omnichannels.ai/developers/webhooks/
- https://omnichannels.ai/developers/openapi/

## Vendor documentation

- [Named Credentials — Salesforce Help](https://help.salesforce.com/s/articleView?id=sf.named_credentials_about.htm&type=5)
- [Invoking callouts using Apex — Apex Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_callouts.htm)

## Related integrations

- https://omnichannels.ai/integrations/hubspot/
- https://omnichannels.ai/integrations/dynamics-365/
- https://omnichannels.ai/integrations/n8n/
- https://omnichannels.ai/integrations/zapier/

Salesforce is a trademark of its owner. OmniChannels.ai is not affiliated with or endorsed by Salesforce; this page describes a connection built with Salesforce's own MCP, HTTP or webhook features.

Updated: 2026-10-10