Developer · Webhooks

Send MAY events into the systems your team already uses.

Use webhooks when your application needs to react to MAY activity without repeatedly polling the API.

Set up a webhook endpoint

  1. Create a public HTTPS endpoint in your application.
  2. Open the webhook/integration controls available in MAY Business Admin.
  3. Register your endpoint URL and select the events exposed by that MAY environment.
  4. Store the webhook secret securely if the configuration provides one.
  5. Return a successful HTTP response quickly, then process heavier work asynchronously.

Node.js handler pattern

Express pattern
app.post("/may/webhook", express.raw({ type: "application/json" }), async (req, res) => {
  // 1. Verify the request using the signature method documented
  //    for your MAY environment before trusting the payload.
  // 2. Parse and persist the event id for idempotency.
  // 3. Acknowledge quickly.
  res.sendStatus(200);

  // Process the event asynchronously after acknowledgement.
});

Verify before processing

Do not invent a signature header

Use the exact signature header and verification method shown by the webhook configuration for your deployed MAY version. This public guide intentionally does not fabricate a header name.

Design for retries

Your handler should be idempotent. If the same event is delivered twice, it should not create duplicate leads, appointments, notifications or downstream actions.

Event categories

Available events depend on the enabled MAY modules and the deployed API version. Typical integration needs include customer/lead changes, conversation events, workflow outcomes, appointments, quotes and other business actions. Select only the events your downstream system actually needs.

Need help implementing MAY?

Use the guide, then configure it in Business Admin.