Webhook sessions

When a verified GitHub delivery reaches DataMind Oda, the matching rules can start a new chat from it. This page describes what that chat is, how Oda creates it, and the limits of the webhook flow. The endpoint itself, its settings and the answers it sends are on GitHub webhooks.

What a delivery creates

Every rule that matches the delivery runs, and a rule that returns a request gives Oda what it needs to open a chat:

What runs for each delivery

How Oda creates the chat

Oda validates the rule's request first, before anything is changed. Then, in order:

  1. It resolves the folder the request names as a workspace, registering the folder if it is not one yet.
  2. It creates the chat in that folder.
  3. It attaches the chat and applies the permission preset the request names.
  4. It sets the chat's title and sends the prompt as the first message.

Accepting the prompt is where the creation settles: before that point, a failure leaves no chat behind. A chat that was already attached is detached and disposed when an attempt is rolled back, and a workspace registered for the attempt can stay behind. Rollbacks are best effort.

What the 202 answer means

GitHub gets its 202 as soon as the verified payload was dispatched in memory. The answer comes before the rules run: it does not say that a rule matched, or that a chat was created. The full set of answers is on GitHub webhooks.

Reliability limits

Important

Nothing retries a delivery. Check the chat before you assume the work happened.

When something is refused

These refusals are reported as messages rather than shown in the chat. Each message names the rule or the chat it belongs to.

What the log keeps

Each run records a line naming its provider, source, delivery and rule, in the shape webhook: provider=... source=... delivery=... rule=...; a rule that fails adds the reason after failed:.

Questions, answered

Where does a chat created by a webhook appear?

It is an ordinary top-level chat, so you open it like any other chat. It belongs to the workspace the rule named, its identifier starts with webhook-, and its first message is the rule's prompt, recorded as a webhook notice.

Why did the same event create a second chat?

Nothing deduplicates deliveries. Oda runs the rules again for every delivery, including one it has handled before, so a second delivery can open a second chat. If a rule must act once, the rule owns that check; the delivery's identifier is recorded on the message so the rule can use it.

Does the 202 answer mean a chat was created?

No. It means only that the verified payload was dispatched in memory. It comes before the rules run and says nothing about rule matches or chats. See GitHub webhooks.

What happens when one rule fails?

The failure is logged for that run only. The other rules still run, and nothing about the failure goes back to GitHub.

Which folder does a webhook chat run in?

The folder the rule's request names, given as an absolute path. If that folder is not a workspace yet, Oda registers it as one. The chat then works there like any chat in its workspace (Workspaces, files and permissions).

Can one delivery create more than one chat?

Yes. Every matching rule runs on its own, and each rule can return one request, so several rules can each open a chat from the same delivery.

How do I know whether a webhook chat finished its work?

There is no completion result. Accepting the delivery and settling a rule do not report whether the chat succeeded, went idle or produced output, so open the chat and read what it did.

Which model does a webhook chat use?

A rule may name the chat's model and an output-token cap. When it names none, the chat starts with Oda's default model selection.

What happens if Oda is closed while a delivery is being handled?

Handling is in memory and fire and forget. A rule call that had not yet reached a prompt is lost, and nothing queues, replays or retries it. A workspace registered for the attempt can stay behind.

What does Oda add to the chat's first message?

The message text is the prompt exactly as the rule wrote it. Oda adds no framing of its own; the message is marked as a webhook notice so you can tell where it came from.