Custom Webhooks

Build bidirectional integrations with any system using custom outbound and inbound webhooks.

What you can do#

The custom webhook integration lets you connect LumenFlow to any external system that can send or receive HTTP requests. Unlike the built-in channel integrations (Slack, Teams, Discord), custom webhooks give you full control over the payload format and authentication.

ActionDescriptionStatus
Send outboundPOST/PUT/PATCH to any external URLShipped
Receive inboundAccept signed webhook events from external systemsShipped
Custom body templateDefine the outbound payload structureShipped
Flexible field mappingMap inbound fields for event id, channel, timestampShipped
Approval routingRoute outbound calls through approval workflowShipped

Setup#

  1. Go to Settings > Connections in LumenFlow
  2. Click Add Connection > Custom Webhook
  3. Enter the required fields:
    • Outbound URL -- where LumenFlow sends events
    • Shared Secret -- used for HMAC signature verification
  4. Optionally configure:
    • Default channel -- fallback channel name for routing
    • Outbound HTTP method -- POST (default), PUT, or PATCH
    • Auth header name -- custom authorization header
    • Body template -- custom JSON template for outbound payloads
  5. Click Save

Inbound webhook#

After saving, LumenFlow generates a unique inbound endpoint:

https://your-domain.com/api/v1/sidekick/integrations/webhook?key=<unique-key>

External systems POST JSON to this URL. LumenFlow verifies the HMAC signature and ingests the event into Sidekick's channel inbox.

Required headers#

HeaderDescription
x-sidekick-signatureHMAC-SHA256 signature of the request body
x-sidekick-timestampISO 8601 timestamp for replay protection

Inbound payload fields#

LumenFlow extracts event data from these JSON fields (configurable):

FieldDefault keyDescription
Event IDevent_idUnique event identifier (falls back to SHA-256 hash)
ChannelchannelRouting channel (falls back to default channel)
Message IDmessage_idExternal message identifier
Timestampevent_tsEvent timestamp (ISO 8601 or Unix epoch)
User texttext, message, content, or bodyMessage content for chat processing

Security#

  • HMAC signature verification -- every inbound request is verified against the shared secret using SHA-256
  • Timestamp replay protection -- stale timestamps are rejected
  • URL safety validation -- outbound URLs are checked against SSRF protections before saving
  • Rate limiting -- distributed per-integration and per-workspace limits
  • Credentials encrypted at rest -- the shared secret is encrypted before storage

Use cases#

  • CRM notifications -- receive deal updates from your CRM
  • Alerting -- push alerts to an internal dashboard or tool
  • Custom bots -- wire up any chat system not natively supported
  • CI/CD -- receive build and deploy notifications

info Custom webhooks support bidirectional communication. Use outbound webhooks to push data to external systems, and the inbound endpoint to receive events back. Both directions are governed by your workspace's approval rules.