AI agents with Plain webhooks
Receive Plain webhooks on Trigger.dev and use them to start, resume or message your AI agents.
What you can do with Plain webhooks
Start an agent
Plain events can start a new agent run. For example, an agent that drafts a reply to every new Plain thread.
Resume an agent
An agent can pause until the Plain event it needs arrives, for up to 90 days, and costs nothing while it waits.
Message an agent
Plain events can land in a running agent's conversation, so it acts on them with full context.
Events you can receive from Plain
Some of the events Plain sends. Your agent can filter on any of them.
Thread created
Email received
Chat message received
Thread status changed
Customer created
Example
An agent that drafts a reply to every new Plain thread
Handled for you
Verified for you
webhooks.plain() checks the Plain-Request-Signature header on every request. Bad requests are rejected before anything runs.
Retries don't run twice
Retries are matched on event.id, so a retried webhook doesn't start a second run.
Filter before anything runs
Only the Plain events you care about start a run. Filtered webhooks use no compute.
See every delivery
Every webhook is recorded with its payload, headers and the agents it reached, so you can debug it and replay it.
Get started
- 1
Set up the agent
Copy the starter prompt into your coding agent, like Claude Code, Cursor or Codex. It creates a Trigger.dev project and adds the webhook endpoint. Prefer to write it yourself? Start from the example above.
- 2
Add the webhook in Plain
Deploy your project, or run
trigger dev, and the endpoint appears on the Webhooks page of the Trigger.dev dashboard with its URL. Add that URL in Plain's webhook settings and pick the events you need. The endpoint's Copy setup prompt button gives your coding agent the exact steps. - 3
Add Plain's HMAC secret
Copy the HMAC secret from Plain. Then on the endpoint's page in the Trigger.dev dashboard, choose Set signing secret and paste it in, so Trigger.dev can check every request really came from Plain.
- 4
Try it
Send a test event from Plain, or use the endpoint's Test tab. It appears on the endpoint's Deliveries tab, with the agents it reached.
Related integrations
Ready to build with Plain webhooks?
Declare an endpoint, deploy, and paste the URL into your provider.

