Skip to main content
Alerts

Alerts

Get notified in real time when high-value whales and important user actions happen:
  • Key user events (connect wallet, transactions, conversions, drop off)
  • When whales and high-value users visit your app
In the project settings page, you can create an alert that will notify you via:
  • Webhooks (including Slack via incoming webhooks)

How to set up your first alert

Get real-time notifications when high-value users interact with your app. This guide walks you through creating alerts for whale detection and key events.

Step 1: Navigate to Alerts

  1. Go to the Formo Dashboard
  2. Select your project
  3. Click Settings in the left navigation (gear icon)
  4. Select the Alerts tab

Step 2: Create a new alert

  1. Click Create Alert
  2. Configure your alert:

Step 3: Choose a trigger type

Formo supports two trigger types: Event alerts, which fire on individual matching events, and User alerts, which fire when a user profile matches your filters.
Triggers when a new event matches your filters. Formo checks for matching events every 5 minutes; each matching event since the last check is sent to your webhook.You can add conditions to filter on the event’s top-level fields: type, event, address, user_id, anonymous_id, location, device, browser, os, and referrer. Conditions support exact match, contains, starts with, ends with, and not-equals (e.g., browser = Chrome, referrer contains twitter). They can’t filter on values nested in properties (like chain_id or a transaction’s status) or use numeric comparisons (>, <) - use a User alert if you need to filter on a number.

Step 4: Configure notifications

  1. Select Webhook as the notification type
  2. Enter your webhook URL (generic HTTPS endpoint or Slack incoming webhook)
  3. Formo sends a POST request with batched data
Webhook security and signatures:
  • Optional secret: In the alert configuration, you can provide a signing secret used to verify requests on your server.
  • For generic webhooks (non-Slack URLs), Formo uses your secret to compute an HMAC-SHA256 signature over the string {timestamp}.{body}, where:
    • timestamp is the Unix timestamp (seconds) used for the request
    • body is the exact JSON payload string sent in the request
HTTP headers sent:

Step 5: Test your alert

  1. Save your alert configuration
  2. Trigger a test event:
    • Visit your app in a browser
    • Connect a wallet
    • Perform the action that matches your alert
  3. Check your Slack channel or webhook endpoint for the notification

Alert payloads

Event alerts

When an event alert is triggered, Formo batches all matching events into a single webhook call.

Webhook payload

The webhook payload uses the alert.event.triggered event type and contains raw analytics events: Top-level properties: Each event in data: Sample payload:

Slack payload

For Slack incoming webhooks (hooks.slack.com), Formo formats each event as an individual Slack Block Kit card message. Each message includes:
  • A header with the alert name
  • A user link (clickable link to Formo profile, if available)
  • Event properties (key-value pairs from the event)
  • Metadata fields: Country, Device, Browser, OS, Referrer, Referral, UTM Source, UTM Medium, UTM Campaign, UTM Term, UTM Content - only shown when non-empty
Sample Slack Block Kit payload (one event = one message):

User alerts

When a user alert is triggered, Formo sends matching user profiles to your webhook.

Webhook payload

The webhook payload uses the alert.user.triggered event type: Top-level properties: Each user in data contains the full wallet profile. All fields from the profile are included - key properties: Wallet identity: Socials (included when available): discord, telegram, website, github, twitter, linkedin, email, instagram, facebook, tiktok, youtube, reddit, linea Project-level engagement: Attribution (first-touch and last-touch): Last activity: Sample payload:

Slack payload

For Slack incoming webhooks, Formo formats user profiles as a rich card layout:
  • A header with the alert name
  • Per user: a clickable address header with avatar image (if available), a field grid with key profile data, and a View Profile button
  • Up to 25 users per batch, with an overflow summary if more were found
Default fields displayed: Sample Slack Block Kit payload:

Examples

Whale detection alert

Notify when high-value users visit: Every time a wallet with over $100k net worth is active, you’ll get a Slack message with their profile.

Failed transaction alert

Track when users encounter issues: status lives in the event’s properties object, not a filterable top-level field, so this condition sends every transaction event. Filter for properties.status = "failed" on your webhook receiver to isolate failures.

Webhook integration examples

Send to Slack:
Send to Zapier:
Then use Zapier to route alerts to any destination: Notion, Airtable, Discord, SMS, etc.