Any source in. Any destination out.
Events flow in from signed webhooks, your own app, or anything you can wire up — and fan back out to the tools you already run. PostHog is where you start, not where you stop.
Everything your users do, in one stream
Five signed-webhook presets auto-enable the moment you set their secret — no handler, no glue. Or send from your own code, or define a source of your own.
PostHog
Forward PostHog actions and events straight into Hogsend. Set the secret and the signed-webhook preset turns itself on.
Stripe
Subscriptions, invoices, failed payments — verified Stripe events become journey triggers without writing a handler.
Clerk
Sign-ups, sign-ins, and user changes arrive as verified events. Drop in the signing secret and the preset is live.
Supabase
Database webhooks and auth hooks flow in as events you can trigger journeys on — verified the moment the secret is set.
Segment
Pipe your existing Segment track calls in as a source. One secret enables the preset; every event is signature-checked.
Your own app
Call the @hogsend/client SDK or POST /v1/events directly from your backend. Identify a contact and fire events from anywhere in your stack.
Anything else
Define a source in TypeScript with defineWebhookSource(): declare auth, validate with Zod, transform the payload, return an event.
Every send fans back out
The outbound event catalog — contact changes, email sends and opens, journey completions, bucket transitions — fans out to the tools you already run, reusing the engine's durable retry, backoff, and DLQ for free.
PostHog
Every email and lifecycle event fans back into PostHog as a captured event — so sends, opens, and journey state live next to product analytics.
Segment
Forward the outbound event stream into Segment and let it fan out to the rest of your downstream tools from there.
Slack
Post lifecycle moments — milestones, failed payments, churn signals — straight into a channel as they happen.
A CRM
Sync contact and engagement events into your CRM so sales and success see the same lifecycle signals you act on.
A warehouse
Land the raw outbound event stream in your warehouse for modelling, attribution, and reporting alongside the rest of your data.
Any signed webhook
Define a destination in TypeScript with defineDestination(): pick the events, shape the request, and ship to any HMAC-signed endpoint.
Wire up your first connector
Pick a preset, send from your app, or define your own source and destination in TypeScript.