Skip to main content الرئيسية المنشئون jeremylongshore tons-of-skills-marketplace lindy-webhooks-events
lindy-webhooks-events Configure Lindy AI webhook triggers, callback patterns, and event handling.
Use when setting up webhook triggers, implementing callback receivers,
or building event-driven Lindy integrations.
Trigger with phrases like "lindy webhook", "lindy events",
"lindy callback", "lindy webhook trigger".
الانتقال إلى التثبيت سوق المهارات اكتشف واستكشف مهارات الذكاء الاصطناعي التي بناها المجتمع.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
نسخ Promptعرض تفاصيل Prompt يتجاوز الأمر المباشر Prompt المخصّص للمراجعة. افحص المصدر قبل تشغيله.
npx skills add https://github.com/jeremylongshore/tons-of-skills-marketplace --skill lindy-webhooks-eventsيبقى الأمر في سطر واحد. مرّر أفقيًا لمراجعته كاملًا قبل النسخ.
تفضّل نسخة محلية؟ نزّل الملفات المتاحة حاليًا لدى SkillsMP.
تحميل Zip جاري التحميل... المزيد من هذا المستودع langchain-deploy-integration Deploy a LangChain 1.0 / LangGraph 1.0 app to Cloud Run, Vercel, or LangServe correctly — with timeouts sized for chain length, cold-start mitigation, SSE anti-buffering headers, and Secret Manager over .env. Use when prepping a first production deploy, debugging a stream that hangs behind a proxy, or diagnosing p99 latency spikes. Trigger with "langchain deploy", "langchain cloud run", "langchain vercel python", "langchain langserve", or "langchain docker".
langchain-langgraph-agents Build a correct LangGraph 1.0 ReAct agent with create_react_agent — typed tools, error propagation, recursion caps, and stop conditions that actually stop. Use when writing a first tool-calling agent, migrating from AgentExecutor or initialize_agent, or diagnosing an agent that loops on vague prompts. Trigger with "langgraph agent", "create_react_agent", "langgraph tool calling", "AgentExecutor migration", or "agent loop cost".
langchain-langgraph-human-in-loop Build LangGraph 1.0 human-in-the-loop approval flows with interrupt_before /
interrupt_after and Command(resume=...) — JSON-serializable state, clean
resume semantics, and UI wiring for approval decisions. Use when adding an
approval gate before an expensive tool call, wiring a Slack/web UI for agent
approvals, or debugging a graph that crashes on interrupt.
Trigger with "langgraph human in loop", "langgraph interrupt_before",
"langgraph approval flow", "Command resume", "langgraph HITL".
name lindy-webhooks-events description Configure Lindy AI webhook triggers, callback patterns, and event handling.
Use when setting up webhook triggers, implementing callback receivers,
or building event-driven Lindy integrations.
Trigger with phrases like "lindy webhook", "lindy events",
"lindy callback", "lindy webhook trigger".
allowed-tools Read, Write, Edit, Bash(curl:*) version 1.15.0 license MIT author Jeremy Longshore <jeremy@intentsolutions.io> tags ["saas","lindy","webhooks"] compatibility Designed for Claude Code
Lindy Webhooks & Events
Overview
Lindy supports webhooks in two directions: Inbound (Webhook Received trigger
wakes an agent) and Outbound (HTTP Request action calls your API). This skill
covers both patterns, plus the callback pattern for async two-way communication.
Prerequisites
Lindy account with active agents
HTTPS endpoint for receiving callbacks (if using outbound/callback patterns)
Completed lindy-install-auth setup
Webhook Architecture
INBOUND (your system triggers Lindy):
[Your App] --POST--> https://public.lindy.ai/api/v1/webhooks/<id>
↓
[Lindy Agent Wakes Up]
↓
[Processes with LLM]
↓
[Executes Actions]
OUTBOUND (Lindy calls your system):
[Lindy Agent] --HTTP Request action--> https://your-api.com/endpoint
↓
[Your Handler]
CALLBACK (two-way async):
[Your App] --POST with callbackUrl--> [Lindy Agent]
↓
[Your App] <--POST to callbackUrl-- [Lindy: Send POST to Callback]
Instructions
Step 1: Create Webhook Received Trigger
In your agent, click the trigger node
Select Webhook Received
Lindy generates a unique URL:
https://public.lindy.ai/api/v1/webhooks/<unique-id>
Click Generate Secret — copy immediately (shown only once)
Configure follow-up processing mode:
Process in workflow : Handle in current workflow
Spawn separate task : Each webhook creates a new task
Discard follow-ups : Ignore subsequent requests while processing
Step 2: Access Webhook Data in Workflow
Reference incoming webhook data in any subsequent action field:
Variable Description Example {{webhook_received.request.body}}Full JSON payload {"event": "order.created", ...}{{webhook_received.request.body.event}}Specific field
{{webhook_received.request.headers}}All HTTP headers {"content-type": "application/json"}
{{webhook_received.request.query}}URL query params {"source": "stripe"}
Step 3: Implement Webhook Sender
interface LindyWebhookPayload {
event : string ;
data : Record <string , unknown >;
callbackUrl ?: string ;
metadata ?: Record <string , unknown >;
}
async function triggerLindy (payload : LindyWebhookPayload ): Promise <void > {
const response = await fetch (process.env .LINDY_WEBHOOK_URL !, {
method : 'POST' ,
headers : {
'Authorization' : `Bearer ${process.env.LINDY_WEBHOOK_SECRET} ` ,
'Content-Type' : 'application/json' ,
},
body : JSON .stringify (payload),
});
if (!response.ok ) {
throw new Error (`Lindy webhook failed: ${response.status} ` );
}
}
await triggerLindy ({
event : 'customer.support_request' ,
data : { email : 'user@co.com' , subject : 'Billing question' , body : '...' },
});
await triggerLindy ({
event : 'lead.qualified' ,
data : { name : 'Jane Doe' , company : 'Acme' , score : 85 },
callbackUrl : 'https://api.yourapp.com/lindy/callback' ,
});
Step 4: Implement Callback Receiver When you include a callbackUrl in your webhook payload, the agent can respond
using the Send POST Request to Callback action:
import express from 'express' ;
const app = express ();
app.use (express.json ());
app.post ('/lindy/callback' , (req, res ) => {
const auth = req.headers .authorization ;
if (auth !== `Bearer ${process.env.LINDY_WEBHOOK_SECRET} ` ) {
return res.status (401 ).json ({ error : 'Unauthorized' });
}
res.json ({ received : true });
handleCallback (req.body );
});
async function handleCallback (data : any ) {
console .log ('Lindy callback:' , data);
const { classification, sentiment, draft_response, confidence } = data;
if (confidence > 0.9 ) {
await sendAutoResponse (draft_response);
} else {
await escalateToHuman (data);
}
}
Step 5: Configure HTTP Request Action (Outbound) For Lindy agents that call your API as an action step:
Add action: HTTP Request
Configure:
Method : POST (or GET, PUT, DELETE)
URL : https://api.yourapp.com/endpoint
Headers (Set Manually):
Content-Type: application/json
Authorization: Bearer {{your_api_key}}
Body (AI Prompt mode):
Send the analysis result as JSON with fields:
classification, sentiment, summary
Based on: {{previous_step.result}}
Step 6: Add Trigger Filters Prevent unnecessary agent triggers:
Filter: body.event equals "order.created"
AND body.data.amount greater_than 100
This ensures the agent only processes high-value orders, saving credits.
Event Patterns
Pattern: Webhook + Slack Notification Webhook Received → Condition (classify event type)
→ "billing" → Search KB → Draft Reply → Send Email + Slack Alert
→ "technical" → Agent Step (investigate) → Create Ticket → Slack Alert
→ "other" → Forward to team inbox
Pattern: Webhook + Callback Webhook Received (with callbackUrl) → Process Data → Run Code
→ Send POST Request to Callback (returns results to caller)
Pattern: Webhook + Multi-Agent Webhook Received → Agent Send Message (to Research Lindy)
→ Research Lindy completes → Agent Send Message (to Writer Lindy)
→ Writer Lindy completes → Send Email with final output
Monitoring Triggers Lindy provides built-in monitoring triggers:
Task Completed : Fires when an agent completes a task
Use this to build observability pipelines: Agent completes → log to sheet → alert on failures
Error Handling Issue Cause Solution 401 on webhook send Wrong or missing Bearer token Verify secret matches Generate Secret value Webhook URL returns 404 Agent deleted or URL changed Re-copy URL from agent trigger settings Callback not received callbackUrl unreachable Ensure HTTPS, public endpoint, no firewall Duplicate processing Webhook retried Implement idempotency with event IDs Payload too large Body exceeds limit Reduce payload size, send references not data
Security
Always use HTTPS for webhook URLs
Generate and verify webhook secrets on every request
Rotate secrets every 90 days
Log all webhook attempts (including rejected ones)
Rate limit your webhook sender to prevent flooding
Resources
Next Steps Proceed to lindy-performance-tuning for agent optimization.