MCP App Store
by KeenEthics

Overview

Converly is the easiest way to send conversions to Google Ads, Meta Ads, ChatGPT Ads, Microsoft Ads, LinkedIn Ads, Google Analytics 4, and more when someone submits a form, schedules an appointment or starts a chat on your site. This plugin makes it super easy to set up. You simply say things like 'Send conversions to ChatGPT Ads when someone submits the contact form on my website' and the plugin will set up a conversion flow, give you a snippet of code to add to your site, and test that it's all set up and working. It can detect conversions in 100+ tools, including Gravity Forms, WPForms, Contact Form 7, Typeform, Jotform, Webflow Forms, Wix Forms, Squarespace Forms, Calendly, Acuity Scheduling, Cal.com & more. It can send conversions to 20+ destinations, including Google Analytics, Google Ads, Meta Ads, ChatGPT Ads, Microsoft Ads, LinkedIn Ads, TikTok Ads, Reddit Ads and more. Converly supports conditional logic so you can decide exactly when a conversion fires, such as when someone submits your Quote Request form but not your Contact Support form. Instead of relying on the visitor's browser to send conversions, Converly sends conversions directly to the ad platforms' servers, where ad blockers and privacy restrictions in iOS and Safari can't get in the way. It also captures the lead's name, email, phone, click IDs, IP address, device, etc and sends it with the conversion. This gives ad platforms the data they need to match the conversion back to a real person and the original ad they clicked. Ultimately, this means you get more accurate conversion data, and your ad platform can understand what a good lead looks like for your business so it can go find more of them. Converly gives you a full debug log that shows exactly what was captured, what was sent where, and whether it arrived successfully. You can even query it through the plugin by saying something like 'Is my conversion tracking working properly' and it will query the log and respond.

Tools

check_handoff_status

ChatGPT
Check the status of a connect link created by connect_destination or connect_trigger_source. Returns pending (the person hasn't finished yet), completed (with the connected platform's details in the result), expired, or cancelled. Call this once the user says they've finished in the connect window (or poll it if they've asked you to wait).

connect_destination

ChatGPT
Start connecting an ad platform (a destination) to the account. Because connecting requires the account owner to complete the provider's connection steps in a browser (signing in for OAuth platforms, or pasting an API key), this returns a secure link for a human to open. An AI assistant can't complete the connection itself. After the person finishes in that window, poll check_handoff_status with the returned handoff_id until its status is "completed"; the result then contains the connected destination's id and details. Which platforms can be connected this way is whatever list_destination_types reports with a non-empty connection_types (browser-side pixel destinations have an empty connection_types and need no connect step — write their action directly). A couple of per-platform notes worth relaying: for ChatGPT Ads the person pastes an Ads API key from ChatGPT Ads Manager (Settings, General tab) and then picks an existing data source or deliberately creates one (a new DATA SOURCE cannot be deleted afterwards, so it's behind a warning). For TikTok, the platform emails a verification code to the ad-account owner during authorization, so whoever opens the link needs access to that mailbox — otherwise they can connect TikTok from the Converly dashboard, which also offers pasting an Events API token.

connect_trigger_source

ChatGPT
Start connecting a trigger platform (a form or scheduling tool that needs its own login — the providers marked requires_connection: true in list_trigger_types) to a site. Returns a secure link the ACCOUNT OWNER opens in a browser to sign in to the platform (or paste its API key); an AI assistant can't complete that step itself. If the platform is already connected and working for the site, this says so and no link is needed. After the person finishes, call check_handoff_status with the returned handoff_id; when it's "completed", the platform is connected and you can build flows with it (and narrow them with list_trigger_filter_options).

create_conversion

ChatGPT
Create a NEW conversion in a connected ad platform, for when the account has none yet and there is nothing to pick, or (Google Ads) when everything listed is marked usable false and so nothing listed can receive conversions from Converly. Only some destinations support this, and it depends on HOW they were connected — call list_conversions first and check supports_create on the response rather than assuming. ASK THE CUSTOMER BEFORE CALLING THIS. It writes a permanent object into their real ad account: a ChatGPT Ads conversion event can never be deleted, a LinkedIn rule is applied to all their live campaigns, and a Google Ads conversion action affects how their campaigns optimise. Required fields differ by platform: Google Ads and LinkedIn need a category, LinkedIn also needs a conversion_method from the creatable_methods on the list response, and ChatGPT Ads needs an event_type.

create_flow

ChatGPT
Create a new conversion flow — a trigger (e.g. a form submission) plus the conversion actions it fires to ad platforms. The flow is created as a DRAFT and won't track conversions until it's published. Typical sequence: call list_sites first to get the site_id. For destinations, call list_destination_types to see every platform and its slug. Server-side destinations (connection_types includes "oauth"/"paste_token", e.g. google-ads, meta, google-analytics, reddit-ads, linkedin-ads, tiktok-ads) must be connected first — check list_destinations and use connect_destination if needed. Browser-side pixel destinations (connection_types is empty, e.g. x-ads, snapchat-ads) need NO connect step: read their config fields from list_action_types and write the action directly. The trigger and actions are optional at creation — you can create an empty draft and fill it in later.

delete_flow

ChatGPT
Permanently delete a flow. This removes it from Converly and stops it tracking — it can't be undone. Confirm with the user first, then pass confirm set to the flow's exact name. Pass the flow_id from list_flows.

disconnect_destination

ChatGPT
Disconnect a connected ad platform — removes its stored credentials from Converly. Flows that fire to it will stop delivering conversions until it's reconnected (which needs a fresh OAuth/login). Confirm with the user first, then pass confirm set to the destination's exact name. Pass the destination_id from list_destinations.

get_event_detail

ChatGPT
Get the diagnostic detail of one captured conversion event: its flow, each destination's fire status and a machine error CODE (e.g. "ga4_unknown") when a delivery failed, coarse device/country, which lead fields were captured (presence only), and whether the lead's data was purged. Visitor PII (email/phone values, IP, raw user agent, raw error text, request/response bodies) is NOT included — this is the redacted view. Pass the event_id from list_events. Use it to diagnose why a specific conversion did or didn't reach an ad platform.

get_flow

ChatGPT
Get the full detail of one flow — its trigger, actions, and status. Pass the flow_id from list_flows.

get_install_snippet

ChatGPT
Get the tracking snippet (a small script tag) the user needs to add to their website so Converly can track conversions, plus the site_key. Give this to the user whenever get_install_status isn't "confirmed" — without it on the site, published flows capture nothing. Pass the site_id from list_sites.

get_install_status

ChatGPT
Check whether Converly tracking is working on a site. Two signals: detection "confirmed" with source "heartbeat" means the Converly loader itself was seen running on the site within the last 48 hours (say "loader seen recently", never "installation verified" — it is an advisory observation). When origin_authorized is false alongside that, the code is running but on a website address this site is NOT authorized for, so every conversion is being rejected — fix it with update_site. detection "confirmed" without a source means at least one conversion event has been captured. detection "never_seen" means neither signal exists yet — the snippet may still be installed (tag managers, consent gates, or no published flow can all delay the signals), so do NOT tell the user tracking is broken. If the user has not confirmed the snippet is installed, give it to them from get_install_snippet first; once they say it is installed, suggest a real test form submission to flip the signal on the site (send_test_event canNOT verify installation — it tests only destination forwarding). detection "pending" means the checks could not run right now. Pass the site_id from list_sites.

get_subscription

ChatGPT
Get the account's current Converly subscription: plan, status, trial state, and usage limits. Use this to check whether the account is on a trial, active, or past due.

list_action_types

ChatGPT
Get the action catalogue for a destination type — the exact config fields (and a worked example) you must put in a flow's action for that platform. Call this before create_flow to learn the right config shape for, e.g., a Google Ads conversion.

list_conversions

ChatGPT
List the conversion actions configured on a connected destination (e.g. the conversion actions in a Google Ads account). Use this to find the right conversion to reference when setting up a flow's action. Pass the destination_id from list_destinations. For Google Ads, pick an entry whose usable field is true. An entry with usable false cannot receive conversions from Converly (its reason field says why, and flow writes that pick it are refused). Brand-new Google Ads accounts often contain ONLY unusable Google-created actions, so when nothing usable is listed, offer create_conversion instead. A missing usable field means no verdict.

list_destination_types

ChatGPT
List the ad platforms / destination types Converly can send conversions to (e.g. Google Ads, Meta, LinkedIn, TikTok), with how each one connects. Each entry has connection_types: a NON-empty array (e.g. oauth/paste_token) means the destination must be connected first via connect_destination; an EMPTY array means it's a browser-side pixel destination that needs no connect step — read its fields from list_action_types and write the action directly.

list_destinations

ChatGPT
List the ad platforms / destinations connected to the account (e.g. Google Ads, Meta) and their connection status. These are where conversion events get sent when a flow fires.

list_events

ChatGPT
List recent conversion events Converly captured (the live tracking log): each shows the flow, destination, status (e.g. converted / failed), and time. Use this to check whether conversions are being tracked, to CONFIRM whether a conversion matching an email exists and how it was delivered (email filter — you supply an address you already know; visitor PII is NOT returned in the results), or to list failures (status filter). Filters: site_id, flow_id, email (exact match), status, occurred_after / occurred_before (ISO timestamps). This returns a BOUNDED SNAPSHOT of the most recent matching events (up to limit); has_more: true means older events exist beyond the window — narrow with the filters (especially email / occurred_after / occurred_before) rather than paging. IMPORTANT: when the response has complete: false, the search was truncated at the recent window, so an empty or short result does NOT prove no matching conversion exists — do not tell the user 'no conversion was found'; say the recent window has none and offer to narrow by date. Not the full archive.

list_flows

ChatGPT
List conversion flows in the account. A flow = a trigger (e.g. a form submission) plus the conversion actions it fires to ad platforms. Optionally filter to one site by passing its site_id (the prefixed id from list_sites, e.g. "site_abc").

list_sites

ChatGPT
List the websites in the connected Converly account (returns each site's id, name, and domain). Use this first to discover which site a flow or destination belongs to.

list_trigger_filter_options

ChatGPT
For a CONNECTED form platform (a requires_connection provider from list_trigger_types), list the filter fields it supports and the account's REAL values for each — e.g. the actual Typeform forms or Calendly event types, with ids and names. Use this after connecting to offer the user a specific form/event type, then pass the choice as trigger_config.conditions on create_flow/update_flow, e.g. {"form": {"ids": ["abc"], "names": ["Demo Request"]}}. Values come live from the platform; never invent filter values that aren't in this list.

list_trigger_types

ChatGPT
List the trigger types Converly supports — the kinds of events that can start a flow (e.g. form submissions, meeting booked) and the form/tool providers for each. Use this to find the trigger integrationId to pass to create_flow's trigger_config. Providers marked requires_connection: true (form platforms like Typeform) must be connected first with connect_trigger_source; pass site_id to see each one's live connection state for that site. Filtering: most triggers fire on ALL pages or only specific pages (trigger_config.pageFilter and pages). Connected form platforms instead support narrowing to a specific form or event type via trigger_config.conditions — discover the real options with list_trigger_filter_options. Do not offer any other filtering (CSS selector, product, or similar).

publish_flow

ChatGPT
Publish a flow so it goes live and starts tracking conversions. This pushes the account's configuration to Converly's CDN, so the change takes effect on the customer's website. The flow must have a trigger and at least one action, and the account must be in good standing. (You can stop future tracking with unpublish_flow, but conversions already delivered while the flow was live cannot be recalled.) Pass the flow_id from list_flows or create_flow. Note that publishing alone captures nothing unless the Converly snippet is installed on the website. The result may include install_status; if it is absent, call get_install_status. If its detection is "never_seen", give the user the snippet from get_install_snippet and wait for them to confirm it is installed before suggesting any test.

send_test_event

ChatGPT
Fire a single conversion to a destination to verify a flow's action is wired up, without waiting for a real form submission. It tests the DESTINATION-FORWARDING path only: it does NOT prove the snippet is installed, the origin is authorized, or that a real submission would be captured, and it does NOT appear in list_events (that's the real capture log). Pass the action to test by action_id (from get_flow's actions_config; it must belong to the flow) — the action's STORED config is used, the config you pass is ignored. For Meta pass meta_test_event_code (Test Events tab); for Reddit/TikTok pass reddit_test_id / tiktok_test_event_code. WITHOUT a valid sandbox code, server-side ad destinations (google-ads, chatgpt-ads, linkedin-ads, google-analytics, and meta/reddit/tiktok) create a REAL conversion in campaign reporting, so the call is REFUSED unless you set allow_real_conversion:true — confirm with the user first.

unpublish_flow

ChatGPT
Unpublish (pause) a live flow so it stops tracking conversions, while keeping its configuration so it can be re-published later. This pushes the updated configuration to Converly's CDN. Pass the flow_id from list_flows.

update_flow

ChatGPT
Update a flow's name, description, trigger, or actions. (To take a flow live or pause it, use publish_flow / unpublish_flow instead — status isn't changed here.) IMPORTANT: updating a PUBLISHED flow does NOT change what runs on the website — the result's publication_state turns "pending" and the site keeps running the previous version until publish_flow is called. Pass at least one field to change. The flow keeps its current values for anything you omit.

update_site

ChatGPT
Update a site's name, website address (domain), or timezone. Setting the domain matters most: Converly rejects conversions from websites it doesn't recognize, so a site with no domain captures NOTHING even with a published flow and the snippet installed. Whenever list_sites shows domain null, ask the user for their website URL and set it here. Pass the site_id from list_sites and at least one field to change.

validate_flow

ChatGPT
Check whether a flow is ready to publish, without publishing it. Returns whether it's valid and a list of any problems (e.g. missing trigger or action) so you can fix them before calling publish_flow. Pass the flow_id from list_flows.

add_internal_traffic_rule

Claude

check_handoff_status

Claude

connect_destination

Claude

connect_trigger_source

Claude

create_flow

Claude

delete_flow

Claude

disconnect_destination

Claude

get_event_detail

Claude

get_flow

Claude

get_install_snippet

Claude

get_install_status

Claude

get_subscription

Claude

list_action_types

Claude

list_conversions

Claude

list_destination_types

Claude

list_destinations

Claude

list_events

Claude

list_flows

Claude

list_sites

Claude

list_trigger_filter_options

Claude

list_trigger_types

Claude

publish_flow

Claude

send_test_event

Claude

unpublish_flow

Claude

update_flow

Claude

update_site

Claude

validate_flow

Claude

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

Similar Apps