Skip to content
RecipesDoc

Send Certyn Events to Teams, Discord or a Data Warehouse with Webhooks

Certyn posts signed JSON events to your HTTPS endpoint; a small relay turns them into Teams or Discord messages or warehouse rows.

For teams that want Certyn events in a tool Certyn has no connection for.

Your setup

  • Microsoft Teams, Discord, a data warehouse or your own service.
  • A small public HTTPS endpoint you can host (a serverless function, a worker, a Power Automate flow).
  • You want a message or a row when Certyn files an issue or a run ends.

Say this to Certyn

We use Microsoft Teams, not Slack. Can Certyn post in our QA channel when it finds a bug or a run finishes?

What Certyn does

  1. Tells you where to add it: Settings → Webhooks → New webhook. The chat cannot create webhooks. The form asks for a name, an HTTPS URL, a format and events, then sends a test. The webhook turns on only after the test gets a 2xx answer. The secret is shown once.

  2. Helps you pick events: ticket.created, ticket.changed, ticket.run_state.changed, test.execution.started, test.execution.completed, test.case.quarantined, test.case.unquarantined, agent.session.*, runtime.session.*.

  3. Explains the format. Generic is this JSON:

    { "id": "<event id>", "deliveryId": "...", "type": "ticket.created",
      "timestamp": "...", "projectId": "...", "tenantId": "...", "data": { } }
    

    Slack is a Block Kit message. There is no Teams or Discord format, so a relay reads the generic JSON and posts in their format, or writes a warehouse row. Certyn can write the relay and test it on its Machine.

  4. Shows how to check the signature: compute HMAC-SHA256 with the webhook's secret over <X-Certyn-Timestamp>.<raw body>, and compare it with X-Certyn-Signature: sha256=<hex>.

What you get

  • Events at your endpoint a few seconds after they happen.
  • Retries after any error or non-2xx answer: after 30 seconds, 2 minutes, 10 minutes and 1 hour (5 tries in all). Then View deliveries shows each try and has Retry.
  • One id per event, to drop duplicates.

Limits

  • data holds the event's own fields, for example ticketId, title and severity for ticket.created. For more, such as the full issue or the run report, your relay calls the REST API.
  • A webhook from Settings gets events from every project. For one project, register it through the Webhooks API with projectId. API keys cannot manage webhooks.
  • The URL must be public HTTPS: no localhost, .local or private IP addresses. A delivery is at most 256 KB.
  • Slack-format deliveries are not signed.