# Turn a recipe into a scheduled n8n workflow

Source: https://mcpforgtm.com/recipes/recipe-to-n8n-workflow (StackMCP, independent directory of official MCP servers)

## Goal

RevOps people who have a chat recipe that works by hand, like the weekly pipeline digest, and want it to run on a schedule without anyone opening a chat. n8n can be swapped for Zapier or Pipedream, though the build steps differ.

## Connected tools

- n8n: see vendor docs (setup: https://mcpforgtm.com/tools/n8n)

## Guardrails

- Never ask me for API keys, passwords or tokens. Use only credentials already set up in n8n.
- Validate the workflow and test it with pinned sample data before suggesting it's ready.
- Use a test Slack channel until I approve the switch to the real one.
- Publish only after I approve it. Don't run it in production mode from the chat.
- Keep the CRM part read only.

## Steps

1. Read n8n's workflow SDK reference, then search n8n's nodes for a schedule trigger, my CRM ({crm}) and Slack. Turn this recipe into a workflow plan, one line per node: {paste the recipe steps}. Run it {schedule, e.g. Mondays at 7am}. Show me the plan and don't create anything yet.
2. List my n8n credentials and tell me which ones match {crm} and Slack by name. If one is missing, stop and tell me to set it up in n8n. Don't ask me for any keys.
3. Write the workflow code for the plan with the Slack node posting to {test channel}, and validate it. Show me any errors and fix them. Create the workflow in n8n only after I approve the validated code.
4. After I approve it, run a test with pinned sample data: about six fictional deals with the same field names my CRM uses. Show me the exact Slack message it produced.
5. After I approve, update the Slack node to {real channel}, show me the diff against the tested version, and publish the workflow only after I approve it.

## Expected output

Workflow plan, validation result and a pin-data test, before publishing. Example (all names fictional):

```
Workflow (created, not published): Weekly pipeline digest

1. Schedule trigger: Mondays 7:00 am
2. CRM node: read open deals (stage, amount, close date, owner, last activity)
3. Code node: group by stage, flag no activity in 14+ days and close dates in the next 30 days
4. Slack node: post the summary to #pipeline-test

Credentials: uses 'CRM - RevOps read only' and 'Slack - digest bot', both set up in n8n by you. No keys were shared in this chat.

Validate: passed, 0 errors, 1 warning (Slack channel is a test channel).

Test run with pinned sample data (6 fictional deals):
Pipeline digest, week of Oct 13 (baseline week: no comparison yet)
Open: 6 deals, $142K
- Mossgate Labs (fictional), $31K, no activity in 18 days (owner: Priya Raman)
- Fernhill Software (fictional), $22K, closes Oct 30 (owner: Alex Rivera)

Next: switch the channel to #pipeline and publish. Reply 'approve publish' when ready.
```

## Watch for

- A test that posts to the real channel: A test run can still reach Slack. Point the Slack node at a private test channel during testing, and only switch to the real channel in the last edit before publishing.
- Pinned data that doesn't look like real data: If the sample deals have different field names than your CRM returns, the workflow passes the test and breaks on the first real run. Copy the field names from one real CRM record (without customer details) into the pin data.
- Credentials pasted into the chat: The model may ask for an API key to fill in a node. Never paste one. Set up the CRM and Slack credentials in n8n yourself, then ask the assistant to list credentials and pick yours by name.
- Publishing the wrong version: If you edit after testing, the published version may not be the one you tested. Ask for the workflow's version history and a diff against the tested version before you approve the publish.
