What flows between WhatsApp and Salesforce
Most builds have two halves. Each one is a set of agreed events, and you choose which ones you need.
From WhatsApp into Salesforce
- New enquiry to Lead. Our automation asks the qualifying questions you'd ask on a call, then creates a Lead with the answers in your own fields and Lead Source set to WhatsApp.
- Known customer to Contact. Before creating anything, we look the sender's number up in Salesforce. If a Contact or Lead already exists, we update it instead of making a duplicate.
- Conversation to activity. Each enquiry, booking request or completed form is logged as a Task (or a custom object, if you prefer) on the right record, with a short summary.
- Form answers to fields. Answers from a WhatsApp Flow, such as a quote request or application, are written to the matching fields, not pasted into a notes box.
- Opportunity updates. A customer accepting a quote or paying a deposit can move an Opportunity to the next stage.
From Salesforce out to WhatsApp
- Status changes. A Case is updated, an order ships, an application is approved: a record-triggered Salesforce Flow tells our platform, and the customer gets a WhatsApp update.
- Appointment and follow-up reminders. A test drive, site visit or consultation saved in Salesforce triggers a reminder with confirm and reschedule buttons. See appointment reminders.
- Quotes and payment links. When a rep marks a quote ready, the customer receives it on WhatsApp with a Paystack or Yoco payment link. Both payment gateways already run on our platform.
- Campaigns to opted-in customers. A Salesforce report exported as a CSV can be imported into our platform as Contacts and used as the audience for a WhatsApp broadcast. Only contacts who have opted in receive marketing messages, and replies such as "stop" opt them out.
Salesforce offers WhatsApp messaging to Service Cloud customers with Digital Engagement. If your agents work all day in the Service Console with Omni-Channel routing, look at that first. We suit teams that want WhatsApp automation, Flows, payments and a shared inbox outside Salesforce, with the results written back into Salesforce.
Source: Salesforce introduces WhatsApp for Service Cloud, Salesforce News
How the build works
There's no magic connector. Two plain, well-documented mechanisms do the work, one for each direction.
- Our platform calls SalesforceWhen something happens in a WhatsApp conversation, our automation calls the Salesforce REST API. It runs a SOQL query to find the customer by phone number, then creates or updates records. Where you keep an external ID (such as a WhatsApp number or customer number), we upsert on it, so a repeat message updates the same record instead of creating a second one.
- Salesforce calls our platformFor the other direction, a record-triggered Flow in your org uses Salesforce's HTTP Callout action (or Apex, if your team prefers code) to post to an authenticated webhook on our platform. The webhook starts the right conversation: a reminder, a status update, a quote.
- AuthenticationWe connect as a dedicated Salesforce integration user through an External Client App using the OAuth 2.0 client credentials flow, Salesforce's OAuth flow for server-to-server integrations. The integration user gets only the objects and fields the build needs. On your side, the HTTP Callout uses a Named Credential, so the webhook key isn't typed into the Flow itself.
- Messages that Meta allowsInside the 24-hour customer service window, replies are free-form. Outside it, a Salesforce-triggered message must be an approved message template, so we create and submit the templates each event needs (usually utility).
Sources: sObject Rows by External ID · Connecting to an API Without a Connector Using HTTP Callout · OAuth 2.0 Client Credentials Flow · Customer service windows, Meta
Things we design around
- API access by edition. Salesforce enables API access by default in Enterprise, Performance, Unlimited and Developer Edition orgs. Professional Edition can buy it as an add-on. Without it, every call fails with
API_DISABLED_FOR_ORG. - Daily API limits. Each org has a daily allocation of API requests that every integration shares. We keep calls lean (one lookup, one write per event where possible) and check how much headroom your org has before we go live.
- Duplicates. Phone numbers are stored in many formats (082…, +27 82…, 27 82…). We normalise them before matching and respect your duplicate rules.
- Your process stays in Salesforce. Lead assignment rules, validation rules and approvals keep running. We don't route chats to named agents in our inbox; record ownership is decided in Salesforce.
Source: Supported Editions and Required Permissions, Salesforce REST API