Learn and master Clay with Clay university
Featured in Clay University
AI Context and Variables
By the end of this lesson you'll have context attached to your campaign and variables inserted in your message, and you'll know how to control what happens to a lead who's missing the data a variable needs.
🧠 Why AI Copy Usually Reads as Slop
When AI cold outbound reads like slop, the model is usually not at fault. Sometimes it is, depending on which model you chose, but usually it's that the model was not given enough context. It doesn't know what you sell, who you sell to, what your customers complain about, or the style and tone your company sounds like.
So if it writes something that could literally be about any company in the world, that's because that's the only context it had. Everything in this panel exists to fix that.
🎯 The Campaign Goal Box
This is where you say what the email is for and what you'd like it to accomplish. In this example, we want people to request a demo of a freelance web development service.
The box does a second job: it's where your house style lives.
You can set style rules right alongside the goal:
- Tell it never to use an em dash
- Tell it your company doesn't use exclamation marks
- Tell it never to say "reach out," or name any other phrase you don't want
You describe what the campaign should do and what it should sound like.
📄 The Documents Behind It
Under the goal box you'll find the documents the campaign draws on:
- Company description
- Ideal customer profile
- Ideal buyer personas
These are already tied to your AI business context. Open the toggle and it takes you to your business context settings, which is the part of the app all that information is pulled from.
You can attach more from here too: additional files, Google Docs, Notion files. If your team maintains style guidelines as a Skill, point at that as well, so every campaign sounds the same without anyone pasting a brand doc into the campaign goal each time.
Once the campaign goal is defined and the documents are linked, everything about your business is covered. Now for the lead.
🔤 Variables
Lead data lives in the Sample data section, where you can search the data points or filter down to the one you're after. To pull one into the message, type a forward slash and pick the variable.
Once the variable is in the message, click into it and you get a popover with three controls.
Format. Choose how the value renders, including title case and lower case, so a company name stored in all caps doesn't shout at your prospect.
Sanitize. Strips emojis and special characters. People put all sorts of weird things in their LinkedIn names and company names.
Require variable data. Covered next, because it's the one with a trade-off attached.
⚖️ Required or Fallback
Toggle Require variable data on, and a lead missing that field is not enrolled.
Concretely: if 20 prospects in your Safe-to-Send list have no data in the name field, they will not receive any of the emails in this campaign.
If you'd rather not lose those leads, set a fallback value instead. Anyone with a missing name then gets the fallback text rather than being dropped from the campaign.
✍️ Sender Variables
Sender data works the same way, but pulls from whoever is sending rather than from the lead. You can insert sender full name, first name, or signature, and format them with the same hover controls. A signature block is the usual place for these.
🚀 What's Next
You've got context attached to your campaign, variables inserted into the message, and a deliberate choice made between requiring data and falling back to safe text.
Next we let the AI actually write with all of it, using AI snippets and spintax.



