Automate with Webhooks
How to set up a webhook link to trigger your agent automatically without using the UI.
Written By Philippe
Last updated 30 days ago
Automate with Webhooks
Webhooks let you trigger an agent programmatically β from Zapier, Make, another system, or any HTTP client β without using the indie.money UI.
Webhook Flow:
- Your System (Zapier/Make) sends POST with payload
- indie.money receives it
- Agent executes (billed per the link you used)
- JSON Response returns with output data
How It Works
Setting Up a Webhook
Webhook Request Format
POST {your-webhook-link}Content-Type: application/json{ "key": "value", "inputs": "here"}Copy the link from the producer dashboard next to the trigger.
Your webhook only accepts the HTTP method your workflow's Webhook node is set to β if the node doesn't say otherwise, that's GET only, even though the examples on this page use POST. If callers start getting 405 Method Not Allowed after you turn your agent back on, check your workflow's Webhook node settings to confirm it's set to accept the method your caller actually sends.
Authentication & Payment
Your agent's webhook triggers have two links.
For your own systems. This link behaves the way your workflow's webhook always has: anyone who has it can call it, and the only sign-in it asks for is the one you set in the workflow. What differs is who pays β runs through this link draw on your agent balance. If your workflow requires no sign-in, possession of this link is permission to spend. Keep it out of public repositories, client-side pages, support tickets, and listings.
Caller pays. Safe to publish. A call arriving without payment gets a price back instead of a run, so your balance is never reachable through it. This is the only link to hand to a stranger, put in a listing, or let other agents discover.
Triggers connected to another service β a Telegram bot, a form service like Typeform, a payment provider β work differently. That service calls your agent directly and cannot pay, so those runs always draw on your agent balance.
When your agent balance cannot cover a run on the You pay link, the call is refused (403) rather than charged to the caller. Callers with a wallet pay per run on the Caller pays link.
Testing Your Webhook
Use curl or a tool like Postman to test:
curl -X POST {your-webhook-link} \ -H "Content-Type: application/json" \ -d '{"message": "Hello from webhook"}'