CTO
Webhook Chains That Replace a Full Integration Team
Key Takeaway
AI-orchestrated webhook chains connect Stripe, GitLab, Pennylane, Notion, and Google Sheets β replacing custom integrations with 15-minute setups that require zero code.
The Problem
PyratzLabs uses Stripe for payments. Pennylane for accounting. Notion for documentation. Google Sheets for reporting. Trello for project management. Telegram for communication. GitLab for code.
None of these talk to each other natively.
The traditional solution: build custom integrations. Write API connectors. Handle auth, retries, error states, schema mapping. Per integration: 2-5 days of developer time. We needed about 12 integrations. That's 24-60 days of dev time. On a team that's already shipping product.
We tried Zapier first. It worked for simple two-step automations. But our flows aren't two steps. They're five. They need conditional logic. They need an agent to interpret context and make routing decisions. Zapier's linear model breaks on branching workflows.
The real cost isn't the subscription β it's the fragility. Every integration is a point of failure. Every API change breaks something. Every new tool means another connector to build and maintain. At some point, you're running a middleware company, not a startup.
The Solution
The agent sits in the middle. Webhooks fire, the agent receives them, applies logic, and chains actions across services. Not hardcoded integrations β intelligent routing with fallbacks.
The middleware layer uses n8n for webhook reception and the agent for decision-making. Simple flows stay in n8n. Complex flows route through Alfrawd.
The Process
Chain 1: Stripe β Warren β Sheet β Notion
yamlShow code
# n8n workflow: payment_received
trigger:
type: webhook
path: /stripe/payment
nodes:
- parse_event:
type: code
code: |
const { customer, amount, currency } = $input.body.data.object;
return { customer, amount: amount/100, currency };
- notify_warren:
type: telegram
message: "π° Payment received: β¬{{amount}} from {{customer}}"
chat_id: "{{WARREN_CHAT_ID}}"
- update_sheet:
type: google_sheets
action: append_row
spreadsheet: "Revenue Tracker"
values: ["{{$now}}", "{{customer}}", "{{amount}}", "{{currency}}"]
- create_notion_row:
type: notion
action: create_page
database: "Payments"
properties:
Date: "{{$now}}"
Customer: "{{customer}}"
Amount: "{{amount}}"
Status: "Received"
Chain 2: GitLab β Classify β Trello β Telegram
yamlShow code
# When a GitLab issue is created
trigger:
type: webhook
path: /gitlab/issue
nodes:
- classify:
type: agent # Routes to Alfrawd for classification
prompt: |
Classify this issue: "{{title}}"
Labels: {{labels}}
Description: {{description}}
Return: priority (P0-P3), assignee, trello_list
- create_trello_card:
type: trello
action: create_card
list: "{{classify.trello_list}}"
name: "[{{classify.priority}}] {{title}}"
- notify_team:
type: telegram
message: "π Issue: {{title}}\nπ Priority: {{classify.priority}}\nπ€ Assigned: {{classify.assignee}}"
Chain 3: Pennylane β Notion + Sheet + Bilal
yamlShow code
# Invoice received in Pennylane
trigger:
type: webhook
path: /pennylane/invoice
nodes:
- extract:
type: code
code: |
const { supplier, amount, due_date, category } = $input.body;
return { supplier, amount, due_date, category };
- notion_entry:
type: notion
database: "Invoices"
properties:
Supplier: "{{supplier}}"
Amount: "{{amount}}"
Due: "{{due_date}}"
Category: "{{category}}"
- sheet_row:
type: google_sheets
spreadsheet: "Expense Tracker"
values: ["{{$now}}", "{{supplier}}", "{{amount}}", "{{category}}"]
- notify_bilal:
type: telegram
message: "π§Ύ Invoice: {{supplier}} β β¬{{amount}} due {{due_date}}"
Custom integrations for services the agent can't reach directly go through webhook middleware β the agent calls n8n, n8n calls the service, response flows back.
The Results
| Metric | Before (Custom Code) | After (Webhook Chains) |
|---|---|---|
| Integration setup time | 2-5 days per integration | 15-30 min |
| Active integrations | 4 (limited by dev time) | 12 |
| Lines of integration code | ~3,000 | ~200 (YAML configs) |
| Monthly maintenance time | 4-6 hours | <30 min |
| Failed integration recovery | Hours (debug + fix) | Minutes (agent retries) |
| Cost | Developer salary allocation | n8n self-hosted (free) |
The 15-minute setup time isn't a typo. When the webhook infrastructure exists and the agent knows the destination APIs, adding a new chain is just defining the trigger and the sequence. The agent handles auth, error handling, and retries.
Try It Yourself
- Self-host n8n (or use Make/Zapier) as your webhook reception layer
- Configure service webhooks to point to your n8n instance
- For simple chains: keep it in n8n. For intelligent routing: pass to your agent
- Start with one chain (e.g., Stripe β notification). Expand from there
The principle: don't build integrations. Chain webhooks. Let the agent be the brain in the middle.
An integration team is three engineers maintaining API connectors. A webhook chain is a YAML file and an agent. Pick your cost structure.
Related case studies
CTO
Credential Rotation Without Touching 1Password β Agent Handles the Keys
Automate API key rotation with 1Password and AI agents. 90-day scheduled rotation, zero plaintext exposure, full audit trail. Built on Mr.Chief.
Product Manager
Sprint Board That Updates Itself β Trello Cards Move With the Code
Trello cards auto-update from CI pipeline events. Code merged? Card moves to Done. Blocked? Red label added. Zero PM overhead with Mr.Chief AI agents.
Founder
ClawHub: From 15 Skills to 52 in One Afternoon β The Skill Marketplace That Scales Your Agent
Started with 15 bundled skills. ClawHub marketplace got us to 52 in one afternoon. Finance, legal, security, research β here's how we evaluated and installed 37 skills.
Want results like these?
Start free with your own AI team. No credit card required.