[{"data":1,"prerenderedAt":924},["ShallowReactive",2],{"navigation":3,"\u002Fdocs\u002Fcore-concepts\u002Ftriggers":81,"\u002Fdocs\u002Fcore-concepts\u002Ftriggers-surround":919},[4,77],{"title":5,"_path":6,"children":7,"icon":76},"Docs","\u002Fdocs",[8,23,41,51,63,69],{"title":9,"_path":10,"children":11},"Getting Started","\u002Fdocs\u002Fgetting-started",[12,14,17,20],{"title":13,"_path":10},"Introduction to Datafuse",{"title":15,"_path":16},"Installation Guide","\u002Fdocs\u002Fgetting-started\u002Finstallation",{"title":18,"_path":19},"5-Minute Quickstart","\u002Fdocs\u002Fgetting-started\u002Fquickstart",{"title":21,"_path":22},"5-Minute Quickstart with curl","\u002Fdocs\u002Fgetting-started\u002Fcurl",{"title":24,"_path":25,"children":26},"Core Concepts","\u002Fdocs\u002Fcore-concepts",[27,29,32,35,38],{"title":28,"_path":25},"Conceptual Landscape",{"title":30,"_path":31},"Adding Custom Integrations","\u002Fdocs\u002Fcore-concepts\u002Fcustom-integrations",{"title":33,"_path":34},"Managed Authentication","\u002Fdocs\u002Fcore-concepts\u002Fauthentication",{"title":36,"_path":37},"Bi-Directional Triggers","\u002Fdocs\u002Fcore-concepts\u002Ftriggers",{"title":39,"_path":40},"Observability & Auditing","\u002Fdocs\u002Fcore-concepts\u002Fobservability",{"title":42,"_path":43,"children":44},"Model Context Protocol","\u002Fdocs\u002Fmcp",[45,48],{"title":46,"_path":47},"Introduction to MCP","\u002Fdocs\u002Fmcp\u002Fintroduction",{"title":49,"_path":50},"Operating MCP Servers","\u002Fdocs\u002Fmcp\u002Fmcp-servers",{"title":52,"_path":53,"children":54},"Client SDKs","\u002Fdocs\u002Fsdks",[55,57,60],{"title":56,"_path":53},"Client Overview",{"title":58,"_path":59},"Python Client Guide","\u002Fdocs\u002Fsdks\u002Fpython",{"title":61,"_path":62},"TypeScript Client Guide","\u002Fdocs\u002Fsdks\u002Ftypescript",{"title":64,"_path":65,"children":66},"Self-Hosting & VPC","\u002Fdocs\u002Fself-hosting",[67],{"title":68,"_path":65},"Self-Hosting Guide",{"title":70,"_path":71,"children":72},"Comparisons","\u002Fdocs\u002Fcomparisons",[73],{"title":74,"_path":75},"Datafuse vs. Composio","\u002Fdocs\u002Fcomparisons\u002Fcomposio","i-heroicons-book-open",{"title":78,"_path":79,"icon":80},"Pricing","\u002Fpricing","i-heroicons-credit-card",{"_path":37,"_dir":82,"_draft":83,"_partial":83,"_locale":84,"title":36,"description":85,"body":86,"_type":913,"_id":914,"_source":915,"_file":916,"_stem":917,"_extension":918},"core-concepts",false,"","Connect active webhooks and propagate external system events directly back into your AI agent loops.",{"type":87,"children":88,"toc":905},"root",[89,104,108,115,120,178,181,187,192,199,204,396,399,405,410,453,456,462,467,472,885,899],{"type":90,"tag":91,"props":92,"children":93},"element","p",{},[94,97,102],{"type":95,"value":96},"text","AI agents shouldn't simply execute tasks when prompted; they should actively monitor environments and react to events. Datafuse's ",{"type":90,"tag":98,"props":99,"children":100},"strong",{},[101],{"type":95,"value":36},{"type":95,"value":103}," enable your agents to listen to real-world triggers, such as incoming Slack messages, new GitHub pull requests, or database updates, and respond instantly.",{"type":90,"tag":105,"props":106,"children":107},"hr",{},[],{"type":90,"tag":109,"props":110,"children":112},"h2",{"id":111},"architecture-of-event-driven-agents",[113],{"type":95,"value":114},"Architecture of Event-Driven Agents",{"type":90,"tag":91,"props":116,"children":117},{},[118],{"type":95,"value":119},"Datafuse manages the entire webhook ingress, event parsing, and routing pipeline, acting as a broker that translates platform-specific payloads into normalized agent events:",{"type":90,"tag":121,"props":122,"children":126},"pre",{"className":123,"code":124,"language":125,"meta":84,"style":84},"language-mermaid shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","graph TD\n    App[External App: Slack \u002F GitHub] -->|1. Event Webhook| DF[Datafuse Webhook Ingress]\n    DF -->|2. Verify Signature| Broker[Trigger Broker]\n    Broker -->|3. Normalize Event Payload| AgentLoop[AI Agent Event Listener]\n    AgentLoop -->|4. Trigger Action| LLM[LLM Reasoning & execution]\n","mermaid",[127],{"type":90,"tag":128,"props":129,"children":130},"code",{"__ignoreMap":84},[131,142,151,160,169],{"type":90,"tag":132,"props":133,"children":136},"span",{"class":134,"line":135},"line",1,[137],{"type":90,"tag":132,"props":138,"children":139},{},[140],{"type":95,"value":141},"graph TD\n",{"type":90,"tag":132,"props":143,"children":145},{"class":134,"line":144},2,[146],{"type":90,"tag":132,"props":147,"children":148},{},[149],{"type":95,"value":150},"    App[External App: Slack \u002F GitHub] -->|1. Event Webhook| DF[Datafuse Webhook Ingress]\n",{"type":90,"tag":132,"props":152,"children":154},{"class":134,"line":153},3,[155],{"type":90,"tag":132,"props":156,"children":157},{},[158],{"type":95,"value":159},"    DF -->|2. Verify Signature| Broker[Trigger Broker]\n",{"type":90,"tag":132,"props":161,"children":163},{"class":134,"line":162},4,[164],{"type":90,"tag":132,"props":165,"children":166},{},[167],{"type":95,"value":168},"    Broker -->|3. Normalize Event Payload| AgentLoop[AI Agent Event Listener]\n",{"type":90,"tag":132,"props":170,"children":172},{"class":134,"line":171},5,[173],{"type":90,"tag":132,"props":174,"children":175},{},[176],{"type":95,"value":177},"    AgentLoop -->|4. Trigger Action| LLM[LLM Reasoning & execution]\n",{"type":90,"tag":105,"props":179,"children":180},{},[],{"type":90,"tag":109,"props":182,"children":184},{"id":183},"_1-subscribing-to-webhooks",[185],{"type":95,"value":186},"1. Subscribing to Webhooks",{"type":90,"tag":91,"props":188,"children":189},{},[190],{"type":95,"value":191},"Each compiled provider toolkit can define event triggers within its integration YAML. When a user connects their account, Datafuse automatically registers a webhook URL with the third-party application on behalf of that user.",{"type":90,"tag":193,"props":194,"children":196},"h3",{"id":195},"defining-triggers-in-yaml",[197],{"type":95,"value":198},"Defining Triggers in YAML",{"type":90,"tag":91,"props":200,"children":201},{},[202],{"type":95,"value":203},"Here is how triggers are registered inside a connector's YAML configuration:",{"type":90,"tag":121,"props":205,"children":209},{"className":206,"code":207,"language":208,"meta":84,"style":84},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","triggers:\n  - slug: new_github_issue\n    title: New Issue Created\n    description: Fires whenever a new issue is opened inside a repository.\n    event_type: github.issue.opened\n    input_schema:\n      type: object\n      properties:\n        repository:\n          type: string\n          description: The repository name.\n","yaml",[210],{"type":90,"tag":128,"props":211,"children":212},{"__ignoreMap":84},[213,228,252,269,286,303,316,334,347,360,378],{"type":90,"tag":132,"props":214,"children":215},{"class":134,"line":135},[216,222],{"type":90,"tag":132,"props":217,"children":219},{"style":218},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[220],{"type":95,"value":221},"triggers",{"type":90,"tag":132,"props":223,"children":225},{"style":224},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[226],{"type":95,"value":227},":\n",{"type":90,"tag":132,"props":229,"children":230},{"class":134,"line":144},[231,236,241,246],{"type":90,"tag":132,"props":232,"children":233},{"style":224},[234],{"type":95,"value":235},"  -",{"type":90,"tag":132,"props":237,"children":238},{"style":218},[239],{"type":95,"value":240}," slug",{"type":90,"tag":132,"props":242,"children":243},{"style":224},[244],{"type":95,"value":245},":",{"type":90,"tag":132,"props":247,"children":249},{"style":248},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[250],{"type":95,"value":251}," new_github_issue\n",{"type":90,"tag":132,"props":253,"children":254},{"class":134,"line":153},[255,260,264],{"type":90,"tag":132,"props":256,"children":257},{"style":218},[258],{"type":95,"value":259},"    title",{"type":90,"tag":132,"props":261,"children":262},{"style":224},[263],{"type":95,"value":245},{"type":90,"tag":132,"props":265,"children":266},{"style":248},[267],{"type":95,"value":268}," New Issue Created\n",{"type":90,"tag":132,"props":270,"children":271},{"class":134,"line":162},[272,277,281],{"type":90,"tag":132,"props":273,"children":274},{"style":218},[275],{"type":95,"value":276},"    description",{"type":90,"tag":132,"props":278,"children":279},{"style":224},[280],{"type":95,"value":245},{"type":90,"tag":132,"props":282,"children":283},{"style":248},[284],{"type":95,"value":285}," Fires whenever a new issue is opened inside a repository.\n",{"type":90,"tag":132,"props":287,"children":288},{"class":134,"line":171},[289,294,298],{"type":90,"tag":132,"props":290,"children":291},{"style":218},[292],{"type":95,"value":293},"    event_type",{"type":90,"tag":132,"props":295,"children":296},{"style":224},[297],{"type":95,"value":245},{"type":90,"tag":132,"props":299,"children":300},{"style":248},[301],{"type":95,"value":302}," github.issue.opened\n",{"type":90,"tag":132,"props":304,"children":306},{"class":134,"line":305},6,[307,312],{"type":90,"tag":132,"props":308,"children":309},{"style":218},[310],{"type":95,"value":311},"    input_schema",{"type":90,"tag":132,"props":313,"children":314},{"style":224},[315],{"type":95,"value":227},{"type":90,"tag":132,"props":317,"children":319},{"class":134,"line":318},7,[320,325,329],{"type":90,"tag":132,"props":321,"children":322},{"style":218},[323],{"type":95,"value":324},"      type",{"type":90,"tag":132,"props":326,"children":327},{"style":224},[328],{"type":95,"value":245},{"type":90,"tag":132,"props":330,"children":331},{"style":248},[332],{"type":95,"value":333}," object\n",{"type":90,"tag":132,"props":335,"children":337},{"class":134,"line":336},8,[338,343],{"type":90,"tag":132,"props":339,"children":340},{"style":218},[341],{"type":95,"value":342},"      properties",{"type":90,"tag":132,"props":344,"children":345},{"style":224},[346],{"type":95,"value":227},{"type":90,"tag":132,"props":348,"children":350},{"class":134,"line":349},9,[351,356],{"type":90,"tag":132,"props":352,"children":353},{"style":218},[354],{"type":95,"value":355},"        repository",{"type":90,"tag":132,"props":357,"children":358},{"style":224},[359],{"type":95,"value":227},{"type":90,"tag":132,"props":361,"children":363},{"class":134,"line":362},10,[364,369,373],{"type":90,"tag":132,"props":365,"children":366},{"style":218},[367],{"type":95,"value":368},"          type",{"type":90,"tag":132,"props":370,"children":371},{"style":224},[372],{"type":95,"value":245},{"type":90,"tag":132,"props":374,"children":375},{"style":248},[376],{"type":95,"value":377}," string\n",{"type":90,"tag":132,"props":379,"children":381},{"class":134,"line":380},11,[382,387,391],{"type":90,"tag":132,"props":383,"children":384},{"style":218},[385],{"type":95,"value":386},"          description",{"type":90,"tag":132,"props":388,"children":389},{"style":224},[390],{"type":95,"value":245},{"type":90,"tag":132,"props":392,"children":393},{"style":248},[394],{"type":95,"value":395}," The repository name.\n",{"type":90,"tag":105,"props":397,"children":398},{},[],{"type":90,"tag":109,"props":400,"children":402},{"id":401},"_2-webhook-security-and-verification",[403],{"type":95,"value":404},"2. Webhook Security and Verification",{"type":90,"tag":91,"props":406,"children":407},{},[408],{"type":95,"value":409},"Datafuse secures trigger endpoints to protect your agent infrastructure from malicious webhook spoofing:",{"type":90,"tag":411,"props":412,"children":413},"ul",{},[414,433,443],{"type":90,"tag":415,"props":416,"children":417},"li",{},[418,423,425,431],{"type":90,"tag":98,"props":419,"children":420},{},[421],{"type":95,"value":422},"Signature Authentication",{"type":95,"value":424},": Datafuse automatically verifies cryptographic headers (such as GitHub's ",{"type":90,"tag":128,"props":426,"children":428},{"className":427},[],[429],{"type":95,"value":430},"X-Hub-Signature-256",{"type":95,"value":432}," or Slack's signature verification) before routing the event.",{"type":90,"tag":415,"props":434,"children":435},{},[436,441],{"type":90,"tag":98,"props":437,"children":438},{},[439],{"type":95,"value":440},"Decoupled Secret Ingress",{"type":95,"value":442},": Signing secrets are kept in the credentials vault and matched dynamically at the gateway boundary.",{"type":90,"tag":415,"props":444,"children":445},{},[446,451],{"type":90,"tag":98,"props":447,"children":448},{},[449],{"type":95,"value":450},"IP Whitelisting",{"type":95,"value":452},": Connections from outside recognized third-party IP clusters are blocked at the perimeter.",{"type":90,"tag":105,"props":454,"children":455},{},[],{"type":90,"tag":109,"props":457,"children":459},{"id":458},"_3-propagating-events-to-your-agent-loop",[460],{"type":95,"value":461},"3. Propagating Events to your Agent Loop",{"type":90,"tag":91,"props":463,"children":464},{},[465],{"type":95,"value":466},"Once triggers are activated, you can listen to event streams directly inside your agent loop using our WebSocket SDK connections or HTTP webhook handlers.",{"type":90,"tag":91,"props":468,"children":469},{},[470],{"type":95,"value":471},"Here is how you set up a dynamic event handler in Python:",{"type":90,"tag":121,"props":473,"children":477},{"className":474,"code":475,"language":476,"meta":84,"style":84},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import os\nfrom datafuse import Datafuse\n\n# Initialize client\nsdk = Datafuse(api_key=os.getenv(\"DATAFUSE_API_KEY\"))\n\n# Register callback handler for active events\ndef handle_incoming_event(event):\n    print(f\"🔥 Trigger Event Received: {event.event_type}\")\n    print(f\"Payload: {event.payload}\")\n\n    # Pass event payload to your LLM or framework\n    # my_agent.process_context(event.payload)\n\n# Listen to incoming event streams from Datafuse Webhook Broker\nsdk.triggers.subscribe(\n    trigger_slug=\"github.new_issue\",\n    callback=handle_incoming_event\n)\n","python",[478],{"type":90,"tag":128,"props":479,"children":480},{"__ignoreMap":84},[481,496,518,527,536,608,615,623,651,706,755,762,771,780,788,797,828,859,877],{"type":90,"tag":132,"props":482,"children":483},{"class":134,"line":135},[484,490],{"type":90,"tag":132,"props":485,"children":487},{"style":486},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[488],{"type":95,"value":489},"import",{"type":90,"tag":132,"props":491,"children":493},{"style":492},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[494],{"type":95,"value":495}," os\n",{"type":90,"tag":132,"props":497,"children":498},{"class":134,"line":144},[499,504,509,513],{"type":90,"tag":132,"props":500,"children":501},{"style":486},[502],{"type":95,"value":503},"from",{"type":90,"tag":132,"props":505,"children":506},{"style":492},[507],{"type":95,"value":508}," datafuse ",{"type":90,"tag":132,"props":510,"children":511},{"style":486},[512],{"type":95,"value":489},{"type":90,"tag":132,"props":514,"children":515},{"style":492},[516],{"type":95,"value":517}," Datafuse\n",{"type":90,"tag":132,"props":519,"children":520},{"class":134,"line":153},[521],{"type":90,"tag":132,"props":522,"children":524},{"emptyLinePlaceholder":523},true,[525],{"type":95,"value":526},"\n",{"type":90,"tag":132,"props":528,"children":529},{"class":134,"line":162},[530],{"type":90,"tag":132,"props":531,"children":533},{"style":532},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[534],{"type":95,"value":535},"# Initialize client\n",{"type":90,"tag":132,"props":537,"children":538},{"class":134,"line":171},[539,544,549,555,560,566,570,575,580,585,589,594,599,603],{"type":90,"tag":132,"props":540,"children":541},{"style":492},[542],{"type":95,"value":543},"sdk ",{"type":90,"tag":132,"props":545,"children":546},{"style":224},[547],{"type":95,"value":548},"=",{"type":90,"tag":132,"props":550,"children":552},{"style":551},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[553],{"type":95,"value":554}," Datafuse",{"type":90,"tag":132,"props":556,"children":557},{"style":224},[558],{"type":95,"value":559},"(",{"type":90,"tag":132,"props":561,"children":563},{"style":562},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[564],{"type":95,"value":565},"api_key",{"type":90,"tag":132,"props":567,"children":568},{"style":224},[569],{"type":95,"value":548},{"type":90,"tag":132,"props":571,"children":572},{"style":551},[573],{"type":95,"value":574},"os",{"type":90,"tag":132,"props":576,"children":577},{"style":224},[578],{"type":95,"value":579},".",{"type":90,"tag":132,"props":581,"children":582},{"style":551},[583],{"type":95,"value":584},"getenv",{"type":90,"tag":132,"props":586,"children":587},{"style":224},[588],{"type":95,"value":559},{"type":90,"tag":132,"props":590,"children":591},{"style":224},[592],{"type":95,"value":593},"\"",{"type":90,"tag":132,"props":595,"children":596},{"style":248},[597],{"type":95,"value":598},"DATAFUSE_API_KEY",{"type":90,"tag":132,"props":600,"children":601},{"style":224},[602],{"type":95,"value":593},{"type":90,"tag":132,"props":604,"children":605},{"style":224},[606],{"type":95,"value":607},"))\n",{"type":90,"tag":132,"props":609,"children":610},{"class":134,"line":305},[611],{"type":90,"tag":132,"props":612,"children":613},{"emptyLinePlaceholder":523},[614],{"type":95,"value":526},{"type":90,"tag":132,"props":616,"children":617},{"class":134,"line":318},[618],{"type":90,"tag":132,"props":619,"children":620},{"style":532},[621],{"type":95,"value":622},"# Register callback handler for active events\n",{"type":90,"tag":132,"props":624,"children":625},{"class":134,"line":336},[626,632,637,641,646],{"type":90,"tag":132,"props":627,"children":629},{"style":628},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[630],{"type":95,"value":631},"def",{"type":90,"tag":132,"props":633,"children":634},{"style":551},[635],{"type":95,"value":636}," handle_incoming_event",{"type":90,"tag":132,"props":638,"children":639},{"style":224},[640],{"type":95,"value":559},{"type":90,"tag":132,"props":642,"children":643},{"style":562},[644],{"type":95,"value":645},"event",{"type":90,"tag":132,"props":647,"children":648},{"style":224},[649],{"type":95,"value":650},"):\n",{"type":90,"tag":132,"props":652,"children":653},{"class":134,"line":349},[654,659,663,668,673,679,683,687,692,697,701],{"type":90,"tag":132,"props":655,"children":656},{"style":551},[657],{"type":95,"value":658},"    print",{"type":90,"tag":132,"props":660,"children":661},{"style":224},[662],{"type":95,"value":559},{"type":90,"tag":132,"props":664,"children":665},{"style":628},[666],{"type":95,"value":667},"f",{"type":90,"tag":132,"props":669,"children":670},{"style":248},[671],{"type":95,"value":672},"\"🔥 Trigger Event Received: ",{"type":90,"tag":132,"props":674,"children":676},{"style":675},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[677],{"type":95,"value":678},"{",{"type":90,"tag":132,"props":680,"children":681},{"style":551},[682],{"type":95,"value":645},{"type":90,"tag":132,"props":684,"children":685},{"style":224},[686],{"type":95,"value":579},{"type":90,"tag":132,"props":688,"children":689},{"style":218},[690],{"type":95,"value":691},"event_type",{"type":90,"tag":132,"props":693,"children":694},{"style":675},[695],{"type":95,"value":696},"}",{"type":90,"tag":132,"props":698,"children":699},{"style":248},[700],{"type":95,"value":593},{"type":90,"tag":132,"props":702,"children":703},{"style":224},[704],{"type":95,"value":705},")\n",{"type":90,"tag":132,"props":707,"children":708},{"class":134,"line":362},[709,713,717,721,726,730,734,738,743,747,751],{"type":90,"tag":132,"props":710,"children":711},{"style":551},[712],{"type":95,"value":658},{"type":90,"tag":132,"props":714,"children":715},{"style":224},[716],{"type":95,"value":559},{"type":90,"tag":132,"props":718,"children":719},{"style":628},[720],{"type":95,"value":667},{"type":90,"tag":132,"props":722,"children":723},{"style":248},[724],{"type":95,"value":725},"\"Payload: ",{"type":90,"tag":132,"props":727,"children":728},{"style":675},[729],{"type":95,"value":678},{"type":90,"tag":132,"props":731,"children":732},{"style":551},[733],{"type":95,"value":645},{"type":90,"tag":132,"props":735,"children":736},{"style":224},[737],{"type":95,"value":579},{"type":90,"tag":132,"props":739,"children":740},{"style":218},[741],{"type":95,"value":742},"payload",{"type":90,"tag":132,"props":744,"children":745},{"style":675},[746],{"type":95,"value":696},{"type":90,"tag":132,"props":748,"children":749},{"style":248},[750],{"type":95,"value":593},{"type":90,"tag":132,"props":752,"children":753},{"style":224},[754],{"type":95,"value":705},{"type":90,"tag":132,"props":756,"children":757},{"class":134,"line":380},[758],{"type":90,"tag":132,"props":759,"children":760},{"emptyLinePlaceholder":523},[761],{"type":95,"value":526},{"type":90,"tag":132,"props":763,"children":765},{"class":134,"line":764},12,[766],{"type":90,"tag":132,"props":767,"children":768},{"style":532},[769],{"type":95,"value":770},"    # Pass event payload to your LLM or framework\n",{"type":90,"tag":132,"props":772,"children":774},{"class":134,"line":773},13,[775],{"type":90,"tag":132,"props":776,"children":777},{"style":532},[778],{"type":95,"value":779},"    # my_agent.process_context(event.payload)\n",{"type":90,"tag":132,"props":781,"children":783},{"class":134,"line":782},14,[784],{"type":90,"tag":132,"props":785,"children":786},{"emptyLinePlaceholder":523},[787],{"type":95,"value":526},{"type":90,"tag":132,"props":789,"children":791},{"class":134,"line":790},15,[792],{"type":90,"tag":132,"props":793,"children":794},{"style":532},[795],{"type":95,"value":796},"# Listen to incoming event streams from Datafuse Webhook Broker\n",{"type":90,"tag":132,"props":798,"children":800},{"class":134,"line":799},16,[801,806,810,814,818,823],{"type":90,"tag":132,"props":802,"children":803},{"style":492},[804],{"type":95,"value":805},"sdk",{"type":90,"tag":132,"props":807,"children":808},{"style":224},[809],{"type":95,"value":579},{"type":90,"tag":132,"props":811,"children":812},{"style":218},[813],{"type":95,"value":221},{"type":90,"tag":132,"props":815,"children":816},{"style":224},[817],{"type":95,"value":579},{"type":90,"tag":132,"props":819,"children":820},{"style":551},[821],{"type":95,"value":822},"subscribe",{"type":90,"tag":132,"props":824,"children":825},{"style":224},[826],{"type":95,"value":827},"(\n",{"type":90,"tag":132,"props":829,"children":831},{"class":134,"line":830},17,[832,837,841,845,850,854],{"type":90,"tag":132,"props":833,"children":834},{"style":562},[835],{"type":95,"value":836},"    trigger_slug",{"type":90,"tag":132,"props":838,"children":839},{"style":224},[840],{"type":95,"value":548},{"type":90,"tag":132,"props":842,"children":843},{"style":224},[844],{"type":95,"value":593},{"type":90,"tag":132,"props":846,"children":847},{"style":248},[848],{"type":95,"value":849},"github.new_issue",{"type":90,"tag":132,"props":851,"children":852},{"style":224},[853],{"type":95,"value":593},{"type":90,"tag":132,"props":855,"children":856},{"style":224},[857],{"type":95,"value":858},",\n",{"type":90,"tag":132,"props":860,"children":862},{"class":134,"line":861},18,[863,868,872],{"type":90,"tag":132,"props":864,"children":865},{"style":562},[866],{"type":95,"value":867},"    callback",{"type":90,"tag":132,"props":869,"children":870},{"style":224},[871],{"type":95,"value":548},{"type":90,"tag":132,"props":873,"children":874},{"style":551},[875],{"type":95,"value":876},"handle_incoming_event\n",{"type":90,"tag":132,"props":878,"children":880},{"class":134,"line":879},19,[881],{"type":90,"tag":132,"props":882,"children":883},{"style":224},[884],{"type":95,"value":705},{"type":90,"tag":886,"props":887,"children":888},"blockquote",{},[889],{"type":90,"tag":91,"props":890,"children":891},{},[892,897],{"type":90,"tag":132,"props":893,"children":894},{},[895],{"type":95,"value":896},"!TIP",{"type":95,"value":898},"\nTriggers are highly optimized for agent state machines. By binding webhook events directly to agent loop initiators, you can build autonomous self-healing workflows (e.g. automatically replying to a GitHub issue when it is opened).",{"type":90,"tag":900,"props":901,"children":902},"style",{},[903],{"type":95,"value":904},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":84,"searchDepth":144,"depth":144,"links":906},[907,908,911,912],{"id":111,"depth":144,"text":114},{"id":183,"depth":144,"text":186,"children":909},[910],{"id":195,"depth":153,"text":198},{"id":401,"depth":144,"text":404},{"id":458,"depth":144,"text":461},"markdown","content:1.docs:2.core-concepts:4.triggers.md","content","1.docs\u002F2.core-concepts\u002F4.triggers.md","1.docs\u002F2.core-concepts\u002F4.triggers","md",[920,922],{"_path":34,"title":33,"description":921},"Decouple credentials from agent prompts with our zero-retention authentication vault.",{"_path":40,"title":39,"description":923},"Track latencies, capture session-level execution history, and enforce zero-retention privacy.",1780069615250]