← All templates

Writing

Freelance Pitch Tracker

Freelance writing is a numbers game played with terrible records. This workflow logs each pitch with the outlet, editor, angle and rate, follows up once at the interval that outlet actually responds within, and keeps a per-editor history so you never re-pitch a killed idea to the person who killed it — or forget that an editor said yes to something eleven months ago.

6 stepsRequires Zapier Starter or higher15 minEasy
Google FormsGoogle SheetsGmailTodoistDelay by Zapier

What you get

Every pitch is logged with outlet, editor, angle and target rate.
Silent pitches get exactly one follow-up, at the right interval.
Editor history is visible before you pitch, not after they remember for you.

Workflow blueprint

GF
When this happens
Google FormsNew Form Response
1GS
Google SheetsCreate Spreadsheet Row
2GS
Google SheetsUpdate Spreadsheet Row
3DE
Delay by ZapierDelay For
4GM
GmailSend Email
5TO
TodoistCreate Task

The full blueprint — every field mapping, example value and the written copy for each message — is included with purchase.

Getting it into Zapier

Build this one from the recipe. The blueprint gives you the exact trigger, action events and field mapping for all 6 steps, so it is a copy-and-paste job rather than a design job.

You need your own Zapier account. Zapier’s Free plan runs single-step Zaps only; multi-step Zaps need a paid plan, and Paths and Webhooks need Professional. How this works →

Not on Zapier?

n8n — import and go

An n8n workflow JSON ships with this template. Import it and all 6 steps arrive on the canvas wired in order, and 4 of the 6 nodes arrive with their fields already filled in — the subject lines, the message copy, the delays, the column names. Every step maps to a native n8n node, one of them by a different route — see below.

Google Forms has no n8n node at all, so that step arrives as a native Google Sheets node on the form’s linked responses sheet. It is named for what it is on the canvas rather than for the app it stands in for, and the sticky note under it opens by saying so — the field names are unchanged either way, but the account you connect is the $Google Sheets one.

What an import cannot carry is your credentials, and the IDs that only exist inside your own account — which spreadsheet, which channel, which board. Those stay in a sticky note under the node, listing what is already done so you do not retype it, and what is left so you can see it.

Make — build guide

A Make-specific guide ships with this template: every module in order, every field value, and the concept translations that catch people out — filters live on the links between modules, and the schedule lives on the scenario rather than in a trigger module.

Self-hosted n8n has no per-task fee, which is worth knowing if this workflow runs at volume. Platform coverage →

Setup steps

1
Log the pitch

Configure this step using the field mapping in the blueprint.

2
Record it against the editor

Configure this step using the field mapping in the blueprint.

3
Wait the outlet’s response window

Configure this step using the field mapping in the blueprint.

4
Prompt the single follow-up

Configure this step using the field mapping in the blueprint.

5
Create the re-pitch reminder

Configure this step using the field mapping in the blueprint.

Implementation notes

  • One follow-up. Not three. Editors who want the piece reply; editors who are silent after one nudge are telling you something, and a third email costs you the next pitch too.
  • Response windows differ enormously — a fortnight at a monthly magazine, three days at a news desk. Store the window per outlet or the follow-ups will be badly timed at both ends.
  • The editor sheet is the real asset. Two years of it is worth more than any single commission, because it tells you who actually buys from you.
  • Log killed pitches with the reason. "Covered it last year" and "not for us" send the angle to very different next outlets.