AI Canvas Builder
Describe what you want in plain English and the AI Canvas Builder generates a complete node structure with connections — ready to review and deploy to your canvas.
Overview
The AI Canvas Builder uses Claude to translate natural language descriptions into webhook flow configurations. Instead of manually creating nodes and wiring them together, you describe the desired behavior and the AI generates a node plan with all the connections, configurations, and transform templates.
How to use
Open the AI Canvas Builder
In the canvas view (/dashboard/flows), click the AI Builder button in the toolbar.
Describe your flow
Enter a natural language prompt describing the webhook flow you want. Be specific about sources, targets, validation rules, and transformations.
Review the generated plan
The AI returns a node plan showing each node type, its configuration, and how nodes connect. Review the plan to ensure it matches your intent.
Build the flow
Click Build Flow to auto-create all nodes and wire them together on the canvas. Nodes are positioned automatically.
Writing effective prompts
The more specific your prompt, the better the result. Include:
- The webhook source (Stripe, GitHub, custom)
- What validation or filtering to apply
- Target destinations (your API, Slack, Discord, email)
- Any payload transformations needed
- Error handling preferences (alerts, retries)
Example prompts
Create a webhook that receives Stripe payment webhooks,
validates the payload with a schema, then delivers to my API
at https://api.example.com/payments.Create a webhook that validates with a schema requiring
type, data.object.id, and data.object.amount fields. Transform
the payload to extract just the amount and customer ID. Send to
both a Slack channel (with a formatted message) and an
analytics webhook. Add an alert that emails [email protected]
after 3 consecutive failures.Enhance Prompt
Not sure how to phrase your request? Use the Enhance Prompt feature to refine your description before generating the flow.
POST /api/agent/enhance-prompt
{
"prompt": "stripe payments to slack"
}{
"enhanced": "Create a webhook that receives Stripe payment_intent.succeeded webhooks. Validate the payload with a schema requiring type, data.object.id, data.object.amount, and data.object.currency fields. Transform the payload into a Slack message with the payment amount, currency, and customer ID. Deliver to a Slack webhook URL. Add an alert for 5 consecutive failures."
}Canvas Builder API
POST /api/agent/canvas-builder
Request
{
"prompt": "Create a webhook that validates with a schema, transforms the payload, then sends to Slack and email"
}Response
{
"plan": {
"nodes": [
{
"type": "webhook",
"name": "Webhook Ingress",
"config": {
"targetUrl": "https://your-api.example.com/webhooks"
}
},
{
"type": "schemaValidator",
"name": "Payload Validator",
"config": {
"fields": [
{ "path": "type", "type": "string", "required": true },
{ "path": "data.id", "type": "string", "required": true },
{ "path": "data.amount", "type": "number", "required": true }
]
}
},
{
"type": "httpAction",
"name": "Slack Notification",
"config": {
"url": "https://hooks.slack.com/services/...",
"method": "POST",
"body": "{ "text": "New event: {{payload.type}} — Amount: {{payload.data.amount}}" }"
}
},
{
"type": "httpAction",
"name": "Email Notification",
"config": {
"url": "https://your-api.example.com/email-webhook",
"method": "POST"
}
}
],
"connections": [
{ "from": "Webhook Ingress", "to": "Payload Validator" },
{ "from": "Payload Validator", "to": "Slack Notification" },
{ "from": "Payload Validator", "to": "Email Notification" }
]
}
}Limitations
- The AI generates a plan based on its understanding of your prompt. Always review before building.
- Placeholder URLs (like
https://hooks.slack.com/services/...) need to be replaced with your actual URLs before the flow works. - Complex conditional logic (multi-branch routers with many rules) may need manual adjustment after generation.
- The builder creates new nodes — it does not modify existing ones on the canvas.