Zapier:
- Bound the poll budget under Zapier's step timeout and default Wait for
Completion off; timeout message notes the add likely still succeeded
- Add offline unit tests (mocked z.request) and run them in CI
- Expose a Page input on Get Memories
- Encode memory_id in the delete path
- Update E2E to test the default no-wait path (add then search-retry)
n8n:
- Clarify the Infer description (controls extraction, not waiting)
- Add an App ID field and require at least one entity id before add
- Pass itemIndex into pollEvent errors
- Unwrap event results so wait-path output matches search and get many
Match the repo's per-integration CI/CD convention (vercel-ai / pi-agent
pattern):
- n8n-nodes-mem0-checks.yml (lint + build + dist verify) and
n8n-nodes-mem0-cd.yml (npm publish --provenance via OIDC, dispatched by
the release router on tag n8n-nodes-mem0-v*).
- zapier-mem0-checks.yml (zapier validate) and zapier-mem0-cd.yml (manual
zapier push; requires ZAPIER_DEPLOY_KEY). Zapier deploys to Zapier's
platform, not npm, so it is not in the release router.
- Wire both packages into ci-gate.yml (path filters + call jobs + gate).
- Register the n8n tag prefix in release.yml and document it + the Zapier
manual-deploy in AGENTS.md.
- Skip the Zapier E2E suite when MEM0_API_KEY is absent so CI is green
offline (it still runs locally with a key).