Sent is now a native app on Zapier
Send SMS, WhatsApp, or RCS as a step in any Zap, and start a Zap when someone texts back.

If you already use Zapier to move data between your CRM, calendar, database, and the rest of your stack, Sent now plugs into that directly. There’s no need to host webhook endpoints or maintain glue code.
How it works
Every Zap has a trigger (something happens in one app) and one or more actions (do something in another). Sent can sit on either side.
As an action, Sent sends a message. Pick any trigger from the apps you already use, add the Send Message step, and map the recipient's number and the message body from the trigger's data.
As a trigger, Sent starts the Zap. Both triggers fire instantly rather than on a polling schedule. The lookups are useful as middle steps when the Zap needs to know who it's talking to.
| Type | Name | What it does |
|---|---|---|
| Trigger | New Message Received | Fires when a contact texts one of your Sent numbers, over SMS, WhatsApp, or RCS |
| Trigger | New Event | Fires on any message event: delivered, failed, or an inbound message |
| Action | Send Message | Sends to one or more recipients over SMS, WhatsApp, or RCS |
| Search | Find Message | Returns a message with its delivery status and status history |
| Search | Find Message Activity | Returns the delivery log for a message, each status change with its cost |
| Search | Find Contact | Looks up a contact by phone number |
| Action | Get Contacts | Returns a page of contacts, filtered by search text, channel, or phone number |
| Action | Get Account Details | Returns the account and which channels are configured; read-only |
What you can build
Each of these is a single Zap with two or three steps:
1. Text a new lead within seconds of the form submit
- Trigger: A new entry in Typeform, row in Google Sheets, or contact in HubSpot.
- Action: Send Message, with the phone field mapped to the recipient and the person's first name dropped into the body.
2. Send an appointment reminder from your calendar
- Trigger: A Google Calendar event starts in 24 hours.
- Action: Send Message to the attendee's number, with the time and location pulled from the event. Add a second Zap on the same trigger set to one hour out if you want a day-of nudge.
3. Write replies back to the contact's record
This is the one most people were hand-building before via a webhook receiver or lookup. Here it's three steps in a Zap and nothing to host.
- Trigger: New Message Received.
- Step two: Find Contact, matched on the sender's number.
- Action: Update the contact in your CRM, or append a note with the reply text.
4. Confirm delivery before closing the task
- Trigger: Sent New Event, filtered to delivered.
- Action: mark the task done in Asana or Linear, or flip a status column in Airtable.
Sent as the trigger
The last two examples start from Sent rather than ending there. That pattern goes further: the inbound triggers are a way to get texts into the rest of your tools.
- Post every reply to a Slack channel so the team sees conversations without opening Sent
- Log inbound messages to a Google Sheet for a lightweight audit trail
- Open a support ticket when a reply contains a keyword, using a Zapier filter step between the trigger and the action
- Send an email to the account owner when a specific contact texts back
Because the triggers are instant, these fire as the message arrives. There's no polling interval to design around.
Build with agents or code
The same Sent actions are reachable from an agent or from code, through Zapier rather than through a Zap.
Zapier MCP. Any MCP-compatible client (Claude, ChatGPT, Cursor, and others) sees Sent's actions as tools. You connect once, choose which actions the agent is allowed to call, and can cut it off at any time. The agent never holds your Sent API key.
Zapier SDK. A backend service or script can run the same actions from TypeScript, with Zapier managing the OAuth and the permission scope. The SDK is TypeScript-only for now and needs Node.js 20 or later.
import { createZapierSdk } from "@zapier/zapier-sdk";
// Picks up `npx zapier-sdk login` in development.
// On a server, pass client credentials instead.
const zapier = createZapierSdk();
const { data: connection } = await zapier.findFirstConnection({
appKey: "sent",
owner: "me",
});
const sent = zapier.apps.sent({ connectionId: connection.id });
await sent.write.send_message({
inputs: {
// recipients, channel, body
},
});
If you're building something where messaging is a first-class feature, the Sent API is still the better fit. These are for when an agent or a script needs to send a text and you'd rather hand it a scoped connection than a credential.
A few things worth knowing
- Messages sent through Zapier are subject to the same compliance rules as any other Sent traffic. Make sure registrations are in place before a Zap texts anyone.
- Use a Zapier filter step if you only want certain triggers to proceed. New Event fires on every status change, so filter it to the one you care about rather than letting the Zap run on all of them.
- If a Zap isn't showing a field or action you expect, check that it's on the latest version of the Sent app in Zapier's editor.
- Zapier's free tier is enough to try this out. Task limits are the thing to watch as volume grows.


