Use Case
Webhook & API Automation
Stop writing one-off webhook handlers. Tendrl gives you a visual workflow editor with 40+ connectors, conditional logic, human approvals, and full execution traces, so you can automate API integrations without deploying infrastructure.
The problem with webhook integrations
Every webhook needs a serverless function, a deployment pipeline, and error monitoring. You end up with a fleet of Lambdas that nobody owns.
A webhook fires, the handler crashes, and nothing happens. No retry, no alert, no trace of what went wrong.
When a webhook triggers something important (a refund, a deployment, a user deletion), there's no easy way to add a human checkpoint.
Adding a new step (send a Slack message, write to a database) means editing code, redeploying, and hoping you didn't break the existing flow.
How Tendrl solves it
Visual workflows replace glue code. Every step is traceable, retryable, and editable without redeploying.
Receive webhooks with a unique endpoint
Every Strand workflow gets its own HTTPS trigger URL. Point your service's webhook config at it and incoming payloads land directly in your workflow as payload: no routing, no parsing, no middleware.
Transform and validate with code or no-code
Use Transform nodes with Jinja2 templates for simple reshaping, or Python snippets when you need real logic. Access 20+ standard library modules (json, re, datetime, hashlib, collections) in a secure sandbox with vault secret access.
event_type = payload.get("type", "")
amount = payload.get("data", {}).get("object", {}).get("amount", 0)
return {
"event_type": event_type,
"amount_dollars": amount / 100,
"is_large": amount > 50000,
"needs_review": event_type == "charge.dispute.created"
} Route with conditional logic
Use if/else nodes to branch based on any field in the payload. Route high-value transactions through approvals, send errors to PagerDuty, and archive everything to S3, all in the same workflow.
Add human approvals for critical actions
Drop an approval node into your workflow. Execution pauses and notifies the right person via Slack, email, or in-app notification. They approve or reject with a signed, single-use link, no login required. The workflow resumes automatically with the decision and approver metadata attached.
Push to any destination
Connect to 40+ services without writing adapter code. Each connector stores credentials encrypted and handles retries automatically.
Built for production webhook traffic
HTTP and AI nodes retry with exponential backoff on 429s and 5xx errors. Configurable attempts, backoff type, and retryable status codes.
Up to 8 concurrent workflow steps (Pro plan). Excess requests queue and wait up to 30 seconds, so no webhooks are dropped.
Every run shows each node's input, output, timing, and errors. Debug failures without guessing what went wrong.
Connectors auto-disable after 5 consecutive failures. Prevents cascading errors from a single broken downstream service.
Not just webhooks: trigger workflows on a cron schedule. Presets from every minute to weekly, or write custom cron expressions.
Call workflows from workflows (up to 20 levels). Reuse common patterns like "enrich and notify" across multiple triggers.
Example: Stripe webhook to Slack + email
A payment dispute comes in. The workflow validates, classifies, and routes it, with a human approval step for high-value cases.
Stripe sends a charge.dispute.created webhook to the workflow's trigger URL. The full event payload arrives as payload.
A Python snippet extracts the dispute amount, customer ID, and reason. It flags disputes over $500 as needs_review: true.
An if/else node checks needs_review. True: pause for manager approval via Slack, then send a high-priority escalation email to the billing team. False: post a summary to the #disputes Slack channel and log the dispute to your tracker via the HTTP connector.
Replace your webhook handlers with workflows
The free tier includes 10 workflows and 550 monthly runs. Build your first automation in minutes.
Tendrl