Lindy Hello World
Overview
Build a minimal Lindy AI agent: Webhook Received trigger -> LLM processing -> Slack notification. Demonstrates the three core building blocks every Lindy agent uses: Trigger, Agent Step (prompt + model + skills), and Action.
Prerequisites
- Lindy account at https://app.lindy.ai
- Slack workspace connected (or Gmail for email variant)
- Completed
lindy-install-authsetup
Instructions
Step 1: Create Agent via Dashboard
- Click "New Agent" at https://app.lindy.ai
- In the prompt field ("How can I help you?"), type:
When I send a webhook, summarize the message and post it to Slack - Agent Builder auto-generates the workflow with trigger + action nodes
Step 2: Configure the Webhook Trigger
- Click the trigger node at the top of the workflow canvas
- Select Webhook Received
- Copy the generated URL:
https://public.lindy.ai/api/v1/webhooks/<unique-id> - Click Generate Secret — copy immediately (shown once)
Step 3: Add the Slack Action
- Click "+" to add a step
- Search for Slack Send Channel Message
- Authorize your Slack workspace when prompted
- Configure fields:
- Channel:
#general(or test channel) - Message field mode: AI Prompt
- Instruction:
Summarize the webhook payload in one sentence. Payload: {{webhook_received.request.body}}
- Channel:
Step 4: Set the Agent Prompt
Open Settings > Prompt:
You are a webhook summarizer. When you receive a webhook payload,
extract the key information and create a concise one-sentence summary.
Be factual and specific. Do not add opinions or speculation.
Step 5: Test It
curl -X POST "https://public.lindy.ai/api/v1/webhooks/YOUR_ID" \
-H "Authorization: Bearer YOUR_SECRET" \
-H "Content-Type: application/json" \
-d '{
"event": "order.created",
"customer": "Jane Doe",
"amount": 149.99,
"items": ["Widget Pro", "Adapter Cable"]
}'
Expected Slack message:
Jane Doe placed a $149.99 order for Widget Pro and Adapter Cable.
Step 6: Verify in Dashboard
Navigate to the Tasks tab in your agent view. Confirm status shows Completed. Click into the task to see each step's input/output for debugging.
Agent Anatomy
| Component | Purpose | Hello World Value | |-----------|---------|-------------------| | Prompt | Core behavioral instructions | "Summarize webhook payloads" | | Model | AI engine powering decisions | Default (GPT-4 / Claude / Gemini) | | Skills | Available actions & tools | Slack Send Channel Message | | Exit Conditions | When the task is "done" | Message sent successfully |
Webhook Data Variables
| Variable | Contents |
|----------|----------|
| {{webhook_received.request.body}} | Full JSON payload |
| {{webhook_received.request.headers}} | HTTP request headers |
| {{webhook_received.request.query}} | URL query parameters |
Field Configuration Modes
| Mode | Behavior | Credit Cost | |------|----------|-------------| | Auto | Agent determines value from context | Standard | | AI Prompt | Natural language instructions generate content | Standard | | Set Manually | Exact value, no AI processing | Lower |
Variant: Email Instead of Slack
Replace the Slack action with Gmail Send Email:
- To: Set manually or reference a webhook field
- Subject: AI Prompt —
"Summary: {{webhook_received.request.body.event}}" - Body: AI Prompt —
"Summarize this event: {{webhook_received.request.body}}"
Error Handling
| Issue | Cause | Solution |
|-------|-------|----------|
| Webhook returns 401 | Missing Authorization header | Add Bearer <secret> header |
| Slack message not sent | Channel not authorized | Re-authorize Slack in Lindy |
| Task shows "Failed" | Action misconfigured | Check field references in step config |
| No task created | Agent not active | Publish/activate the agent |
| Empty summary | Payload not reaching LLM | Verify {{webhook_received.request.body}} reference |
Cost
~1-3 credits per invocation on basic models. Free tier (400 credits/month) supports ~130-400 test runs per month.
Resources
Next Steps
Proceed to lindy-core-workflow-a for a full multi-step agent workflow.