OA9 OppAlerts from Ben Wills
How AI Search Works: From Prompt to Response A guide for SEOs, AI search marketers, and marketing teams
Work with me
Work in progress Work in progress. Released about a week early, on purpose.

ChatGPT disclosed things in this session that I did not expect it to disclose, and there is no guarantee it stays available. I would rather people had time to use it than had a tidier version of it later.

So: every word of every ChatGPT response here is verbatim, and that part is checked automatically on every build. What is not finished is the presentation. The color coding on the code blocks is incomplete and some of it is imprecise, and there are notes to myself still sitting in the page.

Parts 1 and 2 are close to empty and are getting a lot of detail over the next week or so, along with a cleanup pass on everything else. Worth checking back.

Read the announcement →

Recommendation walkthrough

How ChatGPT Recommends B2B CRM Software

What the machine looks for when the honest answer is that it depends.

Context

A B2B software question, where the buyer has to work out which product fits rather than which is best.

This is the walkthrough to send to anyone selling software. It shows what the machine goes looking for when the honest answer is "it depends."

Our prompt could be something like

Now do this for a B2B SaaS application. A CRM, or a product you think is a better fit, something competitive where the buyer really has to work out what is best for them.

Walk me through the exact same process you just did for the blender.

ChatGPT's response

Representation key

For the examples below:

  • Actual request means the JSON arguments I sent to the tool in this conversation.
  • Close transcription of response means the model-visible text returned by the tool, with reference IDs replaced and long sections shortened.
  • Normalized JSON means a structure I created from the returned text. It was not returned by the tool.
  • Conceptual step means model interpretation or synthesis, not a separate exposed internal tool.

Example user prompt

unclassified, needs review
I run a 30-person B2B SaaS company. Ten people need full CRM access:
six sales reps, one sales manager, two customer-success managers, and one
RevOps person.

I want to keep the CRM under $1,200 per month before variable calling or SMS
charges. Annual billing is acceptable.

We use Google Workspace, Slack, Stripe, Segment, and Zoom. We need:

- Two-way email and calendar sync
- Shared company, contact, and deal history
- Sales sequences
- Automated lead routing and follow-up
- Multiple pipelines
- Forecasting and custom reports
- API and webhooks
- Reasonably granular permissions
- An easy migration from spreadsheets and our current lightweight CRM

Because we sell subscriptions, I also need to track customer workspaces,
subscription plans, renewals, expansions, and churn risk. I am open to using
custom fields and pipelines, but I would prefer a CRM that can model these as
separate related objects.

Built-in calling would be useful, but it is not the center of our sales motion.
SOC 2 or comparable security documentation is strongly preferred. SAML SSO
would be useful but is not mandatory yet.

I want the system operational within two weeks without hiring a full-time
consultant. Recommend the best option and explain the trade-offs.

End-to-end flow

conceptual, drawn by ChatGPT
USER B2B SAAS REQUEST
	│
	▼
MODEL INTERPRETATION
	│
	├── Company and team size
	├── User roles
	├── Budget
	├── Sales motion
	├── Required capabilities
	├── Data-model requirements
	├── Integration requirements
	├── Security requirements
	├── Implementation deadline
	└── Explicit non-priorities
	│
	▼
CATEGORY DECOMPOSITION
	│
	├── Revenue platform
	├── Sales pipeline CRM
	├── Outbound sales CRM
	└── Flexible data-model CRM
	│
	▼
INITIAL WEB FAN-OUT
	│
	├── Candidate discovery
	├── Current pricing
	├── Relevant plan tiers
	└── Broad independent comparisons
	│
	▼
CANDIDATE NORMALIZATION
	│
	├── Product
	├── Edition/tier
	├── Seat type
	├── Billing period
	├── Required add-ons
	└── Usage-based costs
	│
	▼
OFFICIAL VERIFICATION
	│
	├── Pricing
	├── Sequences
	├── Automation
	├── Calling
	├── Objects and fields
	├── Permissions
	├── API
	├── Webhooks
	├── Security
	└── Migration
	│
	▼
INDEPENDENT AND RISK RESEARCH
	│
	├── Hands-on reviews
	├── Implementation difficulty
	├── Support quality
	├── Billing complaints
	├── Data-model limitations
	└── Hidden variable costs
	│
	▼
ADAPTIVE FAN-OUT
	│
	├── Resolve custom-object requirements
	├── Verify API limitations
	├── Investigate SSO/security tier
	├── Verify migration pathways
	└── Search unresolved weaknesses
	│
	▼
TOTAL-COST MODEL
	│
	├── Seats
	├── Annual/monthly rate
	├── Mandatory onboarding
	├── Telephony
	├── AI credits
	├── Add-ons
	└── Implementation labor
	│
	▼
FIT AND RISK SCORING
	│
	├── Hard-constraint elimination
	├── Workflow fit
	├── Data-model fit
	├── Adoption difficulty
	├── Integration fit
	├── Cost
	└── Evidence confidence
	│
	▼
RECOMMENDATION
	├── Best fit
	├── Simpler alternative
	├── Outbound-first alternative
	├── Platform alternative
	└── Trial and proof-of-concept plan

Step 1: Interpret the request

There is no separately exposed call such as:

not exposed
{
	"tool": "parse_b2b_crm_requirements",
	"prompt": "..."
}

I interpret the request directly.

Conceptually:

conceptual
Task:
	Select a B2B SaaS CRM

Users:
	10 full users

Budget:
	Maximum $1,200/month
	Variable calling and SMS excluded
	Annual commitment acceptable

Primary business motion:
	B2B subscription sales
	Moderate outbound
	Customer-success handoff
	Renewal and expansion tracking

Hard requirements:
	Email/calendar sync
	Sequences
	Workflow automation
	Lead routing
	Multiple pipelines
	Forecasting
	Reporting
	API
	Webhooks
	Migration path
	Launch within two weeks

Data-model requirement:
	Companies
	People
	Deals
	Workspaces
	Subscriptions
	Renewals
	Expansion opportunities

Strong preferences:
	Custom related objects
	Granular permissions
	Security documentation
	No consultant-heavy implementation

Lower-priority capabilities:
	Built-in phone system
	SAML SSO
	Marketing automation

This is a conceptual model of the request, not an internal JSON response.


Step 2: Identify that the products are not directly interchangeable

A generic search for “best CRM” conceals four different product architectures.

unclassified, needs review
HubSpot:
	Integrated revenue/customer platform

Pipedrive:
	Traditional sales-pipeline CRM

Close:
	Outbound communication and sales-execution CRM

Attio:
	Flexible relationship database and configurable CRM

This matters because the request is not simply:

Which CRM has the most features?

It is:

Which product architecture most closely matches this company’s sales motion, data model, operational maturity, and budget?


Step 3: Select the research tools

Unlike physical retail products, B2B SaaS applications do not use the dedicated retail product-search tool.

The primary route is:

unclassified, needs review
Web search
	→ official pricing and feature pages
	→ independent reviews
	→ developer documentation
	→ security documentation
	→ migration documentation
	→ user complaints

There is no dedicated exposed saas_product_query or crm_recommendation tool.


Step 4: Generate the initial fan-out

I generated the search strings directly when constructing the web-search call.

Actual request sent

sent exactly as shown
{
	"system1_search_query": [
		{
			"q": "best CRM for B2B SaaS sales team 2026 HubSpot Pipedrive Close Attio Freshsales comparison"
		},
		{
			"q": "site:hubspot.com pricing Sales Hub 2026 seats sequences calling API"
		},
		{
			"q": "site:pipedrive.com pricing CRM 2026 automation email sync API"
		},
		{
			"q": "site:close.com pricing CRM 2026 email sequences calling API"
		}
	],
	"response_length": "long"
}

Query purposes

unclassified, needs review
Query 1:
	Discover candidate products and positioning

Query 2:
	Find current HubSpot pricing and required sales tier

Query 3:
	Find current Pipedrive pricing and automation tier

Query 4:
	Find current Close pricing and communication features

No separate query-generation tool returned these strings.


Step 5: Receive the initial search cards

The model-visible result was a pooled collection of textual cards, not a JSON array organized by query.

A representative comparison result looked like:

returned exactly as shown
CRM for Sales Teams of 5–25: HubSpot vs Pipedrive vs Close
(<URL>)

<REF_ID> [wordlim: 200] Crawled: yesterday;

# CRM for Sales Teams of 5–25: HubSpot vs Pipedrive vs Close

You have a sales team... a team of 5 to 25 reps...

Team Size | HubSpot | Pipedrive | Close
5 reps    | ...
10 reps   | ...
...

Another result looked like:

returned exactly as shown
Best CRM for SaaS Companies: Comparison & Guide (2026)
(<URL>)

<REF_ID> [wordlim: 200] Published: 5 months ago;

CRM | Best For | Starting Price | Free Tier | Stripe Integration
HubSpot | All-in-one growth | ...
Attio | Modern SaaS teams | ...
Close | Outbound sales | ...
...

The same search also returned:

  • Low-quality generic listicles
  • Vendor-produced comparison pages
  • News results
  • Academic papers about predictive sales modeling
  • Papers about general SaaS pricing
  • Pages that matched “CRM,” “B2B,” or “SaaS” lexically but did not evaluate CRM products

The originating query was not repeated on each card.


Step 6: Triage the initial result cards

This is a model decision, not a separate tool.

Result typeTreatment
Official vendor pricingOpen and verify
Official documentationOpen and verify
Hands-on independent reviewRetain
Comparison with explicit methodologyRetain provisionally
Vendor comparison attacking competitorsUse cautiously
Affiliate “best CRM” listCandidate discovery only
User complaintFailure-mode evidence
Academic paper on unrelated CRM theoryReject
Stale pricing articleReject or use only historically

The candidate set became:

unclassified, needs review
HubSpot Sales Hub
Pipedrive
Close
Attio

Freshsales, Zoho, Salesforce, Monday CRM, and others remained possible, but the four selected products represented the most relevant architectural choices for this specific prompt.


Step 7: Search current official pricing

Actual request

sent exactly as shown
{
	"system1_search_query": [
		{
			"q": "HubSpot Sales Hub pricing seats sequences calling official",
			"domains": [
				"hubspot.com"
			]
		},
		{
			"q": "Pipedrive pricing plans automation email sync API official",
			"domains": [
				"pipedrive.com"
			]
		},
		{
			"q": "Close CRM pricing email sequences calling official",
			"domains": [
				"close.com"
			]
		},
		{
			"q": "Attio pricing API workflows custom objects official",
			"domains": [
				"attio.com"
			]
		}
	],
	"response_length": "long"
}

Representative Close pricing response

returned exactly as shown
Pricing | Close CRM
(https://close.com/pricing)

<REF_ID> [wordlim: 200] Crawled: today;

Essentials
$49 per user / month
$35 per user / month annually

Growth
$109 per user / month
$99 per user / month annually

Everything in Essentials, plus:
- Automated workflows
- Power dialer
- Custom activities
- Send bulk email

Calling is charged based on usage.

Representative Pipedrive response

returned exactly as shown
CRM Pricing Plans | Pipedrive
(https://www.pipedrive.com/en/pricing)

<REF_ID> [wordlim: 200] Crawled: last month;

Lite
US$14 per seat per month, billed annually

Growth
US$39 per seat per month, billed annually

Full email sync with tracking
Automations and nurturing sequences
Subscriptions and forecast reports

Premium
US$59 per seat per month, billed annually

Representative HubSpot response

returned exactly as shown
Sales Software Pricing | HubSpot
(https://www.hubspot.com/pricing/sales)

<REF_ID> [wordlim: 200] Crawled: yesterday;

Professional
Starts at $90/mo/seat, paid annually
$100/mo/seat, paid monthly

Required one-time Professional Onboarding:
$1,500

Enterprise
$150/mo/seat

Required one-time Enterprise Onboarding:
$3,500

Representative Attio response

returned exactly as shown
Pricing | Attio
(https://attio.com/pricing)

<REF_ID> [wordlim: 200] Crawled: 2 weeks ago;

Plus
$36 monthly / $29 annually per user

Pro
$99 monthly / $79 annually per user

Enterprise
Custom pricing

Objects:
Free: up to 3
Plus: up to 5
Pro: up to 12
Enterprise: unlimited

These are close transcriptions of the model-visible text, not raw vendor JSON. Current pricing and plan structures came from the vendors’ pages. (Close)


Step 8: Normalize products, editions, and billing models

The returned URLs referred to products, but the actual decision must be made at the plan level.

unclassified, needs review
HubSpot Sales Hub Starter
HubSpot Sales Hub Professional
HubSpot Sales Hub Enterprise

Pipedrive Lite
Pipedrive Growth
Pipedrive Premium
Pipedrive Ultimate

Close Essentials
Close Growth
Close Scale

Attio Plus
Attio Pro
Attio Enterprise

These are not equivalent bundles.

Initial tier selection

ProductMinimum plausible tierReason
HubSpotProfessionalSequences, customizable workflows, reporting
PipedriveGrowth or PremiumEmail sync, sequences, automation
CloseGrowthWorkflows and automated outreach
AttioProSequences, advanced reporting, permissions and more objects

HubSpot Professional includes sequences and up to 300 customizable workflows, whereas Starter has much more limited automation. (HubSpot)

Pipedrive Growth includes full email sync, workflow automation, nurturing sequences, subscriptions, forecasts and scheduling. Premium becomes relevant for more advanced controls and broader functionality. (Pipedrive)

Close’s automated workflows, power dialer and bulk-email capabilities begin on Growth rather than Essentials. (Close)

Attio Pro is the practical tier for sequences, Call Intelligence, advanced permissions, advanced reporting and up to 12 objects. (Attio)


Step 9: Calculate the baseline seat costs

For ten full users, using annual rates:

CandidateBaseline monthly costAdditional mandatory or variable costs
HubSpot Sales Hub Professional$900$1,500 mandatory onboarding
Pipedrive Growth$390Optional add-ons
Pipedrive Premium$590Optional add-ons
Close Growth$990Calling, SMS and some AI usage
Attio Pro$790Additional workspace credits if required

HubSpot’s first-year cost for ten Professional seats is:

unclassified, needs review
10 seats × $90 × 12 months = $10,800
Required onboarding = $1,500

First-year total = $12,300
Effective first-year monthly cost = $1,025

This remains below the hypothetical $1,200 monthly ceiling, but it leaves little room for additional HubSpot products, core seats, telephony, integrations or implementation work. (HubSpot)

Close Growth fits narrowly at $990 per month for ten annual seats, but calling, SMS, phone numbers and certain AI functions are billed separately. Calling is usage-based, and Close states that many outbound calls cost approximately $0.02 per minute, with variation by country and number type. (Close)

Attio Pro costs $790 per month for ten annually billed users. Its credit model may create additional charges if automations or AI features exceed included allowances. (Attio)

Pipedrive Premium is substantially below budget at $590 per month for ten annual seats, although add-ons such as LeadBooster, campaigns or web-visitor tracking can raise total cost. (Pipedrive)


Step 10: Open the official pricing pages

Actual request

sent exactly as shown
{
	"open": [
		{
			"ref_id": "<HUBSPOT_PRICING_REF>"
		},
		{
			"ref_id": "<PIPEDRIVE_PRICING_REF>"
		},
		{
			"ref_id": "<CLOSE_PRICING_REF>"
		},
		{
			"ref_id": "<ATTIO_PRICING_REF>"
		},
		{
			"ref_id": "<PIPEDRIVE_REVIEW_REF>"
		},
		{
			"ref_id": "<ATTIO_REVIEW_REF>"
		}
	],
	"response_length": "long"
}

Close transcription of an opened page

returned exactly as shown
Sales Software Pricing | HubSpot
(<URL>)

<REF_ID> [wordlim: 200]
Content type: text/html;
Source: open({
	"ref_id": "<HUBSPOT_PRICING_REF>",
	"lineno": null
});
Total lines: 1030

The content was returned as line-addressable extracted text, not raw HTML or JSON.

Another page looked like:

returned exactly as shown
Pipedrive CRM review | TechRadar
(<URL>)

<REF_ID> [wordlim: 200]
Content type: text/html;
Source: open({
	"ref_id": "<PIPEDRIVE_REVIEW_REF>",
	"lineno": null
});
Total lines: 424

L93: ### TechRadar Verdict
L95: Pipedrive offers a visually-driven CRM platform...
L101: Intuitive visual pipeline management
L114: Limited advanced marketing automation features
L122: Many advanced features limited to costlier plans
...

(HubSpot)


Step 11: Use find to extract plan-defining features

Actual request

sent exactly as shown
{
	"find": [
		{
			"ref_id": "<OPENED_HUBSPOT_PRICING>",
			"pattern": "Sequences"
		},
		{
			"ref_id": "<OPENED_HUBSPOT_PRICING>",
			"pattern": "Onboarding"
		},
		{
			"ref_id": "<OPENED_PIPEDRIVE_PRICING>",
			"pattern": "Automations and nurturing sequences"
		},
		{
			"ref_id": "<OPENED_CLOSE_PRICING>",
			"pattern": "Automated Workflows"
		},
		{
			"ref_id": "<OPENED_ATTIO_PRICING>",
			"pattern": "Objects"
		},
		{
			"ref_id": "<OPENED_ATTIO_PRICING>",
			"pattern": "Single sign-on"
		}
	],
	"response_length": "long"
}

HubSpot response excerpt

returned exactly as shown
L765: Sales automation
L767: Trigger tasks and email notifications when deals change stages.
Up to 300 fully customizable workflows.
Up to 1,000 fully customizable workflows...

L780: Sequences
L781: 5,000 sequences per account, and up to
500 email sends/user/day...

Pipedrive response excerpt

returned exactly as shown
L84: Fully sync Gmail, Outlook or your company email.
L88: Automate repetitive tasks and complex workflows.
Create sequences of personalized emails and follow-ups...
L90: Automations and nurturing sequences
L91: Sell and track products billed as subscriptions or installments...

Close response excerpt

returned exactly as shown
L889: Automated Workflows
L891: Automate outreach (SMS, emails, calls)
L893: Trigger SMS, email, and call follow-up when Leads
hit a certain criteria.
L914: Assign leads and follow-up tasks

Attio response excerpt

returned exactly as shown
L228: Objects
L230: Up to 3
L232: Up to 5
L234: Up to 12
L236: Unlimited

L242: Custom objects
L264: API and webhook access
L276: Sequences

These exact textual extractions materially changed the comparison. (HubSpot)


Step 12: Investigate the data model

This is unusually important for a B2B SaaS CRM.

The company needs to model:

conceptual, drawn by ChatGPT
Company
	├── Contacts
	├── Deals
	├── Customer workspaces
	├── Subscription
	├── Renewal
	├── Expansion opportunity
	└── Product-usage or health data

Attio

Attio explicitly uses objects, records, attributes, lists and relationships. Its documentation describes objects as analogous to database tables and records as rows, and its Pro plan supports up to 12 objects. (Attio Docs)

Conceptually:

conceptual
Company object
	↕
Workspace object
	↕
Subscription object
	↕
Renewal opportunity

This closely matches the hypothetical SaaS company’s desired model.

HubSpot

HubSpot exposes a large set of standard objects, including companies, contacts, deals, products, subscriptions, invoices, leads, projects and tickets. However, genuinely user-defined custom objects require an Enterprise-level Hub subscription. (HubSpot Developers)

HubSpot Professional could potentially model the requirement using:

unclassified, needs review
Standard company object
Standard subscription object
Deal pipelines
Custom properties
Association labels

But a separate arbitrary Workspace object would push the design toward Enterprise, which exceeds the example budget at ten full Sales Hub seats before onboarding. (HubSpot Developers)

Pipedrive

Pipedrive exposes standard sales entities such as deals, leads, organizations, persons, products, projects, fields and pipelines. Its API supports custom fields, but the documentation does not expose an Attio-style arbitrary-object framework. This suggests that workspaces and subscriptions would generally be represented using organizations, deals, products, custom fields or separate pipelines. That is an inference from the documented entity model rather than an explicit Pipedrive statement that “custom objects are unsupported.” (Pipedrive Developers)

Close

Close centers much of its model around Leads, Contacts, Opportunities, activities and custom fields or custom activities. It is optimized for communication and sales execution rather than representing a complex subscription-domain graph. (Close Developer Platform)


Step 13: Verify API and webhook capabilities

Actual request

sent exactly as shown
{
	"system1_search_query": [
		{
			"q": "site:developers.hubspot.com API limits Sales Hub custom objects webhooks official"
		},
		{
			"q": "site:developers.pipedrive.com API rate limits webhooks official custom fields"
		},
		{
			"q": "site:developer.close.com API webhooks rate limits official"
		},
		{
			"q": "site:developers.attio.com API webhooks custom objects official"
		}
	],
	"response_length": "long"
}

A second search route was required because the first call disproportionately returned HubSpot results:

sent exactly as shown
{
	"system2_search_query": [
		{
			"q": "site:developers.pipedrive.com/docs/api/v1 rate limits webhooks official"
		},
		{
			"q": "site:developer.close.com resources api rate limits webhooks official"
		},
		{
			"q": "site:developers.attio.com rest-api webhooks custom objects official"
		},
		{
			"q": "site:trust.attio.com SOC 2 SSO security official"
		}
	],
	"response_length": "long"
}

This is an example of adaptive retrieval: the initial query set did not give balanced coverage, so the second route separated the vendors.

HubSpot

HubSpot publishes REST APIs, webhooks and substantial account-level API allowances. Professional accounts have a documented daily allowance of 625,000 calls per account for privately distributed apps, with 190 requests per ten seconds per app; Enterprise increases the daily account allowance. HubSpot webhooks support up to 1,000 subscriptions per application and retry failed delivery up to ten times. (HubSpot Developers)

Pipedrive

Pipedrive publishes REST APIs, OpenAPI specifications, official Node.js and PHP clients, and webhook support. Its APIs use token-based daily budgets, with API v2 calls generally consuming fewer tokens than older endpoints. Webhooks v2 became the default in 2025. (Pipedrive Developers)

Close

Close’s API exchanges JSON, supports custom fields, pagination, webhooks and a 30-day event log. Rate limits vary by endpoint group, and integrations must respond to 429 responses using the supplied reset interval. Close permits 40 ordinary webhook subscriptions per organization, with larger allowances for certain automation platforms. (Close Developer Platform)

Attio

Attio provides a JSON-over-HTTPS REST API, OAuth, arbitrary object records, querying, real-time webhooks and webhook filters. Its data model can be manipulated directly through objects, records, attributes and lists. (Attio Docs)


Step 14: Investigate security and permissions

Actual search

sent exactly as shown
{
	"system1_search_query": [
		{
			"q": "Attio security SOC 2 SSO official"
		},
		{
			"q": "Pipedrive security SSO SOC 2 official"
		},
		{
			"q": "Close CRM security SSO SOC 2 official"
		},
		{
			"q": "HubSpot security SOC 2 SSO official"
		}
	],
	"response_length": "long"
}

Findings

HubSpot’s Trust Center lists SOC 2 Type II and SOC 3, and HubSpot supports SAML-based SSO with major identity providers. (HubSpot Trust Center)

Pipedrive states that it adheres to SOC 2, SOC 3, ISO 27001 and ISO 27701, and lists SSO among its security capabilities. The precise plan necessary for each control still needs plan-level verification before purchase. (Pipedrive)

Close states that it is SOC 2 Type II compliant and includes 2FA and Google SSO, although Google SSO is not equivalent to enterprise SAML SSO. (Close)

Attio documents SAML SSO and SCIM as Enterprise-only features. During this research, I did not locate an authoritative Attio page explicitly confirming SOC 2 Type II. Independent material cited ISO 27001, GDPR and CCPA, but a strict SOC 2 procurement requirement would need direct confirmation from Attio before selection. (Attio)

That creates an unresolved procurement issue:

unclassified, needs review
Attio functional fit:
	Strong

Attio SOC 2 status:
	Not verified from an authoritative source during this research

Action:
	Request current security packet before final purchase

Step 15: Investigate migration and implementation

Actual request

sent exactly as shown
{
	"system2_search_query": [
		{
			"q": "site:knowledge.hubspot.com import CRM data migration official"
		},
		{
			"q": "site:support.pipedrive.com import data from spreadsheet CRM official"
		},
		{
			"q": "site:help.close.com import HubSpot Pipedrive CSV official"
		},
		{
			"q": "site:attio.com/help import CRM data HubSpot Pipedrive CSV official"
		}
	],
	"response_length": "long"
}

Results

HubSpot supports importing multiple related CRM object types and offers self-service transfer or migration services. (HubSpot Knowledge Base)

Pipedrive supports spreadsheet imports, field mapping and bulk creation or updates. (Pipedrive Support)

Close supports CSV/XLS imports and migrations from many named CRMs, including HubSpot, Pipedrive, Salesforce, Attio and Zoho. (Close Help)

Attio supports CSV imports on all plans and provides a migration service for supported CRMs on paid plans, including HubSpot, Pipedrive, Salesforce and Zoho. (Attio)

The migration documentation answers:

unclassified, needs review
Can records be moved?
	Yes

Does that guarantee a two-week implementation?
	No

The true implementation risk depends on:

  • Deduplication
  • Field and object mapping
  • Historical email handling
  • Activity migration
  • User permissions
  • Workflow recreation
  • Reporting definitions
  • Subscription-data synchronization
  • Integrations with Stripe and Segment
  • User training

Step 16: Search for negative evidence and operational risks

Actual request

sent exactly as shown
{
	"system1_search_query": [
		{
			"q": "HubSpot Sales Hub Professional complaints pricing complexity onboarding Reddit 2026"
		},
		{
			"q": "Pipedrive CRM complaints automation reporting API Reddit 2026"
		},
		{
			"q": "Close CRM complaints calling costs workflows reporting Reddit 2026"
		},
		{
			"q": "Attio CRM complaints workflows reporting permissions Reddit 2026"
		}
	],
	"response_length": "long"
}

Search findings

HubSpot risks included:

  • Required onboarding on Professional and Enterprise
  • Costs increasing when advanced automation is required
  • Contract and renewal complaints
  • Complexity across seats, hubs and credits
  • Potential need for partner or RevOps assistance

A 2026 HubSpot community complaint described an unwanted annual renewal and difficulty removing unused seats mid-contract. That is one customer account, not evidence of a general incidence rate, but it identifies contract-management risk worth reviewing. (HubSpot Community)

Pipedrive risks included:

  • Limited native marketing automation
  • Advanced features concentrated in higher tiers
  • Add-on accumulation
  • Variable support access by plan
  • Less flexible domain modeling than Attio
  • A sales-first design rather than a unified revenue platform

TechRadar’s hands-on review praised adoption and pipeline usability while noting limited marketing automation, inconsistent support quality and feature gating. (TechRadar)

Close risks included:

  • High per-seat cost at the workflow-enabled tier
  • Separate telephony, SMS and AI billing
  • Lead-centric data model
  • Less flexible subscription/customer-success modeling
  • Calling and workflow value being wasted if outbound calling is not central

Close’s own pricing documentation confirms separate billing dimensions for seats, communication usage and AI credits. (Close)

Attio risks included:

  • Blank-slate data-model design
  • Need for upfront RevOps architecture
  • Credit management
  • Pro tier required for the strongest sales features
  • Enterprise required for SAML SSO
  • Smaller integration ecosystem than mature incumbents
  • No phone support according to the independent review

TechRadar’s review characterized Attio as powerful but noted that the flexible model requires users to decide how objects should be structured before deployment. (TechRadar)


Step 17: Build a plan-level candidate record

No tool returned this object. It is a normalized research representation.

Attio

unclassified, needs review
{
	"product": "Attio",
	"plan": "Pro",
	"billing": {
		"per_user_monthly_annual_commitment": 79,
		"users": 10,
		"baseline_monthly_cost": 790
	},
	"capabilities": {
		"email_calendar_sync": true,
		"sequences": true,
		"workflows": true,
		"advanced_reporting": true,
		"custom_objects": true,
		"maximum_objects": 12,
		"api": true,
		"webhooks": true,
		"saml_sso": false
	},
	"risks": [
		"Requires upfront data-model design",
		"Workspace and AI credits may add cost",
		"SAML SSO requires Enterprise",
		"SOC 2 not verified during research"
	],
	"evidence_confidence": "moderate-to-high"
}

Pipedrive

unclassified, needs review
{
	"product": "Pipedrive",
	"plan": "Premium",
	"billing": {
		"per_user_monthly_annual_commitment": 59,
		"users": 10,
		"baseline_monthly_cost": 590
	},
	"capabilities": {
		"email_calendar_sync": true,
		"sequences": true,
		"workflows": true,
		"forecasting": true,
		"custom_reporting": true,
		"custom_fields": true,
		"arbitrary_custom_objects": false,
		"api": true,
		"webhooks": true
	},
	"risks": [
		"Subscription data requires adaptation to standard entities",
		"Marketing automation is limited",
		"Add-ons may increase total cost",
		"Less suitable for complex customer-success objects"
	],
	"evidence_confidence": "high"
}

The arbitrary_custom_objects: false field is an inference from the documented model and should not be treated as a verbatim Pipedrive statement.

Close

unclassified, needs review
{
	"product": "Close",
	"plan": "Growth",
	"billing": {
		"per_user_monthly_annual_commitment": 99,
		"users": 10,
		"baseline_monthly_cost": 990,
		"variable_telephony": true,
		"variable_sms": true,
		"variable_ai": true
	},
	"capabilities": {
		"email_sync": true,
		"sequences_and_workflows": true,
		"built_in_calling": true,
		"power_dialer": true,
		"lead_assignment": true,
		"api": true,
		"webhooks": true
	},
	"risks": [
		"Near budget ceiling before usage costs",
		"Optimized for outbound rather than subscription operations",
		"Lead-centric data model",
		"May pay for communications features that are not central"
	],
	"evidence_confidence": "high"
}

HubSpot

unclassified, needs review
{
	"product": "HubSpot Sales Hub",
	"plan": "Professional",
	"billing": {
		"per_user_monthly_annual_commitment": 90,
		"users": 10,
		"baseline_monthly_cost": 900,
		"mandatory_onboarding": 1500,
		"first_year_effective_monthly_cost": 1025
	},
	"capabilities": {
		"email_calendar_sync": true,
		"sequences": true,
		"workflows": true,
		"forecasting": true,
		"custom_reporting": true,
		"api": true,
		"webhooks": true,
		"custom_properties": true,
		"arbitrary_custom_objects": false
	},
	"risks": [
		"Custom objects require Enterprise",
		"Mandatory onboarding",
		"Complex seat and hub pricing",
		"Potentially larger implementation effort"
	],
	"evidence_confidence": "high"
}

Step 18: Apply hard constraints

Budget

All four candidate plans fit below the $1,200 baseline ceiling, but Close and HubSpot leave little headroom.

unclassified, needs review
Pipedrive Premium:
	$590 baseline
	Pass

Attio Pro:
	$790 baseline
	Pass

HubSpot Professional:
	$900 baseline
	$1,025 effective first-year monthly cost with onboarding
	Pass narrowly

Close Growth:
	$990 baseline before communication usage
	Pass narrowly

Sequences and automation

unclassified, needs review
HubSpot Professional:
	Pass

Pipedrive Growth/Premium:
	Pass

Close Growth:
	Pass

Attio Pro:
	Pass

API and webhooks

unclassified, needs review
All four:
	Pass

Two-week self-directed implementation

unclassified, needs review
Pipedrive:
	Strong probability

Close:
	Strong probability for conventional outbound setup

Attio:
	Possible, but requires deliberate data modeling

HubSpot:
	Possible, but highest configuration and onboarding burden

This assessment combines official functionality with independent usability evidence; it is not a measured implementation-time guarantee. (TechRadar)

Subscription/workspace data model

unclassified, needs review
Attio Pro:
	Strongest direct fit

HubSpot Professional:
	Moderate fit using standard objects and properties

Pipedrive:
	Moderate-to-weak fit without external adaptation

Close:
	Weakest fit

Security documentation

unclassified, needs review
HubSpot:
	Verified SOC 2 Type II

Pipedrive:
	Verified SOC 2/SOC 3 claims

Close:
	Verified SOC 2 Type II claim

Attio:
	Requires direct procurement verification

Step 19: Define recommendation weights

No exposed universal SaaS ranking formula exists.

For this prompt, a reasonable explicit model is:

CriterionWeight
Sales workflow and automation fit20%
SaaS subscription data-model fit20%
Ease of implementation and adoption15%
Reporting and forecasting10%
API, webhooks and integrations10%
Total cost of ownership10%
Customer-success and renewal support5%
Permissions and security5%
Vendor maturity and support5%

Built-in calling receives little independent weight because the user said it was useful but not central.

If outbound calling were the primary motion, the weights would change:

conceptual
Calling and SMS:
	25%

Sequences and power dialing:
	20%

Data-model flexibility:
	5%

That would likely move Close into first place.


Step 20: Compare the finalists

ProductBest attributePrincipal weakness
Attio ProFlexible SaaS-specific data modelRequires architecture work and security verification
Pipedrive PremiumFast adoption and strong price/valueStandard sales entities may constrain subscription modeling
HubSpot ProfessionalBroadest revenue-platform ecosystemComplexity, onboarding and custom-object tiering
Close GrowthBest native outbound communicationsExpensive and poorly aligned with complex post-sale objects

Step 21: Provisional recommendation

Best functional fit: Attio Pro

Attio Pro is the closest match to the stated need because the flexible object model can represent companies, workspaces, subscriptions, renewals and expansion opportunities without forcing everything into deals or custom fields. It also provides sequences, advanced reporting, API/webhooks and advanced permissions within the example budget. (Attio)

However, I would make the recommendation conditional:

Select Attio Pro only after Attio provides security documentation acceptable to the buyer’s procurement or compliance requirements.

The research did not produce an authoritative SOC 2 confirmation for Attio, and SAML SSO requires Enterprise. (Attio)

Safest operational alternative: Pipedrive Premium

Pipedrive Premium is the strongest fallback when rapid deployment, adoption and cost control matter more than a sophisticated object model. It supplies email sync, sequences, automation, forecasts, reporting, API access and webhooks for approximately $590 per month for ten annually billed users. (Pipedrive)

Its compromise is that subscription workspaces and renewals would probably need to be represented through organizations, deals, products, projects, custom fields or separate pipelines rather than first-class arbitrary objects.

Best outbound-first alternative: Close Growth

Close Growth becomes the preferred system when sales representatives spend most of the day emailing, calling and texting prospects. Calling, SMS, email and automated workflows are integrated into one sales workspace. (Close)

It is not the best fit for the example because built-in communication is secondary, while subscription and customer-success modeling are central.

Best integrated-platform alternative: HubSpot Professional

HubSpot is the strongest choice when the company expects to consolidate sales, marketing, service, content and revenue operations onto one platform. It has the broadest standard-object and ecosystem coverage among the finalists. (HubSpot)

It is less attractive here because Professional is already close to the budget ceiling, requires paid onboarding and does not include arbitrary custom objects. Moving to Sales Hub Enterprise for custom objects would exceed the stated monthly budget before onboarding. (HubSpot)


Step 22: Do not purchase based solely on feature research

The next stage should be a controlled proof of concept.

unclassified, needs review
Create identical test workspace in each finalist:

	Import:
		100 companies
		300 contacts
		50 open deals
		20 customers
		20 subscriptions
		10 upcoming renewals

	Configure:
		Inbound pipeline
		Outbound pipeline
		Renewal pipeline
		Lead routing
		Three-email sequence
		Customer-success handoff
		Expansion alert
		Weekly forecast report

	Integrate:
		Google Workspace
		Slack
		Stripe test data
		Webhook endpoint

	Test:
		Data import
		Deduplication
		Rep workflow
		Manager reporting
		API latency and limits
		Permission boundaries
		Exportability

The winning CRM should be the one that completes the company’s actual workflows with the least ongoing administrative friction—not the one with the longest feature list.


Complete function-call-stack representation

conceptual, drawn by ChatGPT
recommend_b2b_saas_crm(user_prompt)
│
├── interpret_request()
│	├── identify_business_type("B2B SaaS")
│	├── identify_team_size(30)
│	├── identify_full_users(10)
│	├── identify_budget(1200)
│	├── identify_sales_motion("mixed inbound/outbound")
│	├── identify_required_capabilities([
│	│	"email/calendar sync",
│	│	"sequences",
│	│	"lead routing",
│	│	"automation",
│	│	"multiple pipelines",
│	│	"forecasting",
│	│	"reporting",
│	│	"API",
│	│	"webhooks"
│	│])
│	├── identify_domain_entities([
│	│	"company",
│	│	"contact",
│	│	"deal",
│	│	"workspace",
│	│	"subscription",
│	│	"renewal",
│	│	"expansion"
│	│])
│	├── identify_security_preferences([
│	│	"SOC 2",
│	│	"SAML SSO"
│	│])
│	└── identify_implementation_constraint("two weeks")
│
├── should_use_tools()
│	└── true
│
├── select_research_channel()
│	└── web search
│
├── generate_initial_fanout()
│	└── performed by model
│
├── web_search({
│		queries: [
│			"best CRM for B2B SaaS...",
│			"HubSpot pricing...",
│			"Pipedrive pricing...",
│			"Close pricing..."
│		]
│	})
│
├── receive_pooled_result_cards()
│
├── triage_initial_results()
│	├── retain official vendor pages
│	├── retain hands-on reviews
│	├── retain methodical comparisons
│	├── reject generic affiliate pages
│	└── reject unrelated academic matches
│
├── identify_candidate_architectures()
│	├── HubSpot
│	├── Pipedrive
│	├── Close
│	└── Attio
│
├── search_official_pricing({
│		domain_restricted_queries: [...]
│	})
│
├── normalize_plan_tiers()
│	├── HubSpot Professional
│	├── Pipedrive Premium
│	├── Close Growth
│	└── Attio Pro
│
├── open([
│		hubspot_pricing,
│		pipedrive_pricing,
│		close_pricing,
│		attio_pricing,
│		independent_reviews
│	])
│
├── receive_line_addressable_pages()
│
├── find([
│		"Sequences",
│		"Onboarding",
│		"Automations and nurturing sequences",
│		"Automated Workflows",
│		"Objects",
│		"Single sign-on"
│	])
│
├── generate_technical_fanout()
│	└── performed by model
│
├── web_search({
│		queries: [
│			"HubSpot API limits and webhooks",
│			"Pipedrive API and webhooks",
│			"Close API and webhooks",
│			"Attio objects and webhooks"
│		]
│	})
│
├── evaluate_data_models()
│	├── standard objects
│	├── custom fields
│	├── custom objects
│	├── associations
│	└── subscription modeling
│
├── generate_security_fanout()
│
├── web_search({
│		queries: [
│			"SOC 2",
│			"SSO",
│			"security documentation"
│		]
│	})
│
├── generate_migration_fanout()
│
├── web_search({
│		queries: [
│			"HubSpot import",
│			"Pipedrive import",
│			"Close migration",
│			"Attio migration"
│		]
│	})
│
├── generate_negative_evidence_fanout()
│
├── web_search({
│		queries: [
│			"billing complaints",
│			"automation limitations",
│			"reporting complaints",
│			"calling costs",
│			"implementation difficulty"
│		]
│	})
│
├── create_candidate_records_conceptually()
│	├── pricing
│	├── capabilities
│	├── add-ons
│	├── API
│	├── data model
│	├── migration
│	├── security
│	└── risks
│
├── calculate_total_cost()
│	├── seats
│	├── onboarding
│	├── communications usage
│	├── AI credits
│	└── likely add-ons
│
├── apply_hard_constraints()
│	├── budget
│	├── sequences
│	├── automation
│	├── API/webhooks
│	├── implementation timeline
│	└── subscription modeling
│
├── identify_unresolved_issues()
│	├── Attio SOC 2 status
│	├── exact SSO tier requirements
│	├── variable usage estimates
│	└── precise migration scope
│
├── rank_candidates()
│	├── functional fit
│	├── implementation fit
│	├── total cost
│	├── evidence quality
│	└── procurement risk
│
├── choose_provisional_recommendation()
│	├── Attio Pro, conditional
│	├── Pipedrive Premium fallback
│	├── Close Growth for outbound
│	└── HubSpot Professional for platform consolidation
│
└── generate_answer_with_citations()

Main differences from the blender workflow

Physical-product recommendation

unclassified, needs review
Model/SKU identity
Retail offers
Merchant quality
Stock
Shipping
Warranty
Measured physical performance
Replacement parts
Counterfeit risk

B2B SaaS recommendation

unclassified, needs review
Product edition and tier
Seat type
Annual contract
Mandatory onboarding
Usage-based charges
Data model
Workflow limits
API and webhook limits
Security review
Migration
Adoption
Implementation labor
Exit and data portability

The biggest distinction is that a B2B SaaS recommendation is not merely a product-selection problem. It is a combined:

unclassified, needs review
Software architecture decision
+ operating-process decision
+ data-model decision
+ procurement decision
+ implementation decision
+ long-term switching-cost decision