Add Zulip to n8n integration guide
This commit is contained in:
94
docs/zulip-n8n-integration.md
Normal file
94
docs/zulip-n8n-integration.md
Normal file
@@ -0,0 +1,94 @@
|
||||
# Zulip to n8n Integration Guide
|
||||
|
||||
## Prerequisites
|
||||
- Zulip organization at https://saas.mylder.io
|
||||
- n8n instance at https://n8n.mylder.io
|
||||
- Admin access to both
|
||||
|
||||
## Step 1: Create Zulip Organization
|
||||
|
||||
1. Visit the realm creation link (admin generated)
|
||||
2. Create an organization named "Dev Team"
|
||||
3. Set up your admin account
|
||||
|
||||
## Step 2: Create n8n Webhook Endpoint
|
||||
|
||||
1. Log in to n8n at https://n8n.mylder.io
|
||||
2. Import the command-router workflow from Gitea:
|
||||
- URL: https://gitea.mylder.io/admin/skills-library/raw/branch/main/workflows/command-router.json
|
||||
3. Activate the workflow
|
||||
4. Copy the webhook URL (format: https://n8n.mylder.io/webhook/command-router)
|
||||
|
||||
## Step 3: Create Zulip Outgoing Webhook Bot
|
||||
|
||||
1. Go to Zulip Settings > Bots
|
||||
2. Add a new bot:
|
||||
- **Type**: Outgoing webhook
|
||||
- **Name**: n8n Command Router
|
||||
- **Email prefix**: n8n-bot
|
||||
- **Endpoint URL**: https://n8n.mylder.io/webhook/zulip-commands
|
||||
- **Interface**: Generic
|
||||
|
||||
## Step 4: Configure Message Triggers
|
||||
|
||||
In Zulip Bot settings:
|
||||
- Set trigger to "Messages starting with @-mention"
|
||||
- Or use stream subscription for specific channels
|
||||
|
||||
## Step 5: Test the Integration
|
||||
|
||||
Send a message in Zulip:
|
||||
```
|
||||
@n8n-bot /project create test-app
|
||||
```
|
||||
|
||||
Expected response:
|
||||
```
|
||||
Creating project test-app...
|
||||
- Gitea repo: https://gitea.mylder.io/admin/test-app
|
||||
- Penpot board: Created
|
||||
- CI/CD: Configured
|
||||
```
|
||||
|
||||
## Webhook Payload Format
|
||||
|
||||
Zulip sends this payload to n8n:
|
||||
```json
|
||||
{
|
||||
"bot_email": "n8n-bot@saas.mylder.io",
|
||||
"message": {
|
||||
"sender_email": "user@example.com",
|
||||
"content": "/project create test-app",
|
||||
"stream_id": 1,
|
||||
"subject": "general"
|
||||
},
|
||||
"token": "webhook_token"
|
||||
}
|
||||
```
|
||||
|
||||
## Supported Commands
|
||||
|
||||
| Command | Description |
|
||||
|---------|-------------|
|
||||
| /project create <name> | Initialize new SaaS project |
|
||||
| /project status | Get cross-service status |
|
||||
| /code review <PR#> | AI code review |
|
||||
| /deploy preview <branch> | Deploy preview environment |
|
||||
| /sprint plan | AI-assisted sprint planning |
|
||||
| /dt ideate <problem> | Generate solution ideas |
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Webhook not firing
|
||||
- Check Zulip bot is active
|
||||
- Verify endpoint URL is correct
|
||||
- Check n8n workflow is activated
|
||||
|
||||
### n8n not responding
|
||||
- Check n8n container status: `docker ps | grep n8n`
|
||||
- Check n8n logs: `docker logs n8n-container`
|
||||
|
||||
### Authentication errors
|
||||
- Verify webhook token matches in both systems
|
||||
- Check CORS settings in n8n
|
||||
|
||||
Reference in New Issue
Block a user