docs: clarify hook delivery routing
This commit is contained in:
@@ -31,7 +31,37 @@ Example hook config (enable Gmail preset mapping):
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
To customize payload handling, add `hooks.mappings` or a JS/TS transform module
|
To deliver the Gmail summary to a chat surface, override the preset with a mapping
|
||||||
|
that sets `deliver` + optional `provider`/`to`:
|
||||||
|
|
||||||
|
```json5
|
||||||
|
{
|
||||||
|
hooks: {
|
||||||
|
enabled: true,
|
||||||
|
token: "CLAWDBOT_HOOK_TOKEN",
|
||||||
|
presets: ["gmail"],
|
||||||
|
mappings: [
|
||||||
|
{
|
||||||
|
match: { path: "gmail" },
|
||||||
|
action: "agent",
|
||||||
|
wakeMode: "now",
|
||||||
|
name: "Gmail",
|
||||||
|
sessionKey: "hook:gmail:{{messages[0].id}}",
|
||||||
|
messageTemplate:
|
||||||
|
"New email from {{messages[0].from}}\nSubject: {{messages[0].subject}}\n{{messages[0].snippet}}\n{{messages[0].body}}",
|
||||||
|
deliver: true,
|
||||||
|
provider: "last"
|
||||||
|
// to: "+15551234567"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
If you want a fixed channel, set `provider` + `to`. Otherwise `provider: "last"`
|
||||||
|
uses the last delivery route (falls back to WhatsApp).
|
||||||
|
|
||||||
|
To customize payload handling further, add `hooks.mappings` or a JS/TS transform module
|
||||||
under `hooks.transformsDir` (see [`docs/webhook.md`](https://docs.clawd.bot/automation/webhook)).
|
under `hooks.transformsDir` (see [`docs/webhook.md`](https://docs.clawd.bot/automation/webhook)).
|
||||||
|
|
||||||
## Wizard (recommended)
|
## Wizard (recommended)
|
||||||
|
|||||||
@@ -92,6 +92,8 @@ Mapping options (summary):
|
|||||||
- `hooks.transformsDir` + `transform.module` loads a JS/TS module for custom logic.
|
- `hooks.transformsDir` + `transform.module` loads a JS/TS module for custom logic.
|
||||||
- Use `match.source` to keep a generic ingest endpoint (payload-driven routing).
|
- Use `match.source` to keep a generic ingest endpoint (payload-driven routing).
|
||||||
- TS transforms require a TS loader (e.g. `bun` or `tsx`) or precompiled `.js` at runtime.
|
- TS transforms require a TS loader (e.g. `bun` or `tsx`) or precompiled `.js` at runtime.
|
||||||
|
- Set `deliver: true` + `provider`/`to` on mappings to route replies to a chat surface
|
||||||
|
(`provider` defaults to `last` and falls back to WhatsApp).
|
||||||
- `clawdbot hooks gmail setup` writes `hooks.gmail` config for `clawdbot hooks gmail run`.
|
- `clawdbot hooks gmail setup` writes `hooks.gmail` config for `clawdbot hooks gmail run`.
|
||||||
See [`docs/gmail-pubsub.md`](https://docs.clawd.bot/automation/gmail-pubsub) for the full Gmail watch flow.
|
See [`docs/gmail-pubsub.md`](https://docs.clawd.bot/automation/gmail-pubsub) for the full Gmail watch flow.
|
||||||
|
|
||||||
|
|||||||
@@ -1589,6 +1589,8 @@ Defaults:
|
|||||||
sessionKey: "hook:gmail:{{messages[0].id}}",
|
sessionKey: "hook:gmail:{{messages[0].id}}",
|
||||||
messageTemplate:
|
messageTemplate:
|
||||||
"From: {{messages[0].from}}\nSubject: {{messages[0].subject}}\n{{messages[0].snippet}}",
|
"From: {{messages[0].from}}\nSubject: {{messages[0].subject}}\n{{messages[0].snippet}}",
|
||||||
|
deliver: true,
|
||||||
|
provider: "last",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
@@ -1612,6 +1614,8 @@ Mapping notes:
|
|||||||
- `match.source` matches a payload field (e.g. `{ source: "gmail" }`) so you can use a generic `/hooks/ingest` path.
|
- `match.source` matches a payload field (e.g. `{ source: "gmail" }`) so you can use a generic `/hooks/ingest` path.
|
||||||
- Templates like `{{messages[0].subject}}` read from the payload.
|
- Templates like `{{messages[0].subject}}` read from the payload.
|
||||||
- `transform` can point to a JS/TS module that returns a hook action.
|
- `transform` can point to a JS/TS module that returns a hook action.
|
||||||
|
- `deliver: true` sends the final reply to a provider; `provider` defaults to `last` (falls back to WhatsApp).
|
||||||
|
- If there is no prior delivery route, set `provider` + `to` explicitly (required for Telegram/Discord/Slack/Signal/iMessage).
|
||||||
|
|
||||||
Gmail helper config (used by `clawdbot hooks gmail setup` / `run`):
|
Gmail helper config (used by `clawdbot hooks gmail setup` / `run`):
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user