API/Convex Webhooks

Convex Webhooks

Webhook endpoints used by Lynkero for billing, LinkedIn inbox sync, and Bright Data discovery.

Lynkero receives operational webhooks directly in Convex. These endpoints should be configured against the Convex site URL, not a separate Vercel or TanStack API route.

Endpoints

POST /stripe/webhook
POST /webhooks/unipile
POST /brightdata/webhook

Stripe

Stripe billing events are handled by convex/stripe/actions.ts through the /stripe/webhook HTTP action.

Required Convex env:

STRIPE_WEBHOOK_SECRET="whsec_..."

Unipile

Unipile inbox events are ingested through /webhooks/unipile and routed to the Inbox sync mutation.

Optional Convex env:

UNIPILE_WEBHOOK_SECRET="..."

When the secret is set, the webhook must provide either:

x-unipile-secret: YOUR_SECRET
Authorization: Bearer YOUR_SECRET

Bright Data

Bright Data discovery snapshots are finalized through /brightdata/webhook.

Required Convex env:

BRIGHTDATA_WEBHOOK_SECRET="..."

The webhook accepts the token from the URL, headers, or request body depending on the Bright Data configuration.

Production Checklist

  • Keep webhook secrets in Convex env.
  • Use the Convex site URL when configuring third-party dashboards.
  • Check .logs/convex.txt locally after a webhook test.
  • Do not add Stripe webhook handlers under src/routes/api.