textbee Logotextbee.dev
Save 44% with yearly billing.View Plans

Automation

Zapier SMS integration: send and receive texts with Webhooks by Zapier

Published and updated

Zapier does not need a textbee app to send SMS. A Webhooks by Zapier action with the Custom Request event posts to the textbee send endpoint, so anything that triggers a Zap can send a text from your Android phone. Incoming texts reach Zapier through a Catch Hook trigger that receives the textbee webhook. Webhooks by Zapier is a premium app, so it needs a paid Zapier plan.

Send
HTTP POST
to the textbee send endpoint
Receive
Webhook
MESSAGE_RECEIVED, flat JSON
Pace
10 to 15 / min
per Android phone
textbee code
None
uses what the tool ships today

What you need

  • A Zapier account on a paid plan. Webhooks by Zapier is a premium app and is not available on the Free plan.
  • A textbee account with the Android app installed on the phone that holds the SIM, and an API key from the dashboard.
  • A trigger for the send Zap: a form, a CRM event, a new spreadsheet row, a schedule, or anything else Zapier offers.
  • The textbee app on the phone. Download the app, then create an API key in the dashboard.

Send SMS from Zapier

Use the Custom Request event, not the POST event. Custom Request takes a raw JSON body, which is the only way to send recipients as an array.

  1. Add the action

    After the trigger, add an action, search for Webhooks by Zapier and choose the Custom Request event.

  2. Fill the request

    Insert the phone number and the message text from the trigger step with the field picker. Keep the square brackets around the number.

    FieldValue
    MethodPOST
    URLhttps://api.textbee.dev/api/v1/gateway/send-sms
    DataThe JSON body below
    Unflattenno
    Headerx-api-key: YOUR_TEXTBEE_API_KEY
    HeaderContent-Type: application/json
    JSON
    {
      "recipients": ["{{1. Phone}}"],
      "message": "Hi {{1. First Name}}, thanks for your request. We will call you within one business day."
    }
  3. Test the action

    Click Test step. Zapier shows the response with data.success true and a smsBatchId. The text arrives on the test number within a minute.

  4. Publish the Zap

    Turn the Zap on. Each run uses one task for the Custom Request action; triggers do not count.

Receive SMS in Zapier

A Catch Hook trigger gives you a URL. textbee posts every incoming text there, and Zapier parses the flat JSON into fields you can map.

  1. Create the trigger

    Make a new Zap, choose Webhooks by Zapier as the trigger app and Catch Hook as the event. Copy the webhook URL.

  2. Register it in textbee

    In the textbee dashboard open Webhooks, create one with the Zapier URL, select MESSAGE_RECEIVED and set a signing secret.

  3. Load a sample

    Text the phone from another number, then click Test trigger in Zapier. The sample shows sender, message, receivedAt and the other fields.

  4. Map the fields

    Add actions: create a CRM contact from sender, append a row with sender and message, post to a channel, or reply through a second Webhooks action.

Ask your AI agent to set it up

The prompt below carries the endpoints, the payloads and the Zapier details from this page. Change the line that starts with What I want, paste the prompt into your agent, and it walks you through the setup with your own field names and numbers.

Prompt for your AI agent

Paste it into Claude, ChatGPT, Cursor or any coding agent. It carries the textbee API facts and the Zapier details the agent needs, so it does not guess.

I want to connect textbee to Zapier. textbee is an SMS gateway that sends and receives SMS through my own Android phone. Help me set it up step by step.

Facts about the textbee API. Use only these. Do not invent endpoints or fields.
- Send an SMS: POST https://api.textbee.dev/api/v1/gateway/send-sms with the header x-api-key: <TEXTBEE_API_KEY> and a JSON body like {"recipients": ["+12015550123"], "message": "Hello"}. recipients must be a JSON array of E.164 numbers, even for one number. Optional fields: deviceId, simSubscriptionId, scheduledAt (ISO 8601, in the future). The response is {"data": {"success": true, "smsBatchId": "..."}}.
- Check delivery or read replies: GET https://api.textbee.dev/api/v1/gateway/messages with the same header. Filters: direction=received, smsBatchId=<id from the send>, from and to as ISO timestamps. Each row has a status such as sent, delivered, failed or received.
- Receive an SMS: textbee posts JSON to a webhook URL I register in the dashboard. A MESSAGE_RECEIVED delivery has these top-level fields: smsId, message, deviceId, webhookSubscriptionId, webhookEvent, idempotencyKey, sender, receivedAt. The header X-Signature holds an HMAC-SHA256 hex digest of the raw body, keyed with the signing secret I set on the webhook. Retries reuse the same idempotencyKey.
- Limits: One Android phone sends roughly 10 to 15 messages a minute. Text only, no MMS. Messages over 160 characters are split into segments.

What I want: Send SMS from a Zap when my trigger app fires, and start a Zap from every text my phone receives.

Zapier specifics you should know:
- Webhooks by Zapier is a premium app. Its Custom Request event accepts a raw Data body and custom Headers. Its POST event only sends flat key-value data and cannot produce a JSON array.
- The Catch Hook trigger parses JSON into fields. Catch Raw Hook keeps the raw body and headers, which a Code by Zapier step needs to verify the X-Signature header.
- Each action step uses one task; triggers are free.

Give me:
1. The exact clicks and field values in Zapier, using its real field labels.
2. The request body or field mapping, with placeholders for my API key and phone numbers. Never ask me to paste the real key into this chat.
3. A test with one number and what a correct result looks like.
4. The three most likely failure causes and how to check each one.

Automations that work well

Form to text
Typeform, Google Forms or Jotform trigger, then a Custom Request that texts the submitter a confirmation.
Sheet row to text
New Spreadsheet Row trigger, then a text to the number in the row. Add a Filter step so a row sends only when its Send column says yes.
Text to CRM
Catch Hook trigger, then Find or Create Contact in HubSpot, Pipedrive or Airtable with sender, then a note with message.
Two-way flow
Catch Hook trigger, a Filter on message contains a keyword, then a Custom Request that replies to sender.

What works and what does not

Works today

  • Sending from any Zap trigger, with fields from the trigger step in the text
  • Incoming texts as a trigger, with sender and message as separate fields
  • Multi-step Zaps that reply, log and notify from one incoming text
  • Delivery checks with a second Custom Request that GETs the messages endpoint by smsBatchId

Not with this route

  • The Zapier Free plan: Webhooks by Zapier is a premium app
  • Signature verification inside the trigger itself; it needs Catch Raw Hook plus a Code step
  • MMS

What Zapier charges

Webhooks by Zapier is a premium app. It is not included in the Free plan, and each action step counts as a task against the monthly task limit of the paid plan. zapier.com, checked on September 25, 2026. textbee itself charges a flat monthly plan with messages included; see pricing.

Frequently asked questions

Is there a textbee app in Zapier?

No. The Webhooks by Zapier app covers both directions today, and the setup on this page needs no extra install. Make and n8n offer the same flow without a premium tier.

Why does the POST event fail with Invalid recipients?

The POST event sends form-style data or a flat JSON object, so recipients arrives as a string. textbee needs an array. Switch to the Custom Request event and paste the JSON body from this page.

How many tasks does one text cost?

One. Zapier counts a task for each action step that runs, not for the trigger. A Zap with one trigger and one Custom Request uses one task per text.

Can Zapier check the X-Signature header?

Not in the Catch Hook trigger. Use Catch Raw Hook instead, add a Code by Zapier step that computes the HMAC-SHA256 hex digest of the raw body with your signing secret and compares it with the header, then a Filter that stops the Zap on a mismatch. For a personal flow the secret hook URL is usually enough.

How fast are the texts?

Zapier runs the action within seconds of the trigger on paid plans. The phone then sends roughly 10 to 15 messages a minute, so a Zap that fires for hundreds of rows at once drains over the following minutes.

Sources

  1. zapier.com, checked on September 25, 2026
  2. help.zapier.com: Send webhooks in Zaps, checked on September 25, 2026
  3. help.zapier.com: Trigger Zaps from webhooks, checked on September 25, 2026

Read next