> ## Documentation Index
> Fetch the complete documentation index at: https://botpress-pb-update-api.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# GitHub

> Add a bot to GitHub 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": "3.0.0",
    "id": "intver_01KQYW202230PVRW9RVA68VRYR"
  },
  "alchemer": {
    "version": "2.0.0",
    "id": "intver_01JFAQQZRS9ZQ7WBWHCF1MKGCM"
  },
  "anthropic": {
    "version": "18.0.1",
    "id": "intver_01KQYW62BM57D669VPPSAKXGHG"
  },
  "anydesk": {
    "version": "2.0.0",
    "id": "intver_01JFAQR4048H4976FCKT2YHD2X"
  },
  "apollo": {
    "version": "3.0.2",
    "id": "intver_01K6BJFKR5WZV44VNENAN6XBT1"
  },
  "asana": {
    "version": "0.3.13",
    "id": "intver_01KMZACD2E15B0RZB8RJ2XN2JX"
  },
  "attio": {
    "version": "1.0.3",
    "id": "intver_01KMZACN5Z3VJK0W280ED7G4Y0"
  },
  "avoma": {
    "version": "2.0.0",
    "id": "intver_01JFAQRC955G4CXN8QTFHXAPXZ"
  },
  "bamboohr": {
    "version": "2.1.2",
    "id": "intver_01KMZACXWM0GDNQF5PS3QBPQDN"
  },
  "beehiiv": {
    "version": "2.0.0",
    "id": "intver_01JFAQRGRRB95YC5YKWB1BFHZH"
  },
  "bigcommerce": {
    "version": "3.2.4",
    "id": "intver_01KMZAD5GM0P6BGFJHKE2QDDR8"
  },
  "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.8",
    "id": "intver_01KPBEHKBJD4MZ0ZDWEBMHX74D"
  },
  "bynder": {
    "version": "2.0.0",
    "id": "intver_01JFAQSJT5N0Q2J2K7KGG12QQ5"
  },
  "calcom": {
    "version": "0.4.2",
    "id": "intver_01KMZADKWGWXARSDEH5VES64JY"
  },
  "calendly": {
    "version": "0.0.5",
    "id": "intver_01KMZADVPKFVFATR33S36R2NQ8"
  },
  "canny": {
    "version": "0.2.3",
    "id": "intver_01KMZAE3W37N658H69Y6ZPSREQ"
  },
  "capsule-crm": {
    "version": "2.0.0",
    "id": "intver_01JFAQSQ6CJJ6G9FK7PAACKE6X"
  },
  "cerebras": {
    "version": "9.0.0",
    "id": "intver_01KNRZZPBTBA0FAHVDVGAJNBJ1"
  },
  "charts": {
    "version": "0.2.8",
    "id": "intver_01KMZAEJVYBMNRMP01816TVEBH"
  },
  "chat": {
    "version": "1.0.0",
    "id": "intver_01KNSDHSSEHCX633DGB62V2ZB8"
  },
  "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.3",
    "id": "intver_01KMZAF5TCYZNN80SFM4MCASB5"
  },
  "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.4",
    "id": "intver_01KMZAFH0Z4679X7P0SSY18DPV"
  },
  "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.8",
    "id": "intver_01KMZAFVDB02KE332TQ930T76J"
  },
  "databricks": {
    "version": "0.0.4",
    "id": "intver_01JBMK24H270H1ZTH2E8P34V4J"
  },
  "demandbase": {
    "version": "2.0.0",
    "id": "intver_01JFAQV9ZZ9MHH2ENEQ1ERMY2G"
  },
  "desk": {
    "version": "1.0.0",
    "id": "intver_01KGQ972H97YAN3D3KY9425JYN"
  },
  "discord": {
    "version": "1.2.1",
    "id": "intver_01KREWJHF8AZMBHH3JC5XFSFTB"
  },
  "docusign": {
    "version": "2.0.0",
    "id": "intver_01JFAQVKFW4F7BBRSDD7EEZE6Z"
  },
  "dropbox": {
    "version": "2.0.1",
    "id": "intver_01KMZAG63Y41V6CJGWD858VKQN"
  },
  "email": {
    "version": "0.1.4",
    "id": "intver_01KMZAGF70MCA75BCVVY3DGHXD"
  },
  "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.3",
    "id": "intver_01KMZAGPXHR49811P7S89CWN35"
  },
  "fireworks-ai": {
    "version": "11.0.0",
    "id": "intver_01KNS0091R8GPT9C088F3F3PE0"
  },
  "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.5",
    "id": "intver_01KMZAH6YY639ZNJTGDMTH25GT"
  },
  "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.2.1",
    "id": "intver_01KMZAHF5WMDMTT9H6V3DQ8T50"
  },
  "gladly": {
    "version": "2.0.0",
    "id": "intver_01JFAQX7B29WE85VA8N5BCST16"
  },
  "gmail": {
    "version": "1.0.7",
    "id": "intver_01KMZAHQQ8YSB2DRVR1B6YXNCN"
  },
  "google-ai": {
    "version": "8.0.0",
    "id": "intver_01KNS00R1R8P4N2J4SVN6HHX4P"
  },
  "google-analytics": {
    "version": "1.0.0",
    "id": "intver_01KPRHR42CF02FMDDGSF0TG0DB"
  },
  "googlecalendar": {
    "version": "2.0.9",
    "id": "intver_01KMZAJAKBEZKGH0ZPQJBR1VAE"
  },
  "googledrive": {
    "version": "0.4.2",
    "id": "intver_01KMZAJJE94ZYG631DQM93B9RN"
  },
  "groq": {
    "version": "16.0.0",
    "id": "intver_01KNS015P14BRMA1C0CJG239M4"
  },
  "gsheets": {
    "version": "2.1.9",
    "id": "intver_01KP5Z7BRNQNGVY406742M7BBE"
  },
  "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": "6.0.9",
    "id": "intver_01KTV8S0ZX48N54R7AVG24CHJZ"
  },
  "hunter": {
    "version": "1.0.2",
    "id": "intver_01KMZAKV7RM16T6375G0JXDYHH"
  },
  "instagram": {
    "version": "4.1.9",
    "id": "intver_01KRC18D2WGRKT0G2SRZQ5VE3Z"
  },
  "instantly": {
    "version": "2.0.0",
    "id": "intver_01JFAQXWNN3ZM0DAQBE7N2BP54"
  },
  "intercom": {
    "version": "2.0.4",
    "id": "intver_01KMZAMCN5KTKK60239ADVZGCP"
  },
  "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"
  },
  "kommo": {
    "version": "0.1.0",
    "id": "intver_01KN89QSX1YDM04NFRHK0WKZMG"
  },
  "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.6",
    "id": "intver_01KMZAMNQDY2BZAW86RZ58VSQY"
  },
  "linear": {
    "version": "2.5.0",
    "id": "intver_01KRHWEFJX783DXZG4XZ7B6ER8"
  },
  "linkedin": {
    "version": "0.1.3",
    "id": "intver_01KN89RB1CBCP1MGAYEBHMCT5Q"
  },
  "localiq": {
    "version": "2.0.0",
    "id": "intver_01JFAQZDKZQV3J44CJF074YHXZ"
  },
  "loops": {
    "version": "0.1.5",
    "id": "intver_01KMZANASVEZEW761JG63F1RM0"
  },
  "mailchimp": {
    "version": "0.3.12",
    "id": "intver_01KMZANJGYPESPJHZJ7NPEE7C6"
  },
  "mailerlite": {
    "version": "3.0.2",
    "id": "intver_01K6BFZTMA8A1Z3KV1QXGWB61S"
  },
  "make": {
    "version": "0.3.9",
    "id": "intver_01KMZANTJE8DN94EE6K74ETJ0Z"
  },
  "mcp-client": {
    "version": "0.1.0",
    "id": "intver_01KQWWKVJFV3DD65PR233GRHMH"
  },
  "messenger": {
    "version": "5.1.8",
    "id": "intver_01KPDRM4RJN85JM6DRP43W48PX"
  },
  "mindtickle": {
    "version": "2.0.0",
    "id": "intver_01JFAQZNRAZMBAEZ943WY44EXD"
  },
  "mintlify": {
    "version": "1.0.1",
    "id": "intver_01KMZAPEVTD6HZ9BPRHVK09DC5"
  },
  "mistral-ai": {
    "version": "1.0.0",
    "id": "intver_01KNS021C2ZFXWGAXC5TFAXBA9"
  },
  "monday": {
    "version": "1.0.2",
    "id": "intver_01KMZAQ1357YEQBMVPHQ8QYSAF"
  },
  "mural": {
    "version": "2.0.0",
    "id": "intver_01JFAQZT1R0PR8C59Z1MHWMG83"
  },
  "notion": {
    "version": "3.0.5",
    "id": "intver_01KN89RW8Z2ZK98F8JM8X66RXS"
  },
  "nutshell": {
    "version": "2.0.0",
    "id": "intver_01JFAQZYAY7HCM2VTWTZK0GHZ6"
  },
  "odoo": {
    "version": "0.1.0",
    "id": "intver_01KRC19AE1XTHSSW6D0FZPJZ1H"
  },
  "okta": {
    "version": "2.0.0",
    "id": "intver_01JFAR02JMED7RK95YXCDRVNXX"
  },
  "openai": {
    "version": "20.0.0",
    "id": "intver_01KNS02E7FF0WQAYXWJDM3ZZNQ"
  },
  "outreach": {
    "version": "2.0.0",
    "id": "intver_01JFAR0717CX7YJNEX0FXRR8TN"
  },
  "pandadoc": {
    "version": "2.0.0",
    "id": "intver_01JFAR0BBGR1EGMRR2PRGHRABB"
  },
  "pdf-generator": {
    "version": "0.0.7",
    "id": "intver_01KMZAQP6WG231KVJSEY88KG2J"
  },
  "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.4",
    "id": "intver_01KH6R8P2ZYNACH8KQED02E9YC"
  },
  "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"
  },
  "postmark": {
    "version": "0.1.0",
    "id": "intver_01KQ01G3YEPEXVNP2SFH49079G"
  },
  "quickbooks": {
    "version": "2.0.0",
    "id": "intver_01JFAR1E05TRXX8ZHQ52QMG2KJ"
  },
  "reachdesk": {
    "version": "2.0.0",
    "id": "intver_01JFAR1JD70W5VTGDEDGFQXKEB"
  },
  "resend": {
    "version": "0.1.10",
    "id": "intver_01KMZAQXVC4KP20TFCJNGY8PKV"
  },
  "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"
  },
  "salesforce": {
    "version": "1.0.0",
    "id": "intver_01KN5FRKT6KRAB6RM9T34J70M2"
  },
  "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.10",
    "id": "intver_01KMZAR5KN275G2NPSSFZ9WTSE"
  },
  "showpad": {
    "version": "2.0.0",
    "id": "intver_01JFAR2MD45546TPY7V2CPBAMD"
  },
  "sisense": {
    "version": "2.0.0",
    "id": "intver_01JFAR2RSBXRYQ5YX9JNTP4A9C"
  },
  "slack": {
    "version": "5.0.2",
    "id": "intver_01KQF3XKNH2W5EPAXK6G4CMW96"
  },
  "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.6",
    "id": "intver_01KMZARNC46Y0CJTQNR5AA8AKD"
  },
  "sunco": {
    "version": "2.0.1",
    "id": "intver_01KMZARX5E90SJEDCQ6GKZ4ZBV"
  },
  "surveymonkey": {
    "version": "2.0.0",
    "id": "intver_01JFAR3A2K8BEMP4XHQ7F5R47R"
  },
  "tableau": {
    "version": "2.0.0",
    "id": "intver_01JFAR3E9K4XXVYFE7SSGT1C9E"
  },
  "tally": {
    "version": "0.1.2",
    "id": "intver_01KMZAS4KR8F34JNE9VP1HJXT9"
  },
  "teamleader": {
    "version": "2.0.0",
    "id": "intver_01JFAR3JKE5HAGV6TBCW7SV4QM"
  },
  "teams": {
    "version": "2.0.4",
    "id": "intver_01KMZASBVV28FFKB2227618RRM"
  },
  "teamviewer": {
    "version": "2.0.0",
    "id": "intver_01JFAR3PY3EBMYYBKQTZAHESXP"
  },
  "telegram": {
    "version": "1.0.7",
    "id": "intver_01KQYYDZKSAHXH5DRK1ES6CKNS"
  },
  "thryv": {
    "version": "2.0.0",
    "id": "intver_01JFAR3VQXXNJTR85472MM0RDY"
  },
  "todoist": {
    "version": "1.0.5",
    "id": "intver_01KMZASWGQHERWV5WESYJR1W1R"
  },
  "trello": {
    "version": "2.1.3",
    "id": "intver_01KMZAT7K4J1JWT5VCV838TFRN"
  },
  "twilio": {
    "version": "1.3.2",
    "id": "intver_01KMZATFC2J1KF4J3T93HPFKGF"
  },
  "vcita": {
    "version": "2.0.0",
    "id": "intver_01JFAR3ZXVBWKYYJ53W7C4E4VB"
  },
  "vercel": {
    "version": "2.0.0",
    "id": "intver_01JFAR44YN7JA1Z86S8CACVG5C"
  },
  "viber": {
    "version": "1.0.5",
    "id": "intver_01KMZATNKPMTPMYBQNZN6744N4"
  },
  "vonage": {
    "version": "1.0.4",
    "id": "intver_01KMZATWVPMNCXAF3XB72FNHKS"
  },
  "webchat": {
    "version": "0.3.0",
    "id": "intver_01JBVV0VQW8XN3Z5V9K8DB1M3B"
  },
  "webflow": {
    "version": "3.1.4",
    "id": "intver_01KMZAV5CCPAJKR8S1M36266M8"
  },
  "webhook": {
    "version": "1.1.5",
    "id": "intver_01KMZAVBMNBFJBA9SM7ATDS5R8"
  },
  "wechat": {
    "version": "0.1.1",
    "id": "intver_01KMZAVJTKWA8CQ8A7KFRDYR5X"
  },
  "whatsapp": {
    "version": "4.15.0",
    "id": "intver_01KRC1AEDCE4P5HTZP5G41495H"
  },
  "workable": {
    "version": "0.1.2",
    "id": "intver_01KMZAWAMH776SVXW1R98ABBHP"
  },
  "workday": {
    "version": "2.0.0",
    "id": "intver_01JFARBCCKWG9BS7DT2RBW9D7B"
  },
  "wrike": {
    "version": "2.0.0",
    "id": "intver_01JFAR4H5WXG78YBE7MEG967MW"
  },
  "zapier": {
    "version": "0.3.10",
    "id": "intver_01KMZAWN77ZX053EB5VJH7C9B9"
  },
  "zendesk": {
    "version": "3.0.6",
    "id": "intver_01KFGPZM7JH7PMSEBRSSM5C4H8"
  },
  "zendesk-messaging-hitl": {
    "version": "1.1.0",
    "id": "intver_01KPRHTAYTB64Z5QEDC1XZCSYH"
  },
  "zendesk-sell": {
    "version": "2.0.0",
    "id": "intver_01JFAR4NP3JGG1BPV4MFJ2HBC3"
  },
  "zoho": {
    "version": "3.1.4",
    "id": "intver_01KMZAX48A0JA4Q0CD3B7REDT0"
  },
  "zoom": {
    "version": "0.1.0",
    "id": "intver_01KNSQZR3F06SRHJY3BCN20JH9"
  }
};

{/* vale on */}

<OpenInHub integration={integrationVersions.github} />

The official GitHub integration allows your bot to interact with your GitHub repositories.

## Setup

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

      * A [published bot](/get-started/quick-start)
      * A [GitHub account](https://github.com/signup)
    </Info>

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

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

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

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

    <Note>
      When using this configuration mode, a Botpress-managed GitHub App connects to your GitHub organizations and repositories. The app has the necessary permissions to listen to pull request and issue events and to create comments on issues, pull requests, and discussions.

      If you need more granular control over permissions or prefer to use your own GitHub App, choose one of the manual configuration options instead.
    </Note>
  </Tab>

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

    <Info>
      You will need:

      * A [published bot](/get-started/quick-start)
      * A [GitHub account](https://github.com/signup)
    </Info>

    ### Step 1: Install the integration

    First, install the integration in Botpress:

    <Steps>
      <Step>In Botpress Studio, select **Explore Hub** in the upper-right corner.</Step>
      <Step>Search for the **GitHub** integration, then select **Install Integration**.</Step>
      <Step>In the **Configuration** menu, select the drop-down menu, then select **Configure with a GitHub App**.</Step>
      <Step>Copy the webhook URL—you'll need it when creating your GitHub App.</Step>
    </Steps>

    ### Step 2: Create a GitHub App

    Next, create your GitHub App:

    <Steps>
      <Step>On GitHub, navigate to your organization's **Settings** page (or your personal account settings).</Step>
      <Step>In the left sidebar, select **Developer settings**, then **GitHub Apps**.</Step>
      <Step>Select **New GitHub App**.</Step>

      <Step>
        Fill in the required fields:

        * **GitHub App name**: Choose a unique name for your app.
        * **Homepage URL**: Enter your organization's website or any valid URL.
      </Step>

      <Step>
        In the **Webhook** section:

        * Paste the webhook URL you copied from Botpress into the **Webhook URL** field.
        * Generate a secure secret key using a password generator.
        * Paste the secret key into the **Webhook secret** field.
      </Step>
    </Steps>

    ### Step 3: Configure permissions

    Set the required permissions for your GitHub App:

    **Repository permissions:**

    * **Discussions**: Read & write
    * **Issues**: Read & write
    * **Pull requests**: Read & write

    **Organization permissions:**

    * **Team discussions**: Read & write

    ### Step 4: Subscribe to webhook events

    Select the webhook events your bot should receive:

    * Discussion
    * Discussion comment
    * Issues
    * Issue comment
    * Pull request
    * Pull request review
    * Pull request review comment
    * Pull request review thread

    When you're done, select **Create GitHub App**.

    ### Step 5: Generate a private key

    Next, generate a private key:

    <Steps>
      <Step>In your newly created GitHub App, navigate to the **General** tab.</Step>
      <Step>Scroll down to **Private keys** and select **Generate a private key**.</Step>
      <Step>Save the downloaded `.pem` file to a secure location.</Step>
    </Steps>

    ### Step 6: Install the GitHub App

    Now you can install the GitHub App:

    <Steps>
      <Step>In your GitHub App's settings, select **Install App** from the left sidebar.</Step>
      <Step>Select the organization or account where you want to install the app.</Step>
      <Step>Choose whether to grant access to all repositories or select specific ones.</Step>
      <Step>Select **Install**.</Step>
    </Steps>

    ### Step 7: Configure the integration in Botpress

    Finally, fill in the integration's configuration fields:

    <AccordionGroup>
      <Accordion title="GitHub App ID">
        1. In your GitHub App's **General** tab, find the **App ID** field.
        2. Copy the App ID and paste it into the **GitHub App ID** field in Botpress.
      </Accordion>

      <Accordion title="GitHub App Private Key">
        Open the `.pem` file you downloaded earlier and paste its entire contents into the **GitHub App Private Key** field.
      </Accordion>

      <Accordion title="GitHub Webhook Secret">
        Paste the webhook secret key you generated in [Step 2](#step-2:-create-a-github-app) into the **GitHub Webhook Secret** field.
      </Accordion>

      <Accordion title="GitHub App Installation ID">
        1. Navigate to your organization's **Settings > Installed GitHub Apps**.
        2. Find your newly installed GitHub App and select **Configure**.
        3. Look at the URL—it should end with `/installations/:installation_id`. For example, in `https://github.com/organizations/my-org/settings/installations/123456`, the installation ID is `123456`.
        4. Copy the installation ID and paste it into the **GitHub App Installation ID** field in Botpress.
      </Accordion>
    </AccordionGroup>

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

    <Check>
      You've manually configured your GitHub integration with a GitHub App!
    </Check>
  </Tab>

  <Tab title="Manual with Personal Access Token (PAT)">
    You can also use a Personal Access Token (PAT) to connect your GitHub account to Botpress.

    <Warning>
      When you use a PAT, actions taken by the bot will be attributed to your personal GitHub account. If you want actions attributed to your organization, use the [GitHub App configuration](#manual-with-github-app) instead.

      GitHub Apps also don't consume a seat in your organization and offer more granular permissions—we recommend using them for production use cases.
    </Warning>

    <Info>
      You will need:

      * A [published bot](/get-started/quick-start)
      * A [GitHub account](https://github.com/signup)
    </Info>

    ### Step 1: Install the integration

    <Steps>
      <Step>In Botpress Studio, select **Explore Hub** in the upper-right corner.</Step>
      <Step>Search for the **GitHub** integration, then select **Install Integration**.</Step>
      <Step>In the **Configuration** menu, select the drop-down menu, then select **Configure with a Personal Access Token**.</Step>
      <Step>Copy the webhook URL—you'll need it when setting up the webhook.</Step>
    </Steps>

    ### Step 2: Enable fine-grained PATs for your organization

    If you're using an organization, you need to enable fine-grained Personal Access Tokens:

    <Steps>
      <Step>On GitHub, navigate to your organization's **Settings** page.</Step>
      <Step>In the left sidebar, under **Third-party Access**, select **Personal access tokens**.</Step>
      <Step>Select **Allow access via fine-grained personal access tokens**.</Step>
      <Step>Complete the setup process to enable fine-grained PATs.</Step>
    </Steps>

    <Note>
      You don't need to enable classic personal access tokens.
    </Note>

    ### Step 3: Set up the webhook

    <Steps>
      <Step>Navigate to either your repository or organization's **Settings** page on GitHub.</Step>
      <Step>In the left sidebar, select **Webhooks**, then **Add webhook**.</Step>

      <Step>
        Configure the webhook:

        * **Payload URL**: Paste the webhook URL from Botpress.
        * **Content type**: Select `application/json`.
        * **Secret**: Generate a secure secret key and paste it here.
      </Step>

      <Step>
        Under **Which events would you like to trigger this webhook?**, select **Let me select individual events**, then choose:

        * Discussion
        * Discussion comment
        * Issues
        * Issue comment
        * Pull request
        * Pull request review
        * Pull request review comment
        * Pull request review thread
      </Step>

      <Step>Select **Add webhook**.</Step>
    </Steps>

    ### Step 4: Create a fine-grained Personal Access Token

    <Steps>
      <Step>On GitHub, go to your account **Settings**.</Step>
      <Step>In the left sidebar, select **Developer settings**, then **Personal access tokens > Fine-grained tokens**.</Step>
      <Step>Select **Generate new token**.</Step>

      <Step>
        Configure the token:

        * **Token name**: Enter a descriptive name (e.g., "Botpress Integration").
        * **Expiration**: Choose an appropriate expiration date.
        * **Resource owner**: Select your organization (or personal account).
        * **Repository access**: Select the repositories your bot needs access to.

        <Note>
          If you select **Public Repositories only**, the bot won't be able to reply to issues or pull requests.
        </Note>
      </Step>

      <Step>
        Under **Permissions**, set the following:

        **Repository permissions:**

        * **Discussions**: Read & write
        * **Issues**: Read & write
        * **Pull requests**: Read & write

        **Organization (or Account) permissions:**

        * **Team discussions**: Read & write
      </Step>

      <Step>Select **Generate token** and copy it to a secure location.</Step>
    </Steps>

    ### Step 5: Configure the integration in Botpress

    Fill in the integration's configuration fields:

    <AccordionGroup>
      <Accordion title="GitHub Personal Access Token">
        Paste the Personal Access Token you generated in the previous step.
      </Accordion>

      <Accordion title="GitHub Webhook Secret">
        Paste the webhook secret key you generated in [Step 3](#step-3:-set-up-the-webhook).
      </Accordion>
    </AccordionGroup>

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

    <Check>
      You've manually configured your GitHub integration with a Personal Access Token!
    </Check>
  </Tab>
</Tabs>

***

## Cards

{/* vale off */}

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

### Find Target

<span>
  {"Find a target in a repository"}
</span>

<ResponseField name="input" type="object">
  <Expandable>
    <ResponseField name="query" type="string" required>
      <span>
        {"The query used to find the target"}
      </span>
    </ResponseField>

    <ResponseField name="channel" type="enum<string>" required>
      <span>
        {"The channel of the target"}
      </span>

      Available options: `pullRequest`, `issue`
    </ResponseField>

    <ResponseField name="repo" type="string" required>
      <span>
        {"The repository name"}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="output" type="object">
  <Expandable>
    <ResponseField name="targets" type="array" required>
      <span>
        {"The list of received target"}
      </span>

      <Expandable title="array item properties">
        <ResponseField name="displayName" type="string" required>
          <span>
            {"The display name"}
          </span>
        </ResponseField>

        <ResponseField name="tags" type="object" required>
          <span>
            {"The tags associated with the target"}
          </span>
        </ResponseField>

        <ResponseField name="channel" type="enum<string>" required>
          <span>
            {"The channel of the target"}
          </span>

          Available options: `pullRequest`, `issue`
        </ResponseField>
      </Expandable>
    </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>

### Aggregate File Changes

<ResponseField name="payload" type="object">
  <Expandable>
    <ResponseField name="modifiedItems" type="object" required>
      <span>
        {"The modified items"}
      </span>

      <Expandable>
        <ResponseField name="created" type="array" required>
          <span>
            {"The files created"}
          </span>

          <Expandable title="array item properties">
            <ResponseField name="id" type="string" required>
              <span>
                {"The file's ID. This could be a unique identifier from the external service, or a relative or absolute path, so long as it's unique."}
              </span>
            </ResponseField>

            <ResponseField name="type" type="string" required />

            <ResponseField name="name" type="string" required>
              <span>
                {"The file's name. This will be displayed in the Botpress UI and be used as the file's name on Files API.\""}
              </span>
            </ResponseField>

            <ResponseField name="parentId" type="string">
              <span>
                {"The parent folder ID. Leave empty if the file is in the root folder."}
              </span>
            </ResponseField>

            <ResponseField name="absolutePath" type="string" required>
              <span>
                {"The full path of the file"}
              </span>
            </ResponseField>

            <ResponseField name="sizeInBytes" type="number">
              <span>
                {"The file size in bytes, if available"}
              </span>
            </ResponseField>

            <ResponseField name="lastModifiedDate" type="string (date-time)">
              <span>
                {"The last modified date of the file, if available"}
              </span>
            </ResponseField>

            <ResponseField name="contentHash" type="string">
              <span>
                {"The hash of the file content, or version/revision number, if available"}
              </span>
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="updated" type="array" required>
          <span>
            {"The files updated"}
          </span>

          <Expandable title="array item properties">
            <ResponseField name="id" type="string" required>
              <span>
                {"The file's ID. This could be a unique identifier from the external service, or a relative or absolute path, so long as it's unique."}
              </span>
            </ResponseField>

            <ResponseField name="type" type="string" required />

            <ResponseField name="name" type="string" required>
              <span>
                {"The file's name. This will be displayed in the Botpress UI and be used as the file's name on Files API.\""}
              </span>
            </ResponseField>

            <ResponseField name="parentId" type="string">
              <span>
                {"The parent folder ID. Leave empty if the file is in the root folder."}
              </span>
            </ResponseField>

            <ResponseField name="absolutePath" type="string" required>
              <span>
                {"The full path of the file"}
              </span>
            </ResponseField>

            <ResponseField name="sizeInBytes" type="number">
              <span>
                {"The file size in bytes, if available"}
              </span>
            </ResponseField>

            <ResponseField name="lastModifiedDate" type="string (date-time)">
              <span>
                {"The last modified date of the file, if available"}
              </span>
            </ResponseField>

            <ResponseField name="contentHash" type="string">
              <span>
                {"The hash of the file content, or version/revision number, if available"}
              </span>
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="deleted" type="array" required>
          <span>
            {"The files and folders deleted"}
          </span>

          <Tabs>
            <Tab title="file">
              <Expandable>
                <ResponseField name="id" type="string" required>
                  <span>
                    {"The file's ID. This could be a unique identifier from the external service, or a relative or absolute path, so long as it's unique."}
                  </span>
                </ResponseField>

                <ResponseField name="type" type="string" required />

                <ResponseField name="name" type="string" required>
                  <span>
                    {"The file's name. This will be displayed in the Botpress UI and be used as the file's name on Files API.\""}
                  </span>
                </ResponseField>

                <ResponseField name="parentId" type="string">
                  <span>
                    {"The parent folder ID. Leave empty if the file is in the root folder."}
                  </span>
                </ResponseField>

                <ResponseField name="absolutePath" type="string" required>
                  <span>
                    {"The full path of the file"}
                  </span>
                </ResponseField>

                <ResponseField name="sizeInBytes" type="number">
                  <span>
                    {"The file size in bytes, if available"}
                  </span>
                </ResponseField>

                <ResponseField name="lastModifiedDate" type="string (date-time)">
                  <span>
                    {"The last modified date of the file, if available"}
                  </span>
                </ResponseField>

                <ResponseField name="contentHash" type="string">
                  <span>
                    {"The hash of the file content, or version/revision number, if available"}
                  </span>
                </ResponseField>
              </Expandable>
            </Tab>

            <Tab title="folder">
              <Expandable>
                <ResponseField name="id" type="string" required>
                  <span>
                    {"The folder's ID. This could be a unique identifier from the external service, or a relative or absolute path, so long as it's unique."}
                  </span>
                </ResponseField>

                <ResponseField name="type" type="string" required />

                <ResponseField name="name" type="string" required>
                  <span>
                    {"The folder's name. This will be displayed in the Botpress UI and be used as the folder's name on Files API.\""}
                  </span>
                </ResponseField>

                <ResponseField name="parentId" type="string">
                  <span>
                    {"The parent folder ID. Leave empty if the folder is in the root folder."}
                  </span>
                </ResponseField>

                <ResponseField name="absolutePath" type="string" required>
                  <span>
                    {"The full path of the folder"}
                  </span>
                </ResponseField>
              </Expandable>
            </Tab>
          </Tabs>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

### File Created

<ResponseField name="payload" type="object">
  <Expandable>
    <ResponseField name="file" type="object" required>
      <span>
        {"The created file"}
      </span>

      <Expandable>
        <ResponseField name="id" type="string" required>
          <span>
            {"The file's ID. This could be a unique identifier from the external service, or a relative or absolute path, so long as it's unique."}
          </span>
        </ResponseField>

        <ResponseField name="type" type="string" required />

        <ResponseField name="name" type="string" required>
          <span>
            {"The file's name. This will be displayed in the Botpress UI and be used as the file's name on Files API.\""}
          </span>
        </ResponseField>

        <ResponseField name="parentId" type="string">
          <span>
            {"The parent folder ID. Leave empty if the file is in the root folder."}
          </span>
        </ResponseField>

        <ResponseField name="absolutePath" type="string" required>
          <span>
            {"The full path of the file"}
          </span>
        </ResponseField>

        <ResponseField name="sizeInBytes" type="number">
          <span>
            {"The file size in bytes, if available"}
          </span>
        </ResponseField>

        <ResponseField name="lastModifiedDate" type="string (date-time)">
          <span>
            {"The last modified date of the file, if available"}
          </span>
        </ResponseField>

        <ResponseField name="contentHash" type="string">
          <span>
            {"The hash of the file content, or version/revision number, if available"}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

### File Deleted

<ResponseField name="payload" type="object">
  <Expandable>
    <ResponseField name="file" type="object" required>
      <span>
        {"The deleted file"}
      </span>

      <Expandable>
        <ResponseField name="id" type="string" required>
          <span>
            {"The file's ID. This could be a unique identifier from the external service, or a relative or absolute path, so long as it's unique."}
          </span>
        </ResponseField>

        <ResponseField name="type" type="string" required />

        <ResponseField name="name" type="string" required>
          <span>
            {"The file's name. This will be displayed in the Botpress UI and be used as the file's name on Files API.\""}
          </span>
        </ResponseField>

        <ResponseField name="parentId" type="string">
          <span>
            {"The parent folder ID. Leave empty if the file is in the root folder."}
          </span>
        </ResponseField>

        <ResponseField name="absolutePath" type="string" required>
          <span>
            {"The full path of the file"}
          </span>
        </ResponseField>

        <ResponseField name="sizeInBytes" type="number">
          <span>
            {"The file size in bytes, if available"}
          </span>
        </ResponseField>

        <ResponseField name="lastModifiedDate" type="string (date-time)">
          <span>
            {"The last modified date of the file, if available"}
          </span>
        </ResponseField>

        <ResponseField name="contentHash" type="string">
          <span>
            {"The hash of the file content, or version/revision number, if available"}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

### File Updated

<ResponseField name="payload" type="object">
  <Expandable>
    <ResponseField name="file" type="object" required>
      <span>
        {"The updated file"}
      </span>

      <Expandable>
        <ResponseField name="id" type="string" required>
          <span>
            {"The file's ID. This could be a unique identifier from the external service, or a relative or absolute path, so long as it's unique."}
          </span>
        </ResponseField>

        <ResponseField name="type" type="string" required />

        <ResponseField name="name" type="string" required>
          <span>
            {"The file's name. This will be displayed in the Botpress UI and be used as the file's name on Files API.\""}
          </span>
        </ResponseField>

        <ResponseField name="parentId" type="string">
          <span>
            {"The parent folder ID. Leave empty if the file is in the root folder."}
          </span>
        </ResponseField>

        <ResponseField name="absolutePath" type="string" required>
          <span>
            {"The full path of the file"}
          </span>
        </ResponseField>

        <ResponseField name="sizeInBytes" type="number">
          <span>
            {"The file size in bytes, if available"}
          </span>
        </ResponseField>

        <ResponseField name="lastModifiedDate" type="string (date-time)">
          <span>
            {"The last modified date of the file, if available"}
          </span>
        </ResponseField>

        <ResponseField name="contentHash" type="string">
          <span>
            {"The hash of the file content, or version/revision number, if available"}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

### Folder Deleted Recursive

<ResponseField name="payload" type="object">
  <Expandable>
    <ResponseField name="folder" type="object" required>
      <span>
        {"The deleted folder"}
      </span>

      <Expandable>
        <ResponseField name="id" type="string" required>
          <span>
            {"The folder's ID. This could be a unique identifier from the external service, or a relative or absolute path, so long as it's unique."}
          </span>
        </ResponseField>

        <ResponseField name="type" type="string" required />

        <ResponseField name="name" type="string" required>
          <span>
            {"The folder's name. This will be displayed in the Botpress UI and be used as the folder's name on Files API.\""}
          </span>
        </ResponseField>

        <ResponseField name="parentId" type="string">
          <span>
            {"The parent folder ID. Leave empty if the folder is in the root folder."}
          </span>
        </ResponseField>

        <ResponseField name="absolutePath" type="string" required>
          <span>
            {"The full path of the folder"}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

### Issue opened

<span>
  {"Triggered when an issue is opened"}
</span>

<ResponseField name="payload" type="object">
  <Expandable>
    <ResponseField name="issue" type="object" required>
      <span>
        {"The issue that was opened"}
      </span>

      <Expandable>
        <ResponseField name="id" type="number" required>
          <span>
            {"Unique identifier of the issue"}
          </span>
        </ResponseField>

        <ResponseField name="nodeId" type="string" required>
          <span>
            {"Node ID for GraphQL"}
          </span>
        </ResponseField>

        <ResponseField name="url" type="string" required>
          <span>
            {"URL of the issue"}
          </span>
        </ResponseField>

        <ResponseField name="name" type="string" required>
          <span>
            {"Name of the issue"}
          </span>
        </ResponseField>

        <ResponseField name="repository" type="object" required>
          <span>
            {"The repository the issue belongs to"}
          </span>

          <Expandable>
            <ResponseField name="id" type="number" required>
              <span>
                {"Unique identifier of the repository"}
              </span>
            </ResponseField>

            <ResponseField name="nodeId" type="string" required>
              <span>
                {"Node ID for GraphQL"}
              </span>
            </ResponseField>

            <ResponseField name="url" type="string" required>
              <span>
                {"URL of the repository"}
              </span>
            </ResponseField>

            <ResponseField name="name" type="string" required>
              <span>
                {"Name of the repository"}
              </span>
            </ResponseField>

            <ResponseField name="owner" type="object" required>
              <span>
                {"The owner of the repository"}
              </span>

              <Expandable>
                <ResponseField name="id" type="number" required>
                  <span>
                    {"Unique identifier of the repository owner"}
                  </span>
                </ResponseField>

                <ResponseField name="nodeId" type="string" required>
                  <span>
                    {"Node ID for GraphQL"}
                  </span>
                </ResponseField>

                <ResponseField name="url" type="string" required>
                  <span>
                    {"URL of the repository owner"}
                  </span>
                </ResponseField>

                <ResponseField name="name" type="string" required>
                  <span>
                    {"Name of the repository owner"}
                  </span>
                </ResponseField>

                <ResponseField name="handle" type="string" required>
                  <span>
                    {"The handle of the repository owner"}
                  </span>
                </ResponseField>

                <ResponseField name="botpressUser" type="string" required>
                  <span>
                    {"The ID of the Botpress user corresponding to this repository owner"}
                  </span>
                </ResponseField>
              </Expandable>
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="body" type="string" required>
          <span>
            {"The body of the issue"}
          </span>
        </ResponseField>

        <ResponseField name="number" type="number" required>
          <span>
            {"The issue number"}
          </span>
        </ResponseField>

        <ResponseField name="labels" type="array" required>
          <span>
            {"The labels associated with the issue"}
          </span>

          <Expandable title="array item properties">
            <ResponseField name="id" type="number" required>
              <span>
                {"Unique identifier of the label"}
              </span>
            </ResponseField>

            <ResponseField name="nodeId" type="string" required>
              <span>
                {"Node ID for GraphQL"}
              </span>
            </ResponseField>

            <ResponseField name="url" type="string" required>
              <span>
                {"URL of the label"}
              </span>
            </ResponseField>

            <ResponseField name="name" type="string" required>
              <span>
                {"Name of the label"}
              </span>
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="author" type="object" required>
          <span>
            {"The author of the issue"}
          </span>

          <Expandable>
            <ResponseField name="id" type="number" required>
              <span>
                {"Unique identifier of the author"}
              </span>
            </ResponseField>

            <ResponseField name="nodeId" type="string" required>
              <span>
                {"Node ID for GraphQL"}
              </span>
            </ResponseField>

            <ResponseField name="url" type="string" required>
              <span>
                {"URL of the author"}
              </span>
            </ResponseField>

            <ResponseField name="name" type="string" required>
              <span>
                {"Name of the author"}
              </span>
            </ResponseField>

            <ResponseField name="handle" type="string" required>
              <span>
                {"The handle of the author"}
              </span>
            </ResponseField>

            <ResponseField name="botpressUser" type="string" required>
              <span>
                {"The ID of the Botpress user corresponding to this author"}
              </span>
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="assignees" type="array" required>
          <span>
            {"The assignees of the issue"}
          </span>

          <Expandable title="array item properties">
            <ResponseField name="id" type="number" required>
              <span>
                {"Unique identifier of the assignee"}
              </span>
            </ResponseField>

            <ResponseField name="nodeId" type="string" required>
              <span>
                {"Node ID for GraphQL"}
              </span>
            </ResponseField>

            <ResponseField name="url" type="string" required>
              <span>
                {"URL of the assignee"}
              </span>
            </ResponseField>

            <ResponseField name="name" type="string" required>
              <span>
                {"Name of the assignee"}
              </span>
            </ResponseField>

            <ResponseField name="handle" type="string" required>
              <span>
                {"The handle of the assignee"}
              </span>
            </ResponseField>

            <ResponseField name="botpressUser" type="string" required>
              <span>
                {"The ID of the Botpress user corresponding to this assignee"}
              </span>
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="eventSender" type="object" required>
      <span>
        {"The user who triggered the event"}
      </span>

      <Expandable>
        <ResponseField name="id" type="number" required>
          <span>
            {"Unique identifier of the user"}
          </span>
        </ResponseField>

        <ResponseField name="nodeId" type="string" required>
          <span>
            {"Node ID for GraphQL"}
          </span>
        </ResponseField>

        <ResponseField name="url" type="string" required>
          <span>
            {"URL of the user"}
          </span>
        </ResponseField>

        <ResponseField name="name" type="string" required>
          <span>
            {"Name of the user"}
          </span>
        </ResponseField>

        <ResponseField name="handle" type="string" required>
          <span>
            {"The handle of the user"}
          </span>
        </ResponseField>

        <ResponseField name="botpressUser" type="string" required>
          <span>
            {"The ID of the Botpress user corresponding to this user"}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="id" type="number" required>
      <span>
        {"use issue.id instead"}
      </span>
    </ResponseField>

    <ResponseField name="issueUrl" type="string" required>
      <span>
        {"use issue.url instead"}
      </span>
    </ResponseField>

    <ResponseField name="repoUrl" type="string" required>
      <span>
        {"use issue.repository.url instead"}
      </span>
    </ResponseField>

    <ResponseField name="number" type="number" required>
      <span>
        {"use issue.number instead"}
      </span>
    </ResponseField>

    <ResponseField name="title" type="string" required>
      <span>
        {"use issue.name instead"}
      </span>
    </ResponseField>

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

    <ResponseField name="repositoryName" type="string" required>
      <span>
        {"use issue.repository.name instead"}
      </span>
    </ResponseField>

    <ResponseField name="repositoryOwner" type="string" required>
      <span>
        {"use issue.repository.owner.handle instead"}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

### Pull Request merged

<span>
  {"Triggered when a pull request is merged"}
</span>

<ResponseField name="payload" type="object">
  <Expandable>
    <ResponseField name="pullRequest" type="object" required>
      <span>
        {"The pull request that was merged"}
      </span>

      <Expandable>
        <ResponseField name="id" type="number" required>
          <span>
            {"Unique identifier of the pull request"}
          </span>
        </ResponseField>

        <ResponseField name="nodeId" type="string" required>
          <span>
            {"Node ID for GraphQL"}
          </span>
        </ResponseField>

        <ResponseField name="url" type="string" required>
          <span>
            {"URL of the pull request"}
          </span>
        </ResponseField>

        <ResponseField name="name" type="string" required>
          <span>
            {"Name of the pull request"}
          </span>
        </ResponseField>

        <ResponseField name="repository" type="object" required>
          <span>
            {"The repository the pull request belongs to"}
          </span>

          <Expandable>
            <ResponseField name="id" type="number" required>
              <span>
                {"Unique identifier of the repository"}
              </span>
            </ResponseField>

            <ResponseField name="nodeId" type="string" required>
              <span>
                {"Node ID for GraphQL"}
              </span>
            </ResponseField>

            <ResponseField name="url" type="string" required>
              <span>
                {"URL of the repository"}
              </span>
            </ResponseField>

            <ResponseField name="name" type="string" required>
              <span>
                {"Name of the repository"}
              </span>
            </ResponseField>

            <ResponseField name="owner" type="object" required>
              <span>
                {"The owner of the repository"}
              </span>

              <Expandable>
                <ResponseField name="id" type="number" required>
                  <span>
                    {"Unique identifier of the repository owner"}
                  </span>
                </ResponseField>

                <ResponseField name="nodeId" type="string" required>
                  <span>
                    {"Node ID for GraphQL"}
                  </span>
                </ResponseField>

                <ResponseField name="url" type="string" required>
                  <span>
                    {"URL of the repository owner"}
                  </span>
                </ResponseField>

                <ResponseField name="name" type="string" required>
                  <span>
                    {"Name of the repository owner"}
                  </span>
                </ResponseField>

                <ResponseField name="handle" type="string" required>
                  <span>
                    {"The handle of the repository owner"}
                  </span>
                </ResponseField>

                <ResponseField name="botpressUser" type="string" required>
                  <span>
                    {"The ID of the Botpress user corresponding to this repository owner"}
                  </span>
                </ResponseField>
              </Expandable>
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="body" type="string" required>
          <span>
            {"The body of the pull request"}
          </span>
        </ResponseField>

        <ResponseField name="number" type="number" required>
          <span>
            {"The pull request number"}
          </span>
        </ResponseField>

        <ResponseField name="labels" type="array" required>
          <span>
            {"The labels associated with the pull request"}
          </span>

          <Expandable title="array item properties">
            <ResponseField name="id" type="number" required>
              <span>
                {"Unique identifier of the label"}
              </span>
            </ResponseField>

            <ResponseField name="nodeId" type="string" required>
              <span>
                {"Node ID for GraphQL"}
              </span>
            </ResponseField>

            <ResponseField name="url" type="string" required>
              <span>
                {"URL of the label"}
              </span>
            </ResponseField>

            <ResponseField name="name" type="string" required>
              <span>
                {"Name of the label"}
              </span>
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="author" type="object" required>
          <span>
            {"The author of the pull request"}
          </span>

          <Expandable>
            <ResponseField name="id" type="number" required>
              <span>
                {"Unique identifier of the author"}
              </span>
            </ResponseField>

            <ResponseField name="nodeId" type="string" required>
              <span>
                {"Node ID for GraphQL"}
              </span>
            </ResponseField>

            <ResponseField name="url" type="string" required>
              <span>
                {"URL of the author"}
              </span>
            </ResponseField>

            <ResponseField name="name" type="string" required>
              <span>
                {"Name of the author"}
              </span>
            </ResponseField>

            <ResponseField name="handle" type="string" required>
              <span>
                {"The handle of the author"}
              </span>
            </ResponseField>

            <ResponseField name="botpressUser" type="string" required>
              <span>
                {"The ID of the Botpress user corresponding to this author"}
              </span>
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="assignees" type="array" required>
          <span>
            {"The assignees of the pull request"}
          </span>

          <Expandable title="array item properties">
            <ResponseField name="id" type="number" required>
              <span>
                {"Unique identifier of the assignee"}
              </span>
            </ResponseField>

            <ResponseField name="nodeId" type="string" required>
              <span>
                {"Node ID for GraphQL"}
              </span>
            </ResponseField>

            <ResponseField name="url" type="string" required>
              <span>
                {"URL of the assignee"}
              </span>
            </ResponseField>

            <ResponseField name="name" type="string" required>
              <span>
                {"Name of the assignee"}
              </span>
            </ResponseField>

            <ResponseField name="handle" type="string" required>
              <span>
                {"The handle of the assignee"}
              </span>
            </ResponseField>

            <ResponseField name="botpressUser" type="string" required>
              <span>
                {"The ID of the Botpress user corresponding to this assignee"}
              </span>
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="target" type="object" required>
          <span>
            {"The target repository and branch of the pull request"}
          </span>

          <Expandable>
            <ResponseField name="ref" type="string" required>
              <span>
                {"The name of the branch"}
              </span>
            </ResponseField>

            <ResponseField name="label" type="string" required>
              <span>
                {"The display label of the branch"}
              </span>
            </ResponseField>

            <ResponseField name="repository" type="object" required>
              <span>
                {"The repository the branch belongs to"}
              </span>

              <Expandable>
                <ResponseField name="id" type="number" required>
                  <span>
                    {"Unique identifier of the repository"}
                  </span>
                </ResponseField>

                <ResponseField name="nodeId" type="string" required>
                  <span>
                    {"Node ID for GraphQL"}
                  </span>
                </ResponseField>

                <ResponseField name="url" type="string" required>
                  <span>
                    {"URL of the repository"}
                  </span>
                </ResponseField>

                <ResponseField name="name" type="string" required>
                  <span>
                    {"Name of the repository"}
                  </span>
                </ResponseField>

                <ResponseField name="owner" type="object" required>
                  <span>
                    {"The owner of the repository"}
                  </span>

                  <Expandable>
                    <ResponseField name="id" type="number" required>
                      <span>
                        {"Unique identifier of the repository owner"}
                      </span>
                    </ResponseField>

                    <ResponseField name="nodeId" type="string" required>
                      <span>
                        {"Node ID for GraphQL"}
                      </span>
                    </ResponseField>

                    <ResponseField name="url" type="string" required>
                      <span>
                        {"URL of the repository owner"}
                      </span>
                    </ResponseField>

                    <ResponseField name="name" type="string" required>
                      <span>
                        {"Name of the repository owner"}
                      </span>
                    </ResponseField>

                    <ResponseField name="handle" type="string" required>
                      <span>
                        {"The handle of the repository owner"}
                      </span>
                    </ResponseField>

                    <ResponseField name="botpressUser" type="string" required>
                      <span>
                        {"The ID of the Botpress user corresponding to this repository owner"}
                      </span>
                    </ResponseField>
                  </Expandable>
                </ResponseField>
              </Expandable>
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="source" type="object" required>
          <span>
            {"The source repository and branch of the pull request"}
          </span>

          <Expandable>
            <ResponseField name="ref" type="string" required>
              <span>
                {"The name of the branch"}
              </span>
            </ResponseField>

            <ResponseField name="label" type="string" required>
              <span>
                {"The display label of the branch"}
              </span>
            </ResponseField>

            <ResponseField name="repository" type="object" required>
              <span>
                {"The repository the branch belongs to"}
              </span>

              <Expandable>
                <ResponseField name="id" type="number" required>
                  <span>
                    {"Unique identifier of the repository"}
                  </span>
                </ResponseField>

                <ResponseField name="nodeId" type="string" required>
                  <span>
                    {"Node ID for GraphQL"}
                  </span>
                </ResponseField>

                <ResponseField name="url" type="string" required>
                  <span>
                    {"URL of the repository"}
                  </span>
                </ResponseField>

                <ResponseField name="name" type="string" required>
                  <span>
                    {"Name of the repository"}
                  </span>
                </ResponseField>

                <ResponseField name="owner" type="object" required>
                  <span>
                    {"The owner of the repository"}
                  </span>

                  <Expandable>
                    <ResponseField name="id" type="number" required>
                      <span>
                        {"Unique identifier of the repository owner"}
                      </span>
                    </ResponseField>

                    <ResponseField name="nodeId" type="string" required>
                      <span>
                        {"Node ID for GraphQL"}
                      </span>
                    </ResponseField>

                    <ResponseField name="url" type="string" required>
                      <span>
                        {"URL of the repository owner"}
                      </span>
                    </ResponseField>

                    <ResponseField name="name" type="string" required>
                      <span>
                        {"Name of the repository owner"}
                      </span>
                    </ResponseField>

                    <ResponseField name="handle" type="string" required>
                      <span>
                        {"The handle of the repository owner"}
                      </span>
                    </ResponseField>

                    <ResponseField name="botpressUser" type="string" required>
                      <span>
                        {"The ID of the Botpress user corresponding to this repository owner"}
                      </span>
                    </ResponseField>
                  </Expandable>
                </ResponseField>
              </Expandable>
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="eventSender" type="object" required>
      <span>
        {"The user who triggered the event"}
      </span>

      <Expandable>
        <ResponseField name="id" type="number" required>
          <span>
            {"Unique identifier of the user"}
          </span>
        </ResponseField>

        <ResponseField name="nodeId" type="string" required>
          <span>
            {"Node ID for GraphQL"}
          </span>
        </ResponseField>

        <ResponseField name="url" type="string" required>
          <span>
            {"URL of the user"}
          </span>
        </ResponseField>

        <ResponseField name="name" type="string" required>
          <span>
            {"Name of the user"}
          </span>
        </ResponseField>

        <ResponseField name="handle" type="string" required>
          <span>
            {"The handle of the user"}
          </span>
        </ResponseField>

        <ResponseField name="botpressUser" type="string" required>
          <span>
            {"The ID of the Botpress user corresponding to this user"}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="type" type="string">
      <span>
        {"Not needed anymore"}
      </span>
    </ResponseField>

    <ResponseField name="id" type="number" required>
      <span>
        {"use pullRequest.id instead"}
      </span>
    </ResponseField>

    <ResponseField name="title" type="string" required>
      <span>
        {"use pullRequest.name instead"}
      </span>
    </ResponseField>

    <ResponseField name="content" type="string" required>
      <span>
        {"use pullRequest.body instead"}
      </span>
    </ResponseField>

    <ResponseField name="baseBranch" type="string">
      <span>
        {"use pullRequest.source.ref instead"}
      </span>
    </ResponseField>

    <ResponseField name="userId" type="string">
      <span>
        {"use pullRequest.author.id instead"}
      </span>
    </ResponseField>

    <ResponseField name="conversationId" type="string">
      <span>
        {"use the conversation id associated with the event instead"}
      </span>
    </ResponseField>

    <ResponseField name="targets" type="object" required>
      <span>
        {"Not needed"}
      </span>

      <Expandable>
        <ResponseField name="pullRequest" type="string">
          <span>
            {"use pullRequest.number instead"}
          </span>
        </ResponseField>

        <ResponseField name="issue" type="string">
          <span>
            {"Not needed"}
          </span>
        </ResponseField>

        <ResponseField name="discussion" type="string">
          <span>
            {"Not needed"}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

### Pull Request opened

<span>
  {"Triggered when a pull request is opened"}
</span>

<ResponseField name="payload" type="object">
  <Expandable>
    <ResponseField name="pullRequest" type="object" required>
      <span>
        {"The pull request that was opened"}
      </span>

      <Expandable>
        <ResponseField name="id" type="number" required>
          <span>
            {"Unique identifier of the pull request"}
          </span>
        </ResponseField>

        <ResponseField name="nodeId" type="string" required>
          <span>
            {"Node ID for GraphQL"}
          </span>
        </ResponseField>

        <ResponseField name="url" type="string" required>
          <span>
            {"URL of the pull request"}
          </span>
        </ResponseField>

        <ResponseField name="name" type="string" required>
          <span>
            {"Name of the pull request"}
          </span>
        </ResponseField>

        <ResponseField name="repository" type="object" required>
          <span>
            {"The repository the pull request belongs to"}
          </span>

          <Expandable>
            <ResponseField name="id" type="number" required>
              <span>
                {"Unique identifier of the repository"}
              </span>
            </ResponseField>

            <ResponseField name="nodeId" type="string" required>
              <span>
                {"Node ID for GraphQL"}
              </span>
            </ResponseField>

            <ResponseField name="url" type="string" required>
              <span>
                {"URL of the repository"}
              </span>
            </ResponseField>

            <ResponseField name="name" type="string" required>
              <span>
                {"Name of the repository"}
              </span>
            </ResponseField>

            <ResponseField name="owner" type="object" required>
              <span>
                {"The owner of the repository"}
              </span>

              <Expandable>
                <ResponseField name="id" type="number" required>
                  <span>
                    {"Unique identifier of the repository owner"}
                  </span>
                </ResponseField>

                <ResponseField name="nodeId" type="string" required>
                  <span>
                    {"Node ID for GraphQL"}
                  </span>
                </ResponseField>

                <ResponseField name="url" type="string" required>
                  <span>
                    {"URL of the repository owner"}
                  </span>
                </ResponseField>

                <ResponseField name="name" type="string" required>
                  <span>
                    {"Name of the repository owner"}
                  </span>
                </ResponseField>

                <ResponseField name="handle" type="string" required>
                  <span>
                    {"The handle of the repository owner"}
                  </span>
                </ResponseField>

                <ResponseField name="botpressUser" type="string" required>
                  <span>
                    {"The ID of the Botpress user corresponding to this repository owner"}
                  </span>
                </ResponseField>
              </Expandable>
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="body" type="string" required>
          <span>
            {"The body of the pull request"}
          </span>
        </ResponseField>

        <ResponseField name="number" type="number" required>
          <span>
            {"The pull request number"}
          </span>
        </ResponseField>

        <ResponseField name="labels" type="array" required>
          <span>
            {"The labels associated with the pull request"}
          </span>

          <Expandable title="array item properties">
            <ResponseField name="id" type="number" required>
              <span>
                {"Unique identifier of the label"}
              </span>
            </ResponseField>

            <ResponseField name="nodeId" type="string" required>
              <span>
                {"Node ID for GraphQL"}
              </span>
            </ResponseField>

            <ResponseField name="url" type="string" required>
              <span>
                {"URL of the label"}
              </span>
            </ResponseField>

            <ResponseField name="name" type="string" required>
              <span>
                {"Name of the label"}
              </span>
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="author" type="object" required>
          <span>
            {"The author of the pull request"}
          </span>

          <Expandable>
            <ResponseField name="id" type="number" required>
              <span>
                {"Unique identifier of the author"}
              </span>
            </ResponseField>

            <ResponseField name="nodeId" type="string" required>
              <span>
                {"Node ID for GraphQL"}
              </span>
            </ResponseField>

            <ResponseField name="url" type="string" required>
              <span>
                {"URL of the author"}
              </span>
            </ResponseField>

            <ResponseField name="name" type="string" required>
              <span>
                {"Name of the author"}
              </span>
            </ResponseField>

            <ResponseField name="handle" type="string" required>
              <span>
                {"The handle of the author"}
              </span>
            </ResponseField>

            <ResponseField name="botpressUser" type="string" required>
              <span>
                {"The ID of the Botpress user corresponding to this author"}
              </span>
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="assignees" type="array" required>
          <span>
            {"The assignees of the pull request"}
          </span>

          <Expandable title="array item properties">
            <ResponseField name="id" type="number" required>
              <span>
                {"Unique identifier of the assignee"}
              </span>
            </ResponseField>

            <ResponseField name="nodeId" type="string" required>
              <span>
                {"Node ID for GraphQL"}
              </span>
            </ResponseField>

            <ResponseField name="url" type="string" required>
              <span>
                {"URL of the assignee"}
              </span>
            </ResponseField>

            <ResponseField name="name" type="string" required>
              <span>
                {"Name of the assignee"}
              </span>
            </ResponseField>

            <ResponseField name="handle" type="string" required>
              <span>
                {"The handle of the assignee"}
              </span>
            </ResponseField>

            <ResponseField name="botpressUser" type="string" required>
              <span>
                {"The ID of the Botpress user corresponding to this assignee"}
              </span>
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="target" type="object" required>
          <span>
            {"The target repository and branch of the pull request"}
          </span>

          <Expandable>
            <ResponseField name="ref" type="string" required>
              <span>
                {"The name of the branch"}
              </span>
            </ResponseField>

            <ResponseField name="label" type="string" required>
              <span>
                {"The display label of the branch"}
              </span>
            </ResponseField>

            <ResponseField name="repository" type="object" required>
              <span>
                {"The repository the branch belongs to"}
              </span>

              <Expandable>
                <ResponseField name="id" type="number" required>
                  <span>
                    {"Unique identifier of the repository"}
                  </span>
                </ResponseField>

                <ResponseField name="nodeId" type="string" required>
                  <span>
                    {"Node ID for GraphQL"}
                  </span>
                </ResponseField>

                <ResponseField name="url" type="string" required>
                  <span>
                    {"URL of the repository"}
                  </span>
                </ResponseField>

                <ResponseField name="name" type="string" required>
                  <span>
                    {"Name of the repository"}
                  </span>
                </ResponseField>

                <ResponseField name="owner" type="object" required>
                  <span>
                    {"The owner of the repository"}
                  </span>

                  <Expandable>
                    <ResponseField name="id" type="number" required>
                      <span>
                        {"Unique identifier of the repository owner"}
                      </span>
                    </ResponseField>

                    <ResponseField name="nodeId" type="string" required>
                      <span>
                        {"Node ID for GraphQL"}
                      </span>
                    </ResponseField>

                    <ResponseField name="url" type="string" required>
                      <span>
                        {"URL of the repository owner"}
                      </span>
                    </ResponseField>

                    <ResponseField name="name" type="string" required>
                      <span>
                        {"Name of the repository owner"}
                      </span>
                    </ResponseField>

                    <ResponseField name="handle" type="string" required>
                      <span>
                        {"The handle of the repository owner"}
                      </span>
                    </ResponseField>

                    <ResponseField name="botpressUser" type="string" required>
                      <span>
                        {"The ID of the Botpress user corresponding to this repository owner"}
                      </span>
                    </ResponseField>
                  </Expandable>
                </ResponseField>
              </Expandable>
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="source" type="object" required>
          <span>
            {"The source repository and branch of the pull request"}
          </span>

          <Expandable>
            <ResponseField name="ref" type="string" required>
              <span>
                {"The name of the branch"}
              </span>
            </ResponseField>

            <ResponseField name="label" type="string" required>
              <span>
                {"The display label of the branch"}
              </span>
            </ResponseField>

            <ResponseField name="repository" type="object" required>
              <span>
                {"The repository the branch belongs to"}
              </span>

              <Expandable>
                <ResponseField name="id" type="number" required>
                  <span>
                    {"Unique identifier of the repository"}
                  </span>
                </ResponseField>

                <ResponseField name="nodeId" type="string" required>
                  <span>
                    {"Node ID for GraphQL"}
                  </span>
                </ResponseField>

                <ResponseField name="url" type="string" required>
                  <span>
                    {"URL of the repository"}
                  </span>
                </ResponseField>

                <ResponseField name="name" type="string" required>
                  <span>
                    {"Name of the repository"}
                  </span>
                </ResponseField>

                <ResponseField name="owner" type="object" required>
                  <span>
                    {"The owner of the repository"}
                  </span>

                  <Expandable>
                    <ResponseField name="id" type="number" required>
                      <span>
                        {"Unique identifier of the repository owner"}
                      </span>
                    </ResponseField>

                    <ResponseField name="nodeId" type="string" required>
                      <span>
                        {"Node ID for GraphQL"}
                      </span>
                    </ResponseField>

                    <ResponseField name="url" type="string" required>
                      <span>
                        {"URL of the repository owner"}
                      </span>
                    </ResponseField>

                    <ResponseField name="name" type="string" required>
                      <span>
                        {"Name of the repository owner"}
                      </span>
                    </ResponseField>

                    <ResponseField name="handle" type="string" required>
                      <span>
                        {"The handle of the repository owner"}
                      </span>
                    </ResponseField>

                    <ResponseField name="botpressUser" type="string" required>
                      <span>
                        {"The ID of the Botpress user corresponding to this repository owner"}
                      </span>
                    </ResponseField>
                  </Expandable>
                </ResponseField>
              </Expandable>
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="eventSender" type="object" required>
      <span>
        {"The user who triggered the event"}
      </span>

      <Expandable>
        <ResponseField name="id" type="number" required>
          <span>
            {"Unique identifier of the user"}
          </span>
        </ResponseField>

        <ResponseField name="nodeId" type="string" required>
          <span>
            {"Node ID for GraphQL"}
          </span>
        </ResponseField>

        <ResponseField name="url" type="string" required>
          <span>
            {"URL of the user"}
          </span>
        </ResponseField>

        <ResponseField name="name" type="string" required>
          <span>
            {"Name of the user"}
          </span>
        </ResponseField>

        <ResponseField name="handle" type="string" required>
          <span>
            {"The handle of the user"}
          </span>
        </ResponseField>

        <ResponseField name="botpressUser" type="string" required>
          <span>
            {"The ID of the Botpress user corresponding to this user"}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="type" type="string">
      <span>
        {"Not needed anymore"}
      </span>
    </ResponseField>

    <ResponseField name="id" type="number" required>
      <span>
        {"use pullRequest.id instead"}
      </span>
    </ResponseField>

    <ResponseField name="title" type="string" required>
      <span>
        {"use pullRequest.name instead"}
      </span>
    </ResponseField>

    <ResponseField name="content" type="string" required>
      <span>
        {"use pullRequest.body instead"}
      </span>
    </ResponseField>

    <ResponseField name="baseBranch" type="string">
      <span>
        {"use pullRequest.source.ref instead"}
      </span>
    </ResponseField>

    <ResponseField name="userId" type="string">
      <span>
        {"use pullRequest.author.id instead"}
      </span>
    </ResponseField>

    <ResponseField name="conversationId" type="string">
      <span>
        {"use the conversation id associated with the event instead"}
      </span>
    </ResponseField>

    <ResponseField name="targets" type="object" required>
      <span>
        {"Not needed"}
      </span>

      <Expandable>
        <ResponseField name="pullRequest" type="string">
          <span>
            {"use pullRequest.number instead"}
          </span>
        </ResponseField>

        <ResponseField name="issue" type="string">
          <span>
            {"Not needed"}
          </span>
        </ResponseField>

        <ResponseField name="discussion" type="string">
          <span>
            {"Not needed"}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

### Pull Request review submitted

<span>
  {"Triggered when a review is submitted on a pull request"}
</span>

<ResponseField name="payload" type="object">
  <Expandable>
    <ResponseField name="review" type="object" required>
      <span>
        {"The review that was submitted"}
      </span>

      <Expandable>
        <ResponseField name="id" type="number" required>
          <span>
            {"Unique identifier of the pull request review"}
          </span>
        </ResponseField>

        <ResponseField name="nodeId" type="string" required>
          <span>
            {"Node ID for GraphQL"}
          </span>
        </ResponseField>

        <ResponseField name="url" type="string" required>
          <span>
            {"URL of the pull request review"}
          </span>
        </ResponseField>

        <ResponseField name="pullRequest" type="object" required>
          <span>
            {"The pull request being reviewed"}
          </span>

          <Expandable>
            <ResponseField name="id" type="number" required>
              <span>
                {"Unique identifier of the pull request"}
              </span>
            </ResponseField>

            <ResponseField name="nodeId" type="string" required>
              <span>
                {"Node ID for GraphQL"}
              </span>
            </ResponseField>

            <ResponseField name="url" type="string" required>
              <span>
                {"URL of the pull request"}
              </span>
            </ResponseField>

            <ResponseField name="name" type="string" required>
              <span>
                {"Name of the pull request"}
              </span>
            </ResponseField>

            <ResponseField name="repository" type="object" required>
              <span>
                {"The repository the pull request belongs to"}
              </span>

              <Expandable>
                <ResponseField name="id" type="number" required>
                  <span>
                    {"Unique identifier of the repository"}
                  </span>
                </ResponseField>

                <ResponseField name="nodeId" type="string" required>
                  <span>
                    {"Node ID for GraphQL"}
                  </span>
                </ResponseField>

                <ResponseField name="url" type="string" required>
                  <span>
                    {"URL of the repository"}
                  </span>
                </ResponseField>

                <ResponseField name="name" type="string" required>
                  <span>
                    {"Name of the repository"}
                  </span>
                </ResponseField>

                <ResponseField name="owner" type="object" required>
                  <span>
                    {"The owner of the repository"}
                  </span>

                  <Expandable>
                    <ResponseField name="id" type="number" required>
                      <span>
                        {"Unique identifier of the repository owner"}
                      </span>
                    </ResponseField>

                    <ResponseField name="nodeId" type="string" required>
                      <span>
                        {"Node ID for GraphQL"}
                      </span>
                    </ResponseField>

                    <ResponseField name="url" type="string" required>
                      <span>
                        {"URL of the repository owner"}
                      </span>
                    </ResponseField>

                    <ResponseField name="name" type="string" required>
                      <span>
                        {"Name of the repository owner"}
                      </span>
                    </ResponseField>

                    <ResponseField name="handle" type="string" required>
                      <span>
                        {"The handle of the repository owner"}
                      </span>
                    </ResponseField>

                    <ResponseField name="botpressUser" type="string" required>
                      <span>
                        {"The ID of the Botpress user corresponding to this repository owner"}
                      </span>
                    </ResponseField>
                  </Expandable>
                </ResponseField>
              </Expandable>
            </ResponseField>

            <ResponseField name="body" type="string" required>
              <span>
                {"The body of the pull request"}
              </span>
            </ResponseField>

            <ResponseField name="number" type="number" required>
              <span>
                {"The pull request number"}
              </span>
            </ResponseField>

            <ResponseField name="labels" type="array" required>
              <span>
                {"The labels associated with the pull request"}
              </span>

              <Expandable title="array item properties">
                <ResponseField name="id" type="number" required>
                  <span>
                    {"Unique identifier of the label"}
                  </span>
                </ResponseField>

                <ResponseField name="nodeId" type="string" required>
                  <span>
                    {"Node ID for GraphQL"}
                  </span>
                </ResponseField>

                <ResponseField name="url" type="string" required>
                  <span>
                    {"URL of the label"}
                  </span>
                </ResponseField>

                <ResponseField name="name" type="string" required>
                  <span>
                    {"Name of the label"}
                  </span>
                </ResponseField>
              </Expandable>
            </ResponseField>

            <ResponseField name="author" type="object" required>
              <span>
                {"The author of the pull request"}
              </span>

              <Expandable>
                <ResponseField name="id" type="number" required>
                  <span>
                    {"Unique identifier of the author"}
                  </span>
                </ResponseField>

                <ResponseField name="nodeId" type="string" required>
                  <span>
                    {"Node ID for GraphQL"}
                  </span>
                </ResponseField>

                <ResponseField name="url" type="string" required>
                  <span>
                    {"URL of the author"}
                  </span>
                </ResponseField>

                <ResponseField name="name" type="string" required>
                  <span>
                    {"Name of the author"}
                  </span>
                </ResponseField>

                <ResponseField name="handle" type="string" required>
                  <span>
                    {"The handle of the author"}
                  </span>
                </ResponseField>

                <ResponseField name="botpressUser" type="string" required>
                  <span>
                    {"The ID of the Botpress user corresponding to this author"}
                  </span>
                </ResponseField>
              </Expandable>
            </ResponseField>

            <ResponseField name="assignees" type="array" required>
              <span>
                {"The assignees of the pull request"}
              </span>

              <Expandable title="array item properties">
                <ResponseField name="id" type="number" required>
                  <span>
                    {"Unique identifier of the assignee"}
                  </span>
                </ResponseField>

                <ResponseField name="nodeId" type="string" required>
                  <span>
                    {"Node ID for GraphQL"}
                  </span>
                </ResponseField>

                <ResponseField name="url" type="string" required>
                  <span>
                    {"URL of the assignee"}
                  </span>
                </ResponseField>

                <ResponseField name="name" type="string" required>
                  <span>
                    {"Name of the assignee"}
                  </span>
                </ResponseField>

                <ResponseField name="handle" type="string" required>
                  <span>
                    {"The handle of the assignee"}
                  </span>
                </ResponseField>

                <ResponseField name="botpressUser" type="string" required>
                  <span>
                    {"The ID of the Botpress user corresponding to this assignee"}
                  </span>
                </ResponseField>
              </Expandable>
            </ResponseField>

            <ResponseField name="target" type="object" required>
              <span>
                {"The target repository and branch of the pull request"}
              </span>

              <Expandable>
                <ResponseField name="ref" type="string" required>
                  <span>
                    {"The name of the branch"}
                  </span>
                </ResponseField>

                <ResponseField name="label" type="string" required>
                  <span>
                    {"The display label of the branch"}
                  </span>
                </ResponseField>

                <ResponseField name="repository" type="object" required>
                  <span>
                    {"The repository the branch belongs to"}
                  </span>

                  <Expandable>
                    <ResponseField name="id" type="number" required>
                      <span>
                        {"Unique identifier of the repository"}
                      </span>
                    </ResponseField>

                    <ResponseField name="nodeId" type="string" required>
                      <span>
                        {"Node ID for GraphQL"}
                      </span>
                    </ResponseField>

                    <ResponseField name="url" type="string" required>
                      <span>
                        {"URL of the repository"}
                      </span>
                    </ResponseField>

                    <ResponseField name="name" type="string" required>
                      <span>
                        {"Name of the repository"}
                      </span>
                    </ResponseField>

                    <ResponseField name="owner" type="object" required>
                      <span>
                        {"The owner of the repository"}
                      </span>

                      <Expandable>
                        <ResponseField name="id" type="number" required>
                          <span>
                            {"Unique identifier of the repository owner"}
                          </span>
                        </ResponseField>

                        <ResponseField name="nodeId" type="string" required>
                          <span>
                            {"Node ID for GraphQL"}
                          </span>
                        </ResponseField>

                        <ResponseField name="url" type="string" required>
                          <span>
                            {"URL of the repository owner"}
                          </span>
                        </ResponseField>

                        <ResponseField name="name" type="string" required>
                          <span>
                            {"Name of the repository owner"}
                          </span>
                        </ResponseField>

                        <ResponseField name="handle" type="string" required>
                          <span>
                            {"The handle of the repository owner"}
                          </span>
                        </ResponseField>

                        <ResponseField name="botpressUser" type="string" required>
                          <span>
                            {"The ID of the Botpress user corresponding to this repository owner"}
                          </span>
                        </ResponseField>
                      </Expandable>
                    </ResponseField>
                  </Expandable>
                </ResponseField>
              </Expandable>
            </ResponseField>

            <ResponseField name="source" type="object" required>
              <span>
                {"The source repository and branch of the pull request"}
              </span>

              <Expandable>
                <ResponseField name="ref" type="string" required>
                  <span>
                    {"The name of the branch"}
                  </span>
                </ResponseField>

                <ResponseField name="label" type="string" required>
                  <span>
                    {"The display label of the branch"}
                  </span>
                </ResponseField>

                <ResponseField name="repository" type="object" required>
                  <span>
                    {"The repository the branch belongs to"}
                  </span>

                  <Expandable>
                    <ResponseField name="id" type="number" required>
                      <span>
                        {"Unique identifier of the repository"}
                      </span>
                    </ResponseField>

                    <ResponseField name="nodeId" type="string" required>
                      <span>
                        {"Node ID for GraphQL"}
                      </span>
                    </ResponseField>

                    <ResponseField name="url" type="string" required>
                      <span>
                        {"URL of the repository"}
                      </span>
                    </ResponseField>

                    <ResponseField name="name" type="string" required>
                      <span>
                        {"Name of the repository"}
                      </span>
                    </ResponseField>

                    <ResponseField name="owner" type="object" required>
                      <span>
                        {"The owner of the repository"}
                      </span>

                      <Expandable>
                        <ResponseField name="id" type="number" required>
                          <span>
                            {"Unique identifier of the repository owner"}
                          </span>
                        </ResponseField>

                        <ResponseField name="nodeId" type="string" required>
                          <span>
                            {"Node ID for GraphQL"}
                          </span>
                        </ResponseField>

                        <ResponseField name="url" type="string" required>
                          <span>
                            {"URL of the repository owner"}
                          </span>
                        </ResponseField>

                        <ResponseField name="name" type="string" required>
                          <span>
                            {"Name of the repository owner"}
                          </span>
                        </ResponseField>

                        <ResponseField name="handle" type="string" required>
                          <span>
                            {"The handle of the repository owner"}
                          </span>
                        </ResponseField>

                        <ResponseField name="botpressUser" type="string" required>
                          <span>
                            {"The ID of the Botpress user corresponding to this repository owner"}
                          </span>
                        </ResponseField>
                      </Expandable>
                    </ResponseField>
                  </Expandable>
                </ResponseField>
              </Expandable>
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="commitId" type="string" required>
          <span>
            {"The commit ID of the review"}
          </span>
        </ResponseField>

        <ResponseField name="state" type="enum<string>" required>
          <span>
            {"The state of the review"}
          </span>

          Available options: `APPROVED`, `CHANGES_REQUESTED`, `COMMENTED`, `DISMISSED`
        </ResponseField>

        <ResponseField name="author" type="object" required>
          <span>
            {"The author of the review"}
          </span>

          <Expandable>
            <ResponseField name="id" type="number" required>
              <span>
                {"Unique identifier of the review author"}
              </span>
            </ResponseField>

            <ResponseField name="nodeId" type="string" required>
              <span>
                {"Node ID for GraphQL"}
              </span>
            </ResponseField>

            <ResponseField name="url" type="string" required>
              <span>
                {"URL of the review author"}
              </span>
            </ResponseField>

            <ResponseField name="name" type="string" required>
              <span>
                {"Name of the review author"}
              </span>
            </ResponseField>

            <ResponseField name="handle" type="string" required>
              <span>
                {"The handle of the review author"}
              </span>
            </ResponseField>

            <ResponseField name="botpressUser" type="string" required>
              <span>
                {"The ID of the Botpress user corresponding to this review author"}
              </span>
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="body" type="string" required>
          <span>
            {"The body of the review"}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="eventSender" type="object" required>
      <span>
        {"The user who triggered the event"}
      </span>

      <Expandable>
        <ResponseField name="id" type="number" required>
          <span>
            {"Unique identifier of the user"}
          </span>
        </ResponseField>

        <ResponseField name="nodeId" type="string" required>
          <span>
            {"Node ID for GraphQL"}
          </span>
        </ResponseField>

        <ResponseField name="url" type="string" required>
          <span>
            {"URL of the user"}
          </span>
        </ResponseField>

        <ResponseField name="name" type="string" required>
          <span>
            {"Name of the user"}
          </span>
        </ResponseField>

        <ResponseField name="handle" type="string" required>
          <span>
            {"The handle of the user"}
          </span>
        </ResponseField>

        <ResponseField name="botpressUser" type="string" required>
          <span>
            {"The ID of the Botpress user corresponding to this user"}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>
