Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.signalark.app/llms.txt

Use this file to discover all available pages before exploring further.

Webhooks let you stream Signal Ark intelligence to any system that can receive an HTTP POST request — data warehouses, automation platforms, custom dashboards, or internal tools. When a signal is promoted, matched to a play, or reaches a scoring threshold, Signal Ark POSTs a structured JSON payload to your configured endpoint.

Configure a webhook destination

1

Open Webhooks settings

In Signal Ark, go to Settings > Integrations > Webhooks.
2

Add a destination URL

Click Add Destination and enter the URL of the endpoint that should receive webhook events. Your server must be publicly accessible over HTTPS.
3

Verify connectivity

Signal Ark immediately sends a ping event to the URL you provided. Confirm your endpoint received the request before saving. If it did not, check that your server is reachable and returns a 2xx status code.
4

Save and activate

Save the destination. Signal Ark begins forwarding matching events immediately.
You can configure multiple webhook destinations. Each destination receives all events — per-destination event filtering is not currently supported.

Payload format

Every webhook request is an HTTP POST with a Content-Type: application/json header. The payload contains a complete snapshot of the signal, its associated account context, and any matched plays at the time of delivery.
{
  "event": "signal.promoted",
  "timestamp": "2025-04-25T14:32:00Z",
  "batchId": "batch_01HZ9ABCDE",
  "signal": {
    "id": "sig_01HZ9XYZ123",
    "signal_name": "Acme Corp raises $25M Series B",
    "source": "funding",
    "source_url": "https://techcrunch.com/2025/04/25/acme-series-b",
    "detected_at": "2025-04-25T10:00:00Z",
    "description": "Acme Corp announced a $25M Series B led by Sequoia Capital.",
    "icp_score": 87,
    "why_now": "Fresh capital typically triggers infrastructure buying decisions within 60 days."
  },
  "account": {
    "id": "acct_01HZ8MNOP456",
    "company_name": "Acme Corp",
    "company_domain": "acmecorp.com",
    "industry": "SaaS",
    "employee_count": 120
  },
  "matched_plays": [
    {
      "play_id": "play_funding_event_alert",
      "play_name": "Funding Event Alert",
      "triggered_at": "2025-04-25T14:32:00Z"
    }
  ]
}

Event types

EventDescription
pingSent immediately when you add a new webhook destination to verify connectivity.
signal.promotedA signal passed ICP filtering and was promoted to your active pipeline.
signal.play_matchedA promoted signal matched one or more Play Templates.
social.lead_promotedA social engagement event was scored high enough to enter the sales pipeline.

Retry behavior

If your endpoint returns a non-2xx status code or does not respond within 10 seconds, Signal Ark retries the delivery with exponential backoff:
AttemptDelay
1st retry30 seconds
2nd retry5 minutes
3rd retry30 minutes
4th retry2 hours
After four failed retries, the event is marked as undelivered. Check the Webhook Delivery Log in the Integration Manager to inspect failed deliveries and replay them manually.
Design your endpoint to be idempotent. Signal Ark may deliver the same event more than once during retry sequences. Use the signal.id or batchId field to deduplicate events on your end.

Verifying webhook authenticity

Signal Ark signs every webhook request with an X-SignalArk-Signature header. The signature is an HMAC-SHA256 hash of the raw request body, computed using your webhook signing secret. To verify a request:
  1. Retrieve your signing secret from Settings > Integrations > Webhooks.
  2. Compute HMAC-SHA256(signing_secret, raw_request_body).
  3. Compare the result to the value in X-SignalArk-Signature. Reject requests where the values do not match.
Always verify the signature before processing webhook payloads. Skipping verification exposes your endpoint to spoofed requests from third parties.