[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"navigation":3,"\u002Fdocs\u002Fintegrations-api\u002Ffirebase-ext":156,"\u002Fdocs\u002Fintegrations-api\u002Ffirebase-ext-surround":752},[4,23,41,60,78,90,108,137],{"title":5,"path":6,"stem":7,"children":8,"icon":22},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started\u002F1.index",[9,12,17],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-house",{"title":13,"path":14,"stem":15,"icon":16},"Quick Start","\u002Fdocs\u002Fgetting-started\u002Fquick-start","docs\u002F1.getting-started\u002F2.quick-start","i-lucide-zap",{"title":18,"path":19,"stem":20,"icon":21},"Connect WhatsApp Phone Numbers","\u002Fdocs\u002Fgetting-started\u002Fconnect-whatsapp","docs\u002F1.getting-started\u002F3.connect-whatsapp","i-lucide-phone","i-lucide-rocket",{"title":24,"path":25,"stem":26,"children":27,"icon":30},"Team Inbox","\u002Fdocs\u002Fshared-inbox","docs\u002F2.shared-inbox\u002F1.index",[28,31,36],{"title":29,"path":25,"stem":26,"icon":30},"Shared Inbox","i-lucide-inbox",{"title":32,"path":33,"stem":34,"icon":35},"Rich Messaging","\u002Fdocs\u002Fshared-inbox\u002Fconversations-messaging","docs\u002F2.shared-inbox\u002F2.conversations-messaging","i-lucide-message-square",{"title":37,"path":38,"stem":39,"icon":40},"Contact Details","\u002Fdocs\u002Fshared-inbox\u002Fcontact-panel-collaboration","docs\u002F2.shared-inbox\u002F3.contact-panel-collaboration","i-lucide-user-check",{"title":42,"path":43,"stem":44,"children":45,"icon":59},"Messaging","\u002Fdocs\u002Fcompose-broadcast","docs\u002F3.compose-broadcast\u002F1.index",[46,49,54],{"title":47,"path":43,"stem":44,"icon":48},"Single Message","i-lucide-send",{"title":50,"path":51,"stem":52,"icon":53},"Broadcast","\u002Fdocs\u002Fcompose-broadcast\u002Fbroadcast-campaigns","docs\u002F3.compose-broadcast\u002F2.broadcast-campaigns","i-lucide-megaphone",{"title":55,"path":56,"stem":57,"icon":58},"Campaign History","\u002Fdocs\u002Fcompose-broadcast\u002Ftest-send-analytics","docs\u002F3.compose-broadcast\u002F3.test-send-analytics","i-lucide-bar-chart","i-lucide-message-circle",{"title":61,"path":62,"stem":63,"children":64,"icon":77},"Contacts","\u002Fdocs\u002Fcontacts-crm","docs\u002F4.contacts-crm\u002F1.index",[65,67,72],{"title":10,"path":62,"stem":63,"icon":66},"i-lucide-book-user",{"title":68,"path":69,"stem":70,"icon":71},"Contact Lists","\u002Fdocs\u002Fcontacts-crm\u002Flists-segmentation","docs\u002F4.contacts-crm\u002F2.lists-segmentation","i-lucide-list-filter",{"title":73,"path":74,"stem":75,"icon":76},"Bulk Import","\u002Fdocs\u002Fcontacts-crm\u002Fimporting-contacts","docs\u002F4.contacts-crm\u002F3.importing-contacts","i-lucide-file-spreadsheet","i-lucide-users",{"title":79,"path":80,"stem":81,"children":82,"icon":84},"Templates","\u002Fdocs\u002Ftemplates","docs\u002F5.templates\u002F1.index",[83,85],{"title":10,"path":80,"stem":81,"icon":84},"i-lucide-file-text",{"title":86,"path":87,"stem":88,"icon":89},"Template Syncing","\u002Fdocs\u002Ftemplates\u002Fsyncing-managing-templates","docs\u002F5.templates\u002F2.syncing-managing-templates","i-lucide-refresh-cw",{"title":91,"path":92,"stem":93,"children":94,"icon":97},"AI Chatbots","\u002Fdocs\u002Fai-chatbots","docs\u002F6.ai-chatbots\u002F1.index",[95,98,103],{"title":96,"path":92,"stem":93,"icon":97},"WhatsBox Bots","i-lucide-bot",{"title":99,"path":100,"stem":101,"icon":102},"Tools","\u002Fdocs\u002Fai-chatbots\u002Fknowledge-base-tools","docs\u002F6.ai-chatbots\u002F2.knowledge-base-tools","i-lucide-wrench",{"title":104,"path":105,"stem":106,"icon":107},"MS Copilot Studio","\u002Fdocs\u002Fai-chatbots\u002Fcopilot-studio","docs\u002F6.ai-chatbots\u002F3.copilot-studio","i-lucide-cpu",{"title":109,"path":110,"stem":111,"children":112,"icon":136},"Integrations","\u002Fdocs\u002Fintegrations-api","docs\u002F7.integrations-api\u002F1.index",[113,116,121,126,131],{"title":114,"path":110,"stem":111,"icon":115},"Developer API","i-lucide-code",{"title":117,"path":118,"stem":119,"icon":120},"Google Sheets","\u002Fdocs\u002Fintegrations-api\u002Fgoogle-sheets","docs\u002F7.integrations-api\u002F2.google-sheets","i-lucide-sheet",{"title":122,"path":123,"stem":124,"icon":125},"Firebase Extension","\u002Fdocs\u002Fintegrations-api\u002Ffirebase-ext","docs\u002F7.integrations-api\u002F3.firebase-ext","i-lucide-flame",{"title":127,"path":128,"stem":129,"icon":130},"Slack","\u002Fdocs\u002Fintegrations-api\u002Fslack","docs\u002F7.integrations-api\u002F4.slack","i-lucide-slack",{"title":132,"path":133,"stem":134,"icon":135},"Zapier","\u002Fdocs\u002Fintegrations-api\u002Fzapier","docs\u002F7.integrations-api\u002F5.zapier","i-lucide-blocks","i-lucide-plug",{"title":138,"path":139,"stem":140,"children":141,"icon":155},"Settings & Billing","\u002Fdocs\u002Fteam-billing","docs\u002F8.team-billing\u002F1.index",[142,145,150],{"title":143,"path":139,"stem":140,"icon":144},"Team Members","i-lucide-users-round",{"title":146,"path":147,"stem":148,"icon":149},"Miscellaneous","\u002Fdocs\u002Fteam-billing\u002Faccount-settings","docs\u002F8.team-billing\u002F2.account-settings","i-lucide-building",{"title":151,"path":152,"stem":153,"icon":154},"Billing","\u002Fdocs\u002Fteam-billing\u002Fbilling-usage","docs\u002F8.team-billing\u002F3.billing-usage","i-lucide-credit-card","i-lucide-settings",{"id":157,"title":122,"body":158,"description":744,"extension":745,"meta":746,"navigation":747,"path":123,"schemaOrg":748,"seo":749,"sitemap":750,"stem":124,"__hash__":751},"docs\u002Fdocs\u002F7.integrations-api\u002F3.firebase-ext.md",{"type":159,"value":160,"toc":734},"minimark",[161,178,181,191,194,199,248,268,270,274,718,720,724,730],[162,163,164,165,169,170,172,173,177],"p",{},"For developers building mobile apps, web applications, and serverless backends on ",[166,167,168],"strong",{},"Google Firebase",", WhatsBox maintains an official open-source ",[166,171,122],{},": ",[174,175,176],"code",{},"firestore-send-whatsapp-message",".",[162,179,180],{},"Whenever your backend or client application writes a document into a designated Cloud Firestore collection, the extension listens for the write event and automatically dispatches a WhatsApp template message via the WhatsBox API.",[182,183,188],"card",{"icon":184,"target":185,"title":186,"to":187},"i-lucide-external-link","_blank","WhatsBox Firebase Firestore Extension","https:\u002F\u002Fgithub.com\u002Fwhatsb\u002Ffirebase-extension-firestore-send-whatsapp-message",[162,189,190],{},"View the open-source extension source code, installation guides, and release notes on GitHub at whatsb\u002Ffirebase-extension-firestore-send-whatsapp-message.",[192,193],"hr",{},[195,196,198],"h2",{"id":197},"architecture-overview","Architecture Overview",[200,201,202],"mermaid",{},[203,204,208],"pre",{"className":205,"code":206,"language":200,"meta":207,"style":207},"language-mermaid shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","flowchart LR\n    App[\"📱 App \u002F Backend\u003Cbr\u002F>(Web, iOS, Android)\"] -->|\"Write Document\"| Firestore[(\"🔥 Cloud Firestore\u003Cbr\u002F>collection: messages\")]\n    Firestore -->|\"Document onCreate Trigger\"| Ext[\"⚡ WhatsBox Extension\u003Cbr\u002F>(Cloud Function)\"]\n    Ext -->|\"POST \u002Fmessages\"| WhatsBox[\"WhatsBox Engine\u003Cbr\u002F>(Meta Cloud API)\"]\n    WhatsBox -->|\"Direct Dispatch\"| Customer[\"👤 WhatsApp User\"]\n    Ext -.->|\"Update Status & Message ID\"| Firestore\n","",[174,209,210,218,224,230,236,242],{"__ignoreMap":207},[211,212,215],"span",{"class":213,"line":214},"line",1,[211,216,217],{},"flowchart LR\n",[211,219,221],{"class":213,"line":220},2,[211,222,223],{},"    App[\"📱 App \u002F Backend\u003Cbr\u002F>(Web, iOS, Android)\"] -->|\"Write Document\"| Firestore[(\"🔥 Cloud Firestore\u003Cbr\u002F>collection: messages\")]\n",[211,225,227],{"class":213,"line":226},3,[211,228,229],{},"    Firestore -->|\"Document onCreate Trigger\"| Ext[\"⚡ WhatsBox Extension\u003Cbr\u002F>(Cloud Function)\"]\n",[211,231,233],{"class":213,"line":232},4,[211,234,235],{},"    Ext -->|\"POST \u002Fmessages\"| WhatsBox[\"WhatsBox Engine\u003Cbr\u002F>(Meta Cloud API)\"]\n",[211,237,239],{"class":213,"line":238},5,[211,240,241],{},"    WhatsBox -->|\"Direct Dispatch\"| Customer[\"👤 WhatsApp User\"]\n",[211,243,245],{"class":213,"line":244},6,[211,246,247],{},"    Ext -.->|\"Update Status & Message ID\"| Firestore\n",[249,250,251,259,262,265],"ol",{},[252,253,254,255,258],"li",{},"Your application creates a new document in your specified Firestore collection (e.g., ",[174,256,257],{},"whatsapp_messages",").",[252,260,261],{},"A serverless Cloud Function managed by Firebase Extension triggers on document creation.",[252,263,264],{},"The extension extracts the recipient, template name, and dynamic parameters, then calls the WhatsBox REST API.",[252,266,267],{},"The extension updates the original Firestore document with delivery metadata, including the WhatsBox message ID, delivery state, and error logs if any.",[192,269],{},[195,271,273],{"id":272},"installation-configuration","Installation & Configuration",[275,276,278,283,286,309,313,316,353,357,360,674,678,681],"steps",{"level":277},"3",[279,280,282],"h3",{"id":281},"install-the-extension","Install the Extension",[162,284,285],{},"Install the extension directly using the Firebase CLI or through the Firebase Console:",[203,287,291],{"className":288,"code":289,"language":290,"meta":207,"style":207},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","firebase ext:install whatsb\u002Ffirestore-send-whatsapp-message --project=YOUR_PROJECT_ID\n","bash",[174,292,293],{"__ignoreMap":207},[211,294,295,299,303,306],{"class":213,"line":214},[211,296,298],{"class":297},"sBMFI","firebase",[211,300,302],{"class":301},"sfazB"," ext:install",[211,304,305],{"class":301}," whatsb\u002Ffirestore-send-whatsapp-message",[211,307,308],{"class":301}," --project=YOUR_PROJECT_ID\n",[279,310,312],{"id":311},"configure-parameters","Configure Parameters",[162,314,315],{},"During installation, specify your project credentials:",[317,318,319,330,338],"ul",{},[252,320,321,326,327,258],{},[166,322,323],{},[174,324,325],{},"WHATSBOX_API_KEY",": Your secret API key from WhatsBox (",[166,328,329],{},"Settings > API Keys",[252,331,332,337],{},[166,333,334],{},[174,335,336],{},"WHATSAPP_CHANNEL_ID",": Your connected WhatsApp sender channel ID.",[252,339,340,345,346,349,350,258],{},[166,341,342],{},[174,343,344],{},"COLLECTION_PATH",": The Firestore collection path to monitor (e.g., ",[174,347,348],{},"whatsapp_outbox"," or ",[174,351,352],{},"messages",[279,354,356],{"id":355},"write-documents-to-firestore","Write Documents to Firestore",[162,358,359],{},"To trigger a WhatsApp message, simply add a document to the monitored Firestore collection:",[203,361,365],{"className":362,"code":363,"language":364,"meta":207,"style":207},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { getFirestore, collection, addDoc } from 'firebase\u002Ffirestore'\n\nconst db = getFirestore()\n\nawait addDoc(collection(db, 'whatsapp_outbox'), {\n  to: '+16317471111',\n  template: {\n    name: 'order_confirmation',\n    language: 'en',\n    components: [\n      {\n        type: 'body',\n        parameters: [\n          { type: 'text', text: 'Alex' },\n          { type: 'text', text: 'ORD-9842' }\n        ]\n      }\n    ]\n  }\n})\n","typescript",[174,366,367,407,413,431,435,468,487,497,514,531,542,548,565,575,610,641,647,653,659,665],{"__ignoreMap":207},[211,368,369,373,377,381,384,387,389,392,395,398,401,404],{"class":213,"line":214},[211,370,372],{"class":371},"s7zQu","import",[211,374,376],{"class":375},"sMK4o"," {",[211,378,380],{"class":379},"sTEyZ"," getFirestore",[211,382,383],{"class":375},",",[211,385,386],{"class":379}," collection",[211,388,383],{"class":375},[211,390,391],{"class":379}," addDoc",[211,393,394],{"class":375}," }",[211,396,397],{"class":371}," from",[211,399,400],{"class":375}," '",[211,402,403],{"class":301},"firebase\u002Ffirestore",[211,405,406],{"class":375},"'\n",[211,408,409],{"class":213,"line":220},[211,410,412],{"emptyLinePlaceholder":411},true,"\n",[211,414,415,419,422,425,428],{"class":213,"line":226},[211,416,418],{"class":417},"spNyl","const",[211,420,421],{"class":379}," db ",[211,423,424],{"class":375},"=",[211,426,380],{"class":427},"s2Zo4",[211,429,430],{"class":379},"()\n",[211,432,433],{"class":213,"line":232},[211,434,412],{"emptyLinePlaceholder":411},[211,436,437,440,442,445,448,451,453,455,457,460,463,465],{"class":213,"line":238},[211,438,439],{"class":371},"await",[211,441,391],{"class":427},[211,443,444],{"class":379},"(",[211,446,447],{"class":427},"collection",[211,449,450],{"class":379},"(db",[211,452,383],{"class":375},[211,454,400],{"class":375},[211,456,348],{"class":301},[211,458,459],{"class":375},"'",[211,461,462],{"class":379},")",[211,464,383],{"class":375},[211,466,467],{"class":375}," {\n",[211,469,470,474,477,479,482,484],{"class":213,"line":244},[211,471,473],{"class":472},"swJcz","  to",[211,475,476],{"class":375},":",[211,478,400],{"class":375},[211,480,481],{"class":301},"+16317471111",[211,483,459],{"class":375},[211,485,486],{"class":375},",\n",[211,488,490,493,495],{"class":213,"line":489},7,[211,491,492],{"class":472},"  template",[211,494,476],{"class":375},[211,496,467],{"class":375},[211,498,500,503,505,507,510,512],{"class":213,"line":499},8,[211,501,502],{"class":472},"    name",[211,504,476],{"class":375},[211,506,400],{"class":375},[211,508,509],{"class":301},"order_confirmation",[211,511,459],{"class":375},[211,513,486],{"class":375},[211,515,517,520,522,524,527,529],{"class":213,"line":516},9,[211,518,519],{"class":472},"    language",[211,521,476],{"class":375},[211,523,400],{"class":375},[211,525,526],{"class":301},"en",[211,528,459],{"class":375},[211,530,486],{"class":375},[211,532,534,537,539],{"class":213,"line":533},10,[211,535,536],{"class":472},"    components",[211,538,476],{"class":375},[211,540,541],{"class":379}," [\n",[211,543,545],{"class":213,"line":544},11,[211,546,547],{"class":375},"      {\n",[211,549,551,554,556,558,561,563],{"class":213,"line":550},12,[211,552,553],{"class":472},"        type",[211,555,476],{"class":375},[211,557,400],{"class":375},[211,559,560],{"class":301},"body",[211,562,459],{"class":375},[211,564,486],{"class":375},[211,566,568,571,573],{"class":213,"line":567},13,[211,569,570],{"class":472},"        parameters",[211,572,476],{"class":375},[211,574,541],{"class":379},[211,576,578,581,584,586,588,591,593,595,598,600,602,605,607],{"class":213,"line":577},14,[211,579,580],{"class":375},"          {",[211,582,583],{"class":472}," type",[211,585,476],{"class":375},[211,587,400],{"class":375},[211,589,590],{"class":301},"text",[211,592,459],{"class":375},[211,594,383],{"class":375},[211,596,597],{"class":472}," text",[211,599,476],{"class":375},[211,601,400],{"class":375},[211,603,604],{"class":301},"Alex",[211,606,459],{"class":375},[211,608,609],{"class":375}," },\n",[211,611,613,615,617,619,621,623,625,627,629,631,633,636,638],{"class":213,"line":612},15,[211,614,580],{"class":375},[211,616,583],{"class":472},[211,618,476],{"class":375},[211,620,400],{"class":375},[211,622,590],{"class":301},[211,624,459],{"class":375},[211,626,383],{"class":375},[211,628,597],{"class":472},[211,630,476],{"class":375},[211,632,400],{"class":375},[211,634,635],{"class":301},"ORD-9842",[211,637,459],{"class":375},[211,639,640],{"class":375}," }\n",[211,642,644],{"class":213,"line":643},16,[211,645,646],{"class":379},"        ]\n",[211,648,650],{"class":213,"line":649},17,[211,651,652],{"class":375},"      }\n",[211,654,656],{"class":213,"line":655},18,[211,657,658],{"class":379},"    ]\n",[211,660,662],{"class":213,"line":661},19,[211,663,664],{"class":375},"  }\n",[211,666,668,671],{"class":213,"line":667},20,[211,669,670],{"class":375},"}",[211,672,673],{"class":379},")\n",[279,675,677],{"id":676},"monitor-document-lifecycle","Monitor Document Lifecycle",[162,679,680],{},"Once processed, the extension automatically mutates the Firestore document with result fields:",[317,682,683,700,706,712],{},[252,684,685,688,689,692,693,696,697,177],{},[174,686,687],{},"delivery_status",": Set to ",[174,690,691],{},"PENDING",", ",[174,694,695],{},"SUCCESS",", or ",[174,698,699],{},"ERROR",[252,701,702,705],{},[174,703,704],{},"whatsbox_message_id",": The unique tracking ID assigned by WhatsBox.",[252,707,708,711],{},[174,709,710],{},"processed_at",": Firestore server timestamp when the message was sent.",[252,713,714,717],{},[174,715,716],{},"error",": Diagnostic error message if validation or dispatch failed.",[192,719],{},[195,721,723],{"id":722},"security-access-control","Security & Access Control",[725,726,727],"tip",{},[162,728,729],{},"Protect your message collection using Firestore Security Rules to prevent unauthorized users from creating documents directly. Ensure that only trusted backend services or authenticated admin roles can write to your designated WhatsApp collection.",[731,732,733],"style",{},"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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}",{"title":207,"searchDepth":220,"depth":220,"links":735},[736,737,743],{"id":197,"depth":220,"text":198},{"id":272,"depth":220,"text":273,"children":738},[739,740,741,742],{"id":281,"depth":226,"text":282},{"id":311,"depth":226,"text":312},{"id":355,"depth":226,"text":356},{"id":676,"depth":226,"text":677},{"id":722,"depth":220,"text":723},"Automatically trigger WhatsApp notifications from Google Cloud Firestore collections using the official WhatsBox Firebase Extension.","md",{},{"icon":125},null,{"title":122,"description":744},{"loc":123},"uqU8Nb3nQcvuwX8syiLs1uBFWpT9jR1v25IAXZEf3zA",[753,755],{"title":117,"path":118,"stem":119,"description":754,"icon":120,"children":-1},"Send personalized WhatsApp template broadcasts directly from Google Sheets spreadsheets using the official WhatsBox Add-on.",{"title":127,"path":128,"stem":129,"description":756,"icon":130,"children":-1},"Manage WhatsApp conversations directly from Slack, reply in threads, collaborate with private notes, and track delivery status."]