{"version":"1.1.0","schema":"https://oneagentaday.com/api/schema.json","agent":{"title":"Automation Recipe Writer","slug":"automation-recipe-writer","date":"2026-09-27","issue":23,"category":"automation","categoryLabel":"Automation","tags":["workflows","automation","no-code"],"difficulty":"easy","runtimes":["ChatGPT","Claude","Gemini"],"excerpt":"Describe a repetitive job. Get a trigger, filters, actions, and a failure step you can rebuild in n8n, Make, or Zapier.","problem":"The job is a habit in someone's head, and the automation tool is open on a blank canvas with no first step.","videoUrl":null,"url":"https://oneagentaday.com/agents/automation-recipe-writer","apiUrl":"https://oneagentaday.com/api/agents/automation-recipe-writer.json","promptUrl":"https://oneagentaday.com/agents/automation-recipe-writer/prompt.txt","configUrl":"https://oneagentaday.com/agents/automation-recipe-writer/config.json","configFilename":"automation-recipe.defaults.json","license":"CC-BY-4.0","howItWorks":"A recipe is a trigger, a filter, the actions, and the way it fails. You describe the habit and the fields you have. The writer returns steps you can rebuild in more than one tool, because the value is the shape, not a vendor file.\n\nSecrets are slots, not values. A field you did not list cannot appear as a required input. The failure step is explicit: what gets posted, and when to stop retrying.\n\nBuild it, then send two test payloads: one the filter should drop and one it should keep. If the channel message contains a field you banned, the recipe is wrong.","steps":[{"name":"Describe the job as a habit","text":"Write when it starts, what it must ignore, what it writes, and what should happen when a step fails. Name the tools you might rebuild it in."},{"name":"Paste the fields you actually have","text":"List the webhook or export fields. The recipe cannot require a field you did not name."},{"name":"Paste the prompt","text":"You get a trigger, filters, actions, and one failure step. The shape is plain enough for n8n, Make, Zapier, or a script."},{"name":"Build it in the tool, secrets in the tool","text":"Create the credentials in the automation product. Do not paste API keys into the chat. Run one test payload under the filter and one above it."}],"demo":[{"second":0,"label":"The habit","detail":"A form webhook creates a billing post and a sheet row. Amounts under 1 EUR are tests. Email stays out of the channel."},{"second":8,"label":"The recipe","detail":"Trigger: webhook. Filter: amount >= 1. Actions: sheet append with email, channel post without email. Failure: one FAILED message, stop after two tries."},{"second":16,"label":"The test","detail":"A 0.50 payload stops at the filter. A 40 EUR payload reaches both actions and the channel text has the order id, not the email."},{"second":24,"label":"The slot","detail":"The sheet credential is named as a slot. The recipe does not contain a key."}],"sampleInput":"Job: when a refund is requested in our form tool, post a summary to the #billing channel and add a row to the refunds sheet.\nTrigger we have: the form tool can POST a webhook. It cannot poll.\nFields in the webhook: order_id, amount, reason, email.\nFilter: ignore amount under 1 EUR. Those are tests.\nFailure: if the sheet append fails, post to #billing with the word FAILED and do not retry more than twice.\nDo not put the customer's email in the channel message. The sheet may have it.\nTools I will rebuild this in: n8n or Make. I do not want a Zapier-only binary.","prompt":"You write an automation recipe from a habit the human described. The recipe must be rebuildable in n8n, Make, or Zapier. You do not emit a vendor export and you do not ask for secrets.\n\nINPUTS\n- The job, in sentences.\n- Trigger they can actually fire.\n- Fields available.\n- Filters and failure rules.\n- Fields that must not appear in certain destinations.\n\nRULES\n- Steps in order: Trigger, Filter, Actions, Failure.\n- Use only fields they listed. If a step needs a missing field, stop and name it.\n- Secrets are named slots (\"Sheet credential\"), never values.\n- Failure includes what is reported and the retry limit they gave. If they gave none, use two tries and say you assumed it.\n- Do not add a step they did not ask for, including an email to the customer.\n- A banned field must be absent from the destination they named. Say so in the step.\n- Plain language. No product-only code.\n\nOUTPUT\n## Trigger\n## Filter\n## Actions\nNumbered.\n## Failure\n## Test payloads\nTwo example payloads: one dropped, one kept. Use fake ids.\n## Assumed\nOr \"None.\"","config":"{\n  \"version\": 1,\n  \"steps\": [\n    \"trigger\",\n    \"filter\",\n    \"actions\",\n    \"failure\"\n  ],\n  \"defaultRetries\": 2,\n  \"secrets\": \"slots-only\"\n}\n"}}