Webhooks

Webhooks let you receive real-time event notifications from Maneuvr in your own systems -- a CRM, a data warehouse, a Slack bot, or anything with an HTTP endpoint.

Webhooks are available on the Business plan.


Setting up a webhook

Go to Settings > Webhooks and click Add webhook:

  1. Paste your endpoint URL
  2. Select the event types you want to receive
  3. Save

Maneuvr immediately sends a test delivery to confirm the endpoint is reachable.


Event types

EventWhen it fires
entity.createdNew competitor added
entity.updatedCompetitor profile changed
entity.deletedCompetitor removed
event.createdNew competitive event detected
run.startedCollection run begins
run.completedCollection run finishes successfully
run.failedCollection run fails
battlecard.updatedBattlecard regenerated or autofilled
digest.publishedNew digest generated
deal_outcome.createdNew deal outcome logged
deal_outcome.updatedDeal outcome edited

Subscribe to only the events you need -- no need to filter on your end.


Payload verification

Every webhook delivery is signed with HMAC-SHA256. Verify the signature before processing the payload to confirm it came from Maneuvr.

The signature is in the x-webhook-signature header:

x-webhook-signature: sha256=<hex-digest>

To verify in Node.js:

const crypto = require('crypto');

function verifySignature(payload, signature, secret) {
  const expected = 'sha256=' + crypto
    .createHmac('sha256', secret)
    .update(payload)
    .digest('hex');
  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(expected)
  );
}

Rotate your signing secret at any time from Settings > Webhooks -- the new secret takes effect immediately for future deliveries.


Delivery and retries

Maneuvr considers a delivery successful if your endpoint returns a 2xx status code within 10 seconds.

If a delivery fails, Maneuvr retries with exponential backoff. After repeated failures, the delivery is moved to a dead letter queue and marked as failed.


Delivery history

Each webhook endpoint in Settings > Webhooks shows recent deliveries with:

  • Timestamp
  • HTTP status code
  • Attempt count

Replaying a delivery

Click Replay on any delivery in the history to re-send it. Useful for:

  • Recovering from a temporary outage on your endpoint
  • Debugging your integration against real payloads
  • Re-processing an event you accidentally ignored

Frequently asked questions

What if my endpoint is down? Maneuvr retries failed deliveries automatically. If your endpoint is down for an extended period, check the delivery history and replay any missed events once you're back up.

Can I subscribe the same URL to multiple event types? Yes. One webhook endpoint can subscribe to any combination of event types.

Is there a payload size limit? Payloads are typically small (a few KB). There is no enforced size limit, but extremely large digest payloads may be truncated.