Q-Assist for Salesforce — Partner Overview

October 2026

What Q-Assist is

Q-Assist puts a company's WhatsApp Business conversations inside Salesforce. Reps read and reply to customers on WhatsApp from any Lead, Contact, Account or custom record page, and every message is stored as a Salesforce record.

It is built for sales and service teams that already sell and support over WhatsApp, often from personal phones, and need that conversation in the CRM: visible to managers, tied to the right record, and sent from company numbers rather than individual handsets.

AI workflows

Q-Assist runs full AI workflows on WhatsApp: an AI agent answers first, qualifies the customer or lead, gathers what the team needs, and hands over to the right rep in Salesforce with the context already captured. Every workflow is built for the customer's business.

The AI qualifies first, then hands a ready conversation to a rep CustomerMessages onWhatsApp AI agentGreets and answersAsks qualifying questionsReads photos and voice notes Ready tohand over? Rep in SalesforceFull conversationon the recordSummary of the need yesno, keeps asking Sales Service Finance Specialist agents by intent, each with its own instructions (examples)
AI workflow · qualify, then hand over
CapabilityWhat it does
Conversational AINatural, multi-turn WhatsApp conversations in the customer's voice, in any language the customer writes in. Answers questions, follows up and keeps the conversation moving 24/7.
Lead qualificationAsks the qualifying questions the sales team defines (need, budget, timing, product, location) and decides when a lead is sales-ready.
Customer qualification and intentWorks out what an existing customer wants, whether a quote, an order, support or a booking, and routes it to the team that handles it.
Specialist agentsA workflow can hand between specialist AI agents by intent, for example sales, service and finance, each with its own instructions.
Images and documentsReads what customers send, such as product photos, labels, licence discs and documents, and pulls out the details (part numbers, vehicle details, specifications).
Voice notesTranscribes and translates customer voice notes. The transcript and translation are stored on the Salesforce message record.
Structured formsCollects answers through WhatsApp forms (Flows) when a question needs a fixed set of options.
Handover to a personHands over when the AI has what it needs, when the customer asks for a person, or after a set number of messages. The rep gets a short summary of what the customer wants.

In Salesforce. Everything the AI says is synced as ordinary messages, so the rep sees the whole conversation on the record. Qualified enquiries can become Leads routed to the right queue per business number, with the AI's answers captured.

Built per customer, by Q-Assist. Q-Assist designs and builds every AI workflow and bot with the customer: the questions, the qualification rules, the tone, the handover points and the hours the AI covers.

Q-Assist's own AI, running outside Salesforce. The AI and bots are Q-Assist's own, not Agentforce or Einstein. They run entirely in the Q-Assist service, so nothing AI-related runs inside the org: no Agentforce or Einstein licences, no AI credits, and no Salesforce API calls or Apex limits used while the AI works. Salesforce only receives the results, as messages and records.

What it can do

Reps get a full WhatsApp chat on any record page; admins control who uses which number, and every message lands in Salesforce within seconds. Measured on a live thread: inbound message to Salesforce in 2.7 s, a reply from Salesforce delivered in about 2 s.

For reps

CapabilityHow it works
Chat on any recordOne component (fasChatWindow) dropped on Lead, Contact, Account or any object with a phone field. It finds the customer by the record's phone number.
Inbox (Home tab)Every conversation the rep may see, newest first, filterable by status, with the chat open beside it.
Send and receive textLive thread; new messages appear without refreshing.
Files, images, video, audioSend with + or drag and drop. Files the customer sends are copied into Salesforce Files with thumbnails and previews.
Shared files and My FilesAdmin-curated brochures with captions, plus the rep's own Salesforce files, in a side panel. Picking a file stages it; nothing goes until the rep presses send.
Quick repliesSaved texts and map locations. Admins share them with everyone; reps keep their own. Two clicks to send.
Replies and reactionsQuote a specific message, or react with an emoji, exactly as on a phone.
Delivery statusPending, Sent, Delivered, Read or Failed on every outbound message, with Meta's failure reason.
24-hour windowThe composer knows when WhatsApp's 24-hour customer-service window is closed and offers approved templates in place of free text.
Expanded viewOpen the chat in a large modal from a record page; the draft carries across.
Mobile app sign-inA licensed rep signs into the Q-Assist phone app with a QR code from Salesforce. No second password.

For admins

Also included

How it works

Q-Assist sits between Meta's WhatsApp Cloud API and Salesforce. It receives every message, writes it into the org as a record, and sends reps' replies to WhatsApp after checking they are allowed to.

Every message passes through Q-Assist and lands in Salesforce as a record Customer on WhatsApp customer writesdelivered and read Meta WhatsApp Cloud API webhooksend via Cloud API Q-Assist service, hosted in South Africa Receives every WhatsApp message and delivery status from Meta Checks licence, number and 24-hour window on every send Queues and retries sends, and never sends the same message twice Holds licences, business hours, auto-replies and customer files AI workflows, custom built for each customer Talks to customers, qualifies leads and hands over to a rep with a summary Mobile appSame conversationsand number accessSign-in by QR codefrom Salesforce new message, about 3 sreply sent by a rep Customer's Salesforce org Chat componentOn any record pageOne card per business number WhatsApp recordsConversations and messagesPrivate, shared by number Home inbox and SettingsInbox of every chat a user may seeSettings for Q-Assist admins Send retryRetries a failed send in minutesA sweeper catches anything missed
Q-Assist architecture · message in and reply out

A message in. The customer writes; Meta delivers it to Q-Assist; Q-Assist upserts a FAS_Message__c record and fires an event so any open chat refreshes. Delivery and read receipts update the same record.

A reply out. The rep sends from the chat. Salesforce saves the message as Pending first, then calls Q-Assist. Q-Assist checks the rep's licence, the number and the 24-hour window, queues the send and answers within about a second. If the call fails, Salesforce retries within minutes and a scheduled sweeper catches anything left. Every send carries a unique key, so a retry never reaches the customer twice.

Files sent by reps stream from Salesforce Files to WhatsApp without passing through Apex, so size limits are WhatsApp's own. Files from customers are copied into Salesforce Files according to the copy settings.

The Q-Assist mobile app works on the same conversations, so reps can reply from their phones under the same licence and number rules.

Multiple WhatsApp numbers

One Salesforce org can run several WhatsApp Business numbers, for example one per branch, brand or team. Each number keeps its own conversations and its own 24-hour window with each customer.

One customer, two numbers: two separate threads on the record Customer Cape Town SalesBusiness number 1 Johannesburg ServiceBusiness number 2 Contact record page Cape Town SalesReplies go out on this number Johannesburg ServiceOwn thread, own 24-hour window Number names are examples
Multiple numbers · one card per number on the record

How access is scoped per user

Three independent layers decide what a user can do: a permission set says which parts of the app they see, a licence says whether they may send, and number assignments say whose conversations they see.

Three independent checks decide what each user can do 1 · Permission setWhich screens they seeSet in Salesforce SetupBase · Manager · Settings 2 · LicenceWhether they may sendSet in Settings → UsersChecked by Q-Assist on send 3 · Number accessWhose conversations they seeSet in Settings → NumbersReal Salesforce record sharing A rep needs all three: Base to see the chat, a licence to send, and access to the customer's number.
Access · three independent layers

1. Permission sets

Permission setGive it toGrants
FAS_Baseevery repRead access to conversations and messages, the chat component, and the right to call Q-Assist to send.
FAS_Managermanagers, and reps who use the inboxThe Q-Assist app and its Home tab. Seeing messages still needs FAS_Base.
FAS_SettingsSalesforce admins of Q-AssistThe Settings tab and the right to change it. Without it, Settings is read-only.
FAS_All_ConversationsmanagersEvery conversation on every number, whatever the number assignments say.
FAS_Integration_Userthe integration user onlyWrite access used by the sync. Never assigned to people.

No profiles are used. Every rule the components enforce is checked again on the server, so the UI is never the only gate.

2. Licences (who may send)

3. Number access (whose conversations they see)

When a user is deactivated

An admin chooses the behaviour once, in Settings → General:

ChoiceWhat happens
Remove them; keep their numbers closed (default)Removed from numbers, licences and groups a few seconds after deactivation. A number left with no active users is closed: only administrators see it until someone is assigned.
Remove them; open their numbers to everyoneThe same, but a number left with no active users becomes visible to everyone, past conversations included.
Refuse the deactivationDeactivation is blocked until the admin removes the user in Settings. This also applies to deactivations from Okta, Azure AD or SCIM. Freezing still works.

Settings → Health lists closed numbers and any inactive users still set up in Q-Assist.

Settings reference

Everything a customer admin can change lives on one Settings tab in the Q-Assist app, behind FAS_Settings. Nothing here needs a deploy.

TabSettingDefault / notes
GeneralDefault country code27. Used to turn local numbers such as 082 123 4567 into international format for matching.
GeneralLargest file a rep may send (MB)100, WhatsApp's own limit. Can be set lower.
GeneralFile types reps may sendBlank means anything WhatsApp accepts.
GeneralWhen customer files are copied into SalesforceOn arrival, when a rep opens the chat, or never. Files not copied stay in Q-Assist and open by link.
GeneralLargest customer file to copy (MB)1 to 100. Larger files stay in Q-Assist with an Open link.
GeneralFile retention (days)30. Copied customer files older than this are removed from Salesforce by a nightly job and re-fetched on demand. 0 keeps them.
GeneralReps can send voice notesOff by default. Receiving voice notes is always on.
GeneralWhat happens when a user is deactivatedSee "When a user is deactivated" above.
GeneralSync mode, batch interval and batch sizeImmediate by default. Batched mode sends messages to Salesforce every few minutes, 1 to 200 records per API call, to save API calls in high-volume orgs.
UsersLicensed usersPick from Salesforce users, up to the seat count.
Mobile usersMobile app on/off; self-serve sign-up on/offBoth off by default. Lists every app user with their role and status; set up accounts, change roles, sign people out.
NumbersBusiness numbers and their usersDescription, number, Meta phone number ID; assigned users.
Files & repliesShared filesUp to 50, each with a caption, description, pin and sort order.
Files & repliesShared quick repliesUp to 50 texts or map locations. A pasted Google Maps link fills in the coordinates.
Hours & repliesOpening hours and special daysPer weekday, plus holidays and half-days. No hours set means always open.
Hours & repliesOut-of-office replyOn/off and text, sent to customers who message outside hours.
Hours & repliesScheduled auto-repliesMessage per day and time window.
Record linkingObject → phone fieldWhich field holds the customer's phone on each object (Lead → MobilePhone, Opportunity → Customer_Phone__c). Contact, Lead and Account come pre-set.
ConversationsDelete a conversationRemoves it, its messages and files Q-Assist copied in. Keeps shared files and files reps chose to send. Built for clearing demo data.
Health(read only)Connection, scheduled jobs with Schedule buttons, org file/data storage and API use, failed and stuck sends, number-access issues.

Settings are stored where they are read: values only Apex uses (country code, retention, record linking) are custom metadata in the org; values Q-Assist's servers enforce (licences, file limits, hours) are stored in Q-Assist and edited through Salesforce. Q-Assist accepts only known settings with validated values.

Data model

Every WhatsApp message is an ordinary Salesforce record, so partners can report on it, trigger automation from it and build on it. All Q-Assist metadata carries the FAS_ prefix to avoid collisions with the customer's own schema.

ObjectLabelHolds
FAS_Conversation__cWhatsApp ConversationOne per customer per business number: phone, customer name, business number, status, last message preview and time, last inbound time. Private sharing, scoped by number.
FAS_Message__cWhatsApp MessageMaster-detail child of the conversation. Direction, body, type (text, image, video, audio, document, location, reaction, template), status and time, sender, the Salesforce user who sent it, file link, voice-note transcript and translation, location, reply-to, Meta's failure reason.
FAS_BusinessNumber__cWhatsApp Business NumberThe company's numbers, with description and whether a number is closed.
FAS_BusinessNumberUser__cWhatsApp Number UserWhich users work which number.
FAS_QuickReply__cWhatsApp Quick ReplyShared and personal quick replies.
FAS_FileSetting__cWhatsApp Shared FileAdmin-shared files with captions.
FAS_LicensedUser__cQ-Assist Licensed UserA read-only copy of the licence list, for reports.
FAS_ObjectPhoneMapping__mdtcustom metadataObject → phone field for the chat component.
FAS_Config__mdtcustom metadataCountry code, retention, voice notes, deactivation mode.
FAS_MessageArrived__eplatform eventFired when a message lands, so open screens refresh. Carries no message content.

Built for partners to extend

Implementing it in a customer org

Q-Assist installs and connects the app; the partner configures it for the customer's processes and builds anything around it. A typical rollout:

Q-Assist sets up the connection; the partner shapes it for the customer Q-Assist Partner Step 1NumbersStep 2DeployStep 3ConnectStep 4PermissionsStep 5SettingsStep 6Place chatStep 7JobsStep 8Extend Steps match the numbered list below.
Rollout · who does each step
  1. WhatsApp numbers (Q-Assist). Register each business number with Meta and connect it to Q-Assist. Physical SIMs are recommended; Meta has banned virtual numbers on arrival.
  2. Deploy (Q-Assist). The Salesforce metadata is deployed into the org directly. There is no AppExchange package and no namespace; everything is FAS_-prefixed. Enterprise Edition or above is required.
  3. Connect (Q-Assist, with the customer's admin). Create an integration user and give it FAS_Integration_User. Q-Assist sets up the server-to-server connection both ways and issues the org its own key.
  4. Assign permission sets (partner). FAS_Base to reps, FAS_Manager to anyone who uses the inbox, FAS_Settings to Q-Assist admins, FAS_All_Conversations to managers. Permission set groups work well here.
  5. Configure Settings (partner). Licensed users, business numbers and who works each one, record linking for every object the chat should appear on, shared files and quick replies, business hours and auto-replies.
  6. Place the chat (partner). In Lightning App Builder, drop the Q-Assist chat component on the record pages that need it. On an object with no phone mapping it shows a clear message instead of failing.
  7. Schedule jobs (partner). From Settings → Health, schedule the send-retry sweeper and the nightly file retention job.
  8. Extend (partner, optional). Lead routing by number, linking conversations to Accounts or Opportunities, reports and dashboards on messages, notifications.

Updates to the Salesforce side are deployed by Q-Assist. Customer Settings are kept across updates.

Security and limits

Security and data

Limits to plan for

AreaWhat to know
Salesforce API callsAbout one API call per message, plus one per status change. Health shows the org's 24-hour API use. High-volume orgs can switch to batched sync, which groups up to 200 messages into one API call on an interval the admin sets.
File storageCopied customer files use the org's file storage. Use the retention days and the copy mode to control it.
File sizesWhatsApp's limits apply: images 5 MB, video and audio 16 MB, documents 100 MB. Oversized media is sent as a document rather than refused. Customers cannot send files over 100 MB; the rep sees a notice when they try.
Starting a conversationWhatsApp only allows free text within 24 hours of the customer's last message. Outside that window, and to start a new conversation, reps send a Meta-approved template.
ListsShared files, shared quick replies and personal quick replies are capped at 50 each. The Home inbox shows the 100 most recent conversations, filterable by status.
EditionEnterprise Edition or above. The typing indicator uses Platform Cache.