webhook-api email and cron triggers
Email or cron → webhook. Configure an endpoint once.
Receive structured HTTP POST events from echoValue.
# Trigger types: email, cron
# Native formats: Slack, Discord, Teams, Telegram, PagerDuty
how-it-works
Three steps. No server. One endpoint for multiple trigger sources.
curl 'https://api.echovalue.dev/webhook' \
-H 'x-token: mytoken' \
-H 'content-type: application/json' \
-d '{"url":"https://myapp.example.com/hooks/events","trigger":"email"}'
% {"mailboxId":"r_abcd1234","email":"r_abcd1234@hook.echovalue.dev",...}
# Or configure a scheduled webhook
curl 'https://api.echovalue.dev/webhook' \
-H 'x-token: mytoken' \
-H 'content-type: application/json' \
-d '{"url":"https://myapp.example.com/hooks/events","schedule":{"cron":"*/15 * * * *","timezone":"Europe/Rome"}}'
1. configure endpoint
Set your webhook URL once via the API. echoValue delivers trigger events to that endpoint.
2. choose trigger
Use an opaque mailbox address for inbound email or a cron schedule for timed delivery.
3. receive events
Every trigger sends an HTTP POST to your endpoint with a structured JSON payload.
triggers
Start with email or schedule delivery with cron. Same endpoint model, same credit system.
email trigger
Every webhook can get an opaque mailbox address such as <mailboxId>@hook.echovalue.dev. Send an email and receive the parsed message as JSON.
cron trigger
Run scheduled webhook calls for periodic jobs, reminders, heartbeat checks, and automation workflows without hosting a scheduler.
structured delivery
Receive JSON payloads at your endpoint with a consistent event model across email, cron, and test triggers.
email-payload
What arrives at your webhook endpoint for the email trigger.
{
"externalMessageId": "<CA+abc123@mail.gmail.com>",
"receivedAt": "2026-04-04T09:21:35.218Z",
"from": { "email": "john@gmail.com", "name": "John Snow" },
"to": [{ "email": "r_abcd1234@hook.echovalue.dev", "name": "Support Inbox" }],
"cc": [{ "email": "jane@gmail.com", "name": "Jane Doe" }],
"subject": "Alert: Server down",
"text": "Server #3 is not responding",
"html": "<div>Server #3 is not responding</div>",
"headers": { /* raw email headers */ },
"attachments": [
{
"filename": "attachment.pdf",
"contentType": "application/pdf",
"size": 33380,
"downloadUrl": "<presigned_url>",
"downloadUrlExpiresAt": "2026-04-04T09:26:35.218Z"
}
],
"provider": "mail",
"url": "https://hook.echovalue.dev/r_abcd1234"
}
from / to
Sender as an object and recipients as arrays with email and name. Use from.email to filter, route, or allow-list traffic in your handler.
subject
Perfect for routing logic — treat it as an event type or command keyword.
text / html
Email body in both plain text and HTML. Parse, store, or forward either format — your call.
attachments
Each attachment includes a short-lived downloadUrl (60 min TTL), filename, content type, and size in bytes. Max attachment size: 20 MB.
native-formats
Set format once. No payload handling on your end.
# Forward emails directly to Slack
curl 'https://api.echovalue.dev/webhook' \
-H 'x-token: mytoken' \
-H 'Content-Type: application/json' \
-d '{"url":"https://hooks.slack.com/services/T00/B00/XXX","format":"slack"}'
% {"mailboxId":"r_abcd1234","email":"r_abcd1234@hook.echovalue.dev",...}
slack
Posts to any channel via Incoming Webhooks. Subject and sender formatted in Slack markdown. Setup guide →
discord
Delivers to a Discord channel webhook. Emails arrive as formatted messages with bold subject. Setup guide →
microsoft teams
Sends to a Teams channel via Workflow or Connector webhook. Compatible with both setup methods. Setup guide →
telegram
Sends via Telegram Bot API with HTML formatting. Works for personal chats, groups, and channels. Requires options.chat_id. Setup guide →
pagerduty
Triggers incidents via Events API v2. Subject becomes the summary, sender the source. Requires options.routing_key. Setup guide →
custom format
Define your own JSON template with placeholders. Map any email field (subject, from, text, html, attachments) to your webhook payload. Docs →
use-cases
Turn inbound messages and schedules into webhook-driven automation.
automation entry point
Zapier, Make, n8n, Power Automate — all accept webhooks. Unlike native email triggers, no OAuth or inbox access needed. Use an opaque mailbox address or scheduled delivery.
ai agent input
Email is the interface everyone knows. Turn it into programmable input for AI agents — classify, extract, triage, respond.
scheduled jobs
Run scheduled pings, reminders, periodic syncs, and heartbeat jobs without deploying a cron worker.
legacy integration
ERP systems, scanners, SCADA, printers — anything that sends email becomes webhook-capable. No code changes on the source.
notification hub
Centralize email alerts from multiple services into one endpoint. Forward to Slack, PagerDuty, or your own dashboard.
IoT & embedded
Hardware and industrial devices that can send email but not HTTP. A natural bridge to modern APIs.
sms gateways
Carrier SMS-to-email becomes SMS-to-webhook in one step. Zero infrastructure to manage.
pricing
Zero subscriptions. Pay per use. Credits never expire.
Standard
- ✓ 1 million credits
- ✓ No subscription
- ✓ No expiration
- ✓ Shared with db-api
Cost per operation
| Operation | Cost |
|---|---|
| Configure webhook | 1 credit |
| Get webhook config | 1 credit |
| Delete webhook | 1 credit |
| Email processed (no attachments) | 2 credits |
| Email processed (with attachments) | 5 credits |
| Scheduled webhook event | 2 credits |
Credits are shared across all echoValue APIs. Pay once, use everywhere.
Get Support
Questions, feedback, or feature requests about Webhook API.