Examples by use

What people send to Zenhook, and what each becomes in the feed. Copy the JSON, or paste the prompt into your coding agent and let it wire the event.

Sales and leads

A running total for the day with an Amount field, or a count of new leads.

json
{
  "title": "Payment received",
  "level": "success",
  "fields": [
    { "label": "Amount", "value": "$129.00" },
    { "label": "Plan", "value": "Pro" }
  ],
  "actor": { "name": "Sarah Chen", "email": "[email protected]" }
}
Prompt for your AI agent

When a payment succeeds, send a POST request with a JSON body to the URL in the ZENHOOK_URL environment variable: title "Payment received", level "success", a field Amount with the price and currency, a field Plan, and the customer as actor with name and email. Read https://zenhook.dev/docs/api for the fields. Do nothing if ZENHOOK_URL is not set, and never let a failed request break the app.

Sign-ups

Today's count with hourly bars, and each new person with their name and email.

json
{
  "title": "New sign-up",
  "level": "info",
  "actor": { "name": "Lucas Martin", "email": "[email protected]", "plan": "Free" }
}
Prompt for your AI agent

When a user signs up, send a POST request with a JSON body to the URL in the ZENHOOK_URL environment variable: title "New sign-up", level "info", and the user as actor with name, email and plan. Read https://zenhook.dev/docs/api for the fields. Do nothing if ZENHOOK_URL is not set, and never let a failed request break the app.

Activity in a product or a game

A counter with hourly bars. After 3 in an hour, your phone gets one summary an hour instead of every event.

json
{
  "title": "Game started",
  "level": "info",
  "fields": [
    { "label": "Level", "value": "3" },
    { "label": "Platform", "value": "iOS" }
  ]
}
Prompt for your AI agent

When a game starts, send a POST request with a JSON body to the URL in the ZENHOOK_URL environment variable: title "Game started", level "info", and fields Level and Platform. Read https://zenhook.dev/docs/api for the fields. Do nothing if ZENHOOK_URL is not set, and never let a failed request break the app.

Personal automations

A streak of days in a row. Failures sent with level error stand out in red.

json
{
  "title": "Nightly backup",
  "level": "success",
  "message": "12.4 GB in 3m 12s"
}
Prompt for your AI agent

When the nightly backup finishes, send a POST request with a JSON body to the URL in the ZENHOOK_URL environment variable: title "Nightly backup", level "success" (or "error" if it failed), and a message with the size and duration. Read https://zenhook.dev/docs/api for the fields. Do nothing if ZENHOOK_URL is not set, and never let a failed request break the app.

How events become widgetsNo code? Use n8n, Make or Zapier