6.8 KiB
6.8 KiB
WIP.md
Current focus
Google Workspace + n8n integration
Goal
Use OpenClaw as the brain, n8n as the orchestration layer, and Google Workspace as a real execution surface for Gmail/Calendar workflows.
Current status
Status: in-progress
Owner: zap
Started: 2026-03-12
Architecture decision
- Keep
openclaw-actionas the narrow authenticated ingress into n8n. - Keep approval/state/logging in n8n.
- Use workflow static data for tiny internal state and recent operational breadcrumbs.
- Do not adopt n8n data tables as the default state store yet; revisit only when shared row-based data, UI browsing/editing, or richer querying becomes a real need.
- Use host-side
gogexecution for Google Workspace actions for now. - Attach execution results back into n8n history so approval items become auditable records.
- Prefer this over broad n8n Google credential sprawl unless a later need clearly justifies it.
Where n8n is a good fit here
- approval-gated actions and human-in-the-loop workflows
- cross-system glue / action-bus routing
- inbound event filtering, normalization, and dedupe
- notification fanout and formatting
- retries / backoff / rate-limit wrappers around brittle integrations
- fetch-and-normalize pipelines for URLs or provider payloads
- compact audit trail / operator history
Where n8n is not the default
- primary long-term database
- heavy archival logging
- large or fast-growing datasets
- business logic that is clearer and safer in normal code
What is already done
n8n action bus
- Live
openclaw-actionworkflow exists and is active. - Core actions verified live:
append_logget_logsnotifyapproval_queue_addapproval_queue_listapproval_queue_resolvefetch_and_normalize_urlinbound_event_filter
- Approval-gated notification execution works live:
send_notification_draft- approve → real
notify
Google access
goginstalled and authenticated for:- Gmail
- Calendar
- Drive
- Contacts
- Docs
- Sheets
- Local-only Gog automation env stored outside git at:
/home/openclaw/.openclaw/credentials/gog.env
- Host bridge implemented:
skills/n8n-webhook/scripts/resolve-approval-with-gog.py
- n8n history patch action implemented:
approval_history_attach_execution
- Dry-run end-to-end bridge tests succeeded for:
- Gmail draft creation
- Calendar event creation
- Headless non-interactive Gog execution works via the stored local env.
- Direct real Gmail draft create test succeeded.
- Direct real Gmail draft delete test succeeded.
- Real n8n-routed Gmail draft test succeeded end-to-end (queue → approve via bridge → verify → delete).
- approval id:
approval-mmnvjcak-qcuhbzqd - draft id:
r348335896293726096 - subject:
[zap n8n e2e] Gmail draft test 20260312T194153Z
- approval id:
- Real n8n-routed Calendar event test succeeded end-to-end (queue → approve via bridge → verify → delete).
- approval id:
approval-mmnvjyo5-uezhcw84 - event id:
il3ojkfnsnq3uhlepvrmaklpq4 - title:
[zap n8n e2e] Calendar test 20260312T194222Z
- approval id:
What is left
Highest priority: prove the bridge with real Google writes
- Real end-to-end Gmail draft via n8n path:
- queue
send_email_draft - approve via
resolve-approval-with-gog.py - verify draft exists in Gmail
- delete the test draft
- queue
- Real end-to-end Calendar event via n8n path:
- queue
create_calendar_event - approve via bridge
- verify event exists in Calendar
- delete the test event
- queue
Then expand useful Google actions
- Add
delete_email_draft - Add
list_email_drafts - Add
send_gmail_draft/ send-approved-email path - Add
update_calendar_event - Add
delete_calendar_event - Add
list_upcoming_events - Decide whether Drive/Docs/Sheets need action-bus verbs next or can stay direct-tool only for now
Then polish the operator experience
- Add a compact operator command/reference section for common approval flows
- Add one or two canned test payloads for real bridge verification flows
- Decide whether some Google actions should stay approval-gated by default
- Add low-noise reporting so history clearly shows:
- queued
- approved/rejected
- executed
- execution result id / draft id / event id
Nice-to-have / future
- Evaluate whether native n8n Google nodes are worth adding later
- Add retry/backoff wrappers for fragile or rate-limited actions
- Expand notification fanout / routing rules if more channels become useful
- Add more inbound event normalization/filtering when new providers are wired in
- Revisit n8n data tables only if shared row-based operator data becomes useful
- If useful, sync this work into the LAN Gitea repo for safer backup/review and easier long-lived tracking
Current recommendation
Next action should be:
- add
delete_email_draftandlist_email_drafts - add
update_calendar_event,delete_calendar_event, andlist_upcoming_events - decide approval defaults for each new Google action
- add a compact operator test playbook for repeated proof runs
Fresh-session proof refresh (2026-03-12 19:44Z)
- Re-ran both target proofs through the real approval-routed path in a clean implementation session.
- Gmail draft flow:
- approval id:
approval-mmnvn4t2-w2rjlwz2 - draft id:
r-3319106208870238577 - subject:
[zap n8n e2e] Gmail draft test 20260312T194450Z - verified via
gog gmail drafts get - cleaned via
gog gmail drafts delete --force
- approval id:
- Calendar flow:
- approval id:
approval-mmnvn6i8-e9eq8gdf - event id:
m7prri8vk2opuo6loq3qgtvsv4 - title:
[zap n8n e2e] Calendar test 20260312T194450Z - verified via
gog calendar get primary <eventId> - cleaned via
gog calendar delete primary <eventId> --force
- approval id:
Next-session handoff
For the next fresh implementation session, start from HANDOFF.md + WIP.md rather than from old chat context.
Immediate target:
- implement at least one new Gmail action and one new Calendar action
- verify through the same approval+bridge flow
- refresh WIP/memory/tasks and commit
Relevant files
skills/n8n-webhook/assets/openclaw-action.workflow.jsonskills/n8n-webhook/scripts/call-action.shskills/n8n-webhook/scripts/resolve-approval-with-gog.pyskills/n8n-webhook/references/openclaw-action.mdmemory/2026-03-12.md/home/openclaw/.openclaw/credentials/gog.env(local-only, not for git)
Current branch / checkpoints
- branch:
feat/n8n-action-bus-v2 - key commits:
9dcc477— expand action bus starter workflowdc990a1— deploy and verify expanded action bus1eabaeb— add approval-gated notification executorafa48a3— bridge approvals to gog executors044e36f— auto-load local gog automation env