Automations
Automations let you turn “when X happens, do Y” into a persistent rule that Ethonode evaluates for you. Available on Pro (10 rules per workspace) and Power (50 rules).
Triggers
Rules can fire on six trigger types:
- price_threshold— when a token’s price crosses a level (e.g., BTC above $80,000).
- portfolio_threshold — when total portfolio value crosses a USD figure.
- allocation_threshold— when a token’s share of your portfolio crosses a percentage (e.g., BTC above 50%).
- schedule — on a cron-style schedule (15-minute floor; finer cadences are blocked at save-time).
- sync_complete — every time a connected wallet or exchange finishes syncing.
- custom_column_change — when a value in one of your custom columns changes.
Actions
Each rule can run up to three actions:
- send_email — sends to your account email. Supports template variables:
{{symbol}},{{value}},{{portfolio_value}},{{percent_change}},{{fired_at}},{{automation_name}}. - create_snapshot — captures a portfolio_snapshots row (also visible in your performance chart history).
- add_to_watchlist — appends the symbol to your watchlist.
- force_sync — immediately re-syncs a specific data source.
- webhook (Power only) — POSTs JSON to an HTTPS URL you provide. Blocked against private IP ranges (RFC 1918, loopback, link-local) at fire time, even if DNS changes between save and fire.
Cooldown
Each rule has a per-rule cooldown (default 60 minutes; minimum 1). After firing, the rule won’t fire again until the cooldown elapses — useful when prices hover around a threshold and would otherwise trigger repeatedly. Adjust per rule in the editor.
Limits + safety
- Per-user daily fire cap: 500 fires across all rules in 24 hours. Once you’ve hit the cap, additional fires are skipped (you’ll see them in the per-rule run log) until the rolling window slides.
- Per-user webhook cap: 100 webhook calls / 24 hours. Tighter because webhooks can leak data to third parties.
- Plan downgrade safety: if you downgrade between save and fire, actions that require a higher plan (e.g., webhook on Pro) silently skip rather than failing the whole rule.
- Global kill-switch: ops can disable all automations in seconds via a single SQL flag. Used during incident response — never expected during normal operation.
Testing a rule
Click Test next to any rule. This evaluates the trigger against current state without running the actions and shows what would happen — handy for verifying a price_threshold is wired correctly before waiting for the next cron tick.
When does it actually fire?
Cron-evaluated triggers (price / portfolio / allocation / schedule) are scanned every 5 minutes. Inline triggers (sync_complete, custom_column_change) fire immediately when the underlying event happens.
Examples to copy
1. Email me when BTC drops below $60k
- Trigger:
price_threshold· symbol BTC · operator below · value 60000 - Action:
send_emailwith subject{{symbol}} below {{threshold}}: {{observed_price}}
2. Daily portfolio snapshot at 9am UTC
- Trigger:
schedule· cron0 9 * * * - Action:
create_snapshot
3. Webhook into Discord when I rebalance toward BTC > 60%
- Trigger:
allocation_threshold· symbol BTC · operator above · percent 60 - Action:
webhook· urlhttps://discord.com/api/webhooks/...
Audit history
Every fire logs a row to automation_runs with the trigger snapshot, per-action results, and overall status (success / partial / error). Pro keeps 30 days of history; Power keeps full history. The full per-rule log endpoint at /api/automations/[id]/runs ships in V2.1.
Asking the AI to create a rule
The AI Panel can’t yet create automations directly (that’s a V2.1 propose- then-confirm extension). For now, use the rule editor in Settings.
Last updated: April 2026