# Webhooks Integration

> Send signals to any tool via webhooks. HMAC-signed JSON payloads, retries with backoff, delivery logs. The escape hatch for everything Beton doesn't natively integrate with.

*Source: [https://www.getbeton.ai/integrations/webhook/](https://www.getbeton.ai/integrations/webhook/)*

**Category:** destination
**Vendor URL:** #

## How it works

1. **Configure your webhook endpoint** — Provide an HTTPS URL plus an HMAC shared secret. Add custom headers for auth, tagging, or routing on your end.
2. **Filter and shape the payload** — Choose which signal types to forward and (optionally) transform the payload to match your system's expected shape.
3. **Receive signals in real-time** — Your endpoint receives a POST with full signal context every time a matching signal is detected. Failed deliveries retry with exponential backoff (10× / 24h).

## Features

- Standard HTTP POST with JSON payloads
- HMAC-SHA256 signed (X-Beton-Signature header)
- Configurable custom headers and basic auth
- Signal type filtering
- Payload transformation and field mapping
- Retry logic — exponential backoff, 10 attempts over 24 hours
- Delivery logs visible in the Signals dashboard

## Use cases

- Send signals to Slack channels for team visibility
- Trigger custom scripts, n8n workflows, or serverless functions
- Feed signals into data warehouses or analytics tools
- Build custom integrations with internal tools or homegrown CRMs

## Sample payload

```json
{
  "signal_type": "product_qualified_lead",
  "confidence": 0.92,
  "source": "posthog",
  "hypothesis_id": "hyp_8g2k",
  "account": { "name": "Acme Corp", "domain": "acme.com" },
  "events": ["visited_pricing_page", "invited_team_member", "api_key_created"],
  "enrichment": { "company_size": "50-200", "industry": "SaaS" },
  "detected_at": "2026-04-29T14:31:08Z"
}
```

## FAQ

### How are webhook payloads authenticated?

Beton signs every request with HMAC-SHA256 using a shared secret you configure. The signature is in the X-Beton-Signature header. Basic auth and custom headers are also supported for legacy systems.

### Can I retry failed webhook deliveries?

Yes. Beton retries failed deliveries with exponential backoff up to 10 attempts over 24 hours. Delivery logs are visible in the Signals dashboard so you can debug endpoint issues.

### Can I use webhooks to talk to n8n, Zapier, or Make?

Yes — point the webhook URL at any of those services' webhook trigger endpoints. The standard JSON shape works out of the box for n8n trigger nodes, Zapier catch hooks, and Make scenarios.

### What does the webhook payload contain?

A JSON object with signal_type, confidence, source, hypothesis_id, account (name, domain), events, enrichment, and detected_at. A sample payload is shown on this page.
