ChatGPT ads for B2B and SaaS: leads, trials and CRM
- Five of the platform's 14 standard events describe a B2B or SaaS funnel: lead_created, appointment_scheduled, registration_completed, trial_started and subscription_created.
- Only standard events can be a campaign's optimisation goal; custom events are reported but cannot be one.
- Conversion events need a timestamp within the last seven days, which forces stage changes to be sent as they happen, not at deal close.
- Chat cards are the creative format for software, since product ads need a product feed: title 3 to 50 characters, body up to 100 characters, a square image of at least 640 by 640 pixels, a crawlable destination URL.
- Context hints, up to 2,000 per ad group, are free text, not keywords.
- Adsonomy takes lead and stage events through its Ingest API; native CRM connectors are planned, not built today. OpenAI offers its own HubSpot integration.
- Custom audiences are not available for campaigns targeting the EEA or Switzerland.
A long consideration cycle and a CRM in the middle do not rule out ChatGPT ads; they change what you optimise towards and how you feed results back. There is no product feed for software, no keyword list to bid on, and no built-in way to tell the platform that a lead from three weeks ago just became a paying customer. This guide covers the conversion events that fit a B2B or SaaS funnel, how to handle a slow-closing deal within the platform's constraints, what the CRM loop looks like today, and how to write chat cards and hints for a comparison-driven buyer.
- Optimise towards an early, high-volume event such as lead_created or trial_started; a low-volume event like a closed deal has too little signal to bid on.
- Send every later CRM stage as its own event, as it happens, since events must carry a timestamp within the last seven days.
- Write one chat card per audience or use case; the 100-character body forces one claim, not a feature list.
- Write hints from comparison and evaluation pages, not just product-category terms, since that is where B2B buyers actually phrase their questions.
- Plan EU targeting without custom audiences: they are not available for campaigns aimed at the EEA or Switzerland.
Does ChatGPT ads work for a long B2B or SaaS sales cycle?
Yes, but a campaign optimises towards a conversion event, not towards a closed deal, so a long cycle means picking an earlier event with enough volume to give the bidding algorithm a real signal, while later, slower stages are tracked separately rather than being the thing the campaign is judged on.
The platform mechanics, chat cards, context hints, bidding and billing, are the same ones covered in how ads in ChatGPT work and ads in ChatGPT for service businesses; a service business and a B2B or SaaS company both convert on leads rather than orders, and the volume problem is identical. What is specific to B2B and SaaS is the length of the gap between the click and the outcome that actually matters to the business, and the fact that outcome usually lives in a CRM you do not control the schema of.
Which conversion events fit a SaaS or B2B funnel?
Five of the platform's 14 standard events: lead_created for a form fill or demo request, appointment_scheduled for a booked call, registration_completed for an account created, trial_started for an activated trial, and subscription_created for a paid plan starting. Only standard events can be set as a campaign's optimisation goal.
Stages past that, a sales-qualified lead, an opportunity, a closed-won deal, are not standard events. They can be sent as custom events for reporting, but a custom event cannot be an optimisation goal, so a campaign never bids directly towards "qualified" or "closed". Every conversion event, standard or custom, needs a timestamp within the last seven days and an event ID, which matters more here than for a same-day order: a stage change from a deal that started a month ago has to be sent with today's timestamp, at the moment the stage actually changes, not backdated to the click.
How do I handle a multi-week or multi-month sales cycle?
Optimise the campaign towards the earliest event with real volume, usually lead_created or trial_started, and treat every later stage, sales-qualified, opportunity, closed-won, as its own event sent for reporting only, so the bidding has a signal to work with while the business still gets to see which ad groups produced leads that actually turned into revenue.
This is the same logic that applies to any long-lag conversion: conversion-optimised bidding needs a steady flow of the chosen event, and a campaign that produces two qualified opportunities a week has too little signal for the platform to bid on directly. Reporting the qualified and closed stages separately does not change what the campaign optimises towards, but it does let you compare ad groups on the metric that actually matters, cost per qualified lead or cost per closed deal, even though the campaign's bidding only works towards the event it was told to optimise for.
| Funnel stage | Event | Can be an optimisation goal |
|---|---|---|
| Form fill or demo request | lead_created | Yes |
| Demo call booked | appointment_scheduled | Yes |
| Account created | registration_completed | Yes |
| Trial activated | trial_started | Yes |
| Paid plan starts | subscription_created | Yes |
| Sales-qualified, opportunity, closed-won | Custom event | No, reporting only |
What does a CRM feedback loop look like without native connectors?
Today it runs through Adsonomy's Ingest API: your backend or a webhook from your CRM posts the lead or the stage change, and Adsonomy sends the matching event to the Conversions API, hashed and deduplicated. Native connectors for HubSpot, Pipedrive, Salesforce, Calendly and Stripe are planned, not built yet, so a direct, no-code connection is not available today.
OpenAI announced its own HubSpot integration on 16 September 2026: a business using HubSpot can connect a ChatGPT Ads account, create ads, track performance and follow up on leads inside HubSpot directly. If your pipeline already lives in HubSpot, that is worth using now; Adsonomy's role on top of the same ad account is the daily brief, rules, guardrails and shadow mode covered in the service business guide, which goes into the Ingest API pattern and the tracking-template setup for attribution in more depth than repeated here.
How do I write chat card copy for software?
One chat card per audience or use case, inside the platform's limits: a title of 3 to 50 characters that names who the product is for, and a body of up to 100 characters that states one outcome or one piece of concrete proof, such as a named integration, a category claim you can back up, or a specific result.
The 100-character body rules out a feature list; it forces a single claim, which is a useful discipline for software copy that often tries to say too much. "Built for finance teams on NetSuite" says more in fewer words than a generic tagline. Every card goes through review before it serves, and editing a card sends it back into review, so it is worth getting the single claim right before the ad goes live rather than iterating on a live card. The destination has to be reachable by OpenAI's crawler, so a demo request form behind a login will not work, and a cookie-consent wall that hides the content until someone clicks is worth avoiding.
How do I write context hints for comparison and evaluation conversations?
From the pages a B2B buyer actually reads while comparing options: comparison pages ("X versus Y"), evaluation pages ("best tool for..."), integration and feature pages, and the objections answered in your pricing FAQ, rather than only the generic category term your product sits in.
A buyer evaluating software rarely searches a single keyword; they describe a specific situation, a stack they already run, a team size, a constraint. Hints that mirror those situations, drawn from your own comparison and integration pages, are what let the contextual match find those conversations, since the platform does not report which prompts an ad appeared against. The mechanics of writing and structuring hints, and how many an ad group can carry, are covered in contextual targeting in ChatGPT ads; the addition for B2B is simply which pages to draw the hints from.
What EU targeting limits should a B2B team know about?
Custom audiences, the uploaded customer or account lists an account-based marketing motion would normally use to target named accounts or existing customers, are not available for campaigns targeting the EEA or Switzerland; targeting there has to be built from locations, platforms and context hints instead.
This matters more for B2B than for a consumer shop, because account-based targeting is a common part of a B2B media plan elsewhere. Inside the EEA and Switzerland, the practical substitute is precision on the other levers: tight, situation-specific context hints, location targeting at the country or region level, and platform targeting where relevant, rather than a matched-account list. Outside those markets, a custom audience of existing customers or target accounts is available and can be used to exclude or refine reach the way it would on other platforms.
- Pick one early, high-volume standard event to optimise towards, usually lead_created or trial_started.
- Map every later CRM stage to its own event, standard where one fits, custom otherwise, and send it as the stage changes, not at deal close.
- Write one chat card per audience or use case: a title that names who it is for, a body that states one outcome.
- Write hints from comparison, evaluation, integration and pricing-FAQ pages, not just the generic category term.
- Check whether the campaign targets the EEA or Switzerland; if so, plan targeting without custom audiences.
- Confirm the destination page is reachable by OpenAI's crawler: no demo request gated behind a login.
Frequently asked questions
Can I optimise directly toward a sales-qualified lead or a closed-won deal?
No. Only standard events can be a campaign's optimisation goal. Optimise towards an early standard event such as lead_created or trial_started, and send later stages, sales-qualified, opportunity, closed-won, as their own events for reporting, since a custom event cannot be an optimisation goal.
Does Adsonomy connect to my CRM directly?
Not yet. Today Adsonomy takes lead and stage events from your backend or CRM through its Ingest API. Native connectors for HubSpot, Pipedrive, Salesforce, Calendly and Stripe are planned. OpenAI also offers its own HubSpot integration directly on the platform.
Can I target only EU decision-makers with a custom audience list?
No. Custom audiences, the uploaded customer or account lists an account-based approach would use, are not available for campaigns targeting the EEA or Switzerland. Targeting there has to rely on locations, platforms and context hints instead.
What is the best chat card format for a software product?
One card per audience or use case, within the platform's limits: a title of 3 to 50 characters naming who it is for, and a body of up to 100 characters stating the outcome or the proof, such as a specific integration or a concrete result.
How late can I report a conversion after the click?
Events need a timestamp within the last seven days. For a sales cycle that runs longer than that, send each stage change as its own event when it happens, rather than waiting to report the whole journey once the deal closes.
Adsonomy runs ads inside ChatGPT for shops and service businesses. Control edition: you run it with rules. Autopilot: the AI manager runs it inside your guardrails. Launching 1 October 2026.
Join the waitlist