POST request to its URL. When the request has a JSON body, Paradime gives that body to the run. A DinoAI agent in the run gets the body in its task, so it can work on the one ticket, alert, or pull request that started the run.
In this guide, a Jira Automation rule calls the webhook when someone creates a ticket, and an agent reads the ticket from the body.
Prerequisites
- An agent you can run, built in the Agent UI or defined as code under
.dinoai/agents/<name>.yml. See Run an agent with Bolt. - The Admin, Workspace Admin, or Developer role, to create incoming webhooks.
- A tool that can send a
POSTrequest with a custom header and a JSON body, such as Jira Automation, Zapier, a CI job, orcurl.
Steps
1
Add the agent command
Create a Bolt schedule, select Add command, then Run Paradime DinoAI Agent.
- Agent name: pick the agent.
-
Task: tell the agent what to do with the event. Refer to the webhook payload by name, because Paradime adds it after your task:
- Select Save command.
2
Create the Trigger URL
- Under Trigger type, select Incoming webhook.
- In the Trigger URLs card, click New Trigger URL, enter a Name such as
Jira new tickets, and click Create. - Copy the URL and the Authorization header, then click Done. The secret shows only once.
- Click Deploy.
3
Send the event from the other tool
Set up the other tool to send a
POST request to the URL, with the Authorization header and a JSON body.In Jira Automation, add a Send web request action to a rule that runs when a ticket is created:- Web request URL: the Trigger URL.
-
HTTP method:
POST. -
Headers:
Authorizationwith the valueBearer <your secret>, andContent-Typewith the valueapplication/json. -
Web request body: Custom data, with the fields the agent needs:
4
Test with a body
Send test request in Bolt sends no body, so it doesn’t test the payload. To test the payload, send a request with a body from your terminal:The response has
"accepted": true and a run_id.Open the run in Bolt. It says Triggered by an incoming webhook. The agent’s logs show that it worked on
DATA-142.What the agent gets
Paradime adds a<webhook_payload> block after your task. The agent’s opening message for the test request above is:
- The body is compact JSON. The characters
<,>, and&are written as<,>, and&, so text in the body can’t close the block. - The block tells the agent to treat the body as data and not to follow instructions in it. Anyone who can create a ticket can put text in the body, so put every instruction in the task, and give the agent only the tools it needs.
- When there’s no body to pass, the block says why: a test request, no body or a body over 1 MB, a body that isn’t a JSON object or array, or a body over 64 KB. The agent still runs, so write the task so that the agent stops if the payload is missing.
- The agent can’t read the payload from an environment variable. The block in its task is the only copy it gets.
Use the payload in other commands
Other commands in the run read the payload from environment variables. For a full walkthrough, see Use a webhook payload in a Bolt run.
In a Python script:
'{}'. The variable isn’t set on a run without a usable body, such as a test request.
Define it as code
If you manage schedules as code, declare the trigger withtrigger_on_webhook: true:
Troubleshooting
To see every request a Trigger URL received, go to Bolt > Webhooks > Incoming.
Next steps
Incoming webhooks reference
Responses, deliveries, rotation, and limits.
Browse templates
Agent recipes to start from, such as the Jira intake agent.