After this lesson you can insert any table column into a step as a variable, add a fallback for empty values, and know what happens when a value is missing.
1:31 video with captions, written steps and transcript. Checked against Duckrow on October 3, 2026.
{{Role}} at {{Company}}
Body
Hi {{First Name}}, I'm hiring a VP Finance for a client and you came to mind.
Plain text only in v1. Use {{Column Name}} for personalization.
Sequences · Lesson 3
2 minutes
Narration: preview voiceA recruiter writes to finance leaders for a VP Finance search. The people and companies are example data.
In any Duckrow step, Add personalization inserts a table column as a variable, like {{Company}}. Each message is filled from that lead's row when it sends, so columns you enrich later are used. Add a fallback after a bar, {{First Name|there}}, for empty cells. If a variable has no value and no fallback, the message isn't sent and the lead pauses.
About five minutes, in your own workspace.
You're done when your step reads naturally for a lead with every value, and for one with a blank name.
Three quick questions. Nothing is saved.
One email, sent to three hundred people, and every copy reads like it was written for one. That's what variables are for.
In the step, click Add personalization. It lists your workbook columns. Pick one, and it drops in as a variable in double braces, right where your cursor was. Any column works, even an AI column with an opening line.
When the email goes, each variable is filled from that lead's row. Because it happens at send time, a column you enrich next week is used next week. Grace gets her company, her role, and her own opening line.
Some rows have gaps. Add a fallback after a bar: first name, bar, there. When the first name is empty, the email says Hi there. The live preview shows the token as you typed it; the real send fills it.
A variable with no value and no fallback is never sent as a blank. The message is held, and the lead pauses in the lead list. Fill the cell, or add a fallback, then resume the lead.
To recap. Any column becomes a variable, filled when it sends. Add a fallback with a bar. A variable with no value pauses the lead, instead of sending a blank. Next, branch on what's in your table.