Feature · Settings
The number your crew answers and who may message it.
How it works
Connect in one click
When your Crewshal server offers it:
- On the WhatsApp page in Settings, select Set up WhatsApp. In setup, go to the channels step. Then select Connect WhatsApp. You can type your own WhatsApp number first.
- In Meta's window, sign in, pick or create the business and the WhatsApp account, and add and verify a number. Meta may ask for a payment method. This part belongs to Meta and you cannot skip it.
- When the window closes, Crewshal shows a checklist: Token, Webhook, Number, Template and Allowed sender. Each failed step has Retry.
WhatsApp works when the token, webhook and number are done.
Your number
Only allowed numbers reach the CEO. Crewshal ignores and logs messages from other numbers.
- When you typed your number, it becomes the allowed sender.
- Otherwise Crewshal shows a 6-character claim code. Send it from your phone to the business number within 15 minutes. It works one time.
Add other members' numbers under Allowed senders on the WhatsApp page.
The 24-hour window
Meta lets a business write freely only within 24 hours after your last message. Outside that window, Crewshal uses an approved template message, agent_update by default: "There is an update on your request". Reply to it to continue. Until the template is approved, write to the business number first to open the window.
Talk to a worker by name
One WhatsApp number serves the whole team. Each worker signs its messages with a bold name line, such as *🟣 Maya · Sales*.
- Write
@maya draft the newsletter,maya: …or/ask maya …. Maya owns the work and answers. - Reply to a worker's message to answer that worker.
- Send
/teamto see the team and tap a name. Send/whoto see who answers, and/backto return to the CEO. - A message without a name stays with the worker you talked with in the last 15 minutes.
An admin can give a worker its own number for a customer-facing line, such as "Acme Sales". Meta accepts only a business or department name for it, and each number has its own 24-hour window.
Limits
- Meta can hold back template messages under its own limits. Then Crewshal does not resend the same template for 24 hours. The words wait and follow when you write.
- Crewshal drops queued messages that are older than 72 hours.
- Only owners and admins can set up WhatsApp.
Manual setup
An admin can also enter the phone number id, business account id, access token, app secret and verify token by hand. On the WhatsApp page, open Use your own Meta credentials.
From the help article WhatsApp, checked against the product on .
What you can do
The operations this feature's screens call. Each one is POST /api/<name>, and the badge says who may call it.
ViewergetOrgSettingsGets org settings.
Types:
{ includePanels?: true }returnsOrgSettingsDto
ViewergetKillSwitchGets the kill switch.
Types:
EmptyRequestreturnsKillSwitchDto
Viewerwhatsapp/statusWhatsApp: status.
Types:
EmptyRequestreturnsWhatsAppStatusDto
ViewerlistMembersLists members.
Types:
EmptyRequestreturnsListMembersResponse
AdminNo API tokenswhatsapp/configureWhatsApp: configure.
Types:
WhatsAppConfigureRequestreturnsWhatsAppStatusDto
AdminNo API tokenswhatsapp/useUtilityTemplateWhatsApp: uses the utility template.
Types:
EmptyRequestreturnsWhatsAppStatusDto
AdminNo API tokenswhatsapp/sendTestWhatsApp: sends a test.
Types:
WhatsAppSendTestRequestreturnsWhatsAppSendTestResponse
ViewerfrontDesk/teamFront desk: team.
Types:
Record<string, never>returnsTeamRosterDto
ViewerfrontDesk/numbersFront desk: numbers.
Types:
Record<string, never>returnsFrontDeskNumbersDto
AdminNo API tokensfrontDesk/bindNumberFront desk: binds the number.
Types:
{ integrationId: string; workerId: string | null }returnsFrontDeskNumbersDto
AdminNo API tokensfrontDesk/syncProfileFront desk: syncs the profile.
Types:
FrontDeskSyncProfileRequestreturnsFrontDeskNumbersDto
AdminNo API tokensfrontDesk/connectNumberFront desk: connects the number.
Types:
FrontDeskConnectNumberRequestreturnsFrontDeskNumbersDto
AdminNo API tokensfrontDesk/connectNumberSignupA second number through Meta's Embedded Signup popup: the same steps as the front desk's one click, bound to a worker.
Types:
{ workerId: string; code: string; phoneNumberId: string; wabaId: string }returnsFrontDeskNumbersDto
AdminNo API tokensfrontDesk/checkGroupsFront desk: checks groups.
Types:
Record<string, never>returnsFrontDeskNumbersDto
AdminNo API tokensfrontDesk/createGroupFront desk: creates a group.
Types:
{ subject?: string }returnsFrontDeskNumbersDto
ViewerlistWorkersLists workers.
Types:
ListWorkersRequestreturnsListResponse<WorkerSummary>
AdminNo API tokenswhatsapp/embeddedSignupWhatsApp: embedded signup.
Types:
WhatsAppEmbeddedSignupRequestreturnsWhatsAppStatusDto
AdminNo API tokenswhatsapp/retrySetupWhatsApp: retries setup.
Types:
WhatsAppRetrySetupRequestreturnsWhatsAppStatusDto
Screens
What it records
The feature writes these events to the audit log, the permanent record of what happened.
- Integration changed
- Policy changed
- Budget reserved
- Checkpoint saved
- Context retrieved
- Memory recalled
- Model called
- Policy evaluated
- User signed in