Engage quickstart
Touchbaze Engage

Engage quickstart

This guide takes you from an empty workspace to a live, multi-channel inbox: connecting WhatsApp, Instagram and Messenger, automating first replies, sending a broadcast, and integrating your backend through the Send API and webhooks.

Before you start

You'll need:

  • A Meta business portfolio (formerly Business Manager) with admin access
  • For WhatsApp: a phone number that isn't registered on the WhatsApp app, or one you're ready to migrate
  • For Instagram: an Instagram professional account linked to a Facebook Page
  • For Messenger: admin access to the Facebook Page you want to connect

1. Connect WhatsApp

Touchbaze connects to Meta's Cloud API directly, so there's no BSP account and no per-message markup.

  1. In Meta's developer tools, add the WhatsApp product to an app in your business portfolio and register your phone number.
  2. Copy your WhatsApp Business Account ID and phone number ID.
  3. Create a system user in your business portfolio and generate a permanent access token with WhatsApp messaging permissions.
  4. In Touchbaze, open Channels → WhatsApp and paste the three values.

2. Connect Instagram

  1. In the Instagram app, make sure your account is a professional account linked to your Facebook Page.
  2. Under the account's message settings, turn on Allow access to messages for connected tools.
  3. In Touchbaze, open Channels → Instagram, sign in with Facebook and choose the account.

Instagram DMs then arrive in the same inbox as WhatsApp, and the same automation flows can answer them.

3. Connect Messenger

  1. In Touchbaze, open Channels → Messenger and sign in with Facebook.
  2. Choose the Page or Pages to connect and grant messaging permissions.

You can connect several Pages to one workspace; each appears as its own channel in the inbox.

4. Automate first replies

Keyword automation answers common questions instantly and hands anything else to your team.

  1. Open Automation → New flow and pick the channels it applies to.
  2. Add trigger keywords, for example pricing, hours or track.
  3. Write the reply, and optionally tag the contact or assign the conversation.
  4. Turn the flow on and test it by messaging your own number.

Automation only sends free-form replies inside the customer service window. Outside it, use a template.

5. Send a broadcast

Broadcasts send an approved template to a list of contacts, now or on a schedule.

  1. Import contacts from a CSV with at least a phone column in international format (for example +14155550123), plus any columns your template variables need.
  2. Choose an approved template and map its variables to your CSV columns.
  3. Review the estimated Meta cost shown before sending.
  4. Send now or schedule a time.

6. Send messages from your backend

The Send API lets your systems send WhatsApp messages through Touchbaze — a drop-in replacement for Twilio's messaging API. Messages sent through the API appear in the same inbox your team uses.

Create an API key under Settings → API keys and store it as TOUCHBAZE_API_KEY.

With curl

curl -X POST https://app.touchbaze.io/api/send \
  -H "x-api-key: $TOUCHBAZE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+14155550123",
    "type": "template",
    "templateName": "order_shipped",
    "language": "en_US",
    "variables": ["Priya", "#48213"],
    "category": "utility"
  }'

With Python

import os
import requests

response = requests.post(
    "https://app.touchbaze.io/api/send",
    headers={"x-api-key": os.environ["TOUCHBAZE_API_KEY"]},
    json={
        "to": "+14155550123",
        "type": "template",
        "templateName": "order_shipped",
        "language": "en_US",
        "variables": ["Priya", "#48213"],
        "category": "utility",
    },
    timeout=10,
)
response.raise_for_status()
print(response.json())

To reply with free-form text inside the customer service window, send "type": "text" with a "text" field instead of the template fields. Outside the window, free-form messages are rejected — send a template.

7. Receive webhooks

Webhooks tell your backend when something happens — a message arrives or a sent message is delivered or read.

  1. Under Settings → Webhooks, add your HTTPS endpoint and choose the events you want.
  2. Copy the webhook secret and store it as TOUCHBAZE_WEBHOOK_SECRET.
  3. Verify every request before trusting it: Touchbaze signs the raw request body with HMAC-SHA256 and sends the hex digest in the x-touchbaze-signature header.
import hashlib
import hmac
import os

def is_valid(raw_body: bytes, signature: str) -> bool:
    expected = hmac.new(
        os.environ["TOUCHBAZE_WEBHOOK_SECRET"].encode(),
        raw_body,
        hashlib.sha256,
    ).hexdigest()
    return hmac.compare_digest(expected, signature)

Respond with a 2xx status quickly and do any slow work afterwards; failed deliveries are retried.

Hosting your integration

Touchbaze itself is fully hosted — there's nothing to deploy for the inbox, automation or broadcasts. You only host code if you use the Send API or webhooks, and that code can run anywhere that can make and receive HTTPS requests: a serverless function, a container, or your existing backend.

Environment variables

VariableRequired forNotes
TOUCHBAZE_API_KEYSend APISent as the x-api-key header
TOUCHBAZE_WEBHOOK_SECRETWebhooksUsed to verify x-touchbaze-signature
TOUCHBAZE_API_BASEOptionalDefaults to https://app.touchbaze.io

Next: set up Touchbaze Support to turn conversations into tracked tickets.