[{"data":1,"prerenderedAt":1028},["ShallowReactive",2],{"navigation_docs":3,"-embed-api-reference":63,"-embed-api-reference-surround":1023},[4,21,37,47],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":20},"Getting Started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,15],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Campaign Configuration","\u002Fgetting-started\u002Fcampaign-configuration","1.getting-started\u002F2.campaign-configuration","i-lucide-megaphone",false,{"title":22,"icon":23,"path":24,"stem":25,"children":26,"page":20},"Embed","i-lucide-code","\u002Fembed","2.embed",[27,32],{"title":28,"path":29,"stem":30,"icon":31},"Integration Guide","\u002Fembed\u002Fguide","2.embed\u002F1.guide","i-lucide-book-open",{"title":33,"path":34,"stem":35,"icon":36},"API Reference","\u002Fembed\u002Fapi-reference","2.embed\u002F2.api-reference","i-lucide-file-code",{"title":38,"icon":39,"path":40,"stem":41,"children":42,"page":20},"External API","i-lucide-globe","\u002Fexternal-api","3.external-api",[43],{"title":44,"path":45,"stem":46,"icon":36},"Campaign Reference","\u002Fexternal-api\u002Freference","3.external-api\u002F1.reference",{"title":48,"icon":49,"path":50,"stem":51,"children":52,"page":20},"AI Assistants","i-lucide-bot","\u002Fai-assistants","4.ai-assistants",[53,58],{"title":54,"path":55,"stem":56,"icon":57},"Connect an Assistant","\u002Fai-assistants\u002Fconnect","4.ai-assistants\u002F1.connect","i-lucide-plug",{"title":59,"path":60,"stem":61,"icon":62},"What the Assistant Can Do","\u002Fai-assistants\u002Fcapabilities","4.ai-assistants\u002F2.capabilities","i-lucide-list-checks",{"id":64,"title":33,"body":65,"description":1015,"extension":1016,"links":1017,"meta":1019,"navigation":1020,"path":34,"seo":1021,"stem":35,"__hash__":1022},"docs\u002F2.embed\u002F2.api-reference.md",{"type":66,"value":67,"toc":1005},"minimark",[68,76,80,83,120,123,129,135,246,248,253,256,440,442,447,450,545,550,553,584,602,609,615,618,923,925,929,937,940,947,1001],[69,70,72],"h2",{"id":71},"activoiceinitconfig",[73,74,75],"code",{},"Activoice.init(config)",[77,78,79],"p",{},"Initializes one embed instance inside the target container.",[77,81,82],{},"If the container already contains an active embed (for example after a client-side navigation), it is destroyed and replaced with a fresh instance.",[84,85,90],"pre",{"className":86,"code":87,"language":88,"meta":89,"style":89},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","window.Activoice.init(config: ActivoiceEmbedConfig): void\n","ts","",[73,91,92],{"__ignoreMap":89},[93,94,97,101,105,108,110,114,117],"span",{"class":95,"line":96},"line",1,[93,98,100],{"class":99},"sTEyZ","window",[93,102,104],{"class":103},"sMK4o",".",[93,106,107],{"class":99},"Activoice",[93,109,104],{"class":103},[93,111,113],{"class":112},"s2Zo4","init",[93,115,116],{"class":99},"(config: ActivoiceEmbedConfig): ",[93,118,119],{"class":103},"void\n",[121,122],"hr",{},[69,124,126],{"id":125},"activoiceembedconfig",[73,127,128],{},"ActivoiceEmbedConfig",[77,130,131,132,104],{},"The root configuration object passed to ",[73,133,134],{},"Activoice.init()",[136,137,138,158],"table",{},[139,140,141],"thead",{},[142,143,144,148,151,155],"tr",{},[145,146,147],"th",{},"Property",[145,149,150],{},"Type",[145,152,154],{"align":153},"center","Required",[145,156,157],{},"Description",[159,160,161,188,204,226],"tbody",{},[142,162,163,169,174,177],{},[164,165,166],"td",{},[73,167,168],{},"container",[164,170,171],{},[73,172,173],{},"string",[164,175,176],{"align":153},"✓",[164,178,179,180,183,184,187],{},"CSS selector of the host element (e.g. ",[73,181,182],{},"'#av-embed-container'","). Must match exactly one element in the DOM at the time ",[73,185,186],{},"init()"," is called.",[142,189,190,195,199,201],{},[164,191,192],{},[73,193,194],{},"campaignId",[164,196,197],{},[73,198,173],{},[164,200,176],{"align":153},[164,202,203],{},"Slug or identifier of the campaign to embed. Visible in the backoffice URL and in the embed panel.",[142,205,206,211,220,223],{},[164,207,208],{},[73,209,210],{},"embedOptions",[164,212,213],{},[214,215,217],"a",{"href":216},"#embedoptions",[73,218,219],{},"EmbedOptions",[164,221,222],{"align":153},"—",[164,224,225],{},"Optional display and behavior settings.",[142,227,228,233,241,243],{},[164,229,230],{},[73,231,232],{},"campaignOverrides",[164,234,235],{},[214,236,238],{"href":237},"#campaignoverrides",[73,239,240],{},"CampaignOverrides",[164,242,222],{"align":153},[164,244,245],{},"Optional overrides applied on top of the campaign configuration defined in the backoffice.",[121,247],{},[69,249,251],{"id":250},"embedoptions",[73,252,219],{},[77,254,255],{},"All fields are optional. Omitting a field uses the default value.",[136,257,258,271],{},[139,259,260],{},[142,261,262,264,266,269],{},[145,263,147],{},[145,265,150],{},[145,267,268],{},"Default",[145,270,157],{},[159,272,273,296,323,354,374,392,410],{},[142,274,275,280,284,289],{},[164,276,277],{},[73,278,279],{},"spinnerColor",[164,281,282],{},[73,283,173],{},[164,285,286],{},[73,287,288],{},"'#fed13a'",[164,290,291,292,295],{},"CSS color of the loading spinner shown before the campaign is ready. Accepts any valid CSS color value (hex, ",[73,293,294],{},"rgb()",", named colors, etc.).",[142,297,298,303,308,313],{},[164,299,300],{},[73,301,302],{},"initialPage",[164,304,305],{},[73,306,307],{},"'steps' | 'landing'",[164,309,310],{},[73,311,312],{},"'steps'",[164,314,315,316,318,319,322],{},"Controls which page of the campaign is shown first. ",[73,317,312],{}," opens directly on the action flow. ",[73,320,321],{},"'landing'"," shows the campaign landing page.",[142,324,325,330,335,340],{},[164,326,327],{},[73,328,329],{},"displayMode",[164,331,332],{},[73,333,334],{},"'inline' | 'fullHeight'",[164,336,337],{},[73,338,339],{},"'inline'",[164,341,342,343,345,346,349,350,353],{},"Height management strategy. ",[73,344,339],{}," updates the iframe height in pixels each time the content resizes. ",[73,347,348],{},"'fullHeight'"," sets ",[73,351,352],{},"height: 100%"," so the iframe fills its container — useful in sidebars or fixed-height panels.",[142,355,356,361,366,371],{},[164,357,358],{},[73,359,360],{},"withToolbar",[164,362,363],{},[73,364,365],{},"boolean",[164,367,368],{},[73,369,370],{},"false",[164,372,373],{},"Renders the navigation toolbar inside the embed (back button, step indicator). Disabled by default for a seamless embedded look.",[142,375,376,381,385,389],{},[164,377,378],{},[73,379,380],{},"withBackground",[164,382,383],{},[73,384,365],{},[164,386,387],{},[73,388,370],{},[164,390,391],{},"Applies the campaign's background color to the iframe body. When disabled, the background is transparent so the host page shows through. Text and UI elements automatically switch to a light color for readability when the background color is dark.",[142,393,394,399,403,407],{},[164,395,396],{},[73,397,398],{},"withPadding",[164,400,401],{},[73,402,365],{},[164,404,405],{},[73,406,370],{},[164,408,409],{},"Adds horizontal padding to the campaign content area.",[142,411,412,417,421,425],{},[164,413,414],{},[73,415,416],{},"bypassCampaignStateCheck",[164,418,419],{},[73,420,365],{},[164,422,423],{},[73,424,370],{},[164,426,427,428,431,432,435,436,439],{},"When ",[73,429,430],{},"true",", the campaign renders even if it is in ",[73,433,434],{},"draft"," or ",[73,437,438],{},"ended"," state. Intended for preview and testing purposes only — do not enable in production.",[121,441],{},[69,443,445],{"id":444},"campaignoverrides",[73,446,240],{},[77,448,449],{},"Overrides applied on top of the campaign configuration defined in the backoffice.",[84,451,453],{"className":86,"code":452,"language":88,"meta":89,"style":89},"interface CampaignOverrides {\n  recipients?: Recipient[]        \u002F\u002F Global recipient override for all interpellations\n  interpellations?: Array\u003C{\n    id: string                    \u002F\u002F UUID of the interpellation to override\n    recipients?: Recipient[]      \u002F\u002F Per-interpellation override (takes priority)\n  }>\n}\n",[73,454,455,468,488,502,517,533,539],{"__ignoreMap":89},[93,456,457,461,465],{"class":95,"line":96},[93,458,460],{"class":459},"spNyl","interface",[93,462,464],{"class":463},"sBMFI"," CampaignOverrides",[93,466,467],{"class":103}," {\n",[93,469,471,475,478,481,484],{"class":95,"line":470},2,[93,472,474],{"class":473},"swJcz","  recipients",[93,476,477],{"class":103},"?:",[93,479,480],{"class":463}," Recipient",[93,482,483],{"class":99},"[]        ",[93,485,487],{"class":486},"sHwdD","\u002F\u002F Global recipient override for all interpellations\n",[93,489,491,494,496,499],{"class":95,"line":490},3,[93,492,493],{"class":473},"  interpellations",[93,495,477],{"class":103},[93,497,498],{"class":463}," Array",[93,500,501],{"class":103},"\u003C{\n",[93,503,505,508,511,514],{"class":95,"line":504},4,[93,506,507],{"class":473},"    id",[93,509,510],{"class":103},":",[93,512,513],{"class":463}," string",[93,515,516],{"class":486},"                    \u002F\u002F UUID of the interpellation to override\n",[93,518,520,523,525,527,530],{"class":95,"line":519},5,[93,521,522],{"class":473},"    recipients",[93,524,477],{"class":103},[93,526,480],{"class":463},[93,528,529],{"class":99},"[]      ",[93,531,532],{"class":486},"\u002F\u002F Per-interpellation override (takes priority)\n",[93,534,536],{"class":95,"line":535},6,[93,537,538],{"class":103},"  }>\n",[93,540,542],{"class":95,"line":541},7,[93,543,544],{"class":103},"}\n",[546,547,549],"h3",{"id":548},"recipient-resolution-order","Recipient resolution order",[77,551,552],{},"Recipients are resolved per interpellation with the following priority:",[554,555,556,568,578],"ol",{},[557,558,559,563,564,567],"li",{},[560,561,562],"strong",{},"Per-interpellation override"," — ",[73,565,566],{},"interpellations[].recipients"," if provided for that entry",[557,569,570,573,574,577],{},[560,571,572],{},"Root-level override"," — top-level ",[73,575,576],{},"recipients"," applied to all interpellations that don't have their own override",[557,579,580,583],{},[560,581,582],{},"Backoffice configuration"," — original recipients preserved when no override applies",[585,586,427,587,590,591,594,595,598,599,601],"warning",{},[73,588,589],{},"interpellations"," is provided, ",[560,592,593],{},"only the listed interpellations are shown"," — any interpellation whose ",[73,596,597],{},"id"," is not included is hidden from the embed. Omit ",[73,600,589],{}," entirely to keep all interpellations visible.",[603,604,605,606,608],"note",{},"The root-level ",[73,607,576],{}," is a convenient shortcut when you want to set the same recipients across all interpellations without repeating them in each entry.",[546,610,612],{"id":611},"recipient",[73,613,614],{},"Recipient",[77,616,617],{},"All fields are optional.",[136,619,620,631],{},[139,621,622],{},[142,623,624,627,629],{},[145,625,626],{},"Field",[145,628,150],{},[145,630,157],{},[159,632,633,647,661,688,706,721,735,749,763,777,795,811,825,841,863,880,894,908],{},[142,634,635,640,644],{},[164,636,637],{},[73,638,639],{},"first_name",[164,641,642],{},[73,643,173],{},[164,645,646],{},"First name of the recipient.",[142,648,649,654,658],{},[164,650,651],{},[73,652,653],{},"last_name",[164,655,656],{},[73,657,173],{},[164,659,660],{},"Last name of the recipient.",[142,662,663,668,673],{},[164,664,665],{},[73,666,667],{},"gender",[164,669,670],{},[73,671,672],{},"'M' | 'F' | 'O'",[164,674,675,676,679,680,683,684,687],{},"Gender: ",[73,677,678],{},"M"," (male), ",[73,681,682],{},"F"," (female), ",[73,685,686],{},"O"," (other \u002F not specified). Used to personalize AI-generated messages.",[142,689,690,695,699],{},[164,691,692],{},[73,693,694],{},"display_title",[164,696,697],{},[73,698,173],{},[164,700,701,702,705],{},"Title or role displayed to the user (e.g. ",[73,703,704],{},"'Mayor of Lyon'",").",[142,707,708,713,718],{},[164,709,710],{},[73,711,712],{},"photo_url",[164,714,715],{},[73,716,717],{},"string | null",[164,719,720],{},"Absolute URL of the recipient's photo.",[142,722,723,728,732],{},[164,724,725],{},[73,726,727],{},"email",[164,729,730],{},[73,731,717],{},[164,733,734],{},"Email address (used for email interpellation modes).",[142,736,737,742,746],{},[164,738,739],{},[73,740,741],{},"phone_number",[164,743,744],{},[73,745,717],{},[164,747,748],{},"Phone number (used for call interpellation modes).",[142,750,751,756,760],{},[164,752,753],{},[73,754,755],{},"personal_link",[164,757,758],{},[73,759,717],{},[164,761,762],{},"Absolute URL to the recipient's personal or professional website.",[142,764,765,770,774],{},[164,766,767],{},[73,768,769],{},"facebook_page",[164,771,772],{},[73,773,173],{},[164,775,776],{},"Absolute URL of the recipient's Facebook page.",[142,778,779,784,788],{},[164,780,781],{},[73,782,783],{},"twitter_handle",[164,785,786],{},[73,787,173],{},[164,789,790,791,794],{},"Twitter\u002FX handle, without the ",[73,792,793],{},"@"," prefix.",[142,796,797,802,806],{},[164,798,799],{},[73,800,801],{},"instagram_handle",[164,803,804],{},[73,805,173],{},[164,807,808,809,794],{},"Instagram handle, without the ",[73,810,793],{},[142,812,813,818,822],{},[164,814,815],{},[73,816,817],{},"linkedin_page",[164,819,820],{},[73,821,173],{},[164,823,824],{},"Absolute URL of the recipient's LinkedIn profile.",[142,826,827,832,836],{},[164,828,829],{},[73,830,831],{},"tiktok_handle",[164,833,834],{},[73,835,173],{},[164,837,838,839,794],{},"TikTok handle, without the ",[73,840,793],{},[142,842,843,848,852],{},[164,844,845],{},[73,846,847],{},"geo_type",[164,849,850],{},[73,851,717],{},[164,853,854,855,858,859,862],{},"Type of geographic area (e.g. ",[73,856,857],{},"'municipality'",", ",[73,860,861],{},"'department'","). Used for geospatial targeting when supporters search by location.",[142,864,865,870,874],{},[164,866,867],{},[73,868,869],{},"geo_id",[164,871,872],{},[73,873,717],{},[164,875,876,877,879],{},"Identifier of the geographic area, matching the ",[73,878,847],{}," taxonomy.",[142,881,882,887,891],{},[164,883,884],{},[73,885,886],{},"party_name",[164,888,889],{},[73,890,717],{},[164,892,893],{},"Full name of the political party.",[142,895,896,901,905],{},[164,897,898],{},[73,899,900],{},"party_short_name",[164,902,903],{},[73,904,717],{},[164,906,907],{},"Abbreviated party name displayed in the UI.",[142,909,910,915,920],{},[164,911,912],{},[73,913,914],{},"custom_fields",[164,916,917],{},[73,918,919],{},"Record\u003Cstring, string>",[164,921,922],{},"Arbitrary key-value pairs injected as extra variables into AI-generated message templates.",[121,924],{},[69,926,928],{"id":927},"typescript-types","TypeScript types",[77,930,931,932],{},"Download the type definitions file and reference it in your project for full IDE autocompletion: ",[214,933,936],{"href":934,"target":935,"download":936},"\u002Ftypes\u002Factivoice-embed.d.ts","_blank","activoice-embed.d.ts",[585,938,939],{},"This file is not versioned or distributed automatically. As the API evolves, you will need to re-download it and update your local copy manually.",[77,941,942,943,946],{},"Then point your ",[73,944,945],{},"tsconfig.json"," to it:",[84,948,952],{"className":949,"code":950,"filename":945,"language":951,"meta":89,"style":89},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"include\": [\".\u002Factivoice-embed.d.ts\", \"src\u002F**\u002F*\"]\n}\n","json",[73,953,954,959,997],{"__ignoreMap":89},[93,955,956],{"class":95,"line":96},[93,957,958],{"class":103},"{\n",[93,960,961,964,967,970,972,975,977,981,983,986,989,992,994],{"class":95,"line":470},[93,962,963],{"class":103},"  \"",[93,965,966],{"class":459},"include",[93,968,969],{"class":103},"\"",[93,971,510],{"class":103},[93,973,974],{"class":103}," [",[93,976,969],{"class":103},[93,978,980],{"class":979},"sfazB",".\u002Factivoice-embed.d.ts",[93,982,969],{"class":103},[93,984,985],{"class":103},",",[93,987,988],{"class":103}," \"",[93,990,991],{"class":979},"src\u002F**\u002F*",[93,993,969],{"class":103},[93,995,996],{"class":103},"]\n",[93,998,999],{"class":95,"line":490},[93,1000,544],{"class":103},[1002,1003,1004],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":89,"searchDepth":470,"depth":470,"links":1006},[1007,1008,1009,1010,1014],{"id":71,"depth":470,"text":75},{"id":125,"depth":470,"text":128},{"id":250,"depth":470,"text":219},{"id":444,"depth":470,"text":240,"children":1011},[1012,1013],{"id":548,"depth":490,"text":549},{"id":611,"depth":490,"text":614},{"id":927,"depth":470,"text":928},"Complete reference for the Activoice embed configuration","md",[1018],{"label":28,"icon":31,"to":29},{},{"icon":36},{"title":33,"description":1015},"-pP-eJmB9vFW3fIGd0aESqYQSWPbnx2dn47jFyTPwXU",[1024,1026],{"title":28,"path":29,"stem":30,"description":1025,"icon":31,"children":-1},"Embed an Activoice campaign on any website in minutes",{"title":44,"path":45,"stem":46,"description":1027,"icon":36,"children":-1},"Read a campaign's public data from your own website",1790330667591]