Preset catalog
A preset is a named, reusable step chain. Wrap one in a schedule to run it on cron. These ship today:
Content & veille
| Preset | Pipeline | Requires |
|---|---|---|
gmail | read Gmail | Gmail OAuth |
bookmark | read bookmarks | — |
twitterFocus | read a Twitter/X focus source | — |
veille | Gmail Veille label → enrich → Notion | LLM key, NOTION_INTEGRATION_TOKEN, NOTION_DATABASE_ID |
Social & blog
| Preset | Pipeline | Requires |
|---|---|---|
socialVeille | Gmail label → enrich → social_post X-draft per link (no auto-post) | LLM key |
socialPublish | post approved + due drafts to their platform | X / LinkedIn OAuth |
blog | Gmail label → enrich → blog_post long-form draft per link | LLM key |
blogPublish | publish approved + due blog posts; optional crossPostToSocial spawns a back-link X draft | — |
Drafts are owner-scoped (userId stamped at creation). Publishing is worker-owned, atomic-claimed, and idempotent.
Operations
| Preset | Pipeline | Requires |
|---|---|---|
quote_requests | read pending → email_digest batched admin email → mark reviewed | RESEND_API_KEY, NOTIFICATION_EMAIL |
calendarToTasks | upcoming Google Calendar events → one owner-scoped kanban Task each (idempotent on event id) | GMAIL_* token with calendar.readonly scope |
gmailTriage | Gmail label → triage LLM → kanban Task → tag processed | LLM key |
classifiedsWatch | scrape a Leboncoin / AutoScout24 / Malt saved search → watch records each price as a time-series → kanban price-alert Task when below threshold; optional skill adds an LLM “genuine deal?” veto | CDP scraper sidecar |
Thresholds on classifiedsWatch are ${input:…} tunable per-schedule after ingesting real prices.
Defining your own
Presets are declared in JobPreset in the domain package — the single source of truth for the preset → steps mapping plus the per-preset input schema. See Author a preset.