Context
The Optimizer writes your message from what you know about the recipient, and starts from your draft when you send one. What to send, where Amdahl adds its own findings, and how to tell when the context was too thin.
The Optimizer writes the message from the context you send: who the recipient is, what you know about them, and what you want them to do. A draft is optional. If you send one in message with facts or rules, it is the starting point. It is the sender's own word, so what it states may be stated, and the message keeps its substance, order, layout and voice. The facts add to it and the rules shape it. See Message Optimizer.
So the context is the product. A run on one thin fact and no draft returns a thin message, such as "Hi Dana, I see you're VP Sales at Northwind. I'd like to connect." Nothing else gives it substance.
What to send
Send each of these that you have. Every one of them makes the message more specific.
| What | Where it goes | Example |
|---|---|---|
| Who the recipient is | recipient (beta, per workspace) or a fact | "recipient": { "name": "Dana Whitfield", "company": "Northwind Labs", "domain": "northwind.example" } |
| What you know about them first-hand | facts in context | "Met Dana at the GTM dinner on Sep 24; she said her SDRs rewrite every AI draft." |
| Your own research, or a pasted CRM note | recipient_notes (beta, per workspace) or facts in context | "Series B in July. Hiring six SDRs this quarter, per their careers page." |
| A whole row from Clay or a CSV | recipient.attributes (beta, per workspace) | { "Job Title": "VP Sales", "Employee Count": 140 } |
| What you sell, and the proof you may cite | facts in context | "Acme cut SDR ramp from 90 to 45 days at a 150-person sales team." |
| What you want them to do | rules in context | "End by asking for a 15-minute call next week." |
| How the sender writes | voice_examples in context | Up to 5 messages the sender wrote themselves. |
| Hard limits on the text | max_words, banned_phrases, banned_punctuation in context | "max_words": 90 |
| The sender's own draft, if they have one | message | "Hi Dana, I saw your team is scaling outbound..." |
The limits on each field are in the request reference.
What counts as good context
- At least one reason to write now. A launch, a hire, a funding round, a post, something the recipient said. Without one, the message has no reason to exist.
- What you offer, in one fact. The Optimizer does not know your product unless you say it or your workspace data holds it.
- Proof as a fact, stated exactly. A claim is licensed only by a fact you sent, by what the sender's draft states, or by evidence Amdahl read. "Teams like yours cut ramp time by half" with no fact behind it can be flagged as invented. State the number and the customer type as you want them used.
- One fact per entry. Each entry in
factsis graded on its own. A fact licenses only what it says, and a rewrite that goes further than a fact is graded as an embellishment. - The ask as a rule. Put the ask in
ruleswhen it matters, for example "Ask for a 15-minute call". Otherwise the Optimizer may close with a question the reader can answer in one line.
A useful minimum is a recipient, one reason to write now, one fact about what you offer, and the ask. With less than that, expect a generic message.
What Amdahl adds
You do not send everything. On a workspace with recipient evidence turned on (beta, per workspace), send recipient and Amdahl looks the recipient up in your own data. It then gives the Optimizer:
- The recipient profile. Fields read from your CRM, your calls and company data, each with its source. See The recipient profile.
- The brief. What the recipient's company said, the pains and objections of buyers like the recipient, and your proof points, each with the quotes behind it. See The brief.
- CRM notes as facts. Up to 20 of your CRM's notes on the account, each with its date.
- The thesis, for a cold message: the shape of the message, built from the brief. See The thesis.
You cannot send these yourself. Amdahl builds them on the server from what your credential may read. To use them, ask Amdahl to turn on recipient evidence for your workspace, then send recipient on every call.
Send evidence: "workspace" too, once your conversations have synced. The Optimizer then also grades the message against what your customers said. See What it grades.
Check what arrived
The response says what the Optimizer received. Read it before you blame the message.
contextcounts the rules, voice examples and facts that arrived, after blank entries were dropped.recipient_receivedlists the recipient fields that arrived, as names and counts.profile.unknownsnames what Amdahl could not find about the recipient, such asperson_not_found.noteswith thedeveloperaudience say what to send next. Adraft_improved_no_contextnote means you sent amessagewith no facts, no rules and norecipient, so the draft was improved instead.
If the facts count in context is 0 or 1 and there is no profile, the context was thin. Add facts and run it again. The same request with the same context returns the same result.
Next
- Message Optimizer: every field of the request and the response.
- Keep your voice, rules and facts: the sender's voice and rules on each message.
- Optimize a campaign: build the context for each row of a spreadsheet.