Automate with n8n, Make, Zapier and more
The Webhook node sends every alert as JSON to an address of your choice (layout under Receiving webhooks). That way you reach automation platforms and, through them, thousands of apps: a row in a spreadsheet, a lamp that turns red, a note in your trading journal. Webhooks come with the Trader plan and up.
Check the sender: signature or fixed header
Section titled “Check the sender: signature or fixed header”So that only Bellchain triggers your workflow, the receiver checks one of the two:
- Signature: every webhook carries
Bellchain-Signature, an HMAC with your signing secret. You find the secret under Notifications → Webhooks → Show secret. This is the safest way but needs a code step. - Fixed header: under More in the Webhook node, enter Header and Header value, such as
x-make-apikeyand a long random value. Many platforms check such a header without code.
-
In n8n, create a workflow with the Webhook node: method
POST, under Authentication “Header Auth” with the namex-bellchain-tokenand a long random value. -
Activate the workflow and copy the Production URL.
-
Enter the URL in the Webhook node, and under More the header
x-bellchain-tokenwith the same value. -
Add what should happen in n8n, such as Google Sheets → Append Row with
{{ $json.body.chain.name }},{{ $json.body.pair }}and{{ $json.body.price }}.
Self-hosted, n8n is free; n8n Cloud counts every run as one execution.
-
Create a scenario with the module Webhooks → Custom webhook and copy the URL.
-
Under Advanced settings of the webhook, turn on the API key check and create a key.
-
Enter the URL in the Webhook node, and under More the header
x-make-apikeywith the key. -
In Make, click Redetermine data structure and fire a test in Bellchain, so that Make learns the fields.
Zapier
Section titled “Zapier”“Webhooks by Zapier” is only available on Zapier’s paid plans. Create a Zap with Webhooks by Zapier → Catch Hook, copy the URL and enter it in the Webhook node. To check the signature, use Catch Raw Hook followed by a Code by Zapier step (JavaScript):
const crypto = require('crypto');const parts = Object.fromEntries(inputData.signature.split(',').map((p) => p.split('=')));const expected = crypto.createHmac('sha256', inputData.secret).update(`${parts.t}.${inputData.body}`).digest('hex');if (expected !== parts.v1) throw new Error('Signature does not match');return JSON.parse(inputData.body);signature is the Bellchain-Signature header, body the unchanged content, secret your signing secret.
Home Assistant
Section titled “Home Assistant”-
In Home Assistant, create an automation with the Webhook trigger. Pick a long, random webhook ID and turn off Only accessible from the local network: Bellchain calls from the internet.
-
Enter the URL in the Webhook node: your public Home Assistant address (for example via Nabu Casa or your own reverse proxy) with
/api/webhook/<webhook ID>. -
Use the data in the action, such as
{{ trigger.json.chain.name }}and{{ trigger.json.price }}.
triggers: - trigger: webhook webhook_id: bellchain-make-this-long-and-random allowed_methods: [POST] local_only: falseactions: - action: light.turn_on target: { entity_id: light.office } data: { color_name: red }Home Assistant answers “OK” even for a wrong webhook ID or a disabled automation. Bellchain then sees the alert as delivered. After setting it up, check with a test that the automation really ran. The webhook ID is the only secret; treat it like a password.
Google Sheets: one row per alert
Section titled “Google Sheets: one row per alert”Without a platform in between, with a small script in your spreadsheet:
-
Open the spreadsheet, then Extensions → Apps Script, and paste this code:
function doPost(e) {const alert = JSON.parse(e.postData.contents);const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];// If the same alert arrives twice, it still shows up only once.const ids = sheet.getRange('A:A').getValues().flat();if (!ids.includes(alert.id)) {sheet.appendRow([alert.id, alert.time, alert.chain.name, alert.pair, alert.price, alert.message]);}return ContentService.createTextOutput('ok');} -
Click Deploy → New deployment, type Web app, “Execute as: Me”, “Who has access: Anyone”, and copy the URL ending in
/exec. -
Enter the URL in the Webhook node.
Google answers every call with a redirect; Bellchain knows that and counts the alert as delivered. Anyone who knows the URL can add rows; check the signature in the script as well if needed.
IFTTT only accepts webhooks on its paid plans and reads JSON only with its own filter code. For most workflows, n8n, Make or Zapier are simpler.
Version 2026.10.21.23 · Changelog