Each recipe is a complete, runnable playbook you can describe in natural language during a build prompt. Read the recipe, copy the prompt, adapt the field names to your data model, and ship.Every recipe includes:
The objective the playbook serves
The trigger and tool calls
The default risk tier and recommended graduation path
A natural-language prompt you can paste into the build chat
Objective. No deal sits in a single stage for more than 14 days without a follow-up attempt.Shape.
name: Stalled deal chaserscope: app_widetrigger: type: schedule cron: "0 9 * * 1-5"steps: - tool: query_collection collection: deals filter: "stage NOT IN ('won','lost') AND days_since_stage_changed_at >= 14 AND amount > 5000" - tool: query_collection collection: contacts filter: "id IN {{ step1.deals[*].contact_id }}" - tool: draft_for_approval underlying: send_email template: stalled_deal_followup owner: "{{ deal.owner }}" payload: to: "{{ step2.contact.email }}" subject: "Following up on {{ step1.deal.name }}"guardrails: risk_tier: draft_and_approve rate_limit_per_user: "10/day" rate_limit_per_recipient: "1/2_weeks"
Prompt.
Add a stalled-deal chaser to the sales app. Watch thedeals collection. Every weekday at 9 AM, find deals over$5,000 that haven't moved stage in 14 days. For each,draft a follow-up email to the contact and route it tothe deal owner's Autopilot inbox. Cap at 10 drafts perowner per day, 1 per recipient per 2 weeks.
Graduation. Stay in draft_and_approve until the action log shows a 90%+ approval rate over 30+ days. Internal-only graduation paths don’t apply (these are external recipients).
Add an SLA enforcer to the support app. Every 15 minutes,find open tickets older than 24 hours with no firstresponse. Notify the assignee in-app, and draft a customerstatus update for the team lead's Autopilot inbox.
Graduation. The notify_user step is already auto-tier (internal). The customer-facing email stays in draft-and-approve.
Add an inventory watchdog to the warehouse app. Watch theproducts collection. When a product's quantity drops to orbelow its reorder point, look up its preferred supplier anddraft a reorder request email to ops. Cap at one draft persupplier per day.
Graduation. Internal-only variants (POs to a procurement queue rather than directly to a supplier) can graduate to auto_with_undo.
Objective. Every user starts the day with a summary of what’s on their plate.Shape.
name: Daily briefingscope: personaltrigger: type: schedule cron: "0 8 * * 1-5" timezone: "{{ user.timezone }}"steps: - tool: query_collection collection: deals filter: "owner = {{ user.id }} AND close_date_within = '7_days'" sort: "amount desc" limit: 5 - tool: query_collection collection: tasks filter: "assignee = {{ user.id }} AND status != 'done' AND due_date <= today + 1" - tool: draft_for_approval underlying: notify_user template: daily_briefing owner: "{{ user.id }}" payload: title: "Your day at a glance" sections: - "Top deals closing this week" - "Tasks due today and tomorrow"guardrails: risk_tier: draft_and_approve rate_limit_per_user: "1/day"
Prompt.
Add a personal daily briefing for each user. At 8 AM intheir timezone on weekdays, summarize: top 5 deals closingthis week (by amount), tasks due today and tomorrow. Landthe draft in the user's Autopilot inbox. One per day max.
Graduation. A daily briefing is a strong candidate for auto_with_undo after a trial period. It’s personal, internal, and reversible (notification can be dismissed).
Add a payout anomaly detector to the finance app. When anew payout is created above $50,000 or 5x the customer's90-day average, ask the finance lead in Autopilot toapprove, hold, or deny. Default to hold if no answer in 4 hours.
Graduation. This stays in human-in-the-loop forever. Anomaly detection is exactly the case where you don’t graduate.
Every Friday at 4 PM, draft a weekly leadership digestcombining pipeline movement, ticket throughput, and agentactivity from the past 7 days. Route the draft to the chiefof staff's Autopilot inbox. On approval, post to #leadership.
Graduation. Once the chief of staff has approved 4+ weeks unchanged, this is a strong candidate for auto_with_undo to Slack.
Field names like deal.owner, ticket.assignee, and customer.avg_payout_last_90_days are placeholders. When you describe the playbook in a build prompt, Gainable’s build agents read your actual schema and rewire the references.If a recipe references a field your schema doesn’t have (e.g. avg_payout_last_90_days), the autopilot phase will offer to add it as a derived field during the build. You can accept, edit, or skip.
query_collection first, then draft_for_approval. Almost every recipe reads relevant context before drafting. The action log captures both, so reasoning is auditable.
Personal scope binds timezone to the user. Personal recipes use {{ user.timezone }} so 8 AM means 8 AM where the user lives.
Rate limits are not optional. Every recipe has at least one. They’re the difference between “the agent helps” and “the agent floods.”
Graduation paths are explicit. Each recipe states whether and when graduation is appropriate.