Trust
Data handling
What RevvedAgents does with your HubSpot data: which fields reach which AI model, for each agent; which services process your data; and how long each kind of data is kept. The agent list below is generated from the same source the product reads, and an agent listed as sending nothing to an AI model is blocked from calling one.
- AI sees: nothing — Runs without an AI model. Nothing from your portal is sent to one.
- AI sees: aggregates only — Only counts and percentages reach an AI model — no record fields.
- AI sees: record fields — Named record fields reach an AI model. The data-handling page lists them.
Which AI sees what, per agent
7 of 10 agents run without an AI model. The others are listed field by field, by HubSpot property name.
Full Portal Audit Agent
AI sees: record fieldsAudit-section counts and a sample of deal fields; with an Anthropic key the model reads contact, company, deal and ticket records itself.
Default model under managed AI:
gemini-2.5-proManaged AI (Google Gemini, the default), or your own Google or OpenAI key
One call per audit category with that category's counts and percentages — including how many sampled contacts have each lifecycle stage and each original source, and how many sampled tickets have each priority (the contact and ticket fields below, as counts per value, never per record) — and up to three record IDs per object; for deals, also each sampled deal's stage, open/won/lost state, amount, last-modified date and number of associated contacts. A final call sees only the category scores and findings.
- Contacts
lifecyclestagehs_analytics_sourcehs_latest_source- Deals
dealstageamounths_lastmodifieddatenum_associated_contacts- Tickets
hs_ticket_priority
Your own Anthropic key, or an account with no AI setting (runs on our Anthropic key)
The model reads your records itself, through HubSpot read tools, during the run. It is told to read the fields below, plus property definitions, pipelines, workflows, lists, owners (users' names and email addresses), forms, marketing-email statistics, blog posts, landing pages, and sent, bounced and unsubscribed email events (each with the recipient's address). Its tools are not limited to those reads, so on this engine any field a HubSpot read tool returns can reach the model. Up to three entries from the AI memory you saved in Settings may be added.
- Contacts
emailfirstnamelastnamephonecompanyjobtitleindustrylifecyclestagehs_lead_statushs_email_bouncehs_email_optouths_email_is_ineligiblecitycountrycreatedatehs_lastmodifieddatehubspot_owner_idassociatedcompanyidnum_associated_dealsnotes_last_contactedhs_analytics_sourcehs_latest_source- Companies
namedomainindustrynumberofemployeescitycountryphoneannualrevenuelifecyclestagecreatedatehs_lastmodifieddatehubspot_owner_idnum_associated_contactsnum_associated_deals- Deals
dealnameamountdealstagepipelineclosedatecreatedatehs_lastmodifieddatehubspot_owner_idhs_deal_stage_probabilitynum_associated_contactshs_closed_won_datehs_closed_lost_reasondealtypehs_is_closedhs_is_closed_won- Tickets
subjecths_pipelinehs_pipeline_stagehs_ticket_priorityhubspot_owner_idcreatedatehs_lastmodifieddatehs_resolution_timesource_typehs_is_closedclosed_datehs_time_to_close_sla_statushs_time_to_first_response_sla_status
Property Cleanup Agent
AI sees: nothingProperty usage, descriptions and archive candidates are worked out by rules in our code; no AI model is called.
Deduplication Agent
AI sees: record fieldsOnly ambiguous (fuzzy) matches: the matched records' display fields, for an advisory second opinion. Exact matches never reach a model.
Default model under managed AI:
gemini-2.5-flashOnly when a run finds fuzzy matches (confidence below 95%), at most 40 duplicate groups per run
Each matched record's ID and display fields (a value longer than 200 characters is cut, except names, email addresses, phone numbers, domains, deal names and ticket subjects), the property the match was made on, and your optional instructions. For a custom object, up to eight of that object's own text properties. The answer is advisory: it never changes which merges are proposed, and every merge still waits for your approval.
- Contacts
emailfirstnamelastnamephonecompanyjobtitlelifecyclestagecreatedatehs_lastmodifieddatehubspot_owner_idhs_additional_emails- Companies
namedomainindustrycitycountrycreatedatehs_lastmodifieddatehubspot_owner_id- Deals
dealnameamountdealstagepipelineclosedatecreatedatehs_lastmodifieddatehubspot_owner_id- Tickets
subjecths_pipelinehs_pipeline_stagehs_ticket_prioritycreatedatehs_lastmodifieddate
Data Enrichment Agent
AI sees: nothingFills empty fields from Apollo.io with your own Apollo key; no AI model is called.
Also sent to Apollo.io (your own API key): Each contact's email address and each company's domain, to look up the values for empty fields.
Contact Context Agent
AI sees: record fieldsEach contact's profile, recent notes, calls, meetings and emails, and open deals and tickets — to write the contact summary.
Default model under managed AI:
gemini-2.5-flashContacts in batches of five, each with its record ID and: profile fields; activity recency (dates are sent as days ago); its company's HubSpot Intent figures where the portal has Intent; up to three open deals and three open tickets; the five newest notes (first 600 characters each); the five newest calls, meetings and logged emails (title and body, first 200 characters); and up to five earlier RevvedAgents findings about the contact. The model has no HubSpot tools. Up to three entries from the AI memory you saved in Settings may be added.
- Contacts
firstnamelastnameemailcompanyjobtitlelifecyclestagehs_lead_statusnotes_last_updatedhs_email_last_open_datehs_email_opennum_contacted_notescreatedatehs_analytics_last_visit_timestamphs_analytics_num_visitshs_analytics_num_page_viewshs_latest_sourcehs_sales_email_last_repliedhs_last_sales_activity_timestamp- Companies
hs_intent_visitors_last_30_dayshs_intent_page_views_last_30_dayshs_most_recent_de_anonymized_visiths_recent_intent_signals- Deals
dealnameamountdealstagehs_deal_stage_probabilityhs_lastmodifieddate- Tickets
subjecths_ticket_prioritycreatedate- Notes
hs_note_bodyhs_timestamp- Calls
hs_call_titlehs_call_bodyhs_call_directionhs_timestamp- Meetings
hs_meeting_titlehs_meeting_bodyhs_internal_meeting_noteshs_meeting_outcomehs_timestamp- Logged emails
hs_email_subjecths_email_texths_email_directionhs_email_statushs_timestamp
Send Suspension Prevention Agent
AI sees: nothingBounce, complaint and engagement figures are computed by rules in our code; no AI model is called.
Email Sunset Policy
AI sees: nothingUnengaged cohorts and exclusions are decided by rules in our code; no AI model is called.
Deal Risk Autopilot
AI sees: nothingRisk signals are computed by rules in our code; no AI model is called.
Renewal Playbook
AI sees: nothingRenewal dates and tasks are worked out by rules in our code; no AI model is called.
Content Integrity
AI sees: nothingBlog checks are rules in our code; no AI model is called.
Which AI provider runs an agent
It depends on the AI setting your account uses (Settings → AI Configuration).
| Setting | Provider | Details |
|---|---|---|
| Managed AI — the default for accounts created since 19 October 2026 | Google (Gemini API) | Agents run on our Google Gemini key. The agent table below names each agent's default model (an account can pin an agent to another Gemini model). |
| A managed Gemini call fails | Anthropic (Claude API) | When Google fails a call after its retries, that one call is re-sent to Anthropic (claude-sonnet-4-6) on our Anthropic key, if one is configured. Calls on your own key are never re-routed. |
| Your own key | Anthropic, OpenAI or Google — the provider you choose | Calls go to your own provider account, on your key and under your terms with them. The key is stored encrypted. |
| An older account with no AI setting | Anthropic (Claude API) | An account that has neither chosen managed AI nor saved a key runs on our Anthropic key. |
Other features that use AI
| Feature | What is sent | Provider |
|---|---|---|
| Chat assistant | Your messages, and the HubSpot records the assistant reads to answer them — with its HubSpot tools, or, for /why-stuck and /draft-email, the named deal's fields. | Your own key if you saved one; otherwise Anthropic on our key. |
| Workflow suggestions | Each workflow's ID, name, on/off state, category and source. | Managed AI or your own key; otherwise Anthropic on our key. |
| AI memory search | The memory entries you save, and the request being answered, to pick the most relevant entries. | Only with your own OpenAI or Google key (their embedding models); otherwise entries are matched by words, with no model. |
Sub-processors
The services that process your data on our behalf, and when.
| Service | Purpose | Data | When |
|---|---|---|---|
| Google Cloud (Cloud Run, us-central1) | Hosts the web app and the background worker that runs agents. | Everything the app processes passes through it. | Always |
| MongoDB Atlas | Database. | Your account and settings, encrypted HubSpot tokens and AI keys, run reports, approval cards, chat history and saved AI memory. | Always |
| Redis Cloud | Run queue and rate limits. | Run IDs and request counters. No CRM records. | Always |
| Google (Gemini API) | Managed AI, on our Gemini key — or AI on your own Google key. | What the agent table and the AI features list say reaches a model. | Managed AI (the default), or if you save a Google key |
| Anthropic (Claude API) | AI on our key (the managed-AI fallback, accounts with no AI setting, the chat assistant without your own key), or on your own Anthropic key. | What the agent table and the AI features list say reaches a model. | See "Which AI provider runs an agent" |
| OpenAI | AI on your own OpenAI key. | What the agent table and the AI features list say reaches a model. | Only if you save an OpenAI key |
| Resend | Transactional email: alerts, digests, team invitations, password resets. | The recipient's address and the email's content, which can name records from your portal. | When we email you |
| Stripe | Subscription billing. | Billing contact and payment details. No CRM data. | When you subscribe or buy credits |
| Apollo.io | Data Enrichment lookups, on your own Apollo key. | Contact email addresses and company domains. | Only if you add an Apollo key and run Data Enrichment |
| HubSpot (our own CRM) | Our customer records: who uses RevvedAgents, for account management and support. | Each account user's name, email address and role; the account's plan, credit and usage figures, activated agents and connected HubSpot portal IDs; and account milestones such as the first completed run. No records or fields from your portal. | Always |
How long data is kept
Windows come from our code. “Not set” means the code deletes nothing automatically — we say so rather than guess.
| Data | Kept for |
|---|---|
| Agent run reports: findings, results and the settings each run used | Not set — no automatic expiry. |
| Approval cards: the changes an agent proposes, with the record values they show | Not set for the card itself. A card nobody reviews expires after 3 days (7 days for Deal Risk Autopilot, Renewal Playbook and Email Sunset Policy) and can then no longer be approved. |
| HubSpot connection: the portal's encrypted OAuth tokens | Deleted when you remove the portal under Connections. Uninstalling the app in HubSpot marks the connection disconnected; the encrypted record stays until you remove the portal. |
| Chat conversations and messages | Not set — no automatic expiry. Deleting a conversation in the app archives it; its messages are kept. |
| AI memory you save in Settings | Not set — kept until you delete it. |
| Audit log of actions taken in your account | Not set — no automatic expiry. |
| Everything else kept for your account: agent settings and schedules, alerts, weekly digests, portal health snapshots, Send Suspension and Email Sunset state, webhook delivery logs, usage and credit records | Not set — no automatic expiry. |
| Pending chat-assistant action confirmations | 24 hours, then deleted. |
| Error reports (client and server exceptions) | 30 days, then deleted. |
| Approval failure log | 30 days, then deleted. |
| Run queue jobs (Redis) — a job holds the run's ID only | Kept 7 days after the run completes, or 30 days after it fails, then removed. |
| Data sent to an AI provider | Set by that provider's API terms (with your own key, by your agreement with them). Our code sets none. |
RevvedAgents