220 lines
5.3 KiB
Markdown
220 lines
5.3 KiB
Markdown
# 🚀 n8n Integration - Quick Reference Card
|
|
|
|
## 📡 API Endpoints
|
|
|
|
### Get Supported Modules
|
|
```
|
|
GET /api/v1/n8n/providers
|
|
```
|
|
|
|
### Fetch Any Provider Data
|
|
```
|
|
GET /api/v1/n8n/data/{provider}/{service}/{module}
|
|
```
|
|
|
|
### Zoho Shortcuts
|
|
```
|
|
GET /api/v1/n8n/zoho/crm/leads
|
|
GET /api/v1/n8n/zoho/crm/contacts
|
|
GET /api/v1/n8n/zoho/crm/accounts
|
|
GET /api/v1/n8n/zoho/crm/deals
|
|
GET /api/v1/n8n/zoho/books/invoices
|
|
GET /api/v1/n8n/zoho/people/employees
|
|
GET /api/v1/n8n/zoho/projects/projects
|
|
```
|
|
|
|
### Salesforce Shortcuts
|
|
```
|
|
GET /api/v1/n8n/salesforce/crm/leads
|
|
GET /api/v1/n8n/salesforce/crm/accounts
|
|
GET /api/v1/n8n/salesforce/crm/opportunities
|
|
GET /api/v1/n8n/salesforce/crm/tasks
|
|
GET /api/v1/n8n/salesforce/crm/events
|
|
```
|
|
|
|
## 🔑 Query Parameters
|
|
|
|
| Parameter | Type | Default | Max | Description |
|
|
|-----------|------|---------|-----|-------------|
|
|
| `limit` | number | 200 | 1000 | Records per page |
|
|
| `page` | number | 1 | - | Page number (Zoho) |
|
|
| `offset` | number | 0 | - | Offset (Salesforce - deprecated) |
|
|
| `nextRecordsUrl` | string | null | - | Next page URL (Salesforce pagination) |
|
|
|
|
### Salesforce Pagination
|
|
Salesforce uses `nextRecordsUrl` for pagination. See `docs/SALESFORCE_PAGINATION.md` for details.
|
|
|
|
## 📋 Response Format
|
|
|
|
### Zoho Response
|
|
```json
|
|
{
|
|
"status": "success",
|
|
"message": "...",
|
|
"data": {
|
|
"success": true,
|
|
"data": [...],
|
|
"count": 10,
|
|
"metadata": {}
|
|
},
|
|
"timestamp": "2025-10-09T..."
|
|
}
|
|
```
|
|
|
|
### Salesforce Response
|
|
```json
|
|
{
|
|
"status": "success",
|
|
"message": "...",
|
|
"data": {
|
|
"success": true,
|
|
"data": [...],
|
|
"count": 200,
|
|
"metadata": {
|
|
"totalSize": 7530,
|
|
"done": false,
|
|
"nextRecordsUrl": "/services/data/v61.0/query/..."
|
|
}
|
|
},
|
|
"timestamp": "2025-10-09T..."
|
|
}
|
|
```
|
|
|
|
## 🎯 Supported Modules
|
|
|
|
### Zoho CRM (8)
|
|
`leads`, `contacts`, `accounts`, `deals`, `tasks`, `invoices`, `purchase_orders`, `sales_orders`
|
|
|
|
### Zoho Books (10)
|
|
`organizations`, `contacts`, `customers`, `vendors`, `accounts`, `invoices`, `bills`, `expenses`, `purchase_orders`, `sales_orders`
|
|
|
|
### Zoho People (11)
|
|
`employees`, `departments`, `timesheets`, `leaves`, `attendence`, `attendence_entries`, `attendence_report`, `leave_tracker`, `leaves_data`, `goals_data`, `performance_data`
|
|
|
|
### Zoho Projects (8)
|
|
`portals`, `projects`, `tasks`, `all_tasks`, `tasklists`, `all_tasklists`, `issues`, `phases`
|
|
|
|
### Salesforce CRM (6)
|
|
`leads`, `accounts`, `tasks`, `opportunities`, `events`, `reports`
|
|
|
|
## 💻 Code Snippets
|
|
|
|
### JavaScript/Fetch
|
|
```javascript
|
|
const response = await fetch(
|
|
'http://localhost:3000/api/v1/n8n/zoho/crm/leads?limit=100',
|
|
{ headers: { 'Authorization': `Bearer ${token}` }}
|
|
);
|
|
const data = await response.json();
|
|
```
|
|
|
|
### Axios
|
|
```javascript
|
|
const { data } = await axios.get(
|
|
'/api/v1/n8n/zoho/crm/leads',
|
|
{
|
|
params: { limit: 100 },
|
|
headers: { Authorization: `Bearer ${token}` }
|
|
}
|
|
);
|
|
```
|
|
|
|
### cURL
|
|
```bash
|
|
curl -X GET "http://localhost:3000/api/v1/n8n/zoho/crm/leads?limit=100" \
|
|
-H "Authorization: Bearer $TOKEN"
|
|
```
|
|
|
|
## 🔧 Environment Variables
|
|
|
|
```env
|
|
N8N_WEBHOOK_URL=http://localhost:5678
|
|
N8N_WEBHOOK_ID=04e677f5-ec57-4772-bf12-96f2610d4b9c
|
|
```
|
|
|
|
## 🐛 Common Errors
|
|
|
|
| Error | Cause | Solution |
|
|
|-------|-------|----------|
|
|
| `n8n workflow execution failed` | n8n offline | Start n8n |
|
|
| `Authentication not found` | No OAuth token | Authenticate user |
|
|
| `Unsupported combination` | Invalid module | Check `/providers` |
|
|
| `Timeout` | Slow API | Reduce limit |
|
|
|
|
## 📊 Status Codes
|
|
|
|
| Code | Meaning |
|
|
|------|---------|
|
|
| 200 | Success |
|
|
| 400 | Validation error / Unsupported module |
|
|
| 401 | Unauthorized (invalid JWT) |
|
|
| 404 | Route not found |
|
|
| 500 | Server error |
|
|
|
|
## ⚡ Performance Tips
|
|
|
|
1. **Use pagination** for large datasets
|
|
2. **Cache responses** in Redis
|
|
3. **Parallel requests** with `Promise.all()`
|
|
4. **Reduce limit** if timeout occurs
|
|
5. **Monitor** n8n workflow logs
|
|
|
|
## 🔐 Security Checklist
|
|
|
|
- [ ] JWT token in Authorization header
|
|
- [ ] Tokens encrypted in database
|
|
- [ ] Rate limiting enabled
|
|
- [ ] HTTPS in production
|
|
- [ ] Input validation active
|
|
|
|
## 🎯 Quick Test
|
|
|
|
```bash
|
|
# 1. Login
|
|
curl -X POST http://localhost:3000/api/v1/auth/login \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"email":"user@example.com","password":"password"}'
|
|
|
|
# 2. Save token from response
|
|
TOKEN="eyJhbGc..."
|
|
|
|
# 3. Test endpoint
|
|
curl -X GET "http://localhost:3000/api/v1/n8n/zoho/crm/leads?limit=10" \
|
|
-H "Authorization: Bearer $TOKEN"
|
|
```
|
|
|
|
## 📚 Documentation Links
|
|
|
|
- **Full Guide**: `docs/N8N_INTEGRATION.md`
|
|
- **Examples**: `docs/N8N_SETUP_EXAMPLE.md`
|
|
- **Summary**: `docs/N8N_IMPLEMENTATION_SUMMARY.md`
|
|
- **Module Docs**: `src/integrations/n8n/README.md`
|
|
|
|
## 🆘 Troubleshooting Steps
|
|
|
|
1. Check n8n is running: `http://localhost:5678`
|
|
2. Verify workflow is activated
|
|
3. Check user has OAuth tokens: Query `user_auth_tokens` table
|
|
4. Test n8n webhook directly with Postman
|
|
5. Check backend logs for errors
|
|
6. Verify environment variables
|
|
7. Check provider API status
|
|
|
|
## ✅ Pre-Deployment Checklist
|
|
|
|
- [ ] n8n workflow imported & activated
|
|
- [ ] Environment variables set
|
|
- [ ] Database migration run
|
|
- [ ] OAuth credentials configured
|
|
- [ ] Test with real user account
|
|
- [ ] Error handling tested
|
|
- [ ] Rate limiting verified
|
|
- [ ] Logs configured
|
|
- [ ] Documentation reviewed
|
|
- [ ] Team trained on endpoints
|
|
|
|
---
|
|
**Last Updated**: October 9, 2025
|
|
**Version**: 1.0.0
|
|
|