Course resource
Step-by-Step Build Guide
Your first real automation, built one step at a time. The example is lead research; the method transfers to anything.
What you will build: a new row in a sheet triggers research on that company, an AI-drafted opening message, and a notification for you to review.
Allow ninety minutes the first time.
Before you open the tool
Write the line:
New row in "Prospects" sheet
-> look up the company
-> AI drafts an opening message
-> post to my chat channel for review
Set up the sheet with these columns. The last three are written by the automation:
| Company | Website | Contact name | Contact email | Research | Draft | Status |
|---|
Step 1 — trigger, and nothing else
Create the scenario. Add only the "new row" trigger. Run it.
- It fires when you add a row
- You can see the row data in the output
- The column names match what you expect
Do not add step two until this works. Debugging one thing is easy; debugging five is not.
Common problem: the trigger fires on every existing row the first time. Expected. Let it clear, or start with an empty sheet.
Step 2 — the filter
Add a filter immediately after the trigger:
Continue only if: Website is not empty AND Status is empty
Test: add a row with no website. Nothing should happen.
This step is what stops the automation re-processing rows forever and running on incomplete data. It is the step people skip and regret.
Step 3 — gather the input
Add a step that fetches the company's site content, or use a search tool module.
- It returns something for a real company
- It fails gracefully for a bad URL
Look at the actual output. It will be messier than you expect — navigation, cookie banners, footers. That noise goes into your AI step unless you trim it.
Step 4 — the AI research step
Here is content from a company's website:
{{content}}
Summarise in under 100 words:
- What they do
- Who they sell to
- Anything that suggests they are growing or changing
Use ONLY the content above. If it does not say, write "not stated".
Do not use any outside knowledge about this company.
Temperature 0.2. This is extraction, not creativity.
- Output is about the right company
- It does not contain facts that were not in the input
- Run it twice on the same input — is the output similar?
That last check is how you catch a temperature set too high.
Step 5 — the draft
Write an opening message to {{contact name}} at {{company}}.
What they do: {{research from step 4}}
What I offer: [YOUR ONE SENTENCE]
Rules:
- Under 90 words
- Open with something specific from the research
- One small ask
- No "I hope this finds you well", no "I wanted to reach out"
- If the research does not give me a genuine reason to contact them,
write "NO CLEAR ANGLE" instead of a message
Temperature 0.6 — this one is writing.
That last rule is the quality gate. A message with no real angle should not be sent, and the automation should say so rather than manufacturing one.
Step 6 — write back and notify
- Write the research and draft back to the sheet
- Set Status to "drafted"
- Post to your chat channel with the company name and the draft
Do not send anything. The output is a draft for you to review.
Step 7 — the error path
Add a route: if any step errors, post to your channel with the step name, the company, and the error.
Test it by putting an invalid URL in a row.
Step 8 — the ten-run test
Add ten real rows. Then check:
- All ten processed
- Research matches the actual companies
- No invented facts
- At least one "NO CLEAR ANGLE" — if every single one produced a message, the model is stretching
- Drafts sound like a person
- Cost per run is what you expected
What you have learned
The pattern generalises:
| This build | The general pattern |
|---|---|
| New row | A trigger you filter tightly |
| Website content | Gather input, trim the noise |
| Research summary | An extraction step at low temperature, constrained to the input |
| Draft message | A generation step at moderate temperature |
| Post for review | Output to a human, never direct to a customer |
| Error route | Fail loudly |
Now change one thing
The fastest way to understand it is to modify it:
- Swap the trigger to a form submission
- Add a classification step that routes by company size
- Change the output to a draft email instead of a chat message
Each change teaches you more than reading another guide.
Your build log
| Step | Worked first time? | What went wrong | Fix |
|---|---|---|---|
| 1 Trigger | |||
| 2 Filter | |||
| 3 Gather | |||
| 4 AI research | |||
| 5 AI draft | |||
| 6 Output | |||
| 7 Error path |