> ## 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.

# Linear

> Connect your bot to Linear 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"
  }
};

<OpenInHub integration={integrationVersions.linear} />

The official Linear integration lets your bot automate issue workflows and react to repository file events.

## Setup

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

      * A [published bot](/get-started/quick-start)
      * A [Linear](https://linear.app) account with access to the workspace you want to connect
    </Info>

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

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

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

      <Step>
        Follow the on-screen instructions to connect Botpress to your Linear workspace.
      </Step>
    </Steps>

    <Note>
      When using this configuration mode, Botpress connects to Linear using OAuth. Actions taken by the bot use the Linear account that completed authorization.

      If you need an API key, webhook signing secret, or more control over how Linear sends events to Botpress, use [Manual configuration](#manual-configuration) instead.
    </Note>
  </Tab>

  <Tab title="Manual configuration">
    For advanced use cases, you can configure the integration with a Linear **API key** and **Webhook Signing Secret** instead of OAuth.

    <Info>
      You will need:

      * A [published bot](/get-started/quick-start)
      * A [Linear](https://linear.app) account with access to the workspace you want to connect
    </Info>

    ### Creating a Linear API key

    <Steps>
      <Step>
        On Linear, navigate to your account settings and select the **API** tab in the navigation sidebar.
      </Step>

      <Step>
        Under **Personal API keys**, enter a name for your API key and select **Create new API key**.
      </Step>

      <Step>
        Save this API key in a secure location. You will need it to configure the Linear integration in Botpress.

        <Note>
          Treat API keys like passwords. Store them securely and rotate them if they’re exposed.
        </Note>
      </Step>
    </Steps>

    ### Subscribing to Linear webhook events

    <Steps>
      <Step>
        In Botpress, open the **Configuration** page for the Linear integration.
      </Step>

      <Step>
        Copy the **Webhook URL** generated by Botpress.
      </Step>

      <Step>
        On Linear, go to your account settings and select the **API** tab in the navigation sidebar.
      </Step>

      <Step>
        Under **Webhooks**, select **Create new webhook**.
      </Step>

      <Step>
        Enter a name for the webhook and paste the webhook URL from Botpress into the **URL** field.
      </Step>

      <Step>
        Copy the **webhook signing secret** and store it in a secure location. You will need it to configure the Linear integration in Botpress.
      </Step>

      <Step>
        Under **Data change events**, choose the events to subscribe to:

        * **Issues**: Receive notifications when issues are created, updated, or deleted.
        * **Comments**: Receive notifications when comments are added to issues.
      </Step>

      <Step>
        Under **Teams**, select the teams you want to receive notifications for.
      </Step>

      <Step>
        Select **Create webhook** to save your changes.
      </Step>
    </Steps>

    ### Configuring the Linear integration in Botpress

    <Steps>
      <Step>
        In Botpress, open the **Configuration** page for the Linear integration.
      </Step>

      <Step>
        Select **Configure Linear with an API Key**.
      </Step>

      <Step>
        Enter the API key from Linear in the **API Key** field.
      </Step>

      <Step>
        Enter the webhook signing secret from Linear in the **Webhook Signing Secret** field.
      </Step>

      <Step>
        Save the configuration and enable the integration.
      </Step>
    </Steps>

    <Check>
      Your Linear integration is ready. Use the **Cards** and **Triggers** sections below to build your workflows.
    </Check>
  </Tab>
</Tabs>

***

## Cards

{/* vale off */}

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

### Create Issue

<span>
  {"Create an issue on Linear"}
</span>

<ResponseField name="input" type="object">
  <Expandable>
    <ResponseField name="title" type="string" required>
      <span>
        {"The issue's title"}
      </span>
    </ResponseField>

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

    <ResponseField name="priority" type="number">
      <span>
        {"0 = none, 1 = urgent, 2 = high, 3 = medium, 4 = low"}
      </span>
    </ResponseField>

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

    <ResponseField name="labels" type="array">
      <span>
        {"One or multiple labels to assign to this issue"}
      </span>
    </ResponseField>

    <ResponseField name="project" type="string">
      <span>
        {"A project to associate to this issue"}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

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

      <Expandable>
        <ResponseField name="title" type="string" required>
          <span>
            {"The issue title on Linear, such as \"Fix the bug"}
          </span>
        </ResponseField>

        <ResponseField name="number" type="number" required>
          <span>
            {"The issue number on Linear, such as \"123\" in XXX-123"}
          </span>
        </ResponseField>

        <ResponseField name="createdAt" type="string (date-time)" required>
          <span>
            {"The ISO date the issue was created"}
          </span>
        </ResponseField>

        <ResponseField name="updatedAt" type="string (date-time)" required>
          <span>
            {"The ISO date the issue was last updated"}
          </span>
        </ResponseField>

        <ResponseField name="identifier" type="string" required>
          <span>
            {"Issue's human readable identifier (e.g. XXX-123)"}
          </span>
        </ResponseField>

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

        <ResponseField name="priority" type="number" required>
          <span>
            {"Priority of the issue, such as \"1\" for \"Urgent\", 0 for \"No Priority\""}
          </span>
        </ResponseField>

        <ResponseField name="description" type="string">
          <span>
            {"A markdown description of the issue. Images and videos are inlined using markdown links."}
          </span>
        </ResponseField>

        <ResponseField name="id" type="string" required>
          <span>
            {"The issue ID on Linear"}
          </span>
        </ResponseField>

        <ResponseField name="estimate" type="number">
          <span>
            {"The estimate of the issue in points"}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

### Delete Issue

<span>
  {"Delete an issue on Linear"}
</span>

<ResponseField name="input" type="object">
  <Expandable>
    <ResponseField name="id" type="string" required>
      <span>
        {"The issue ID on Linear. Ex: {{event.payload.linearIds.issueId}}"}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="output" type="object">
  This Card has no output.
</ResponseField>

### Find Target

<span>
  {"Find a target on Linear"}
</span>

<ResponseField name="input" type="object">
  <Expandable>
    <ResponseField name="query" type="string" required>
      <span>
        {"Issue title, description, or number"}
      </span>
    </ResponseField>

    <ResponseField name="channel" type="enum<string>" required>
      <span>
        {"The channel to search in"}
      </span>

      Available options: `issue`
    </ResponseField>
  </Expandable>
</ResponseField>

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

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

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

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

          Available options: `issue`
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

### Get Issue

<span>
  {"Get an issue by its ID"}
</span>

<ResponseField name="input" type="object">
  <Expandable>
    <ResponseField name="issueId" type="string" required>
      <span>
        {"The issue ID on Linear. Ex: {{event.payload.linearIds.issueId}}"}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="output" type="object">
  <span>
    {"The issue found"}
  </span>

  <Expandable>
    <ResponseField name="title" type="string" required>
      <span>
        {"The issue title on Linear, such as \"Fix the bug"}
      </span>
    </ResponseField>

    <ResponseField name="number" type="number" required>
      <span>
        {"The issue number on Linear, such as \"123\" in XXX-123"}
      </span>
    </ResponseField>

    <ResponseField name="createdAt" type="string (date-time)" required>
      <span>
        {"The ISO date the issue was created"}
      </span>
    </ResponseField>

    <ResponseField name="updatedAt" type="string (date-time)" required>
      <span>
        {"The ISO date the issue was last updated"}
      </span>
    </ResponseField>

    <ResponseField name="identifier" type="string" required>
      <span>
        {"Issue's human readable identifier (e.g. XXX-123)"}
      </span>
    </ResponseField>

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

    <ResponseField name="priority" type="number" required>
      <span>
        {"Priority of the issue, such as \"1\" for \"Urgent\", 0 for \"No Priority\""}
      </span>
    </ResponseField>

    <ResponseField name="description" type="string">
      <span>
        {"A markdown description of the issue. Images and videos are inlined using markdown links."}
      </span>
    </ResponseField>

    <ResponseField name="id" type="string" required>
      <span>
        {"The issue ID on Linear"}
      </span>
    </ResponseField>

    <ResponseField name="estimate" type="number">
      <span>
        {"The estimate of the issue in points"}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

### Get or Create a Conversation

<span>
  {"Proactively create a conversation from a bot"}
</span>

<ResponseField name="input" type="object">
  <Expandable>
    <ResponseField name="conversation" type="object" required>
      <Expandable>
        <ResponseField name="id" type="string" required>
          <span>
            {"The issue ID on Linear"}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

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

### Get User Profile

<span>
  {"Get a user profile from Linear"}
</span>

<ResponseField name="input" type="object">
  <Expandable>
    <ResponseField name="linearUserId" type="string">
      <span>
        {"The user's ID on Linear. Ex: {{event.payload.linearIds.creatorId}}. If omitted, returns the current user."}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="output" type="object">
  <span>
    {"The user profile"}
  </span>

  <Expandable>
    <ResponseField name="linearId" type="string" required>
      <span>
        {"Linear User ID"}
      </span>
    </ResponseField>

    <ResponseField name="admin" type="boolean" required>
      <span>
        {"Indicates if the user is an admin of the organization"}
      </span>
    </ResponseField>

    <ResponseField name="archivedAt" type="string (date-time)">
      <span>
        {"Date when the user was archived"}
      </span>
    </ResponseField>

    <ResponseField name="avatarUrl" type="string (uri)">
      <span>
        {"The URL for the profile picture"}
      </span>
    </ResponseField>

    <ResponseField name="createdAt" type="string (date-time)" required>
      <span>
        {"Date when the user was created"}
      </span>
    </ResponseField>

    <ResponseField name="description" type="string">
      <span>
        {"A short description of the user, either its title or bio"}
      </span>
    </ResponseField>

    <ResponseField name="displayName" type="string" required>
      <span>
        {"The user's display (nick) name. Unique within each organization"}
      </span>
    </ResponseField>

    <ResponseField name="guest" type="boolean" required>
      <span>
        {"Whether the user is a guest in the workspace and limited to accessing a subset of teams"}
      </span>
    </ResponseField>

    <ResponseField name="email" type="string" required>
      <span>
        {"The user's email address"}
      </span>
    </ResponseField>

    <ResponseField name="isMe" type="boolean" required>
      <span>
        {"Whether the user is the currently authenticated user"}
      </span>
    </ResponseField>

    <ResponseField name="url" type="string" required>
      <span>
        {"User's profile URL"}
      </span>
    </ResponseField>

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

    <ResponseField name="name" type="string" required>
      <span>
        {"The user's full name"}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

### Issue Delete

<ResponseField name="input" type="object">
  <Expandable>
    <ResponseField name="id" type="string" required>
      <span>
        {"The unique identifier for the deletable item"}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="output" type="object">
  This Card has no output.
</ResponseField>

### Issue List

<ResponseField name="input" type="object">
  <Expandable>
    <ResponseField name="nextToken" type="string">
      <span>
        {"The token to get a given list of items (e.g. a parent record ID, or a page index)."}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="output" type="object">
  <Expandable>
    <ResponseField name="items" type="array" required />

    <ResponseField name="meta" type="object" required>
      <span>
        {"Metadata for the list operation"}
      </span>

      <Expandable>
        <ResponseField name="nextToken" type="string">
          <span>
            {"The token to get a given list of items (e.g. a parent record ID, or a page index)."}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

### List Issues

<span>
  {"List issues from Linear"}
</span>

<ResponseField name="input" type="object">
  <Expandable>
    <ResponseField name="count" type="number" default={10}>
      <span>
        {"The number of issues to return"}
      </span>
    </ResponseField>

    <ResponseField name="startCursor" type="string">
      <span>
        {"The cursor to start from"}
      </span>
    </ResponseField>

    <ResponseField name="teamId" type="string">
      <span>
        {"The team ID to filter by"}
      </span>
    </ResponseField>

    <ResponseField name="startDate" type="string">
      <span>
        {"Ignore issues created before this date"}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="output" type="object">
  <Expandable>
    <ResponseField name="issues" type="array" required>
      <span>
        {"The list of matching issues"}
      </span>

      <Expandable title="array item properties">
        <ResponseField name="title" type="string" required>
          <span>
            {"The issue title on Linear, such as \"Fix the bug"}
          </span>
        </ResponseField>

        <ResponseField name="number" type="number" required>
          <span>
            {"The issue number on Linear, such as \"123\" in XXX-123"}
          </span>
        </ResponseField>

        <ResponseField name="createdAt" type="string (date-time)" required>
          <span>
            {"The ISO date the issue was created"}
          </span>
        </ResponseField>

        <ResponseField name="updatedAt" type="string (date-time)" required>
          <span>
            {"The ISO date the issue was last updated"}
          </span>
        </ResponseField>

        <ResponseField name="identifier" type="string" required>
          <span>
            {"Issue's human readable identifier (e.g. XXX-123)"}
          </span>
        </ResponseField>

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

        <ResponseField name="priority" type="number" required>
          <span>
            {"Priority of the issue, such as \"1\" for \"Urgent\", 0 for \"No Priority\""}
          </span>
        </ResponseField>

        <ResponseField name="description" type="string">
          <span>
            {"A markdown description of the issue. Images and videos are inlined using markdown links."}
          </span>
        </ResponseField>

        <ResponseField name="id" type="string" required>
          <span>
            {"The issue ID on Linear"}
          </span>
        </ResponseField>

        <ResponseField name="estimate" type="number">
          <span>
            {"The estimate of the issue in points"}
          </span>
        </ResponseField>

        <ResponseField name="linearIds" type="object" required>
          <span>
            {"The Linear IDs of the referenced entities"}
          </span>

          <Expandable>
            <ResponseField name="creatorId" type="string">
              <span>
                {"The internal Linear User ID of the user who created the issue"}
              </span>
            </ResponseField>

            <ResponseField name="labelIds" type="array">
              <span>
                {"The internal Linear Label IDs associated with the issue"}
              </span>
            </ResponseField>

            <ResponseField name="issueId" type="string" required>
              <span>
                {"The internal Linear Issue ID"}
              </span>
            </ResponseField>

            <ResponseField name="teamId" type="string">
              <span>
                {"The internal Linear Team ID"}
              </span>
            </ResponseField>

            <ResponseField name="projectId" type="string">
              <span>
                {"The internal Linear Project ID"}
              </span>
            </ResponseField>

            <ResponseField name="assigneeId" type="string">
              <span>
                {"The internal Linear Assignee ID"}
              </span>
            </ResponseField>

            <ResponseField name="subscriberIds" type="array">
              <span>
                {"The internal Linear Subscriber User IDs"}
              </span>
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="nextCursor" type="string">
      <span>
        {"The cursor to fetch the next page"}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

### List States

<span>
  {"List states from Linear"}
</span>

<ResponseField name="input" type="object">
  <Expandable>
    <ResponseField name="count" type="number" default={10}>
      <span>
        {"The number of states to return"}
      </span>
    </ResponseField>

    <ResponseField name="startCursor" type="string">
      <span>
        {"The cursor to start from"}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

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

      <Expandable title="array item properties">
        <ResponseField name="id" type="string" required>
          <span>
            {"The unique identifier of the entity"}
          </span>
        </ResponseField>

        <ResponseField name="name" type="string" required>
          <span>
            {"The state's name"}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="nextCursor" type="string">
      <span>
        {"The cursor to fetch the next page"}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

### List Teams

<span>
  {"List teams from Linear"}
</span>

<ResponseField name="input" type="object">
  This Card has no input fields.
</ResponseField>

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

      <Expandable title="array item properties">
        <ResponseField name="id" type="string" required>
          <span>
            {"The unique identifier of the entity"}
          </span>
        </ResponseField>

        <ResponseField name="key" type="string" required>
          <span>
            {"The team's key"}
          </span>
        </ResponseField>

        <ResponseField name="name" type="string" required>
          <span>
            {"The team's name"}
          </span>
        </ResponseField>

        <ResponseField name="description" type="string">
          <span>
            {"The team's description"}
          </span>
        </ResponseField>

        <ResponseField name="icon" type="string">
          <span>
            {"The icon of the team"}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

### List Users

<span>
  {"List users from Linear"}
</span>

<ResponseField name="input" type="object">
  <Expandable>
    <ResponseField name="count" type="number" default={10}>
      <span>
        {"The number of users to return"}
      </span>
    </ResponseField>

    <ResponseField name="startCursor" type="string">
      <span>
        {"The cursor to start from"}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="output" type="object">
  <Expandable>
    <ResponseField name="users" type="array" required>
      <span>
        {"The list of matching users"}
      </span>

      <Expandable title="array item properties">
        <ResponseField name="id" type="string" required>
          <span>
            {"The user ID on Linear"}
          </span>
        </ResponseField>

        <ResponseField name="email" type="string" required>
          <span>
            {"The user's email address"}
          </span>
        </ResponseField>

        <ResponseField name="name" type="string" required>
          <span>
            {"The user's nickname"}
          </span>
        </ResponseField>

        <ResponseField name="displayName" type="string" required>
          <span>
            {"The user's display name"}
          </span>
        </ResponseField>

        <ResponseField name="avatarUrl" type="string">
          <span>
            {"The URL of the user avatar"}
          </span>
        </ResponseField>

        <ResponseField name="description" type="string">
          <span>
            {"The user's description, such as their title or bio"}
          </span>
        </ResponseField>

        <ResponseField name="lastSeen" type="string">
          <span>
            {"The last time the user was seen"}
          </span>
        </ResponseField>

        <ResponseField name="updatedAt" type="string (date-time)" required>
          <span>
            {"The last time the user was updated"}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="nextCursor" type="string">
      <span>
        {"The cursor to fetch the next page"}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

### Mark Issue as Duplicate

<span>
  {"Mark an issue as a duplicate of another"}
</span>

<ResponseField name="input" type="object">
  <Expandable>
    <ResponseField name="issueId" type="string" required>
      <span>
        {"The issue ID on Linear. Ex: {{event.payload.linearIds.issueId}}"}
      </span>
    </ResponseField>

    <ResponseField name="relatedIssueId" type="string" required>
      <span>
        {"The ID of the existing issue on Linear"}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="output" type="object">
  This Card has no output.
</ResponseField>

### Resolve Comment

<span>
  {"Resolve a comment by id"}
</span>

<ResponseField name="input" type="object">
  <Expandable>
    <ResponseField name="id" type="string" required>
      <span>
        {"The comment ID"}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="output" type="object">
  <Expandable>
    <ResponseField name="success" type="boolean" required>
      <span>
        {"Whether the operation was successful"}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

### Send Raw GraphQL Query

<span>
  {"Send a raw GraphQL query to the linear API"}
</span>

<ResponseField name="input" type="object">
  <Expandable>
    <ResponseField name="query" type="string" required>
      <span>
        {"The GraphQL query"}
      </span>
    </ResponseField>

    <ResponseField name="parameters" type="array">
      <span>
        {"The query parameters"}
      </span>

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

        <ResponseField name="value" type="string">
          <span>
            {"The parameter value"}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="output" type="object">
  <Expandable>
    <ResponseField name="result" type="string">
      <span>
        {"The query result"}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

### Update Issue

<span>
  {"Update an issue on Linear"}
</span>

<ResponseField name="input" type="object">
  <Expandable>
    <ResponseField name="issueId" type="string" required>
      <span>
        {"The issue ID on Linear. Example: {{event.payload.id}}"}
      </span>
    </ResponseField>

    <ResponseField name="priority" type="number">
      <span>
        {"0 = none, 1 = urgent, 2 = high, 3 = medium, 4 = low"}
      </span>
    </ResponseField>

    <ResponseField name="teamName" type="string">
      <span>
        {"Type a name to change the assigned team of the issue"}
      </span>
    </ResponseField>

    <ResponseField name="labels" type="array">
      <span>
        {"One or multiple labels to assign to this issue"}
      </span>
    </ResponseField>

    <ResponseField name="project" type="string">
      <span>
        {"A project to associate to this issue"}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="output" type="object">
  <Expandable>
    <ResponseField name="issue" type="object">
      <span>
        {"The updated issue"}
      </span>

      <Expandable>
        <ResponseField name="title" type="string" required>
          <span>
            {"The issue title on Linear, such as \"Fix the bug"}
          </span>
        </ResponseField>

        <ResponseField name="number" type="number" required>
          <span>
            {"The issue number on Linear, such as \"123\" in XXX-123"}
          </span>
        </ResponseField>

        <ResponseField name="createdAt" type="string (date-time)" required>
          <span>
            {"The ISO date the issue was created"}
          </span>
        </ResponseField>

        <ResponseField name="updatedAt" type="string (date-time)" required>
          <span>
            {"The ISO date the issue was last updated"}
          </span>
        </ResponseField>

        <ResponseField name="identifier" type="string" required>
          <span>
            {"Issue's human readable identifier (e.g. XXX-123)"}
          </span>
        </ResponseField>

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

        <ResponseField name="priority" type="number" required>
          <span>
            {"Priority of the issue, such as \"1\" for \"Urgent\", 0 for \"No Priority\""}
          </span>
        </ResponseField>

        <ResponseField name="description" type="string">
          <span>
            {"A markdown description of the issue. Images and videos are inlined using markdown links."}
          </span>
        </ResponseField>

        <ResponseField name="id" type="string" required>
          <span>
            {"The issue ID on Linear"}
          </span>
        </ResponseField>

        <ResponseField name="estimate" type="number">
          <span>
            {"The estimate of the issue in points"}
          </span>
        </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 Created

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

<ResponseField name="payload" type="object">
  <Expandable>
    <ResponseField name="title" type="string" required>
      <span>
        {"The issue title on Linear, such as \"Fix the bug"}
      </span>
    </ResponseField>

    <ResponseField name="number" type="number" required>
      <span>
        {"The issue number on Linear, such as \"123\" in XXX-123"}
      </span>
    </ResponseField>

    <ResponseField name="createdAt" type="string (date-time)" required>
      <span>
        {"The ISO date the issue was created"}
      </span>
    </ResponseField>

    <ResponseField name="updatedAt" type="string (date-time)" required>
      <span>
        {"The ISO date the issue was last updated"}
      </span>
    </ResponseField>

    <ResponseField name="identifier" type="string" required>
      <span>
        {"Issue's human readable identifier (e.g. XXX-123)"}
      </span>
    </ResponseField>

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

    <ResponseField name="priority" type="number" required>
      <span>
        {"Priority of the issue, such as \"1\" for \"Urgent\", 0 for \"No Priority\""}
      </span>
    </ResponseField>

    <ResponseField name="description" type="string">
      <span>
        {"A markdown description of the issue. Images and videos are inlined using markdown links."}
      </span>
    </ResponseField>

    <ResponseField name="teamName" type="string">
      <span>
        {"The name of the Linear team the issue currently belongs to, such as \"Customer Support\""}
      </span>
    </ResponseField>

    <ResponseField name="teamKey" type="string">
      <span>
        {"The key of the Linear team the issue currently belongs to, such as \"XXX\" in XXX-123"}
      </span>
    </ResponseField>

    <ResponseField name="status" type="string" required>
      <span>
        {"The issue State name (such as \"In Progress\""}
      </span>
    </ResponseField>

    <ResponseField name="statusColor" type="string" required>
      <span>
        {"The issue State color (#000000 format)"}
      </span>
    </ResponseField>

    <ResponseField name="statusType" type="string" required>
      <span>
        {"The issue State type"}
      </span>
    </ResponseField>

    <ResponseField name="labels" type="array">
      <span>
        {"Label names"}
      </span>
    </ResponseField>

    <ResponseField name="linearIds" type="object" required>
      <span>
        {"The Linear IDs of the referenced entities"}
      </span>

      <Expandable>
        <ResponseField name="creatorId" type="string">
          <span>
            {"The internal Linear User ID of the user who created the issue"}
          </span>
        </ResponseField>

        <ResponseField name="labelIds" type="array">
          <span>
            {"The internal Linear Label IDs associated with the issue"}
          </span>
        </ResponseField>

        <ResponseField name="issueId" type="string" required>
          <span>
            {"The internal Linear Issue ID"}
          </span>
        </ResponseField>

        <ResponseField name="teamId" type="string">
          <span>
            {"The internal Linear Team ID"}
          </span>
        </ResponseField>

        <ResponseField name="projectId" type="string">
          <span>
            {"The internal Linear Project ID"}
          </span>
        </ResponseField>

        <ResponseField name="assigneeId" type="string">
          <span>
            {"The internal Linear Assignee ID"}
          </span>
        </ResponseField>

        <ResponseField name="subscriberIds" type="array">
          <span>
            {"The internal Linear Subscriber User IDs"}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="userId" type="string">
      <span>
        {"The Botpress User ID of the individual who initiated the issue. If not provided, it indicates the issue was generated by the bot."}
      </span>
    </ResponseField>

    <ResponseField name="conversationId" type="string" required>
      <span>
        {"Botpress Conversation ID of the issue"}
      </span>
    </ResponseField>

    <ResponseField name="targets" type="object" required>
      <span>
        {"The issue that was created"}
      </span>

      <Expandable>
        <ResponseField name="issue" type="object">
          <span>
            {"The target issue on Linear"}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

### Issue Deleted

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

<ResponseField name="payload" type="object">
  <Expandable>
    <ResponseField name="title" type="string" required>
      <span>
        {"The issue title on Linear, such as \"Fix the bug"}
      </span>
    </ResponseField>

    <ResponseField name="number" type="number" required>
      <span>
        {"The issue number on Linear, such as \"123\" in XXX-123"}
      </span>
    </ResponseField>

    <ResponseField name="createdAt" type="string (date-time)" required>
      <span>
        {"The ISO date the issue was created"}
      </span>
    </ResponseField>

    <ResponseField name="updatedAt" type="string (date-time)" required>
      <span>
        {"The ISO date the issue was last updated"}
      </span>
    </ResponseField>

    <ResponseField name="identifier" type="string" required>
      <span>
        {"Issue's human readable identifier (e.g. XXX-123)"}
      </span>
    </ResponseField>

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

    <ResponseField name="priority" type="number" required>
      <span>
        {"Priority of the issue, such as \"1\" for \"Urgent\", 0 for \"No Priority\""}
      </span>
    </ResponseField>

    <ResponseField name="description" type="string">
      <span>
        {"A markdown description of the issue. Images and videos are inlined using markdown links."}
      </span>
    </ResponseField>

    <ResponseField name="teamName" type="string">
      <span>
        {"The name of the Linear team the issue currently belongs to, such as \"Customer Support\""}
      </span>
    </ResponseField>

    <ResponseField name="teamKey" type="string">
      <span>
        {"The key of the Linear team the issue currently belongs to, such as \"XXX\" in XXX-123"}
      </span>
    </ResponseField>

    <ResponseField name="status" type="string" required>
      <span>
        {"The issue State name (such as \"In Progress\""}
      </span>
    </ResponseField>

    <ResponseField name="statusColor" type="string" required>
      <span>
        {"The issue State color (#000000 format)"}
      </span>
    </ResponseField>

    <ResponseField name="statusType" type="string" required>
      <span>
        {"The issue State type"}
      </span>
    </ResponseField>

    <ResponseField name="labels" type="array">
      <span>
        {"Label names"}
      </span>
    </ResponseField>

    <ResponseField name="linearIds" type="object" required>
      <span>
        {"The Linear IDs of the referenced entities"}
      </span>

      <Expandable>
        <ResponseField name="creatorId" type="string">
          <span>
            {"The internal Linear User ID of the user who created the issue"}
          </span>
        </ResponseField>

        <ResponseField name="labelIds" type="array">
          <span>
            {"The internal Linear Label IDs associated with the issue"}
          </span>
        </ResponseField>

        <ResponseField name="issueId" type="string" required>
          <span>
            {"The internal Linear Issue ID"}
          </span>
        </ResponseField>

        <ResponseField name="teamId" type="string">
          <span>
            {"The internal Linear Team ID"}
          </span>
        </ResponseField>

        <ResponseField name="projectId" type="string">
          <span>
            {"The internal Linear Project ID"}
          </span>
        </ResponseField>

        <ResponseField name="assigneeId" type="string">
          <span>
            {"The internal Linear Assignee ID"}
          </span>
        </ResponseField>

        <ResponseField name="subscriberIds" type="array">
          <span>
            {"The internal Linear Subscriber User IDs"}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="id" type="string" required>
      <span>
        {"The unique identifier for the deletable item"}
      </span>
    </ResponseField>
  </Expandable>
</ResponseField>

### Issue Updated

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

<ResponseField name="payload" type="object">
  <Expandable>
    <ResponseField name="title" type="string" required>
      <span>
        {"The issue title on Linear, such as \"Fix the bug"}
      </span>
    </ResponseField>

    <ResponseField name="number" type="number" required>
      <span>
        {"The issue number on Linear, such as \"123\" in XXX-123"}
      </span>
    </ResponseField>

    <ResponseField name="createdAt" type="string (date-time)" required>
      <span>
        {"The ISO date the issue was created"}
      </span>
    </ResponseField>

    <ResponseField name="updatedAt" type="string (date-time)" required>
      <span>
        {"The ISO date the issue was last updated"}
      </span>
    </ResponseField>

    <ResponseField name="identifier" type="string" required>
      <span>
        {"Issue's human readable identifier (e.g. XXX-123)"}
      </span>
    </ResponseField>

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

    <ResponseField name="priority" type="number" required>
      <span>
        {"Priority of the issue, such as \"1\" for \"Urgent\", 0 for \"No Priority\""}
      </span>
    </ResponseField>

    <ResponseField name="description" type="string">
      <span>
        {"A markdown description of the issue. Images and videos are inlined using markdown links."}
      </span>
    </ResponseField>

    <ResponseField name="teamName" type="string">
      <span>
        {"The name of the Linear team the issue currently belongs to, such as \"Customer Support\""}
      </span>
    </ResponseField>

    <ResponseField name="teamKey" type="string">
      <span>
        {"The key of the Linear team the issue currently belongs to, such as \"XXX\" in XXX-123"}
      </span>
    </ResponseField>

    <ResponseField name="status" type="string" required>
      <span>
        {"The issue State name (such as \"In Progress\""}
      </span>
    </ResponseField>

    <ResponseField name="statusColor" type="string" required>
      <span>
        {"The issue State color (#000000 format)"}
      </span>
    </ResponseField>

    <ResponseField name="statusType" type="string" required>
      <span>
        {"The issue State type"}
      </span>
    </ResponseField>

    <ResponseField name="labels" type="array">
      <span>
        {"Label names"}
      </span>
    </ResponseField>

    <ResponseField name="linearIds" type="object" required>
      <span>
        {"The Linear IDs of the referenced entities"}
      </span>

      <Expandable>
        <ResponseField name="creatorId" type="string">
          <span>
            {"The internal Linear User ID of the user who created the issue"}
          </span>
        </ResponseField>

        <ResponseField name="labelIds" type="array">
          <span>
            {"The internal Linear Label IDs associated with the issue"}
          </span>
        </ResponseField>

        <ResponseField name="issueId" type="string" required>
          <span>
            {"The internal Linear Issue ID"}
          </span>
        </ResponseField>

        <ResponseField name="teamId" type="string">
          <span>
            {"The internal Linear Team ID"}
          </span>
        </ResponseField>

        <ResponseField name="projectId" type="string">
          <span>
            {"The internal Linear Project ID"}
          </span>
        </ResponseField>

        <ResponseField name="assigneeId" type="string">
          <span>
            {"The internal Linear Assignee ID"}
          </span>
        </ResponseField>

        <ResponseField name="subscriberIds" type="array">
          <span>
            {"The internal Linear Subscriber User IDs"}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="userId" type="string">
      <span>
        {"The Botpress User ID of the individual who initiated the issue. If not provided, it indicates the issue was generated by the bot."}
      </span>
    </ResponseField>

    <ResponseField name="conversationId" type="string" required>
      <span>
        {"Botpress Conversation ID of the issue"}
      </span>
    </ResponseField>

    <ResponseField name="targets" type="object" required>
      <span>
        {"The issue that was updated"}
      </span>

      <Expandable>
        <ResponseField name="issue" type="object">
          <span>
            {"The target issue on Linear"}
          </span>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>
