[{"data":1,"prerenderedAt":656},["ShallowReactive",2],{"docs-navigation-en":3,"docs-\u002Fen\u002Fdocs\u002Fdestinations\u002Fopenai":70,"docs-surround-\u002Fen\u002Fdocs\u002Fdestinations\u002Fopenai":651},[4],{"title":5,"path":6,"stem":7,"children":8,"page":69},"En","\u002Fen","en",[9],{"title":10,"path":11,"stem":12,"children":13,"page":69},"Docs","\u002Fen\u002Fdocs","en\u002Fdocs",[14,22,45],{"title":15,"path":16,"stem":17,"children":18,"icon":21},"Getting started","\u002Fen\u002Fdocs\u002Fgetting-started","en\u002Fdocs\u002F1.getting-started\u002F1.index",[19],{"title":20,"path":16,"stem":17},"What Flowfy is","i-lucide-rocket",{"title":23,"path":24,"stem":25,"children":26,"icon":44},"Destinations","\u002Fen\u002Fdocs\u002Fdestinations","en\u002Fdocs\u002F2.destinations\u002F1.index",[27,28,32,36,40],{"title":23,"path":24,"stem":25},{"title":29,"path":30,"stem":31},"Meta","\u002Fen\u002Fdocs\u002Fdestinations\u002Fmeta","en\u002Fdocs\u002F2.destinations\u002F2.meta",{"title":33,"path":34,"stem":35},"TikTok","\u002Fen\u002Fdocs\u002Fdestinations\u002Ftiktok","en\u002Fdocs\u002F2.destinations\u002F3.tiktok",{"title":37,"path":38,"stem":39},"Snapchat","\u002Fen\u002Fdocs\u002Fdestinations\u002Fsnapchat","en\u002Fdocs\u002F2.destinations\u002F4.snapchat",{"title":41,"path":42,"stem":43},"ChatGPT Ads","\u002Fen\u002Fdocs\u002Fdestinations\u002Fopenai","en\u002Fdocs\u002F2.destinations\u002F5.openai","i-lucide-share-2",{"title":46,"path":47,"stem":48,"children":49,"icon":68},"For developers","\u002Fen\u002Fdocs\u002Fdevelopers","en\u002Fdocs\u002F9.developers\u002F1.index",[50,52,56,60,64],{"title":51,"path":47,"stem":48},"Developer overview",{"title":53,"path":54,"stem":55},"Install the SDK","\u002Fen\u002Fdocs\u002Fdevelopers\u002Finstall","en\u002Fdocs\u002F9.developers\u002F2.install",{"title":57,"path":58,"stem":59},"Tracking","\u002Fen\u002Fdocs\u002Fdevelopers\u002Ftracking","en\u002Fdocs\u002F9.developers\u002F3.tracking",{"title":61,"path":62,"stem":63},"Event reference","\u002Fen\u002Fdocs\u002Fdevelopers\u002Fevents","en\u002Fdocs\u002F9.developers\u002F4.events",{"title":65,"path":66,"stem":67},"HTTP API","\u002Fen\u002Fdocs\u002Fdevelopers\u002Fhttp-api","en\u002Fdocs\u002F9.developers\u002F5.http-api","i-lucide-code",false,{"id":71,"title":41,"audience":72,"body":73,"description":645,"extension":646,"meta":647,"navigation":648,"path":42,"seo":649,"stem":43,"__hash__":650},"docs_en\u002Fen\u002Fdocs\u002F2.destinations\u002F5.openai.md","merchant",{"type":74,"value":75,"toc":621},"minimark",[76,80,86,91,116,131,147,151,156,166,175,179,190,198,204,208,221,228,234,243,247,251,265,269,283,291,298,302,306,315,323,327,333,337,340,346,350,361,367,370,374,381,387,394,398,401,530,549,552,570,573,577,592,598,604,615],[77,78,79],"p",{},"Connecting ChatGPT Ads lets Flowfy send every purchase, add-to-cart and page view from your store straight to OpenAI's servers, so your ad reporting reflects sales the browser pixel never saw.",[81,82],"docs-video-card",{"href":83,"label":84,"poster":85},"https:\u002F\u002Fyoutu.be\u002FhtDc9BdXyo0","Watch the ChatGPT Ads setup walkthrough","\u002Fdocs\u002Fdestinations\u002Fopenai\u002F03-pixel-id.png",[87,88,90],"h2",{"id":89},"before-you-start","Before you start",[92,93,94,110],"ul",{},[95,96,97,98,102,103],"li",{},"Access to ",[99,100,101],"strong",{},"ChatGPT Ads Manager"," at ",[104,105,109],"a",{"href":106,"rel":107},"https:\u002F\u002Fads.openai.com",[108],"nofollow","ads.openai.com",[95,111,112,113,115],{},"A Flowfy source already connected. If you have not done that, start with ",[104,114,15],{"href":16},".",[77,117,118,119,122,123,126,127,130],{},"You will end up with two values: a ",[99,120,121],{},"Pixel ID"," and a ",[99,124,125],{},"Conversions API Key",". Both live under ",[99,128,129],{},"Conversions",", but they are created in two different places on that page.",[132,133,135],"callout",{"icon":134},"i-lucide-triangle-alert",[77,136,137,138,141,142,146],{},"There are two kinds of key in ChatGPT Ads and only one of them works here. Do ",[99,139,140],{},"not"," use ",[143,144,145],"code",{},"Settings › API Keys"," — that is the Ads Management key, and it is rejected on every event. Part 2 shows the right one.",[87,148,150],{"id":149},"part-1-create-your-data-source","Part 1 · Create your data source",[152,153,155],"h3",{"id":154},"_1-open-conversions","1. Open Conversions",[77,157,158,159,162,163,165],{},"In Ads Manager, open ",[99,160,161],{},"Tools"," in the left menu and choose ",[99,164,129],{},". If you have never set one up, the page is empty.",[77,167,168],{},[169,170],"img",{"alt":171,"height":172,"src":173,"width":174},"The Conversions page in ChatGPT Ads Manager with no data sources yet",631,"\u002Fdocs\u002Fdestinations\u002Fopenai\u002F01-conversions-empty.png",2260,[152,176,178],{"id":177},"_2-create-a-data-source","2. Create a data source",[77,180,181,182,185,186,189],{},"Click ",[99,183,184],{},"+ Create data source"," (or ",[99,187,188],{},"+ Create › Data Source"," in the top-right once you already have one). Give it a name you will recognise — the name is for you, nothing depends on it.",[77,191,192],{},[169,193],{"alt":194,"height":195,"src":196,"width":197},"The Create new data source dialog with a name filled in",918,"\u002Fdocs\u002Fdestinations\u002Fopenai\u002F02-create-data-source.png",2256,[77,199,200,201,115],{},"Your Pixel ID is generated automatically when you click ",[99,202,203],{},"Create",[152,205,207],{"id":206},"_3-copy-the-pixel-id","3. Copy the Pixel ID",[77,209,210,211,214,215,217,218,115],{},"Open the data source you just made. The ",[99,212,213],{},"Set up your data source"," panel shows the ",[99,216,121],{}," with a copy button beside it — a 22-character string like ",[143,219,220],{},"MsLLVN8fT8zQX7nLQFhEcE",[77,222,223],{},[169,224],{"alt":225,"height":226,"src":85,"width":227},"The Set up your data source panel showing the Pixel ID and its copy button",956,2270,[77,229,230,231,233],{},"You do ",[99,232,140],{}," need to install the setup code shown underneath. Flowfy sends events from its own servers, and that is enough on its own.",[132,235,236],{"icon":134},[77,237,238,239,242],{},"If you already run the ChatGPT browser pixel on your store, use that same Pixel ID here — and be aware that running both can currently double-count. OpenAI de-duplicates on the Pixel ID ",[99,240,241],{},"plus the event id",", and Flowfy does not yet coordinate its event ids with the stock pixel. If your numbers look inflated, run one or the other, not both.",[87,244,246],{"id":245},"part-2-get-the-conversions-api-key","Part 2 · Get the Conversions API key",[152,248,250],{"id":249},"_1-open-conversion-keys","1. Open Conversion keys",[77,252,253,254,256,257,260,261,264],{},"Back on the ",[99,255,129],{}," page, use the ",[99,258,259],{},"key icon"," in the top-right (",[99,262,263],{},"Conversion keys",") and create a key there. Copy it as soon as it appears.",[152,266,268],{"id":267},"_2-do-not-use-settings-api-keys","2. Do not use Settings › API Keys",[77,270,271,272,274,275,278,279,282],{},"This is where most setups go wrong. ",[143,273,145],{}," also has a ",[99,276,277],{},"Create New Key"," button, and the key it produces looks perfectly valid — but OpenAI says in the dialog itself that it grants ",[99,280,281],{},"Ads Management API access only",":",[77,284,285],{},[169,286],{"alt":287,"height":288,"src":289,"width":290},"The Create New API Key dialog stating that Ads Manager API keys grant Ads Management API access only, and to use a separate conversion key for Conversions API events",1091,"\u002Fdocs\u002Fdestinations\u002Fopenai\u002F04-wrong-key-warning.png",2263,[77,292,293,294,297],{},"A key from there starts with ",[143,295,296],{},"sk-svcacct-",". OpenAI will not accept events sent with it, so the destination saves but never delivers — and Flowfy reports the key as invalid the moment OpenAI says so. If your events are not arriving, check which of the two keys you pasted.",[87,299,301],{"id":300},"part-3-create-the-destination-in-flowfy","Part 3 · Create the destination in Flowfy",[152,303,305],{"id":304},"_1-start-a-new-destination","1. Start a new destination",[77,307,308,309,311,312,115],{},"In Flowfy, open ",[99,310,23],{}," and click ",[99,313,314],{},"Create destination",[77,316,317],{},[169,318],{"alt":319,"height":320,"src":321,"width":322},"The Flowfy destinations page with the create destination button",675,"\u002Fdocs\u002Fdestinations\u002Fflowfy\u002F01-create-destination.png",1568,[152,324,326],{"id":325},"_2-choose-chatgpt-ads","2. Choose ChatGPT Ads",[77,328,329],{},[169,330],{"alt":331,"height":320,"src":332,"width":322},"The Flowfy platform picker showing the advertising destinations","\u002Fdocs\u002Fdestinations\u002Fflowfy\u002F02-pick-platform.png",[152,334,336],{"id":335},"_3-connect-your-store","3. Connect your store",[77,338,339],{},"Tick the source whose events should flow to ChatGPT Ads, then continue.",[77,341,342],{},[169,343],{"alt":344,"height":320,"src":345,"width":322},"The Flowfy source selection step with a store selected","\u002Fdocs\u002Fdestinations\u002Fflowfy\u002F04-connect-source.png",[152,347,349],{"id":348},"_4-paste-both-values","4. Paste both values",[77,351,352,353,355,356,358,359,115],{},"Put the Pixel ID from Part 1 into ",[99,354,121],{},", and the key from Part 2 into ",[99,357,125],{},". Then click ",[99,360,203],{},[77,362,363],{},[169,364],{"alt":365,"height":320,"src":366,"width":322},"The Flowfy destination setup step with the name and credential fields filled in","\u002Fdocs\u002Fdestinations\u002Fflowfy\u002F03-paste-credentials.png",[77,368,369],{},"Flowfy verifies both values before saving. That check is completely inert: OpenAI can validate a batch without recording it, so verifying costs you no phantom conversion.",[87,371,373],{"id":372},"part-4-check-that-its-working","Part 4 · Check that it's working",[77,375,376,377,380],{},"Place a test order, then open the destination in Flowfy and watch ",[99,378,379],{},"Live events",". The order should appear within seconds.",[77,382,383],{},[169,384],{"alt":385,"height":320,"src":386,"width":322},"The Flowfy live events view with events arriving","\u002Fdocs\u002Fdestinations\u002Fflowfy\u002F05-live-events.png",[77,388,389,390,393],{},"On OpenAI's side, open the ",[99,391,392],{},"Event Stream"," tab on the Conversions page and look for the event arriving.",[87,395,397],{"id":396},"what-gets-sent","What gets sent",[77,399,400],{},"Flowfy translates your store's events into ChatGPT Ads event names automatically:",[402,403,404,417],"table",{},[405,406,407],"thead",{},[408,409,410,414],"tr",{},[411,412,413],"th",{},"Your store event",[411,415,416],{},"ChatGPT Ads event",[418,419,420,431,441,450,460,470,480,490,500,510,520],"tbody",{},[408,421,422,426],{},[423,424,425],"td",{},"Page View",[423,427,428],{},[143,429,430],{},"page_viewed",[408,432,433,436],{},[423,434,435],{},"Product Viewed",[423,437,438],{},[143,439,440],{},"contents_viewed",[408,442,443,446],{},[423,444,445],{},"Product List Viewed",[423,447,448],{},[143,449,440],{},[408,451,452,455],{},[423,453,454],{},"Product Added",[423,456,457],{},[143,458,459],{},"items_added",[408,461,462,465],{},[423,463,464],{},"Checkout Started",[423,466,467],{},[143,468,469],{},"checkout_started",[408,471,472,475],{},[423,473,474],{},"Order Completed",[423,476,477],{},[143,478,479],{},"order_created",[408,481,482,485],{},[423,483,484],{},"Sign Up",[423,486,487],{},[143,488,489],{},"registration_completed",[408,491,492,495],{},[423,493,494],{},"Reserve",[423,496,497],{},[143,498,499],{},"appointment_scheduled",[408,501,502,505],{},[423,503,504],{},"Subscribe",[423,506,507],{},[143,508,509],{},"subscription_created",[408,511,512,515],{},[423,513,514],{},"Start Trial",[423,516,517],{},[143,518,519],{},"trial_started",[408,521,522,525],{},[423,523,524],{},"App Open",[423,526,527],{},[143,528,529],{},"app_opened",[77,531,532,533,536,537,540,541,544,545,548],{},"Anything outside that list is sent as a custom event, named after your event in lowercase with punctuation replaced by underscores. OpenAI only accepts Latin letters, digits, ",[143,534,535],{},"_"," and ",[143,538,539],{},"-"," in an event name, so a name written entirely in Arabic leaves nothing to keep. Rather than drop the conversion, Flowfy sends it under a generated ",[143,542,543],{},"custom_"," name that stays the same for that event forever. The sale still counts; it just appears in Ads Manager under the generated name. Give an event a Latin name if you want to recognise it there. If your store already uses ChatGPT Ads names such as ",[143,546,547],{},"lead_created",", those pass through unchanged.",[77,550,551],{},"A few events are dropped rather than sent: anything older than seven days, and a web event with no page URL. OpenAI rejects a whole batch over one bad event, so Flowfy removes those first.",[77,553,554,555,558,559,561,562,565,566,569],{},"You can override any mapping under ",[99,556,557],{},"Event Mappings"," on the destination, but the target has to be one of the ChatGPT Ads event names above, or ",[143,560,547],{},", ",[143,563,564],{},"app_installed"," or ",[143,567,568],{},"custom",". An override to anything else is ignored and the default mapping is used.",[77,571,572],{},"Order values are converted into the unit OpenAI expects for your currency, so SAR, USD, KWD and JPY totals all report correctly without you configuring anything.",[87,574,576],{"id":575},"if-something-goes-wrong","If something goes wrong",[77,578,579,582,583,585,586,588,589,591],{},[99,580,581],{},"Flowfy says the API key is invalid."," The most common cause is a key from ",[143,584,145],{}," instead of ",[99,587,263],{},". A key starting ",[143,590,296],{}," is always the wrong one.",[77,593,594,597],{},[99,595,596],{},"Flowfy says the key has no access to that Pixel ID."," The key and the data source belong to different accounts. Create the key from the same account that owns the pixel.",[77,599,600,603],{},[99,601,602],{},"Nothing arrives in Flowfy's live events."," The problem is between your store and Flowfy, not Flowfy and OpenAI. Check that your source is connected and active.",[77,605,606,609,610,614],{},[99,607,608],{},"Sales are counted twice."," You are running the browser pixel and Flowfy together. A matching Pixel ID is necessary but not sufficient — OpenAI de-duplicates on the Pixel ID ",[611,612,613],"em",{},"and"," the event id, and Flowfy does not yet coordinate event ids with the stock pixel. Until it does, run one or the other.",[77,616,617,620],{},[99,618,619],{},"Older orders never arrive."," OpenAI refuses events more than seven days old, so Flowfy drops them rather than sending a batch that would be rejected whole. Only a backlog longer than a week is affected.",{"title":622,"searchDepth":623,"depth":623,"links":624},"",2,[625,626,632,636,642,643,644],{"id":89,"depth":623,"text":90},{"id":149,"depth":623,"text":150,"children":627},[628,630,631],{"id":154,"depth":629,"text":155},3,{"id":177,"depth":629,"text":178},{"id":206,"depth":629,"text":207},{"id":245,"depth":623,"text":246,"children":633},[634,635],{"id":249,"depth":629,"text":250},{"id":267,"depth":629,"text":268},{"id":300,"depth":623,"text":301,"children":637},[638,639,640,641],{"id":304,"depth":629,"text":305},{"id":325,"depth":629,"text":326},{"id":335,"depth":629,"text":336},{"id":348,"depth":629,"text":349},{"id":372,"depth":623,"text":373},{"id":396,"depth":623,"text":397},{"id":575,"depth":623,"text":576},"Send your store's events to ChatGPT Ads through the OpenAI Conversions API.","md",{},true,{"title":41,"description":645},"i5US0A1uRrP28-D_rhRdVXACfQVSxXcNljduHqo4WQg",[652,654],{"title":37,"path":38,"stem":39,"description":653,"children":-1},"Send your store's events to Snapchat ads through the Snapchat Conversions API.",{"title":51,"path":47,"stem":48,"description":655,"children":-1},"Send your store's events to Flowfy from the browser or from your server.",1789651420309]