An AI Agent reads fields on a record and returns a result, such as a category, a researched answer, an email or a score. Build an Agent once and reuse it in any number of Journeys. For example, a company size classifier built once can run in every Journey that needs it, which keeps your data consistent across campaigns.
Every AI Agent has one level and one type.
Level | Runs on |
Account | One account |
Person | One person, and that person's account fields |
Signal | One event, such as an email reply or a LinkedIn post |
Type | Returns |
Classify | Exactly one category from a list you define |
Research | Named answers to questions you write |
Write content | A message, an email sequence or email fragments |
Calculate | A number, such as a score or a count |
Stamp | A value that a Journey's Assign Field step sets |
The base prompt
Create a Tapistro AI agent named "[your name for this agent]".
Level: account / person / signal.
Type: [classify / research / write content / calculate / stamp].
Inputs: [fields the agent should read].
[Type-specific instructions below]
Before saving, preview it on [2 or 3 example domains or people].
Choose the inputs
Account Agents usually read the account's name and domain.
Person Agents read fields such as person.title, person.firstName, person.payload.linkedInHeadline and person.payload.linkedInSummary. They can also read account fields, written with an account. prefix, such as account.name and account.domain.
To build on another Agent's result, add "Also read the output of the agent [name]."
Classify
Type: classify.
Return exactly one of these categories: - "[Category A]": [what qualifies, with examples, plus "Do NOT classify here if..." lines] - "[Category B]": [description] - "Others": anything that doesn't fit the categories above.
Include the citation and reason.
Always end with a catch-all category, such as "Others."
The more clearly each description says what's included and what's excluded, the more consistent the results.
Research
Type: research questions.
Question 1 (save the answer as "[AnswerName]"): [question].
Answer format: [a 3 to 4 word noun phrase / YES, NO, or MAYBE / numbered bullets].
Question 2 (save the answer as "[AnswerName]Citation"): Provide the citation for your answer.
Name every answer, and give each one an exact format.
Set a time window when recency matters, for example "Do not return news older than 2 months."
Destinations and other Agents use the answer name to pull the value, so choose names with your reports in mind.
Write content
Type: write content, [one message / an email sequence of N emails / email fragments in a template].
Tone: [e.g., friendly, persuasive, empathetic, excited].
Goal: [who it's from, who it's to, what to reference, what to avoid, length, and the call to action].
For a sequence, the goal for each email:
Email 1: [goal]
Email 2: [goal] Body format: HTML.
Brand context: [brand context name].
Quality check: minimum score [85], regenerate up to [2] times.
Judge it on: [guideline].
Output | Fields it returns |
One message | subject, body |
Email sequence | email_1.subject, email_1.body, email_2.subject, and so on |
Fragments | One field per fragment, placed into your template |
For a LinkedIn message, use the one-message type and put a character limit in the goal.
For fragments, describe each fragment and give the template:
Fragments:
"[Fragment name]": [instruction]
"[Fragment name]": [instruction]
Template: Hi {{person.firstName}}, as a {{[Fragment name]}}, you know that...
To set up a Brand Context, see Create and use a Brand Context.
Calculate
Type: calculate.
Logic: [plain English, e.g., "10 points if the industry agent returns SaaS or Manufacturing, plus 10 points if the account has 20 to 2,000 employees"].
For counts and sums across related records:
Type: calculate, aggregated per account.
Count the signals from source "[source name]" received in the last [N] days.
Describe the logic in plain English and Claude writes the SQL. An account score is usually a Calculate Agent that adds up points from several other Agents.
Stamp
Create a stamp agent named "[your name for this agent]" at the person level.
A journey's Assign Field step will set its value.
Use Stamps for campaign tags and tiers. Account list and person list Sources can then filter on the stamped value.
Copy a shared Agent instead of editing it
When you update an Agent, the update replaces the whole record. The change shows up in every Journey that uses the Agent. To change it in one place only, ask Claude to copy it:
Copy the agent "[name]" and change [what you want different].
