Sendivent

Sendivent multi-channel notification API. Use when sending notifications via email, SMS, Slack, push, Telegram, WhatsApp, or Discord. Triggers on: send notification with sendivent, sendivent api, sendivent contacts, sendivent events, sendivent templates, notification api.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "Sendivent" with this command: npx skills add oakleaf/sendivent

Sendivent Notification API

Send multi-channel notifications, manage contacts, and configure events via REST API.

Using Node.js? See the SDK Guide for TypeScript examples with the @appitude/sendivent package.

Reference: API Guide | Official Docs

Prerequisites

  • Create Account — Sign up at sendivent.com/signup
  • Create Application — Dashboard > Applications > New Application
  • Get API Key — Dashboard > API Keys > Generate (docs)
  • Set Environment Variableexport SENDIVENT_API_KEY=live_your_key_here
  • Configure a Channel — Set up at least one integration (email, SMS, Slack, etc.)
  • Create an Event — Dashboard > Events > New Event (e.g. user.welcome)

Authentication

All requests require a Bearer token in the Authorization header:

Authorization: Bearer YOUR_API_KEY

Base URLs:

  • Production: https://api.sendivent.com
  • Sandbox: https://api-sandbox.sendivent.com

Key Prefixes:

  • live_* — Production (real deliveries)
  • test_* — Sandbox (safe testing)

All POST/PATCH requests must include Content-Type: application/json.


Send Notification

Send to a single recipient

POST /v1/send/{event}

The event is the event name in the URL path (e.g. order.confirmed), not in the body.

ParameterTypeRequiredDescription
tostring | objectYesRecipient — email, phone, UUID, external_id, or contact object
payloadobjectYesTemplate variables (can be {} if none)
languagestringNoTemplate language override (e.g. sv, en)
fromstringNoSender override (must be verified)
overridesobjectNoChannel-specific overrides

Flexible to formats:

"to": "user@example.com"
"to": "+14155551234"
"to": "550e8400-e29b-41d4-a716-446655440000"
"to": { "email": "user@example.com", "name": "Jane", "tier": "premium" }

Any non-standard field in the contact object (like tier above) is stored in meta and accessible in templates as {{contact.meta.tier}}.

Response:

{
  "success": true,
  "deliveries": [
    { "email": "d4e5f6a7-b8c9-4d0e-a1f2-3b4c5d6e7f8a" },
    { "sms": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" }
  ]
}

Each entry in deliveries is a { channel: uuid } object mapping the channel to the delivery UUID.


Send to multiple recipients

POST /v1/send/{event}

Pass an array to to for personalized multi-recipient sends:

{
  "to": [
    { "email": "user1@example.com", "name": "Alice", "tier": "premium" },
    { "email": "user2@example.com", "name": "Bob", "tier": "free" }
  ],
  "payload": { "company": "ACME" }
}

Each contact receives individually compiled templates with their specific data + shared payload.


Force a specific channel

POST /v1/send/{event}/{channel}

Channels: email, sms, slack, push, telegram, whatsapp, discord


Idempotency

Include X-Idempotency-Key: your-unique-key header to prevent duplicate sends. Replayed requests return X-Idempotent-Replay: true.


Error response (send)

When a send fails, the response includes an errors array:

{
  "success": false,
  "deliveries": [],
  "errors": [
    { "code": "INTEGRATION_MISSING", "message": "No email integration configured" }
  ]
}

Contacts

List contacts

GET /v1/contacts

ParameterTypeRequiredDescription
limitnumberNoMax 100 (default 50)
offsetnumberNoPagination offset
searchstringNoSearch by email, name, or phone

Response:

{
  "success": true,
  "data": {
    "contacts": [{ "uuid": "...", "email": "...", "name": "...", "meta": {} }],
    "total": 150,
    "limit": 50,
    "offset": 0
  }
}

Find contact

GET /v1/contacts/{identifier}

Identifier can be: email, phone, UUID, external_id, or Slack user ID.


Create or upsert contact

POST /v1/contacts

ParameterTypeRequiredDescription
emailstringNo*Email address
phonestringNo*Phone (E.164 format)
namestringNoDisplay name
externalIdstringNoYour system's user ID
avatarstringNoAvatar URL
usernamestringNoUsername
slackstringNoSlack user ID
telegramstringNoTelegram user ID
discordstringNoDiscord user ID

*At least one identifier (email, phone, externalId) is required.

Any unknown field is automatically stored in meta with camelCase conversion.


Update contact

PATCH /v1/contacts/{identifier}

Same fields as create. Only updates provided fields.


Delete contact

DELETE /v1/contacts/{identifier}

Hard delete (GDPR compliant). Returns { "success": true, "deleted": true }.


Push tokens

POST /v1/contacts/{identifier}/push-tokens — Register token: { "token": "ExponentPushToken[...]" }

DELETE /v1/contacts/{identifier}/push-tokens — Remove token: { "token": "..." }


Developer Endpoints

Read-only endpoints for inspecting events, deliveries, and integrations. Available on the customer API with standard Bearer token auth.

List events

GET /v1/events

Returns all notification events for the application.

Response:

{
  "success": true,
  "data": {
    "events": [
      { "identifier": "user.welcome", "name": "User Welcome", "channels": ["email", "slack"] }
    ]
  }
}

Get event details

GET /v1/events/{identifier}

Returns detailed event configuration including templates and channel settings.

Response:

{
  "success": true,
  "data": {
    "event": { "identifier": "user.welcome", "name": "User Welcome", "channels": [...], "templates": [...] }
  }
}

List deliveries

GET /v1/deliveries

ParameterTypeRequiredDescription
limitnumberNoMax results (default 20)
offsetnumberNoPagination offset
eventstringNoFilter by event name
channelstringNoFilter by channel
statusstringNoFilter by status: pending, sent, delivered, failed

Response:

{
  "success": true,
  "data": {
    "deliveries": [...],
    "total": 42,
    "limit": 20,
    "offset": 0
  }
}

Get delivery trace

GET /v1/deliveries/{uuid}/trace

Returns full delivery trace with timeline and content snapshot.

Response:

{
  "success": true,
  "data": {
    "delivery": { "uuid": "...", "channel": "email", "status": "sent", ... },
    "timeline": [
      { "event": "queued", "timestamp": "2026-03-30T12:00:00Z" },
      { "event": "sent", "timestamp": "2026-03-30T12:00:01Z" }
    ]
  }
}

List integrations

GET /v1/integrations

ParameterTypeRequiredDescription
channelstringNoFilter by channel

Returns channel integrations with secrets stripped.

Response:

{
  "success": true,
  "data": {
    "integrations": [
      { "channel": "email", "provider": "ses", "status": "active" }
    ]
  }
}

Webhooks

Register one webhook endpoint per application to receive delivery status events.

Event types

  • delivery.sent — Notification dispatched to provider
  • delivery.delivered — Provider confirmed delivery (email only via SES)
  • delivery.failed — Delivery failed permanently
  • delivery.bounced — Email bounced
  • delivery.complained — Recipient marked as spam

Create webhook

POST /v1/webhooks

{
  "url": "https://yourapp.com/webhooks/sendivent",
  "enabled_events": ["delivery.sent", "delivery.failed"],
  "description": "Production webhook"
}

Response includes signing_secret for HMAC-SHA256 verification.

Other operations

  • GET /v1/webhooks — Get webhook config
  • PATCH /v1/webhooks/{uuid} — Update (url, enabled_events, is_active)
  • DELETE /v1/webhooks/{uuid} — Remove webhook

Payload format

{
  "event": "delivery.sent",
  "delivery": {
    "uuid": "d4e5f6a7-...",
    "channel": "email",
    "status": "sent",
    "event_name": "order.confirmed",
    "message_id": "ses-message-id",
    "sent_at": "2026-03-30T12:00:00Z",
    "delivered_at": null,
    "error": null
  },
  "request_id": "req-uuid",
  "timestamp": "2026-03-30T12:00:00Z"
}

Channels

Sendivent supports 7 channels. Each requires a configured integration.

ChannelIdentifierProvider
EmailemailAWS SES, SendGrid, Brevo
SMSphone (E.164)AWS SNS, Cellsynt
Slackslack (user ID)Slack API
Pushpush_tokenExpo, FCM, APNs
Telegramtelegram (user ID)Telegram Bot API
WhatsAppphone (E.164)WhatsApp Business API
Discorddiscord (user ID)Discord Bot API

Template Variables

Templates use Handlebars syntax. Available in all channel templates:

VariableDescription
{{contact.name}}Contact display name
{{contact.email}}Contact email
{{contact.phone}}Contact phone
{{contact.meta.fieldName}}Custom contact fields
{{payload.key}}Event payload data
{{app.name}}Application name
{{sender.name}}Sender name
{{sender.email}}Sender email

Fallback syntax: {{name | Guest}} — uses "Guest" if name is empty.


Error Handling

All errors return JSON:

{
  "error": "Event 'order.shipped' not found",
  "code": "EVENT_NOT_FOUND"
}
StatusCodeDescription
400VALIDATION_ERRORMissing or invalid parameters
401UNAUTHORIZEDInvalid or missing API key
402QUOTA_EXCEEDEDContact quota exceeded — upgrade plan
403FORBIDDENSubscription inactive or addon not enabled
404NOT_FOUNDEvent, contact, or resource not found
409CONFLICTWebhook endpoint already exists
429RATE_LIMITEDToo many requests — retry with backoff
500SERVER_ERRORInternal error
502PROVIDER_ERRORThird-party provider failed

Common error codes

CodeDescription
MISSING_IDENTIFIERContact lacks required identifier for channel
INTEGRATION_MISSINGChannel integration not configured
ADDON_NOT_ENABLEDSMS/WhatsApp addon not on plan
UNVERIFIED_SENDERSender email/phone not verified
INVALID_EMAILInvalid email format
INVALID_PHONEInvalid phone number (must be E.164)
EVENT_NOT_FOUNDEvent name doesn't exist

Rate Limits

EnvironmentRequests/SecondDaily Quota
Production1001,000
Sandbox10150

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

GigaChat (Sber AI) Proxy

Integrate GigaChat (Sber AI) with OpenClaw via gpt2giga proxy

Registry SourceRecently Updated
3600smvlx
General

TencentCloud Video Face Fusion

通过提取两张人脸核心特征并实现自然融合,支持多种风格适配,提升创意互动性和内容传播力,广泛应用于创意营销、娱乐互动和社交分享场景。

Registry SourceRecently Updated
General

TencentCloud Image Face Fusion

图片人脸融合(专业版)为同步接口,支持自定义美颜、人脸增强、牙齿增强、拉脸等参数,最高支持8K分辨率,有多个模型类型供选择。

Registry SourceRecently Updated
General

YoudaoNote News

有道云笔记资讯推送:基于收藏笔记分析关注话题,推送最新相关资讯。支持对话触发与每日定时推送(如早上9点)。触发词:资讯推送、设置资讯推送、生成资讯推送。

Registry SourceRecently Updated
1.5K1lephix