> ## Documentation Index
> Fetch the complete documentation index at: https://botpress-ak-docs-20-document-updating-variables-from-outsid.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# WhatsApp Setup

> Add a bot to WhatsApp using the official integration.

export const OpenInHub = ({integration}) => {
  const {version, id} = integration || ({});
  const basePath = 'https://studio.botpress.cloud/home?exploreHub=1&hubItemId=';
  const url = `${basePath}${id}`;
  return <>
            <a className="button rounded-xl" href={url}>
                <span>
                Open in Hub
                </span>
            </a>
            <i style={{
    margin: "0",
    fontStyle: "normal",
    color: "#666",
    fontSize: "0.85rem",
    padding: '.5rem'
  }}>
                v{version}
            </i>
        </>;
};

export const integrationVersions = {
  "accelo": {
    "version": "2.0.0",
    "id": "intver_01JFAQHPVKP4XTKMNXC2RZKZ88"
  },
  "activecampaign": {
    "version": "2.0.0",
    "id": "intver_01JFAQHVA0Z25PFC7H13EQ41FR"
  },
  "acumatica": {
    "version": "2.0.0",
    "id": "intver_01JFAQHZTNGNHPPS9CKD35Q6EY"
  },
  "airtable": {
    "version": "1.0.1",
    "id": "intver_01K9SVDSQMTXJMY4M8YCV5P5M1"
  },
  "alchemer": {
    "version": "2.0.0",
    "id": "intver_01JFAQQZRS9ZQ7WBWHCF1MKGCM"
  },
  "anthropic": {
    "version": "12.0.1",
    "id": "intver_01K9SVE54HWYN9RMC26G05J3WX"
  },
  "anydesk": {
    "version": "2.0.0",
    "id": "intver_01JFAQR4048H4976FCKT2YHD2X"
  },
  "apollo": {
    "version": "3.0.2",
    "id": "intver_01K6BJFKR5WZV44VNENAN6XBT1"
  },
  "asana": {
    "version": "0.3.10",
    "id": "intver_01KEYXKM7BZ7DDF9QJDQDE8H46"
  },
  "attio": {
    "version": "1.0.0",
    "id": "intver_01K6DMEM4B00RRDYF1KPRK3T1N"
  },
  "avoma": {
    "version": "2.0.0",
    "id": "intver_01JFAQRC955G4CXN8QTFHXAPXZ"
  },
  "bamboohr": {
    "version": "2.0.3",
    "id": "intver_01KESBCSC0N9WGPHNM1W1R08VK"
  },
  "beehiiv": {
    "version": "2.0.0",
    "id": "intver_01JFAQRGRRB95YC5YKWB1BFHZH"
  },
  "bigcommerce": {
    "version": "3.2.0",
    "id": "intver_01K3KNZ6CCCZ8E95G5ZGF5QV2J"
  },
  "bigin": {
    "version": "2.0.0",
    "id": "intver_01JFAQRS4Q0AY8CEAGYTDMPEPV"
  },
  "bolt": {
    "version": "2.0.0",
    "id": "intver_01JFAQRXGEVSFY1PYM195NAWQ6"
  },
  "box": {
    "version": "2.0.0",
    "id": "intver_01JFAQS1NBSGECDYX5MTTFN7RK"
  },
  "braze": {
    "version": "2.0.0",
    "id": "intver_01JFAQS5V6T5HF7MRJ46NMP42B"
  },
  "brevo": {
    "version": "2.0.0",
    "id": "intver_01JFAQSA1R5F1JGJZS55VTC1RP"
  },
  "britive": {
    "version": "2.0.0",
    "id": "intver_01JFAQSE7EMRGQE8EQD2CB6AZR"
  },
  "browser": {
    "version": "0.8.3",
    "id": "intver_01KCPVZG26185R8HFXCMEWBQZR"
  },
  "bynder": {
    "version": "2.0.0",
    "id": "intver_01JFAQSJT5N0Q2J2K7KGG12QQ5"
  },
  "calcom": {
    "version": "0.4.0",
    "id": "intver_01K3RNX07M9B21NA3PWJQ4D14H"
  },
  "calendly": {
    "version": "0.0.1",
    "id": "intver_01K4QXYC4K6PAHQ7J1AGHH1682"
  },
  "canny": {
    "version": "0.2.0",
    "id": "intver_01K5VH8AR6CKTRDRSVP99WDJN7"
  },
  "capsule-crm": {
    "version": "2.0.0",
    "id": "intver_01JFAQSQ6CJJ6G9FK7PAACKE6X"
  },
  "cerebras": {
    "version": "8.0.1",
    "id": "intver_01K9TCHXCG6K7RFRSJSQ3T2Q2P"
  },
  "charts": {
    "version": "0.2.6",
    "id": "intver_01KEYXM4W8FFZNQR97641ZGYYX"
  },
  "chat": {
    "version": "0.7.4",
    "id": "intver_01KBFTKJ7841MVQTYFRT623SP5"
  },
  "checkout": {
    "version": "2.0.0",
    "id": "intver_01JFAQSVA80GG51V7QKTARFG0E"
  },
  "clari": {
    "version": "2.0.0",
    "id": "intver_01JFAQSZVXNWXV8371M8ACEPFV"
  },
  "clay": {
    "version": "2.0.0",
    "id": "intver_01JFAQT424E25GR5K1Q8PZC4SC"
  },
  "clickup": {
    "version": "0.0.1",
    "id": "intver_01JEEWCGZ9QPQCBWVE95CMZ5PS"
  },
  "close": {
    "version": "2.0.0",
    "id": "intver_01JFAQT8BMZG66DNJM1DBZ2EQ3"
  },
  "cognism": {
    "version": "2.0.0",
    "id": "intver_01JFAQTCC9XR5N28RA4SNZ8KYJ"
  },
  "comeet": {
    "version": "2.0.0",
    "id": "intver_01JFAQTGMDYR086FC0VEQ95VGC"
  },
  "confluence": {
    "version": "3.3.2",
    "id": "intver_01JZAY7V5PMF8HX7FDMM9JZTQX"
  },
  "copper": {
    "version": "2.0.0",
    "id": "intver_01JFAQTS5YQTVNMSRMTH12X4YC"
  },
  "creatio": {
    "version": "2.0.0",
    "id": "intver_01JFAQTXY9Z4S1XDWSBT4J4KJJ"
  },
  "crmone": {
    "version": "2.0.0",
    "id": "intver_01JFAQV28DCXF7SV71N9Q5BJC8"
  },
  "dalle": {
    "version": "0.3.5",
    "id": "intver_01KA00BFXTW8APN0A0T8C023F1"
  },
  "databricks": {
    "version": "0.0.4",
    "id": "intver_01JBMK24H270H1ZTH2E8P34V4J"
  },
  "demandbase": {
    "version": "2.0.0",
    "id": "intver_01JFAQV9ZZ9MHH2ENEQ1ERMY2G"
  },
  "discord": {
    "version": "0.3.2",
    "id": "intver_01J3E7AN39P65XZ0Z00C1ZAHJ9"
  },
  "docusign": {
    "version": "2.0.0",
    "id": "intver_01JFAQVKFW4F7BBRSDD7EEZE6Z"
  },
  "dropbox": {
    "version": "1.2.0",
    "id": "intver_01JV5ED268ZJ8WQGVCKJZT2QPW"
  },
  "email": {
    "version": "0.1.0",
    "id": "intver_01K22SS8XNF58PQS42G1GGTK58"
  },
  "enchant": {
    "version": "2.0.0",
    "id": "intver_01JFAQVQQ60DZV01V3D1GA29YG"
  },
  "engagebay": {
    "version": "2.0.0",
    "id": "intver_01JFAQVVW42J4KNWCEZ6VQ3ZSJ"
  },
  "fathom": {
    "version": "2.0.0",
    "id": "intver_01JFAQW0QPEJS7M4EPVN9GJJDK"
  },
  "feature-base": {
    "version": "1.0.0",
    "id": "intver_01K5CVJXDNHM9K8NY3G2HWK5ZP"
  },
  "fireworks-ai": {
    "version": "10.0.1",
    "id": "intver_01KA00C056YZ050NMGZ91RMK95"
  },
  "fivetran": {
    "version": "2.0.0",
    "id": "intver_01JFAQW55482FWTDSPCYT53DWE"
  },
  "flodesk": {
    "version": "2.0.0",
    "id": "intver_01JFAQW9APE7Z8E81T2F58VDM7"
  },
  "folk": {
    "version": "2.0.0",
    "id": "intver_01JFAQWDVG2DVFYKJRD8DMHVPZ"
  },
  "freshchat": {
    "version": "1.5.3",
    "id": "intver_01KBFTM9H8CW7B7AV6W7K02CZW"
  },
  "freshsales": {
    "version": "2.0.0",
    "id": "intver_01JFAQWJ3CC3DJ5KG0W6XP33FD"
  },
  "fullstory": {
    "version": "2.0.0",
    "id": "intver_01JFAQWPM0T9EH5SAGDQ3Z14ZC"
  },
  "gainsight": {
    "version": "2.0.0",
    "id": "intver_01JFAQWTPKB13Y7619A6GEN5HQ"
  },
  "getaccept": {
    "version": "2.0.0",
    "id": "intver_01JFAQWZ0SAMDJVQNNA86RG21M"
  },
  "getresponse": {
    "version": "2.0.0",
    "id": "intver_01JFAQX34P2PBW0EM9NC6ZGFT5"
  },
  "github": {
    "version": "1.1.6",
    "id": "intver_01KB60MMABAE5CB0MWN2DY6RKK"
  },
  "gladly": {
    "version": "2.0.0",
    "id": "intver_01JFAQX7B29WE85VA8N5BCST16"
  },
  "gmail": {
    "version": "1.0.4",
    "id": "intver_01KF3MA6855SMVM708B30XRM4S"
  },
  "google-ai": {
    "version": "6.0.4",
    "id": "intver_01KA00CCZVWJQDB5SJ2MSJ4YEW"
  },
  "googlecalendar": {
    "version": "2.0.6",
    "id": "intver_01KCPW0RPJR7X6ATK55RP460VZ"
  },
  "googledrive": {
    "version": "0.3.4",
    "id": "intver_01K6Y3PR2TP9BQEX5PHBGEQD2H"
  },
  "groq": {
    "version": "15.0.1",
    "id": "intver_01KA00CS53WFYF70K16AEZFZXW"
  },
  "gsheets": {
    "version": "2.1.0",
    "id": "intver_01KF14JG57MFAZCXX1CS2T07FQ"
  },
  "gusto": {
    "version": "2.0.0",
    "id": "intver_01JFAR75Y17N5EWS6P0PC93RHQ"
  },
  "happyfox": {
    "version": "2.0.0",
    "id": "intver_01JFAQXFNYWCXX819GTBHJ470W"
  },
  "help-scout": {
    "version": "2.0.0",
    "id": "intver_01JFAQXKX61YWJMMHYK3YDFZ0K"
  },
  "hitl": {
    "version": "2.0.2",
    "id": "intver_01K0SV5HZAT9FSVVEB7S91SH4F"
  },
  "honeybook": {
    "version": "2.0.0",
    "id": "intver_01JFAQXRQ8TADY78EBPBKSXFPC"
  },
  "hubspot": {
    "version": "5.2.0",
    "id": "intver_01KA00D4PND97KRHJ2X9BDY2P7"
  },
  "hunter": {
    "version": "1.0.0",
    "id": "intver_01KA00DFT6W3K8DBR02GMAM99R"
  },
  "instagram": {
    "version": "4.1.6",
    "id": "intver_01KCVJSGRJYRNDX1QTE5TA2J0E"
  },
  "instantly": {
    "version": "2.0.0",
    "id": "intver_01JFAQXWNN3ZM0DAQBE7N2BP54"
  },
  "intercom": {
    "version": "2.0.2",
    "id": "intver_01KD3DHMS7HN4N4DAF7SBVWP5T"
  },
  "keap": {
    "version": "2.0.0",
    "id": "intver_01JFAQY1A6AQGSZRPKRJ11649R"
  },
  "kit": {
    "version": "2.0.0",
    "id": "intver_01JFAQYAZCH51RNSK7XT8ZKFZC"
  },
  "klaviyo": {
    "version": "3.0.2",
    "id": "intver_01K6BFXSKB0G4KMVGJPTR1X835"
  },
  "knack": {
    "version": "2.0.0",
    "id": "intver_01JFAQYKKW7JQJYH5GQW95AXFJ"
  },
  "kustomer": {
    "version": "2.0.0",
    "id": "intver_01JFAQYR6A4M0527JHDSNXN4TY"
  },
  "kylas": {
    "version": "2.0.0",
    "id": "intver_01JFAQYWG9PSP9076S99BE546R"
  },
  "leadsquared": {
    "version": "2.0.0",
    "id": "intver_01JFAQZ0PFZ7W5AJN0MZQJHGW7"
  },
  "leandata": {
    "version": "2.0.0",
    "id": "intver_01JFAQZ54J1MYP5D4WXZ1Z7KK7"
  },
  "less-annoying-crm": {
    "version": "2.0.0",
    "id": "intver_01JFAQZ99G8ZWD4847189A4EGS"
  },
  "line": {
    "version": "2.0.3",
    "id": "intver_01KBFTPABTXFTSGFPXVNSXWM31"
  },
  "linear": {
    "version": "1.2.0",
    "id": "intver_01KCSCJSD7TCP3P6QGX8QHADAP"
  },
  "localiq": {
    "version": "2.0.0",
    "id": "intver_01JFAQZDKZQV3J44CJF074YHXZ"
  },
  "loops": {
    "version": "0.1.2",
    "id": "intver_01K5C65MMSR9EF9ZCNTMVQA786"
  },
  "mailchimp": {
    "version": "0.3.8",
    "id": "intver_01KD3S9EJY0DZ4M0KEZP72BA5S"
  },
  "mailerlite": {
    "version": "3.0.2",
    "id": "intver_01K6BFZTMA8A1Z3KV1QXGWB61S"
  },
  "make": {
    "version": "0.3.6",
    "id": "intver_01KEYXNCV8ZWT6SKSZSJG8B8WG"
  },
  "messenger": {
    "version": "5.1.3",
    "id": "intver_01KESY33QD20ZF8B3PR2WTR971"
  },
  "mindtickle": {
    "version": "2.0.0",
    "id": "intver_01JFAQZNRAZMBAEZ943WY44EXD"
  },
  "mintlify": {
    "version": "1.0.0",
    "id": "intver_01K8TR6NDN8GCZ8TG133Z307YK"
  },
  "mistral-ai": {
    "version": "0.1.0",
    "id": "intver_01KEW1PHNVBBVS57TM74JKCBDH"
  },
  "monday": {
    "version": "1.0.0",
    "id": "intver_01JVYTJE7Q36MG5V3KCR8HVS01"
  },
  "mural": {
    "version": "2.0.0",
    "id": "intver_01JFAQZT1R0PR8C59Z1MHWMG83"
  },
  "notion": {
    "version": "3.0.0",
    "id": "intver_01KF15SA6NPZ1S1470WECYT5D0"
  },
  "nutshell": {
    "version": "2.0.0",
    "id": "intver_01JFAQZYAY7HCM2VTWTZK0GHZ6"
  },
  "okta": {
    "version": "2.0.0",
    "id": "intver_01JFAR02JMED7RK95YXCDRVNXX"
  },
  "openai": {
    "version": "18.0.0",
    "id": "intver_01KCHBZMZEM2017N9C0ND1STA5"
  },
  "outreach": {
    "version": "2.0.0",
    "id": "intver_01JFAR0717CX7YJNEX0FXRR8TN"
  },
  "pandadoc": {
    "version": "2.0.0",
    "id": "intver_01JFAR0BBGR1EGMRR2PRGHRABB"
  },
  "pdf-generator": {
    "version": "0.0.5",
    "id": "intver_01KEYXNX9CQDD2QZ8G41CX4XCA"
  },
  "pimcore": {
    "version": "2.0.0",
    "id": "intver_01JFAR0FRDMZNK1B1EYKTHKANP"
  },
  "pipedrive": {
    "version": "5.0.1",
    "id": "intver_01K6BG0EMJ1FQ0E5DCZZEN9301"
  },
  "pipeliner": {
    "version": "2.0.0",
    "id": "intver_01JFAR0R7XHB7VYX0Q0ETV9B3F"
  },
  "plaid": {
    "version": "2.0.0",
    "id": "intver_01JFAR0WH09T4MRTTQHRAH2ESD"
  },
  "planhat": {
    "version": "2.0.0",
    "id": "intver_01JFAR10SHDPEPXTJN6RRB9H6S"
  },
  "plus/apify": {
    "version": "1.0.3",
    "id": "intver_01K9DGKG0F7T1CZ5XMA07DB84N"
  },
  "plus/brevo-hitl": {
    "version": "2.0.0",
    "id": "intver_01K392AS04342HT6Z2HZZ60A2D"
  },
  "plus/chatwoot": {
    "version": "1.0.4",
    "id": "intver_01KD3BFCBTV2PNJ80V3VYFBC4M"
  },
  "plus/email-notifier": {
    "version": "1.1.1",
    "id": "intver_01KB0YDR2AQ5A8H0GBZ35J51MQ"
  },
  "plus/go-high-level": {
    "version": "1.0.4",
    "id": "intver_01K6BDMWTZ7FNKTGD4N8YDPH1H"
  },
  "plus/google-analytics": {
    "version": "0.2.4",
    "id": "intver_01HXS7S3FCANEG2EN5FKKWH722"
  },
  "plus/google-chat-spaces": {
    "version": "1.0.3",
    "id": "intver_01K6BDNG0ZNW5JXRA5RDQJQCWN"
  },
  "plus/google-sheets": {
    "version": "1.2.5",
    "id": "intver_01K6BDP63K6Y5HFVJ84R7EKP0Y"
  },
  "plus/hitl-api": {
    "version": "0.2.0",
    "id": "intver_01J804C5W78Y5FWHHNVWMR5VM3"
  },
  "plus/hubspot-help-desk-hitl": {
    "version": "3.1.1",
    "id": "intver_01KC2AWT9BDMTHV36AJRVEF4DN"
  },
  "plus/hubspot-hitl": {
    "version": "5.0.4",
    "id": "intver_01K6BF9Q6D3M6T3J3V541ZJC8Z"
  },
  "plus/huggingface": {
    "version": "0.0.1",
    "id": "intver_01J6FP62B7KEHH4NC4R7NBBTW5"
  },
  "plus/intercom-hitl": {
    "version": "2.0.5",
    "id": "intver_01KEWH6D0NF81Q1WB8W8V225A8"
  },
  "plus/jira": {
    "version": "0.2.4",
    "id": "intver_01KCVM0T96KA8YK723W3N8P494"
  },
  "plus/livechat-hitl": {
    "version": "3.0.2",
    "id": "intver_01K6BFYE44DVXKVFXBHKZED8P9"
  },
  "plus/magento2": {
    "version": "2.0.4",
    "id": "intver_01K6BKG43JX1R6ZEB4CXJ6R65D"
  },
  "plus/messaging": {
    "version": "0.2.3",
    "id": "intver_01HVM0R2R0QXWNH3BEZPYFK6ZJ"
  },
  "plus/mixpanel": {
    "version": "0.2.3",
    "id": "intver_01HXABTRSS5J9K0G1S1MPCX8J9"
  },
  "plus/persat": {
    "version": "1.0.0",
    "id": "intver_01K75D7C0JTQ5FY058T1187G32"
  },
  "plus/salesforce": {
    "version": "1.0.2",
    "id": "intver_01JRTXEF3N4CG8D668ANNW40DS"
  },
  "plus/segment": {
    "version": "0.2.4",
    "id": "intver_01HX7R8GHK3BKX2RHER1KYV0VT"
  },
  "plus/sharepoint": {
    "version": "4.1.0",
    "id": "intver_01K8XWKTBHY5AX8JTBV4T0D4V6"
  },
  "plus/sharepoint-excel": {
    "version": "2.2.1",
    "id": "intver_01K6BKHB4TQ5RFVA6W1VKAREFB"
  },
  "plus/shopify-products-sync": {
    "version": "3.0.2",
    "id": "intver_01K8VDHZ8FM3ZDMTYA8Y7EDXTT"
  },
  "plus/twiliovoice": {
    "version": "0.2.3",
    "id": "intver_01K6BKKDTZ1X8ECNS52N96M8AM"
  },
  "plus/zoho": {
    "version": "3.0.0",
    "id": "intver_01JNRREVZ0BA8VKEKMPMRF0DW5"
  },
  "plus/zohosalesiq": {
    "version": "2.0.0",
    "id": "intver_01JP37YJSERZGZQQW369F7W27C"
  },
  "plus/zoho-sales-iq-hitl": {
    "version": "3.0.0",
    "id": "intver_01K397TXPTA9982A829WV7XNX5"
  },
  "plus/zoom": {
    "version": "3.1.1",
    "id": "intver_01KAEBBGJ327TGZ0AZW31H6S19"
  },
  "posthog": {
    "version": "2.0.0",
    "id": "intver_01JFAR153DTQEGNZXMA4PAAV7D"
  },
  "postman": {
    "version": "2.0.0",
    "id": "intver_01JFAR19F7PZWCD9CBKAB30540"
  },
  "quickbooks": {
    "version": "2.0.0",
    "id": "intver_01JFAR1E05TRXX8ZHQ52QMG2KJ"
  },
  "reachdesk": {
    "version": "2.0.0",
    "id": "intver_01JFAR1JD70W5VTGDEDGFQXKEB"
  },
  "resend": {
    "version": "0.1.7",
    "id": "intver_01KD3DJC2CRQMY4CTR7B81697K"
  },
  "revenuehero": {
    "version": "2.0.0",
    "id": "intver_01JFAR1PDG5ZQHDAT4PX3J67N5"
  },
  "rippling": {
    "version": "0.0.4",
    "id": "intver_01JBMK2M3NWMH63ZTQBSQSEXHB"
  },
  "sage": {
    "version": "2.0.0",
    "id": "intver_01JFAR8RTCW2P6C8VWSMN7FQFS"
  },
  "salesflare": {
    "version": "2.0.0",
    "id": "intver_01JFAR2316BGX6S5NS812P3K1Z"
  },
  "salesloft": {
    "version": "2.0.0",
    "id": "intver_01JFAR27CFAGF2479ER2FSSDF7"
  },
  "sap": {
    "version": "2.0.0",
    "id": "intver_01JFAR2BP4TDJTAGWN841KBC1S"
  },
  "seismic": {
    "version": "2.0.0",
    "id": "intver_01JFAR2G7J0GAC6J69K8TN3429"
  },
  "sendgrid": {
    "version": "0.1.8",
    "id": "intver_01KD3DJKTCXG0JMKM0SZ1RWHHQ"
  },
  "showpad": {
    "version": "2.0.0",
    "id": "intver_01JFAR2MD45546TPY7V2CPBAMD"
  },
  "sisense": {
    "version": "2.0.0",
    "id": "intver_01JFAR2RSBXRYQ5YX9JNTP4A9C"
  },
  "slack": {
    "version": "3.1.3",
    "id": "intver_01KD3DJWPSBF4ACKZ9GNWXQG01"
  },
  "smartsheet": {
    "version": "2.0.0",
    "id": "intver_01JFAR2WXTE6FV2C2HP7V0WBTE"
  },
  "splunk": {
    "version": "0.0.4",
    "id": "intver_01JBMK2Y874WV5BGHXYN07HKHE"
  },
  "square": {
    "version": "2.0.0",
    "id": "intver_01JFARACGK6NT3YTKC5KVXVKX6"
  },
  "stripe": {
    "version": "0.5.4",
    "id": "intver_01KEYXP9M7BG0WC3ER5XVYQ1VB"
  },
  "sunco": {
    "version": "1.5.0",
    "id": "intver_01KEF51HC7QZHCETEMXGFH7BBR"
  },
  "surveymonkey": {
    "version": "2.0.0",
    "id": "intver_01JFAR3A2K8BEMP4XHQ7F5R47R"
  },
  "tableau": {
    "version": "2.0.0",
    "id": "intver_01JFAR3E9K4XXVYFE7SSGT1C9E"
  },
  "teamleader": {
    "version": "2.0.0",
    "id": "intver_01JFAR3JKE5HAGV6TBCW7SV4QM"
  },
  "teams": {
    "version": "2.0.1",
    "id": "intver_01KBNJVJYD8KGWR6A02KP96G2D"
  },
  "teamviewer": {
    "version": "2.0.0",
    "id": "intver_01JFAR3PY3EBMYYBKQTZAHESXP"
  },
  "telegram": {
    "version": "1.0.2",
    "id": "intver_01KAXVQFVSXRQGZR0ZJG883V4X"
  },
  "thryv": {
    "version": "2.0.0",
    "id": "intver_01JFAR3VQXXNJTR85472MM0RDY"
  },
  "todoist": {
    "version": "1.0.2",
    "id": "intver_01K899ZQCGQ0W948PKD1D2BQNM"
  },
  "trello": {
    "version": "1.2.0",
    "id": "intver_01KEF51YE9E2WY0PWVJQ8K2QX6"
  },
  "twilio": {
    "version": "1.0.4",
    "id": "intver_01KBFTS3NF4YR5SGN4CSW3AX1F"
  },
  "vcita": {
    "version": "2.0.0",
    "id": "intver_01JFAR3ZXVBWKYYJ53W7C4E4VB"
  },
  "vercel": {
    "version": "2.0.0",
    "id": "intver_01JFAR44YN7JA1Z86S8CACVG5C"
  },
  "viber": {
    "version": "1.0.3",
    "id": "intver_01KBFTSB6JXYZBM3TA3T5R8MZQ"
  },
  "vonage": {
    "version": "1.0.2",
    "id": "intver_01KBFTSKW1GRVHFAHHG2EPBWD5"
  },
  "webchat": {
    "version": "0.3.0",
    "id": "intver_01JBVV0VQW8XN3Z5V9K8DB1M3B"
  },
  "webflow": {
    "version": "3.1.1",
    "id": "intver_01K89A06XPFFX0E3EEG6E77GBG"
  },
  "webhook": {
    "version": "1.1.2",
    "id": "intver_01KAXVRCX3CAGAS63Z4FBBZRYS"
  },
  "whatsapp": {
    "version": "4.5.20",
    "id": "intver_01KCPW32DHHQS3BPJN0HA5MPB2"
  },
  "workable": {
    "version": "0.1.1",
    "id": "intver_01K97QZ0EXNRMJHM8HW5GBGWKW"
  },
  "workday": {
    "version": "2.0.0",
    "id": "intver_01JFARBCCKWG9BS7DT2RBW9D7B"
  },
  "wrike": {
    "version": "2.0.0",
    "id": "intver_01JFAR4H5WXG78YBE7MEG967MW"
  },
  "zapier": {
    "version": "0.3.6",
    "id": "intver_01KAXVRQQG68J08SWT7JRW90FM"
  },
  "zendesk": {
    "version": "3.0.4",
    "id": "intver_01KF15TFJKHTV1HJ5B9Y6H5D9K"
  },
  "zendesk-sell": {
    "version": "2.0.0",
    "id": "intver_01JFAR4NP3JGG1BPV4MFJ2HBC3"
  },
  "zoho": {
    "version": "3.1.2",
    "id": "intver_01KA92S3WKT4FYD0QW54M0QWSH"
  }
};

{/* vale on */}

<OpenInHub integration={integrationVersions.whatsapp} />

The official WhatsApp integration allows your users to chat with your bot by messaging a WhatsApp number.

## Setup

<Tabs>
  <Tab title="Basic configuration">
    <Info>
      You will need:

      * A [published bot](https://botpress.com/docs/botpress-quickstart)
      * A [Facebook account](https://www.facebook.com/signup)
    </Info>

    <Tip>
      Visual learner?

      Check out our [WhatsApp guide](https://www.youtube.com/watch?v=qdFSwBwWG1Q) on YouTube for a step-by-step video guide.
    </Tip>

    <Steps>
      <Step>
        In Botpress Studio, select **Explore Hub** in the upper-right corner.
      </Step>

      <Step>
        Search for the **WhatsApp** integration, then select **Install Integration**.
      </Step>

      <Step>
        In the **Configuration** menu, select **Authorize WhatsApp**.
      </Step>

      <Step>
        Follow the instructions to connect Botpress to your WhatsApp account.
      </Step>
    </Steps>

    <Note>
      Additional requirements:

      * While setting up your WhatsApp integration, we will ask you to create or select:

        * A [Facebook business page](https://www.facebook.com/business/help/1968057156746246?id=939256796236247)
        * A [WhatsApp business account](https://business.whatsapp.com)

      * After setup is complete, your business will undergo a [verification process by Meta](https://www.facebook.com/business/help/1095661473946872?id=180505742745347), the parent company of WhatsApp. This verification confirms the identity and eligibility of your business to use Meta's platforms.
    </Note>
  </Tab>

  <Tab title="Manual configuration">
    For advanced use cases, you can use your own Meta app with our integration.

    <Info>
      You will need:

      * A [Meta developer app](https://developers.facebook.com/apps/creation/) with the . Check out the [Meta developer documentation](https://developers.facebook.com/docs/whatsapp/cloud-api/get-started#set-up-developer-assets) to learn more about the setup process.
    </Info>

    ### Step 1: Install the integration in Botpress

    <Steps>
      <Step>In Botpress Studio, select **Explore Hub** in the upper-right corner.</Step>
      <Step>Search for the **WhatsApp** integration, then select **Install Integration**.</Step>
      <Step>In the **Configuration** menu, open the drop-down menu and select **Manual Configuration**.</Step>
    </Steps>

    ### Step 2: Configure the integration

    Next, fill in the integration's configuration fields using information from your Meta app:

    <AccordionGroup>
      <Accordion title="Verify Token">
        Used by Meta to verify that you're the real owner of the provided webhook. Can be any alphanumeric string.
      </Accordion>

      <Accordion title="Access Token">
        <Steps>
          <Step>
            In your Meta app's left sidebar, go to **Use cases > Connect with customers through WhatsApp > Customize**.

            <Note>
              If you haven't added WhatsApp as a use case yet, select **Add use cases**, then **Connect with customers through WhatsApp**.
            </Note>
          </Step>

          <Step>
            Select a WhatsApp business portfolio (if you haven't already).
          </Step>

          <Step>
            Go to **API testing**.
          </Step>

          <Step>
            Select **Generate access token**, then copy the token.
          </Step>

          <Step>
            In Botpress, paste the token into the integration's **Access Token** configuration field.
          </Step>
        </Steps>
      </Accordion>

      <Accordion title="Client Secret">
        <Steps>
          <Step>In your Meta App's left sidebar, expand the **App Settings** menu and select **Basic**.</Step>
          <Step>In the **App Secret** field,  select **Show**, then copy your secret.</Step>
          <Step>In Botpress, paste the secret into the integration's **Client Secret** configuration field.</Step>
        </Steps>
      </Accordion>

      <Accordion title="Default Bot Phone Number ID">
        <Steps>
          <Step>
            In your Meta app's left sidebar, go to **Use cases > Connect with customers through WhatsApp > Customize**.

            <Note>
              If you haven't added WhatsApp as a use case yet, select **Add use cases**, then **Connect with customers through WhatsApp**.
            </Note>
          </Step>

          <Step>
            Select a WhatsApp business portfolio (if you haven't already).
          </Step>

          <Step>
            Go to **API testing**.
          </Step>

          <Step>
            Under **Select a 'From' phone number**, copy the **Phone number ID**.
          </Step>

          <Step>
            In Botpress, paste the ID into the integration's **Default Bot Phone Number ID** configuration field.
          </Step>
        </Steps>
      </Accordion>

      <Accordion title="WABA ID (WhatsApp Business Account ID)">
        <Steps>
          <Step>
            In your Meta app's left sidebar, go to **Use cases > Connect with customers through WhatsApp > Customize**.

            <Note>
              If you haven't added WhatsApp as a use case yet, select **Add use cases**, then **Connect with customers through WhatsApp**.
            </Note>
          </Step>

          <Step>
            Select a WhatsApp business portfolio (if you haven't already).
          </Step>

          <Step>
            Go to **API testing**.
          </Step>

          <Step>
            Under **Select a 'From' phone number**, copy the **WhatsApp Business Account ID**.
          </Step>

          <Step>
            In Botpress, paste the ID into the integration's **WhatsApp Business Account ID** configuration field.
          </Step>
        </Steps>
      </Accordion>
    </AccordionGroup>

    When you've filled in all the fields, select **Save Configuration**. This will automatically enable your integration.

    ### Step 3: Add your webhook

    Now that you've enabled your integration, you can add your webhook to your Meta app's configuration:

    <Steps>
      <Step>In Botpress, copy the webhook URL and **Verify Token** from the integration's **Configuration** section.</Step>

      <Step>
        In your Meta app's left sidebar, go to **Use cases > Connect with customers through WhatsApp > Customize**.

        <Note>
          If you haven't added WhatsApp as a use case yet, select **Add use cases**, then **Connect with customers through WhatsApp**.
        </Note>
      </Step>

      <Step>
        Select a WhatsApp business portfolio (if you haven't already).
      </Step>

      <Step>Go to **Configuration**.</Step>
      <Step>Paste the webhook URL into the **Callback URL** field.</Step>
      <Step>Paste your **Verify Token** in the **Verify Token** field.</Step>

      <Step>
        Select **Verify and save**. Then, subscribe to the following webhook fields:

        * `message_template_components_update`
        * `message_template_quality_update`
        * `message_template_status_update`
        * `messages`
        * `template_category_update`
      </Step>
    </Steps>

    <Check>
      You've manually configured your WhatsApp integration!

      For more information, check out WhatsApp's guide on [getting started with Cloud API](https://developers.facebook.com/docs/whatsapp/cloud-api/get-started#send-test-message).
    </Check>
  </Tab>

  <Tab title="Playground">
    If you want to test your bot's behaviour in WhatsApp before going through the actual setup process, you can use the WhatsApp integration playground.

    <Info>
      You will need:

      * A [published bot](https://botpress.com/docs/botpress-quickstart)
      * A [WhatsApp account](https://web.whatsapp.com)
    </Info>

    <Steps>
      <Step>In Botpress Studio, select **Explore Hub** in the upper-right corner.</Step>
      <Step>Search for the **WhatsApp** integration, then select **Install Integration**.</Step>
      <Step>Select **Test your agent on WhatsApp**.</Step>
      <Step>Follow the instructions to set up the playground.</Step>
    </Steps>
  </Tab>
</Tabs>

***

## Cards

<Warning>
  Some of the integration's Cards use [WhatsApp message templates](https://developers.facebook.com/docs/whatsapp/business-management-api/message-templates/) to send messages to users.

  In WhatsApp, these templates support both [named and positional parameters](https://developers.facebook.com/docs/whatsapp/business-management-api/message-templates/#parameter-formats). However, the integration currently only supports positional parameters. This means you'll get an error if you try to provide named parameters in a Card's `conversation.templateVariablesJson` field.
</Warning>

{/* vale off */}

Here's a reference for all [Cards](/studio/concepts/cards/introduction) available with the integration:

### Send Template Message

<span>
  {"Sends a WhatsApp Message Template to a user in an existing conversation"}
</span>

<ResponseField name="input" type="object">
  <Expandable>
    <ResponseField name="conversation" type="object" required>
      <span>
        {"Details of the conversation"}
      </span>

      <Expandable>
        <ResponseField name="userPhone" type="string" required>
          <span>
            {"Phone number of the WhatsApp user to start a conversation with. Add the country code (e.g. +81 for japan)"}
          </span>
        </ResponseField>

        <ResponseField name="templateName" type="string" required>
          <span>
            {"Name of the WhatsApp Message Template to start the conversation with"}
          </span>
        </ResponseField>

        <ResponseField name="templateLanguage" type="string">
          <span>
            {"Language of the WhatsApp Message Template to start the conversation with. Defaults to \"en\" (English)"}
          </span>
        </ResponseField>

        <ResponseField name="templateVariablesJson" type="string">
          <span>
            {"JSON array representation of variable values to pass to the WhatsApp Message Template (if required by the template). Currently, only positional parameters are supported."}
          </span>
        </ResponseField>

        <ResponseField name="botPhoneNumberId" type="string">
          <span>
            {"Phone number ID to use as sender (uses the default phone number ID if not provided)"}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="output" type="object">
  <Expandable>
    <ResponseField name="conversationId" type="string" required>
      <span>
        {"ID of the conversation created"}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

### Start Conversation

<span>
  {"Proactively starts a conversation with a WhatsApp user by sending them a message using a WhatsApp Message Template"}
</span>

<ResponseField name="input" type="object">
  <Expandable>
    <ResponseField name="conversation" type="object" required>
      <span>
        {"Details of the conversation"}
      </span>

      <Expandable>
        <ResponseField name="userPhone" type="string" required>
          <span>
            {"Phone number of the WhatsApp user to start a conversation with. Add the country code (e.g. +81 for japan)"}
          </span>
        </ResponseField>

        <ResponseField name="templateName" type="string" required>
          <span>
            {"Name of the WhatsApp Message Template to start the conversation with"}
          </span>
        </ResponseField>

        <ResponseField name="templateLanguage" type="string">
          <span>
            {"Language of the WhatsApp Message Template to start the conversation with. Defaults to \"en\" (English)"}
          </span>
        </ResponseField>

        <ResponseField name="templateVariablesJson" type="string">
          <span>
            {"JSON array representation of variable values to pass to the WhatsApp Message Template (if required by the template). Currently, only positional parameters are supported."}
          </span>
        </ResponseField>

        <ResponseField name="botPhoneNumberId" type="string">
          <span>
            {"Phone number ID to use as sender (uses the default phone number ID if not provided)"}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="output" type="object">
  <Expandable>
    <ResponseField name="conversationId" type="string" required>
      <span>
        {"The Botpress ID of the created conversation"}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

***

## Triggers

{/* vale off */}

Here's a reference for all [Triggers](/studio/concepts/triggers/) available with the integration:

<Tip>
  You can access data returned from any of these Triggers by reading `event.payload` after the Trigger fires.
</Tip>

### Message Template Components Update

<span>
  {"Triggered when a template is edited"}
</span>

<ResponseField name="payload" type="object">
  <span>
    {"The message_template_components_update webhook notifies you of changes to a template's components."}
  </span>

  <Expandable>
    <ResponseField name="id" type="number" required>
      <span>
        {"Template ID."}
      </span>
    </ResponseField>

    <ResponseField name="name" type="string" required>
      <span>
        {"Template name."}
      </span>
    </ResponseField>

    <ResponseField name="language" type="string" required>
      <span>
        {"Template language and locale code."}
      </span>
    </ResponseField>

    <ResponseField name="element" type="string" required>
      <span>
        {"Template body text."}
      </span>
    </ResponseField>

    <ResponseField name="title" type="string">
      <span>
        {"Template Header Text."}
      </span>
    </ResponseField>

    <ResponseField name="footer" type="string">
      <span>
        {"Template Footer Text."}
      </span>
    </ResponseField>

    <ResponseField name="buttons" type="array">
      <span>
        {"Array of button objects, if present."}
      </span>

      <Expandable title="array item properties">
        <ResponseField name="button_type" type="enum<string>" required>
          <span>
            {"Button type."}
          </span>

          Available options: `CATALOG`, `COPY_CODE`, `EXTENSION`, `FLOW`, `MPM`, `ORDER_DETAILS`, `OTP`, `PHONE_NUMBER`, `POSTBACK`, `REMINDER`, `SEND_LOCATION`, `SPM`, `QUICK_REPLY`, `URL`, `VOICE_CALL`
        </ResponseField>

        <ResponseField name="button_text" type="string" required>
          <span>
            {"Button label text."}
          </span>
        </ResponseField>

        <ResponseField name="button_url" type="string">
          <span>
            {"Button URL."}
          </span>
        </ResponseField>

        <ResponseField name="button_phone_number" type="string">
          <span>
            {"Button phone number."}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

### Message Template Quality Update

<span>
  {"Triggered when a template's quality score changes"}
</span>

<ResponseField name="payload" type="object">
  <span>
    {"The message_template_quality_update webhook notifies you of changes to a template's quality score."}
  </span>

  <Expandable>
    <ResponseField name="previous_quality_score" type="enum<string>" required>
      <span>
        {"Previous template quality score."}
      </span>

      Available options: `GREEN`, `RED`, `YELLOW`, `UNKNOWN`
    </ResponseField>

    <ResponseField name="new_quality_score" type="enum<string>" required>
      <span>
        {"New template quality score."}
      </span>

      Available options: `GREEN`, `RED`, `YELLOW`, `UNKNOWN`
    </ResponseField>

    <ResponseField name="id" type="number" required>
      <span>
        {"Template ID."}
      </span>
    </ResponseField>

    <ResponseField name="name" type="string" required>
      <span>
        {"Template name."}
      </span>
    </ResponseField>

    <ResponseField name="language" type="string" required>
      <span>
        {"Template language and locale code."}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

### Message Template Status Update

<span>
  {"Triggered when a template is approved, rejected or disabled"}
</span>

<ResponseField name="payload" type="object">
  <span>
    {"The message_template_status_update webhook notifies you of changes to the status of an existing template."}
  </span>

  <Expandable>
    <ResponseField name="event" type="enum<string>" required>
      <span>
        {"Template status event."}
      </span>

      Available options: `APPROVED`, `ARCHIVED`, `DELETED`, `DISABLED`, `FLAGGED`, `IN_APPEAL`, `LIMIT_EXCEEDED`, `LOCKED`, `PAUSED`, `PENDING`, `REINSTATED`, `PENDING_DELETION`, `REJECTED`
    </ResponseField>

    <ResponseField name="id" type="number" required>
      <span>
        {"Template ID."}
      </span>
    </ResponseField>

    <ResponseField name="name" type="string" required>
      <span>
        {"Template name."}
      </span>
    </ResponseField>

    <ResponseField name="language" type="string" required>
      <span>
        {"Language and locale code."}
      </span>
    </ResponseField>

    <ResponseField name="reason" type="string | null" required />

    <ResponseField name="disable_info" type="object">
      <span>
        {"only included if template disabled"}
      </span>

      <Expandable>
        <ResponseField name="disable_date" type="number" required>
          <span>
            {"Unix timestamp indicating when the template was disabled."}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="other_info" type="object">
      <span>
        {"only included if template locked or unlocked"}
      </span>

      <Expandable>
        <ResponseField name="title" type="enum<string>" required>
          <span>
            {"Title of template pause or unpause event."}
          </span>

          Available options: `FIRST_PAUSE`, `SECOND_PAUSE`, `RATE_LIMITING_PAUSE`, `UNPAUSE`, `DISABLED`
        </ResponseField>

        <ResponseField name="description" type="string" required>
          <span>
            {"String describing why the template was locked or unlocked."}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

### Reaction Added

<span>
  {"Triggered when a user adds a reaction to a message"}
</span>

<ResponseField name="payload" type="object">
  <Expandable>
    <ResponseField name="reaction" type="string" required>
      <span>
        {"The reaction that was added"}
      </span>
    </ResponseField>

    <ResponseField name="messageId" type="string" required>
      <span>
        {"ID of the message that was reacted to"}
      </span>
    </ResponseField>

    <ResponseField name="userId" type="string">
      <span>
        {"ID of the user who added the reaction"}
      </span>
    </ResponseField>

    <ResponseField name="conversationId" type="string">
      <span>
        {"ID of the conversation"}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

### Reaction Removed

<span>
  {"Triggered when a user removes a reaction from a message"}
</span>

<ResponseField name="payload" type="object">
  <Expandable>
    <ResponseField name="reaction" type="string" required>
      <span>
        {"The reaction that was removed"}
      </span>
    </ResponseField>

    <ResponseField name="messageId" type="string" required>
      <span>
        {"ID of the message that was reacted to"}
      </span>
    </ResponseField>

    <ResponseField name="userId" type="string">
      <span>
        {"ID of the user who removed the reaction"}
      </span>
    </ResponseField>

    <ResponseField name="conversationId" type="string">
      <span>
        {"ID of the conversation"}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

### Template Category Update

<span>
  {"Triggered when the category of a WhatsApp template is changed — whether manually or by an automated process, or when such a change is about to occur."}
</span>

<ResponseField name="payload" type="object">
  <span>
    {"The template_category_update webhook notifies you of changes to template's category."}
  </span>

  <Expandable>
    <ResponseField name="id" type="number" required>
      <span>
        {"Template ID."}
      </span>
    </ResponseField>

    <ResponseField name="name" type="string" required>
      <span>
        {"Template name."}
      </span>
    </ResponseField>

    <ResponseField name="language" type="string" required>
      <span>
        {"Template language and locale code."}
      </span>
    </ResponseField>

    <ResponseField name="correct_category" type="string">
      <span>
        {"The category that the template will be recategorized as in 24 hours."}
      </span>
    </ResponseField>

    <ResponseField name="previous_category" type="string">
      <span>
        {"The template's previous category."}
      </span>
    </ResponseField>

    <ResponseField name="new_category" type="string">
      <span>
        {"The template's new category."}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

***

## Troubleshooting

<AccordionGroup>
  <Accordion title="Not receiving messages from bot on WhatsApp">
    Until Meta has verified your business, your bot won't be able to send messages to WhatsApp users, even if you've configured it correctly.

    If you need to test out your bot right away, you can use the [WhatsApp Playground](#playground) while waiting for business verification.
  </Accordion>

  <Accordion title="Meta business verification taking too long">
    Unfortunately, we can't help speed up Meta's business verification process.

    If you need to test out your bot right away, you can use the [WhatsApp Playground](#playground) while waiting for business verification.
  </Accordion>

  <Accordion title="Bot receiving WhatsApp messages, but not sending messages back">
    There may be a problem with the payment method in your WhatsApp business account. Check the billing hub and make sure your [payment method](https://business.facebook.com/billing_hub/) is configured correctly.
  </Accordion>
</AccordionGroup>
