n8n (and sometimes Make) is the right tool when the job is glue: new Bitrix24 deal → row in a sheet → message in MAX; form on the site → CRM → email. This page is visual workflow automation you can host and diff, not a custom Telegram bot. Custom bots stay on Telegram and MAX. LLM agents that choose tools dynamically are AI agents and MCP.
I prefer self-hosted n8n with versioned workflows, credentials in a vault, and a staging instance. Cloud Make is fine when the team already lives there and volumes are modest. I will not dump thirty unmanaged zaps on a founder’s personal Gmail.
A first slice is three to five workflows with clear owners and failure alerts (n8n error → Telegram/MAX to an ops chat). Custom nodes in TypeScript appear when a vendor API is ugly or missing. Heavy domain logic (pricing, 1C posting) should not live only inside a visual canvas—that is how you get an untestable ball of yarn. Then we extract a small API and let n8n call it.
Related: CRM and backend integration, 1C, Bitrix24 / amoCRM. Portfolio bots show the custom-code end of the spectrum; n8n is the faster path when the scenario is integration-shaped.
Timeline: a contained n8n contour is often 2–5 weeks. Replacing a graveyard of Make scenarios is an audit plus rewrite, longer.
What you get
- Workflow inventory, credentials map, staging vs prod
- Implemented scenarios with retries and error notifications
- Custom node or thin API where the canvas is the wrong abstraction
- Runbook: how to export/import, how to rotate a token, who gets the error chat
