Overview
n8n is a powerful workflow automation platform that lets you connect APIs, databases, and services with a visual interface. Integrate Syra into n8n workflows to automate trading intelligence, research pipelines, and alert systems.
Use Cases:
Automated daily market briefings
Token screening and alert workflows
Research automation with scheduled triggers
Multi-source intelligence aggregation
Custom notification systems (Discord, Slack, Email)
Why n8n + Syra?
Visual Workflow Builder No-code interface for building complex automations
500+ Integrations Connect Syra with Discord, Telegram, databases, and more
Scheduled Execution Run workflows on cron schedules or event triggers
Data Transformation Process and format Syra API responses with JavaScript
Prerequisites
n8n Installation
Install n8n (choose one method): Docker (recommended): docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
n8nio/n8n
npm: npm install -g n8n
n8n start
Desktop App:
Download from n8n.io/download
Syra API Access
Youāll need:
Syra API base URL: https://api.syraa.fun
For paid endpoints: Solana wallet with x402 payment capability
For dev/testing: Local Syra API with dev routes
Quick Start: First Workflow
Create a simple workflow to fetch daily crypto news:
Create New Workflow
In n8n, click + New Workflow
Add Schedule Trigger
Click Add first step
Search for Schedule Trigger
Configure: Every day at 9:00 AM
Add HTTP Request Node
Click + to add node
Search for HTTP Request
Configure:
Method: GET
URL: https://api.syraa.fun/news?ticker=general
Authentication: None (for free endpoints)
Add Discord/Slack/Email Node
Add notification node of your choice
Format the message using Syra API response
Send to your channel/inbox
Test & Activate
Click Test workflow
Verify output
Click Active to enable scheduled execution
Example Workflows
1. Daily Market Brief
Trigger: Every day at 8:00 AM
Actions:
Fetch sundown digest
Get BTC signal
Get ETH signal
Fetch general news
Format as report
Send to Discord channel
View Workflow Configuration
{
"nodes" : [
{
"name" : "Schedule" ,
"type" : "n8n-nodes-base.scheduleTrigger" ,
"parameters" : {
"rule" : {
"interval" : [
{
"field" : "cronExpression" ,
"expression" : "0 8 * * *"
}
]
}
}
},
{
"name" : "Syra Sundown Digest" ,
"type" : "n8n-nodes-base.httpRequest" ,
"parameters" : {
"url" : "https://api.syraa.fun/sundown-digest" ,
"method" : "GET"
}
},
{
"name" : "BTC Signal" ,
"type" : "n8n-nodes-base.httpRequest" ,
"parameters" : {
"url" : "https://api.syraa.fun/signal?token=bitcoin" ,
"method" : "GET"
}
},
{
"name" : "Format Report" ,
"type" : "n8n-nodes-base.code" ,
"parameters" : {
"jsCode" : "const digest = $('Syra Sundown Digest').first().json; \n const btc = $('BTC Signal').first().json; \n\n return [{ json: { message: `**Daily Crypto Brief** \\ n${digest.summary} \\ n \\ n**BTC Signal:** ${btc.signal}` } }];"
}
},
{
"name" : "Send to Discord" ,
"type" : "n8n-nodes-base.discord" ,
"parameters" : {
"content" : "={{ $json.message }}"
}
}
]
}
2. Memecoin Screener Alert
Trigger: Every hour
Actions:
Fetch fastest holder growth memecoins
Fetch smart money mentions
Find overlaps (tokens in both lists)
If overlaps found ā Send alert
View Workflow Configuration
{
"nodes" : [
{
"name" : "Schedule Hourly" ,
"type" : "n8n-nodes-base.scheduleTrigger" ,
"parameters" : {
"rule" : {
"interval" : [
{
"field" : "hours" ,
"hoursInterval" : 1
}
]
}
}
},
{
"name" : "Fastest Growth" ,
"type" : "n8n-nodes-base.httpRequest" ,
"parameters" : {
"url" : "https://api.syraa.fun/memecoin/fastest-holder-growth"
}
},
{
"name" : "Smart Money" ,
"type" : "n8n-nodes-base.httpRequest" ,
"parameters" : {
"url" : "https://api.syraa.fun/memecoin/most-mentioned-by-smart-money-x"
}
},
{
"name" : "Find Overlaps" ,
"type" : "n8n-nodes-base.code" ,
"parameters" : {
"jsCode" : "const growth = $('Fastest Growth').first().json.tokens; \n const smartMoney = $('Smart Money').first().json.tokens; \n const overlaps = growth.filter(g => smartMoney.some(s => s.address === g.address)); \n\n if (overlaps.length > 0) { \n return overlaps.map(token => ({ json: token })); \n } \n return [];"
}
},
{
"name" : "Send Alert" ,
"type" : "n8n-nodes-base.discord" ,
"parameters" : {
"content" : "šØ High-potential memecoin detected: {{ $json.name }} ({{ $json.address }})"
}
}
]
}
3. Token Research Pipeline
Trigger: Webhook (manual or external trigger)
Input: Token address
Actions:
Get token report (Rugcheck)
Get holder distribution (Bubblemaps)
Get KOL mentions (X)
Get trading signal
Aggregate into comprehensive report
Save to database
Send notification
View Workflow Configuration
{
"nodes" : [
{
"name" : "Webhook" ,
"type" : "n8n-nodes-base.webhook" ,
"parameters" : {
"path" : "research-token" ,
"method" : "POST" ,
"responseMode" : "lastNode"
}
},
{
"name" : "Token Report" ,
"type" : "n8n-nodes-base.httpRequest" ,
"parameters" : {
"url" : "https://api.syraa.fun/token-report?address={{ $json.tokenAddress }}"
}
},
{
"name" : "Bubblemaps" ,
"type" : "n8n-nodes-base.httpRequest" ,
"parameters" : {
"url" : "https://api.syraa.fun/bubblemaps/maps?address={{ $json.tokenAddress }}"
}
},
{
"name" : "X KOL Analysis" ,
"type" : "n8n-nodes-base.httpRequest" ,
"parameters" : {
"url" : "https://api.syraa.fun/x-kol?address={{ $json.tokenAddress }}"
}
},
{
"name" : "Aggregate Report" ,
"type" : "n8n-nodes-base.code" ,
"parameters" : {
"jsCode" : "const report = $('Token Report').first().json; \n const bubbles = $('Bubblemaps').first().json; \n const kol = $('X KOL Analysis').first().json; \n\n return [{ \n json: { \n address: $('Webhook').first().json.tokenAddress, \n rugScore: report.rugScore, \n holderConcentration: bubbles.concentration, \n kolSentiment: kol.sentiment, \n timestamp: new Date().toISOString() \n } \n }];"
}
},
{
"name" : "Save to Database" ,
"type" : "n8n-nodes-base.postgres" ,
"parameters" : {
"operation" : "insert"
}
}
]
}
4. Sentiment Monitoring
Trigger: Every 6 hours
Actions:
Fetch sentiment for BTC, ETH, SOL
Compare with previous sentiment (from database)
If significant change (>20%) ā Alert
5. Research Automation
Trigger: Daily at 6:00 PM
Actions:
Get trending topics from /gems
For each topic:
Call /research?query={topic}&type=deep
Extract key insights
Compile into research digest
Email to subscribers
Syra API Nodes
Common HTTP Request configurations for Syra endpoints:
{
"method" : "GET" ,
"url" : "https://api.syraa.fun/news" ,
"qs" : {
"ticker" : "={{ $json.ticker || 'general' }}"
}
}
{
"method" : "GET" ,
"url" : "https://api.syraa.fun/signal" ,
"qs" : {
"token" : "={{ $json.token || 'bitcoin' }}"
}
}
Research
{
"method" : "GET" ,
"url" : "https://api.syraa.fun/research" ,
"qs" : {
"query" : "={{ $json.query }}" ,
"type" : "deep"
}
}
Token Report
{
"method" : "GET" ,
"url" : "https://api.syraa.fun/token-report" ,
"qs" : {
"address" : "={{ $json.address }}"
}
}
Handling x402 Payments
For paid endpoints, you need to handle x402 payments in n8n:
Use Function Node for Payment
Add a Function node before the HTTP request to generate payment signature: // This is a simplified example
// You'll need to implement full x402 payment logic
const { Connection , Keypair } = require ( '@solana/web3.js' );
const { createPayment } = require ( '@x402/core' );
// Load wallet from credentials
const keypair = Keypair . fromSecretKey (
Buffer . from ( process . env . SOLANA_PRIVATE_KEY )
);
// Create payment signature
const payment = await createPayment ({
endpoint: '/token-report' ,
amount: 0.001 , // SOL
recipient: 'SYRA_TREASURY_ADDRESS' ,
signer: keypair
});
return [{
json: {
paymentSignature: payment . signature
}
}];
Add Payment Header
In the HTTP Request node: {
"headerParameters" : {
"parameters" : [
{
"name" : "X-Payment" ,
"value" : "={{ $json.paymentSignature }}"
}
]
}
}
Alternative: Use local Syra API with dev routes (/endpoint/dev) to skip payments during development.
Process Syra API responses with the Code node:
const response = $ ( 'Syra Signal' ). first (). json ;
// Extract actionable data
const insights = {
token: response . token ,
price: response . marketOverview . price ,
trend: response . technicalIndicators . trend ,
rsi: response . technicalIndicators . rsi ,
recommendation: response . actionPerspectives . bias ,
confidence: response . aiInsights . confidence
};
return [{ json: insights }];
const signal = $ ( 'Syra Signal' ). first (). json ;
const message = `
** ${ signal . token . toUpperCase () } Trading Signal**
š° Price: $ ${ signal . marketOverview . price }
š Trend: ${ signal . technicalIndicators . trend }
š RSI: ${ signal . technicalIndicators . rsi }
šÆ Bias: ${ signal . actionPerspectives . bias }
ā
Confidence: ${ ( signal . aiInsights . confidence * 100 ). toFixed ( 1 ) } %
` ;
return [{ json: { content: message } }];
Aggregate Multiple Sources
const news = $ ( 'News' ). first (). json ;
const sentiment = $ ( 'Sentiment' ). first (). json ;
const signal = $ ( 'Signal' ). first (). json ;
const aggregated = {
timestamp: new Date (). toISOString (),
news: news . headlines . slice ( 0 , 3 ),
sentiment: sentiment . overall ,
signal: {
trend: signal . technicalIndicators . trend ,
confidence: signal . aiInsights . confidence
}
};
return [{ json: aggregated }];
Error Handling
Add error handling to your workflows:
Retry on Failure
{
"continueOnFail" : true ,
"retryOnFail" : true ,
"maxTries" : 3 ,
"waitBetweenTries" : 5000
}
Conditional Alerts
// In Code node
const response = $ ( 'HTTP Request' ). first ();
if ( response . statusCode === 402 ) {
// Payment required
return [{
json: {
error: 'Payment required' ,
endpoint: response . url
}
}];
} else if ( response . statusCode >= 400 ) {
// Other error
return [{
json: {
error: 'Request failed' ,
status: response . statusCode ,
message: response . body . message
}
}];
}
return response ;
Scheduling Options
Cron Expression
Simple Interval
Webhook Trigger
0 8 * * * # Every day at 8 AM
0 */6 * * * # Every 6 hours
0 9 * * 1 # Every Monday at 9 AM
*/30 * * * * # Every 30 minutes
Every minute
Every 5 minutes
Every hour
Every day
Every week
Trigger workflows via HTTP: curl -X POST https://your-n8n.com/webhook/research-token \
-H "Content-Type: application/json" \
-d '{"tokenAddress": "<solana_address>"}'
Integration Examples
Discord Bot
Schedule trigger (daily)
Fetch Syra sundown digest
Format as embed
Send via Discord webhook
Telegram Notifications
Monitor memecoin screens
Detect new opportunities
Send alert via Telegram bot
Database Logging
Fetch signals every hour
Store in PostgreSQL
Build historical dataset for analysis
Email Reports
Aggregate daily intelligence
Generate PDF report
Email to subscribers
Best Practices
Recommendations:
Use environment variables for API URLs and credentials
Implement error handling with retry logic
Rate limit your workflows to avoid API throttling
Test workflows manually before activating schedules
Monitor execution logs for failures
Use dev routes for testing, then switch to production
Troubleshooting
Check workflow is Active (toggle in top-right)
Verify cron expression is correct
Check n8n server is running
Review execution logs for errors
Verify API URL is correct
Check for 402 payment requirements
Ensure parameters are properly formatted
Review n8n HTTP request logs
Data transformation errors
Payment integration issues
Use dev routes for testing
Verify Solana wallet has sufficient balance
Check x402 payment signature format
Review API payment error messages
Next Steps
API Reference Complete endpoint documentation
x402 Agent Deploy autonomous agents
API Playground Test endpoints interactively
MCP Server Use Syra in AI assistants