- Brand
- Advanza
- Category
- Marketing
- Primary Subcategory
- Enterprise Marketing Orchestration & CDP
Integration details
Description
Connect ChatGPT and Codex to your Advanza workspace to find and manage contacts, companies and deals, review campaign performance, and prepare marketing content. An Advanza account and workspace membership are required. Access is scoped to the workspace selected during sign-in. Reversible workspace changes can run directly under the default policy. Deleting or merging records and spending credits require confirmation. Sending, publishing, workflow activation, and destructive batches above 100 records require approval by a person in Advanza or on the approval card. Workspace settings can require approval for every change. Available operations depend on your workspace permissions and connected services.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Enterprise Marketing Orchestration & CDP
- Secondary Subcategories
- None listed
- Brand
- Advanza
- Access
- Account required
- First tracked
- 2026-10-17
- Tool count
- 129
- Market
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for Advanza
Get updates when Advanza’s Discoverability Score or category rank changes.
Competing in ChatGPT Enterprise Marketing Orchestration & CDP
View Category129 tools agents can invoke
Activates a campaign so it goes out, as a person does in the product: approves every item still waiting for review, puts each post and email on its planned time, turns the campaign's segments into contacts and switches it on. Publishes publicly and sends email: strong approval on the card, owner/admin only. Refused before approval when something would only fail later - a post that cannot be published (brand rule, media, caption, account), an email without an allowed sender, an item without a time, an unpublished landing page the items link to, too few posts left this period, a recurring email. When the first time has passed, the whole schedule moves forward by whole days. An active campaign is switched off for the run and on again at the end. The preview lists every item with its time. This operation may require a person's strong approval in Advanza. After approval, retry this same tool with identical arguments. To preview without changing anything, pass dryRun: true; then call again without it to run.
campaigns.activate
Logs many timeline activities in one call. A row whose externalId was already imported is skipped — or, with onExisting "update", updated in place (e.g. to correct a wrong date), and skipped only when it already holds every value. Up to 500 rows per call (split larger imports). Runs as a background job: Execute returns the full result when the job finishes within about 20 seconds, otherwise Accepted with a jobId — follow it with jobs.status, whose result lists every row with its status and id. Wait for a batch to finish before sending one that depends on it (activities naming contacts the first batch creates). If a job stops part-way (partially_completed), run the same input again as a new request with runAgain: true (a plain retry only replays the stopped result): rows already imported match their externalId and are skipped or updated, never duplicated. Sending a batch that is still running joins that run instead of starting a second. Text fields have the same maximum lengths as the single-record capability (see that capability's input schema, e.g. company description 500); a longer value fails its row, unless the call passes "truncate": true, which shortens free text (names, titles, addresses, descriptions) and says so in the row's warning. Emails, domains, URLs, phone numbers and codes are never shortened; externalId takes at most 200 characters and externalSource 50. Give every row "externalId" (the record's id in the source system) and the call an "externalSource" (e.g. "tripletex") so re-running the same import updates or skips instead of duplicating. Rows take custom field values as "custom": { key: value }, as the single-record capability does (custom-fields.list lists the keys). Preview first: it reports per row create / update / skip / possible_duplicate / error with a reason, plus counts and the deal total. A possible_duplicate row (a name match only — a name is not an identity) is skipped unless listed in "includeRows" (create a new record); imports never merge, so to change the existing record (matchedId), check it is the same one and update it directly. Execution reports every row; some rows may fail while the rest succeed. This operation normally executes immediately. To preview without changing anything, pass dryRun: true; then call again without it to run.
activities.bulk-log
Deletes one logged activity. System activities cannot be deleted. Soft delete, as in the product: the record disappears from every list. This operation may return approval_required. After a person approves it, retry this same tool with identical arguments. To preview without changing anything, pass dryRun: true; then call again without it to run.
activities.delete
Lists timeline activities (emails, calls, meetings, notes, tasks) for a contact, company or deal in the active tenant, newest first. This operation normally executes immediately.
activities.list
Finds activities by subject. Existing relations are optional; duplicate subjects return candidates rather than an automatic choice. This operation normally executes immediately.
activities.search
Changes an activity that was logged with the wrong date, subject, text, type or record. Omitted fields stay unchanged; an empty body clears it. System activities (page views, form submissions) cannot be edited. Preview lists the changes. To correct many activities from an import, re-send them through activities.bulk-log with onExisting "update". This operation normally executes immediately. To preview without changing anything, pass dryRun: true; then call again without it to run.
activities.update
Top email campaigns sent in a period, ranked by open rate, click rate or delivered count. This operation normally executes immediately.
analytics.email-campaigns-top
Email deliverability totals and rates for a period, optionally one campaign. This operation normally executes immediately.
analytics.email-performance
Without an id: top landing pages by visits. With an id: that page's visits, conversions, time series and referrer/UTM/device/country breakdowns. This operation normally executes immediately.
analytics.landing-page-performance
Open deals by stage, won/lost totals, win rate, average days-to-close and the largest open deals. This operation normally executes immediately.
analytics.pipeline-performance
Per-platform post/engagement totals for a period, plus up to 5 posts with synced analytics, highest engagement rate first. Rates are percentages with two decimals; overallEngagementRate is null when the platform reported no audience. engagements is likes + comments + shares + clicks; overallEngagementRate is total engagements over total audience (each post's reach, or its impressions where the platform reports no reach, as on X); prefer it to averageEngagementRate, the mean of per-post rates. A rate over an audience under 100 is lowSample: too few people to read as performance, and such posts rank last. This operation normally executes immediately.
analytics.social-performance
Workspace counts for a period: contacts, companies, open pipeline, win/loss, new contacts, sent emails, published posts/pages, form submissions. openDealsValue sums open deals per currency, the currencies with the most open deals first (amounts in different currencies are not compared), at most ten currencies; openDealsValueTruncated is true when more currencies exist than are listed. This operation normally executes immediately.
analytics.workspace-overview
Widget plumbing for the approval card's Approve button. App-only: a model must never call this or approve on a person's behalf.
approve_pending_action_from_card
Runs copy through the same checks the publish gate applies, before scheduling. This operation normally executes immediately.
brand.check-text
The working brand: identity, section fields, completeness, published revision, record counts. This operation normally executes immediately.
brand.get
The brand's offers, capped at 50, flagged active/expired/not-yet-valid. This operation normally executes immediately.
brand.list-offers
Brand revision history, newest first, capped at 20. This operation normally executes immediately.
brand.list-revisions
Publishes a brand revision; future generation reads this snapshot. This operation may require a person's strong approval in Advanza. After approval, retry this same tool with identical arguments. To preview without changing anything, pass dryRun: true; then call again without it to run.
brand.publish-revision
What a generation call would use for a channel/audience/style: resolved context and prompt text. This operation normally executes immediately.
brand.resolve-context
Copies an earlier revision onto the working brand as a draft. To make it live, submit it (brand.submit-revision) and publish that revision (brand.publish-revision). This operation normally executes immediately. To preview without changing anything, pass dryRun: true; then call again without it to run.
brand.rollback
Freezes the working brand into a new revision, in review until it is published with brand.publish-revision. This operation normally executes immediately. To preview without changing anything, pass dryRun: true; then call again without it to run.
brand.submit-revision
Partial update of the working brand: identity fields and per-section field edits. This operation normally executes immediately. To preview without changing anything, pass dryRun: true; then call again without it to run.
brand.update
Creates or updates a brand offer. This operation normally executes immediately. To preview without changing anything, pass dryRun: true; then call again without it to run.
brand.upsert-offer
What is planned or has gone out between two dates: campaigns by their span, emails by send or scheduled time, social posts by publish or scheduled time (drafts that only have a planned date included), with one row per day so free days show as count 0; cancelled or failed sends do not count. A recurring email shows only its next occurrence. Use it before placing new posts. This operation normally executes immediately.
calendar.list
Reads a campaign: header, counts (including approved and pending-approval posts), workflow, audience, and the 5 nearest upcoming items. include socialPosts lists each post with its approval and review status. This operation normally executes immediately.
campaigns.get
Lists campaigns, most recently updated first, with asset/social/email counts, how many posts are approved or still waiting for approval, and next scheduled time. Capped 50. This operation normally executes immediately.
campaigns.list
Approves social posts in a campaign, or withdraws their approval - the review a person does in the campaign view. The approval card shows each post's platform, account, internal name, media and text. It only records the review: nothing is scheduled or published, and the campaign is not launched. Schedule approved posts with social-posts.bulk-schedule (one approval for all) or social-posts.schedule. A scheduled or published post cannot have its approval withdrawn; unschedule it first. This operation normally executes immediately. To preview without changing anything, pass dryRun: true; then call again without it to run.
campaigns.set-post-approval
Merges many duplicate companies, each into the company it duplicates, in one approval. Each pair works as companies.merge: contacts, deals, activities, sub-companies, documents and import links move over and the duplicate is deleted. Up to 500 pairs per call; over 100 needs strong approval. Runs as a background job: Execute returns the full result when the job finishes within about 20 seconds, otherwise Accepted with a jobId — follow it with jobs.status, whose result lists every row with its status and id. Wait for a batch to finish before sending one that depends on it (activities naming contacts the first batch creates). If a job stops part-way (partially_completed), run the same input again as a new request with runAgain: true (a plain retry only replays the stopped result): rows already imported match their externalId and are skipped or updated, never duplicated. Sending a batch that is still running joins that run instead of starting a second. This operation may return approval_required. After a person approves it, retry this same tool with identical arguments. To preview without changing anything, pass dryRun: true; then call again without it to run.
companies.bulk-merge
Creates or updates many companies in one call. Matches on externalSource + externalId, then organisation number, then domain; a name match alone is a possible duplicate, never a merge. Up to 500 rows per call (split larger imports). Runs as a background job: Execute returns the full result when the job finishes within about 20 seconds, otherwise Accepted with a jobId — follow it with jobs.status, whose result lists every row with its status and id. Wait for a batch to finish before sending one that depends on it (activities naming contacts the first batch creates). If a job stops part-way (partially_completed), run the same input again as a new request with runAgain: true (a plain retry only replays the stopped result): rows already imported match their externalId and are skipped or updated, never duplicated. Sending a batch that is still running joins that run instead of starting a second. Text fields have the same maximum lengths as the single-record capability (see that capability's input schema, e.g. company description 500); a longer value fails its row, unless the call passes "truncate": true, which shortens free text (names, titles, addresses, descriptions) and says so in the row's warning. Emails, domains, URLs, phone numbers and codes are never shortened; externalId takes at most 200 characters and externalSource 50. Give every row "externalId" (the record's id in the source system) and the call an "externalSource" (e.g. "tripletex") so re-running the same import updates or skips instead of duplicating. Rows take custom field values as "custom": { key: value }, as the single-record capability does (custom-fields.list lists the keys). Preview first: it reports per row create / update / skip / possible_duplicate / error with a reason, plus counts and the deal total. A possible_duplicate row (a name match only — a name is not an identity) is skipped unless listed in "includeRows" (create a new record); imports never merge, so to change the existing record (matchedId), check it is the same one and update it directly. Execution reports every row; some rows may fail while the rest succeed. This operation normally executes immediately. To preview without changing anything, pass dryRun: true; then call again without it to run.
companies.bulk-upsert
Deletes one company; linked contacts and deals stay, unlinked. For a duplicate, use companies.merge. Soft delete, as in the product: the record disappears from every list. This operation may return approval_required. After a person approves it, retry this same tool with identical arguments. To preview without changing anything, pass dryRun: true; then call again without it to run.
companies.delete
Lists every company in the workspace, a page at a time, ordered by name — for when you need them all rather than a search match. This operation normally executes immediately.
companies.list
Finds companies by exact key, many at once: the externalId they were imported with, organisation number, domain, or exact name. Every key comes back with its matches (or none), so this is how to collect the ids of an import without searching. This operation normally executes immediately.
companies.lookup
Merges a duplicate company into the one to keep: its contacts, deals, activities and documents move over and the duplicate is deleted. This operation may return approval_required. After a person approves it, retry this same tool with identical arguments. To preview without changing anything, pass dryRun: true; then call again without it to run.
companies.merge
Matches companies by name or domain substring only. Cannot filter by industry, size, revenue, country or any other field, and cannot count the whole tenant. There is no segment-style filtering engine for companies — narrow the query text instead. This operation normally executes immediately.
companies.search
Adds existing contacts to a contact group. Preview reports which contacts would be added, are already members, or do not exist. This operation normally executes immediately. To preview without changing anything, pass dryRun: true; then call again without it to run.
contact-groups.add-members
Adds many contacts, by id or by email, to one contact group in one call. Contacts already in the group are skipped. Up to 500 per call; runs directly and returns every row's result. This operation normally executes immediately. To preview without changing anything, pass dryRun: true; then call again without it to run.
contact-groups.bulk-add-members
Creates a new, empty contact group in the active tenant. This operation normally executes immediately. To preview without changing anything, pass dryRun: true; then call again without it to run.
contact-groups.create
Lists contact groups in the active tenant, with the number of live contacts in each (memberCount). This operation normally executes immediately.
contact-groups.list
Sets the same fields on many contacts in one call — e.g. lifecycle stage or lead status. Contacts that already hold the values are skipped. Up to 500 per call. Runs as a background job: Execute returns the full result when the job finishes within about 20 seconds, otherwise Accepted with a jobId — follow it with jobs.status, whose result lists every row with its status and id. Wait for a batch to finish before sending one that depends on it (activities naming contacts the first batch creates). If a job stops part-way (partially_completed), run the same input again as a new request with runAgain: true (a plain retry only replays the stopped result): rows already imported match their externalId and are skipped or updated, never duplicated. Sending a batch that is still running joins that run instead of starting a second. This operation normally executes immediately. To preview without changing anything, pass dryRun: true; then call again without it to run.
contacts.bulk-update
Creates or updates many contacts (and optionally their companies and the groups they join) in one call. Contacts match on email; groups on name. Up to 500 rows per call (split larger imports). Runs as a background job: Execute returns the full result when the job finishes within about 20 seconds, otherwise Accepted with a jobId — follow it with jobs.status, whose result lists every row with its status and id. Wait for a batch to finish before sending one that depends on it (activities naming contacts the first batch creates). If a job stops part-way (partially_completed), run the same input again as a new request with runAgain: true (a plain retry only replays the stopped result): rows already imported match their externalId and are skipped or updated, never duplicated. Sending a batch that is still running joins that run instead of starting a second. Text fields have the same maximum lengths as the single-record capability (see that capability's input schema, e.g. company description 500); a longer value fails its row, unless the call passes "truncate": true, which shortens free text (names, titles, addresses, descriptions) and says so in the row's warning. Emails, domains, URLs, phone numbers and codes are never shortened; externalId takes at most 200 characters and externalSource 50. Give every row "externalId" (the record's id in the source system) and the call an "externalSource" (e.g. "tripletex") so re-running the same import updates or skips instead of duplicating. Rows take custom field values as "custom": { key: value }, as the single-record capability does (custom-fields.list lists the keys). Preview first: it reports per row create / update / skip / possible_duplicate / error with a reason, plus counts and the deal total. A possible_duplicate row (a name match only — a name is not an identity) is skipped unless listed in "includeRows" (create a new record); imports never merge, so to change the existing record (matchedId), check it is the same one and update it directly. Execution reports every row; some rows may fail while the rest succeed. This operation normally executes immediately. To preview without changing anything, pass dryRun: true; then call again without it to run.
contacts.bulk-upsert
Deletes one contact. Soft delete, as in the product: the record disappears from every list. This operation may return approval_required. After a person approves it, retry this same tool with identical arguments. To preview without changing anything, pass dryRun: true; then call again without it to run.
contacts.delete
Creates a manual campaign, the same as Manual Campaign in the product: a container for social posts, created as a draft. Nothing is published or scheduled. Link posts with social-posts.create-draft or social-posts.update-draft (campaignId). The preview shows every stored value, defaults included. This operation normally executes immediately. To preview without changing anything, pass dryRun: true; then call again without it to run.
campaigns.create
Creates a company in the active tenant. This operation normally executes immediately. To preview without changing anything, pass dryRun: true; then call again without it to run.
companies.create
Creates a contact in the active tenant. This operation normally executes immediately. To preview without changing anything, pass dryRun: true; then call again without it to run.
contacts.create
Creates a deal in the active tenant. This operation normally executes immediately. To preview without changing anything, pass dryRun: true; then call again without it to run.
deals.create
Creates an email category by name, or returns the existing one with that name (created: false). Create one only when no category from email-categories.list fits and the request clearly implies a recurring kind of email, at most one per request, and tell the person which category was used. Categories cannot be renamed or deleted here. This operation normally executes immediately. To preview without changing anything, pass dryRun: true; then call again without it to run.
email-categories.create
Creates an unscheduled email draft; nothing is sent. Designed email (preferred): unless the person named a template, let them choose one first with open_email_template_picker and wait for their choice, rather than picking it for them (where widgets are not shown, list them with email-templates.list and ask). One choice covers every email in the request: use the templatePicker ids for each of them. Then give templateId, versionId and fields here, or use email-campaigns.create-draft-from-brief to have AI write its text (spends credits). Personal note: style plain with htmlContent, only when the person asks for a plain or personal email; tracking false turns open and click tracking off. Custom layout: designJson with rich blocks, or htmlContent as a last resort. File it under a category with categoryId (email-categories.list). This operation normally executes immediately. To preview without changing anything, pass dryRun: true; then call again without it to run. Afterwards, give the person the link to the draft from the result's references and say it is saved as a draft and not sent.
email-campaigns.create-draft
Creates an unscheduled email draft from a template, Advanza's or the workspace's own, whose text AI writes from a brief and approved facts; links, images and the footer stay as the template has them, and it invents no facts. Every number the email should carry (prices, percentages, dates) goes in facts exactly as it should be written; a number only in the brief is refused. Spends AI credits: run it with dryRun first to see the estimate. Nothing is sent. With several emails in one request, one choice in open_email_template_picker covers them all: use the templatePicker ids for each draft. This operation normally executes immediately. To preview without changing anything, pass dryRun: true; then call again without it to run. Afterwards, give the person the link to the draft from the result's references and say it is saved as a draft and not sent.
email-campaigns.create-draft-from-brief
Creates an active form from structured field definitions, ready to embed on a landing page. Field ids are assigned by the server. The form takes submissions from anyone at its public URL as soon as it exists. This operation normally executes immediately. To preview without changing anything, pass dryRun: true; then call again without it to run.
forms.create
Sets a reminder on an activity or a deal. Fires through the normal notification path (bell, desktop, mobile); email is sent only when notifyByEmail is set, and even then only if the recipient hasn't muted it. Preview echoes the remindAt time and recurrence in words so a relative request ("the day before", "in a month") is checked before approval. This operation normally executes immediately. To preview without changing anything, pass dryRun: true; then call again without it to run.
reminders.create
Advanza ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve Advanza's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Advanza alternatives on ChatGPT?
As of 2026-11-02, Advanza competes with Adobe Marketing Agent, Amperity, ClickFunnels, Etropo, FORTVISION, Giant Context, Helena - AI Marketing Agent, Magister Marketing and 3 more in ChatGPT Enterprise Marketing Orchestration & CDP, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.