Skip to main content

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

1

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
2

Access n8n

Open http://localhost:5678 in your browser
3

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:
1

Create New Workflow

In n8n, click + New Workflow
2

Add Schedule Trigger

  1. Click Add first step
  2. Search for Schedule Trigger
  3. Configure: Every day at 9:00 AM
3

Add HTTP Request Node

  1. Click + to add node
  2. Search for HTTP Request
  3. Configure:
    • Method: GET
    • URL: https://api.syraa.fun/news?ticker=general
    • Authentication: None (for free endpoints)
4

Add Discord/Slack/Email Node

  1. Add notification node of your choice
  2. Format the message using Syra API response
  3. Send to your channel/inbox
5

Test & Activate

  1. Click Test workflow
  2. Verify output
  3. Click Active to enable scheduled execution

Example Workflows

1. Daily Market Brief

Trigger: Every day at 8:00 AM
Actions:
  1. Fetch sundown digest
  2. Get BTC signal
  3. Get ETH signal
  4. Fetch general news
  5. Format as report
  6. Send to Discord channel
{
  "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;\nconst btc = $('BTC Signal').first().json;\n\nreturn [{ 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:
  1. Fetch fastest holder growth memecoins
  2. Fetch smart money mentions
  3. Find overlaps (tokens in both lists)
  4. If overlaps found → Send alert
{
  "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;\nconst smartMoney = $('Smart Money').first().json.tokens;\nconst overlaps = growth.filter(g => smartMoney.some(s => s.address === g.address));\n\nif (overlaps.length > 0) {\n  return overlaps.map(token => ({ json: token }));\n}\nreturn [];"
      }
    },
    {
      "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:
  1. Get token report (Rugcheck)
  2. Get holder distribution (Bubblemaps)
  3. Get KOL mentions (X)
  4. Get trading signal
  5. Aggregate into comprehensive report
  6. Save to database
  7. Send notification
{
  "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;\nconst bubbles = $('Bubblemaps').first().json;\nconst kol = $('X KOL Analysis').first().json;\n\nreturn [{\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:
  1. Fetch sentiment for BTC, ETH, SOL
  2. Compare with previous sentiment (from database)
  3. If significant change (>20%) → Alert

5. Research Automation

Trigger: Daily at 6:00 PM
Actions:
  1. Get trending topics from /gems
  2. For each topic:
    • Call /research?query={topic}&type=deep
    • Extract key insights
  3. Compile into research digest
  4. Email to subscribers

Syra API Nodes

Common HTTP Request configurations for Syra endpoints:

News

{
  "method": "GET",
  "url": "https://api.syraa.fun/news",
  "qs": {
    "ticker": "={{ $json.ticker || 'general' }}"
  }
}

Signal

{
  "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:
1

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
  }
}];
2

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.

Data Transformation

Process Syra API responses with the Code node:

Extract Key Insights

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 }];

Format for Discord

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

0 8 * * *       # Every day at 8 AM
0 */6 * * *     # Every 6 hours
0 9 * * 1       # Every Monday at 9 AM
*/30 * * * *    # Every 30 minutes

Integration Examples

Discord Bot

  1. Schedule trigger (daily)
  2. Fetch Syra sundown digest
  3. Format as embed
  4. Send via Discord webhook

Telegram Notifications

  1. Monitor memecoin screens
  2. Detect new opportunities
  3. Send alert via Telegram bot

Database Logging

  1. Fetch signals every hour
  2. Store in PostgreSQL
  3. Build historical dataset for analysis

Email Reports

  1. Aggregate daily intelligence
  2. Generate PDF report
  3. 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
  • Use n8n’s data view to inspect node outputs
  • Test JavaScript code in Code node
  • Check for null/undefined values
  • Verify JSON path expressions
  • 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

Build docs developers (and LLMs) love