How can I send weekly analytics from amoCRM (Russian domain) to Telegram group using n8n?

Hello everyone

I’m trying to build an automation in n8n that sends a weekly analytics report from my amoCRM (Russian domain: amocrm.ru) to a Telegram group every Saturday at 18:00.
The message should look like this:
:bar_chart: Weekly Analytics — Company name

:inbox_tray: New deals created: xx
:telephone: Total calls: xx
:chart_increasing: Average daily calls: ~x
:yellow_circle: Deals without tasks: xx
:red_circle: Overdue tasks: xx
:white_check_mark: Closed (won) deals: xx

However, I noticed that the amoCRM node is not available in n8n for Russian amoCRM domains (like .amocrm.ru).

I’d like to ask:

  1. How can I connect my amoCRM (Russian account) to n8n — should I use HTTP Request nodes with OAuth tokens?

  2. What nodes should I use to get this data automatically every week (for example: deals, calls, and tasks)?

  3. How can I format this data and send it to Telegram every Saturday at 18:00?

Any example workflows, node configurations, or advice would be very helpful :folded_hands:

Thank you in advance!

n8n amoCRM Integration & Weekly Telegram Report1. Connect amoCRM (Russian Account) to n8n

  • Install community node: npm install n8n-nodes-amocrm (restart n8n).

  • In amoCRM: Settings > Integrations > Create > Get Integration ID, Secret Key, Subdomain.

  • In n8n: Add AmoCRM node > New Credentials > Enter ID/Secret/Subdomain > Connect & Authorize (OAuth2 handled automatically).

  • Alternative (manual): Use HTTP Request with OAuth2 tokens via /oauth2/access_token, but prefer community node.

2. Fetch Data Weekly (Deals, Calls, Tasks)

  • Workflow start: Schedule Trigger > Interval: Weeks (1) > Weekday: Saturday > Hour: 18 > Minute: 0 > Timezone: e.g., Europe/Moscow.

  • Fetch branches:

    • AmoCRM node (or HTTP GET):

      • Deals: /api/v4/leads > Filter created_at last week (use Date & Time node for Unix timestamps: {{$now.minus({ weeks: 1 }).toUnix()}} to {{$now.toUnix()}}).

      • Calls: /api/v4/talks or Notes (type 4).

      • Tasks: /api/v4/tasks > Filter created_at or overdue (complete_till < now, is_completed=false).

    • Paginate if >250 items; use Loop node.

  • Aggregate: Item Lists/Aggregate or Function node > Count new deals ($input.all().length), total calls, overdue tasks.

3. Format & Send to Telegram (Saturday 18:00)

  • Set/Function node for message:

    📊 Weekly amoCRM Report
    📥 New Deals: {{$json.newDeals}}
    ☎️ Calls: {{$json.totalCalls}}
    ✅ Tasks: {{$json.overdueTasks}} overdue
    
  • Telegram node:

    • Credentials: Bot Token (from BotFather) + Chat ID.

    • Action: Send Message > Text: Expression with formatted string > Parse Mode: Markdown.

  • Activate workflow for auto-run.

Test manually; check executions for errors. Use {{$json}} for data passing between nodes.