Features
Webhooks
Trigger automations from external services.
Webhooks
Trigger your automations from anywhere that can make HTTP requests - CI/CD pipelines, Zapier, GitHub Actions, or your own code.
Getting your webhook URL
- Create an automation and select Webhook as the trigger type
- After saving, click the ⋮ menu on your automation card
- Select Webhook details
- Copy your Webhook URL and Signing Secret
Triggering your automation
Send a POST request to your webhook URL with:
- Your message in the body
- A signature header (for security)
The request
# Replace with your values
URL="https://api.toolplex.ai/webhooks/cloud/YOUR_AUTOMATION_ID"
SECRET="your-signing-secret"
BODY='{"data":{"message":"Hello from webhook"}}'
# Generate signature
TIMESTAMP=$(date +%s%3N)
SIGNATURE=$(echo -n "${TIMESTAMP}.${BODY}" | openssl dgst -sha256 -hmac "$SECRET" | cut -d' ' -f2)
# Send request
curl -X POST "$URL" \
-H "Content-Type: application/json" \
-H "X-Toolplex-Signature: t=${TIMESTAMP},v1=${SIGNATURE}" \
-d "$BODY"const crypto = require('crypto');
const URL = 'https://api.toolplex.ai/webhooks/cloud/YOUR_AUTOMATION_ID';
const SECRET = 'your-signing-secret';
const body = JSON.stringify({ data: { message: 'Hello from webhook' } });
const timestamp = Date.now();
const signature = crypto.createHmac('sha256', SECRET)
.update(`${timestamp}.${body}`).digest('hex');
fetch(URL, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Toolplex-Signature': `t=${timestamp},v1=${signature}`,
},
body,
});import hmac, hashlib, json, time, requests
URL = 'https://api.toolplex.ai/webhooks/cloud/YOUR_AUTOMATION_ID'
SECRET = 'your-signing-secret'
body = json.dumps({'data': {'message': 'Hello from webhook'}})
timestamp = int(time.time() * 1000)
signature = hmac.new(SECRET.encode(), f"{timestamp}.{body}".encode(), hashlib.sha256).hexdigest()
requests.post(URL, headers={
'Content-Type': 'application/json',
'X-Toolplex-Signature': f't={timestamp},v1={signature}',
}, data=body)What to send
The body tells the AI what to do:
{
"data": {
"message": "Process the new order",
"context": {
"orderId": "12345",
"customer": "[email protected]"
}
}
}- message: Instructions for the AI (like what you'd type in chat)
- context: Any data you want to pass along (optional)
Why the signature?
The signature proves the request came from you, not someone who guessed your URL. It's computed from your secret + timestamp + body, so it can't be forged.
Signatures expire after 5 minutes to prevent replay attacks.
Checking if it worked
Back in ToolPlex Desktop, click on your automation to see the Run history. Each webhook trigger creates a run you can inspect.