Build a sales meeting prep agent
CRM, email, team chat and the web, combined into a one-page brief before every call, running on each rep's own accounts.
2 min read

The best sales calls start with homework: who this customer is, what was said last time, what is happening at their company. An agent can do that homework in seconds, if it can reach the CRM, the email and the web for the right person. Here is how to build one.
What the agent produces
Before each meeting, one page per account:
- who the customer is and where the deal stands,
- the latest email exchanges and open questions,
- what the team has discussed internally,
- recent public news about the company,
- three suggested talking points.
The services
| Context | Where it comes from | How it is reached |
|---|---|---|
| Account and deal | A CRM such as HubSpot or Salesforce | Connector, the rep’s own OAuth |
| Conversations with the customer | Email, or iGPT for cited answers from long threads | Connector, the rep’s own OAuth |
| Internal discussion | Team chat | Connector, the rep’s own OAuth |
| Public news | Tavily, Exa or Brave Search | Your Agent200 API key |
The workflow
Configure a customer_context capability that takes a company name and:
- retrieves the account and open deal from the CRM,
- retrieves related email,
- searches the team’s conversations about the account,
- returns all of it in one structured result.
Give the model web search as a separate tool, so it decides how much public research a given account needs.
The request
Conceptual example.
const prep = await agent200
.user(rep.id)
.run({
model: "openai/gpt-5.6-sol",
instructions: `
Prepare a one-page meeting brief for a sales rep.
Use customer_context first, then search the web for recent company news.
End with three talking points. Cite the source of every fact.
`,
input: `Meeting with ${meeting.company} at ${meeting.time}.`,
tools: ["customer_context", "web_search"],
});
Why per-user matters here
Each rep sees their own email and the CRM records their account can access, because the request runs on that rep’s connections. A rep’s brief never includes a colleague’s private mail. That is the identity model working as designed, not something you have to build.
Run it at the right time
Have your app read the rep’s calendar and start the request an hour before each external meeting, or offer a “Prepare me” button. Agent200 runs when your application calls it.
Make it trustworthy
- Ask for sources on every fact, so a rep can check anything before saying it out loud.
- Separate what the customer said from what the team assumed.
- Keep it to one page. A brief nobody reads helps nobody.
See more examples on the Use Cases page.


