lindy-deploy-integration
Configure deployment pipelines for Lindy AI integrations. Use when deploying to production, setting up staging environments, or automating agent deployments. Trigger with phrases like "deploy lindy", "lindy deployment", "lindy production deploy", "release lindy agents".
Install
mkdir -p .claude/skills/lindy-deploy-integration && curl -L -o skill.zip "https://mcp.directory/api/skills/download/8912" && unzip -o skill.zip -d .claude/skills/lindy-deploy-integration && rm skill.zipInstalls to .claude/skills/lindy-deploy-integration
About this skill
Lindy Deploy Integration
Overview
Lindy agents run on Lindy's managed infrastructure. Deployment focuses on your integration layer: webhook receivers, callback handlers, and application code that Lindy agents interact with via HTTP Request actions and webhook triggers.
Prerequisites
- Lindy agents configured and tested
- Application with webhook receiver endpoints
- Deployment platform (Vercel, Railway, Docker, AWS, GCP)
- Lindy API key and webhook secrets
Instructions
Step 1: Prepare Application for Deployment
// src/server.ts — Production-ready Lindy webhook receiver
import express from 'express';
import helmet from 'helmet';
const app = express();
app.use(helmet());
app.use(express.json({ limit: '1mb' }));
// Health check for load balancer
app.get('/health', (req, res) => {
res.json({
status: 'ok',
timestamp: new Date().toISOString(),
version: process.env.APP_VERSION || 'unknown',
});
});
// Lindy webhook receiver with auth verification
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' });
}
// Respond immediately, process async
res.json({ received: true });
// Async processing
processWebhook(req.body).catch(err => {
console.error('Webhook processing error:', err);
});
});
async function processWebhook(payload: any) {
const { taskId, status, result } = payload;
// Your business logic here
console.log(`Task ${taskId}: ${status}`, result);
}
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => console.log(`Listening on :${PORT}`));
Step 2: Docker Deployment
# Dockerfile
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --production
COPY dist/ ./dist/
EXPOSE 3000
ENV NODE_ENV=production
HEALTHCHECK --interval=30s --timeout=3s \
CMD wget -qO- http://localhost:3000/health || exit 1
CMD ["node", "dist/server.js"]
# Build and run
docker build -t lindy-integration .
docker run -d \
-p 3000:3000 \
-e LINDY_API_KEY="$LINDY_API_KEY" \
-e LINDY_WEBHOOK_SECRET="$LINDY_WEBHOOK_SECRET" \
--name lindy-app \
lindy-integration
Step 3: Vercel Deployment
# Install Vercel CLI
npm i -g vercel
# Set secrets
vercel secrets add lindy-api-key "$LINDY_API_KEY"
vercel secrets add lindy-webhook-secret "$LINDY_WEBHOOK_SECRET"
# Deploy
vercel --prod
// vercel.json
{
"env": {
"LINDY_API_KEY": "@lindy-api-key",
"LINDY_WEBHOOK_SECRET": "@lindy-webhook-secret"
}
}
Step 4: Update Lindy Agent Webhook URLs
After deployment, update all Lindy agents with production URLs:
- In Lindy dashboard, open each agent with a webhook trigger
- Navigate to the HTTP Request action (if agent calls your API)
- Update URL from dev/staging to production:
OLD: https://abc123.ngrok.io/lindy/callback NEW: https://api.yourapp.com/lindy/callback - For webhook triggers, callers need the Lindy-generated URL (unchanged)
- Test with a sample webhook to verify end-to-end
Step 5: Post-Deploy Verification
#!/bin/bash
echo "=== Post-Deploy Verification ==="
PROD_URL="https://api.yourapp.com"
# Health check
echo "[1/3] Health check..."
curl -sf "$PROD_URL/health" | jq .
# Webhook endpoint reachable
echo "[2/3] Webhook endpoint..."
STATUS=$(curl -s -o /dev/null -w "%{http_code}" \
-X POST "$PROD_URL/lindy/callback" \
-H "Authorization: Bearer $LINDY_WEBHOOK_SECRET" \
-H "Content-Type: application/json" \
-d '{"test": true}')
echo "Webhook endpoint: HTTP $STATUS (expect 200)"
# Trigger a test agent run
echo "[3/3] Agent trigger test..."
curl -s -X POST "https://public.lindy.ai/api/v1/webhooks/YOUR_ID" \
-H "Authorization: Bearer $LINDY_WEBHOOK_SECRET" \
-H "Content-Type: application/json" \
-d '{"event": "deploy.verify", "env": "production"}'
echo "Agent triggered — check Tasks tab in Lindy dashboard"
Step 6: Rollback Plan
# If deployment fails, rollback:
# Vercel
vercel rollback
# Docker
docker stop lindy-app
docker run -d --name lindy-app-rollback \
-e LINDY_API_KEY="$LINDY_API_KEY" \
-e LINDY_WEBHOOK_SECRET="$LINDY_WEBHOOK_SECRET" \
lindy-integration:previous-tag
# Update Lindy agents back to previous URLs if needed
Deployment Checklist
| Step | Verification |
|---|---|
| Build passes | npm run build exits 0 |
| Tests pass | npm test all green |
| Secrets configured | API key + webhook secret in platform |
| Health check responds | GET /health returns 200 |
| Webhook auth works | POST with valid token returns 200 |
| Webhook auth rejects | POST without token returns 401 |
| Lindy agent URLs updated | HTTP Request actions point to prod |
| End-to-end test | Trigger agent, receive callback |
Error Handling
| Issue | Cause | Solution |
|---|---|---|
| Webhook 502 | App crashed/not running | Check container logs, restart |
| Webhook timeout | Slow processing | Respond 200 immediately, process async |
| Wrong URL in Lindy | Not updated post-deploy | Update HTTP Request action URLs |
| SSL error | Certificate issue | Verify HTTPS cert is valid |
| Secret mismatch | Dev secret in prod | Verify production secrets match Lindy config |
Resources
Next Steps
See lindy-webhooks-events for advanced webhook patterns.
More by jeremylongshore
View all skills by jeremylongshore →You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
pdf-to-markdown
aliceisjustplaying
Convert entire PDF documents to clean, structured Markdown for full context loading. Use this skill when the user wants to extract ALL text from a PDF into context (not grep/search), when discussing or analyzing PDF content in full, when the user mentions "load the whole PDF", "bring the PDF into context", "read the entire PDF", or when partial extraction/grepping would miss important context. This is the preferred method for PDF text extraction over page-by-page or grep approaches.
Related MCP Servers
Browse all serversEffortlessly manage Netlify projects with AI using the Netlify MCP Server—automate deployment, sites, and more via natur
Pica is automated workflow software for business process automation, integrating actions across services via a unified i
Streamline DevOps workflows by managing configurations, pipelines, and metrics with Cribl Stream for optimized data proc
Integrate with Superjolt to manage JavaScript apps, configure domains, set environment variables, and monitor logs using
XcodeBuild streamlines iOS app development for Apple developers with tools for building, debugging, and deploying iOS an
Connect Supabase projects to AI with Supabase MCP Server. Standardize LLM communication for secure, efficient developmen
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.