Triggers are the “events” that kick off your workflow. They typically involve something “happening” within Mythic’s sphere of influence and sometimes allow you to add some additional context via trigger_data.
trigger_data isn’t set in stone and can be expanded upon over time. If you have additional ideas for trigger data, let me know!
manual - This workflow is triggered manually in the UI via the green run icon.
trigger_data - N/A
keyword - This workflow is triggered by a keyword and optional dictionary of contextual data.
trigger_data - dictionary of any extra data you want to send along. Normally, this is an extra way of triggering a workflow that’s normally triggered in another way. In that case, you should probably pass along in the trigger_data whatever your workflow normally expects.
mythic_start - This workflow is triggered when Mythic starts.
trigger_data - N/A
cron - This workflow is triggered on a cron schedule.
trigger_data - Dictionary with the following keys:
cron - a normal cron string indicating when you want to execute this workflow. This is a handy place to check out for cron execution strings (https://crontab.guru/).
payload_build_start - This workflow is triggered when a Payload first starts being built.
trigger_data - Dictionary with the following keys:
payload_types - a list of all the payload types where you want this to trigger. If you don’t specify any, then it will trigger for all payload types.
payload_build_finish - This workflow is triggered when a Payload finishes being built (either successfully or with an error).
trigger_data - Dictionary with the following keys:
payload_types - a list of all the payload types where you want this to trigger. If you don’t specify any, then it will trigger for all payload types.
task_create - This workflow is triggered when a Task is first created and sent for preprocessing.
trigger_data - N/A
task_start - This workflow is triggered when a Task is picked up by an agent to start executing.
trigger_data - N/A
task_finish - This workflow is triggered when a Task finishes (at any point in the task lifecycle) either successfully or with an error.
trigger_data - N/A
user_output - This workflow is triggered when a Task returns new output in the user_output field for the user to see in the UI.
trigger_data - N/A
file_download - This workflow is triggered when a file finishes downloading from a callback.
trigger_data - N/A
file_upload - This workflow is triggered when a file finishes uploading to Mythic.
trigger_data - N/A
screenshot - This workflow is triggered when a screenshot finishes downloading from a callback.
trigger_data - N/A
alert - This workflow is triggered when an agent sends an alert back to Mythic.
trigger_data - N/A
callback_new - This workflow is triggered when a new callback is created.
trigger_data - Dictionary with the following keys:
payload_types - a list of all the payload types where you want this to trigger. If you don’t specify any, then it will trigger for all payload types.
task_intercept - This workflow is triggered after a Task finishes its opsec_post check to allow one more chance for a task to be blocked.
trigger_data - N/A
response_intercept - This workflow is triggered when a Task returns new output in the user_output field for the user to see in the UI, but first passes that output to this workflow for modification before saving it in the database.
trigger_data - N/A
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Mythic","colors":{"primary":"#6D70A7","light":"#50B071","dark":"#6D70A7"},"logo":{"light":"https://mintcdn.com/specterops-3/3s2YOrygh-Ut9KJD/logo/mythic.png?fit=max\u0026auto=format\u0026n=3s2YOrygh-Ut9KJD\u0026q=85\u0026s=9dc129a1531ec4f44de0b0e79ad03679","dark":"https://mintcdn.com/specterops-3/3s2YOrygh-Ut9KJD/logo/mythic.png?fit=max\u0026auto=format\u0026n=3s2YOrygh-Ut9KJD\u0026q=85\u0026s=9dc129a1531ec4f44de0b0e79ad03679","href":"https://docs.mythic-c2.net/"},"favicon":"https://mintcdn.com/specterops-3/I6wn8nE0SX0nqRFZ/favicon.png?fit=max\u0026auto=format\u0026n=I6wn8nE0SX0nqRFZ\u0026q=85\u0026s=20b11a663bf17cfc5bedb978b1f77b77","appearance":{"default":"dark"},"background":{"decoration":"windows"},"navbar":{"links":[{"href":"https://github.com/its-a-feature/Mythic","label":"Get the Code"}],"primary":{"type":"button","label":"Issues","href":"https://github.com/its-a-feature/Mythic/issues"}},"footer":{"socials":{"x":"https://twitter.com/its_a_feature_","github":"https://github.com/its-a-feature/Mythic","slack":"https://slack.specterops.io"}},"fonts":{"heading":{"family":"Nunito Sans","weight":900,"source":"https://fonts.gstatic.com/s/nunitosans/v15/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t1R-s.woff2","format":"woff2"}},"styling":{"codeblocks":"system","latex":false},"integrations":{"plausible":{"domain":"docs.mythic-c2.net"}},"thumbnails":{"appearance":"dark","background":"https://mintcdn.com/specterops-3/3s2YOrygh-Ut9KJD/logo/thumbnail.png?fit=max\u0026auto=format\u0026n=3s2YOrygh-Ut9KJD\u0026q=85\u0026s=c1d77133045e590ac2a1e944608a0a37"},"navigation":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/its-a-feature/Mythic"},{"anchor":"#mythic Community","icon":"slack","href":"https://slack.specterops.io"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"specterops-3","hasAudioNarration":false,"actualSubdomain":"specterops-3","customDomains":["docs.mythic-c2.net"],"gitSource":{"type":"github","owner":"mythicmeta","repo":"mintlify_documentation","deployBranch":"primary","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a96ebe38cf6faeffe797f36","collectionId":"1e9319b1-0b78-415d-bb0b-3066e8fc4515","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6a96ebe38cf6faeffe797f36"},"feedback":{"thumbs":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6a96ebe38cf6faeffe797f36","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Development","count":153},{"language":"default","tag":"overview","count":153},{"language":"default","tag":"Documentation","count":126},{"language":"default","tag":"Overview","count":111},{"language":"default","tag":"1. Payload Type Development","count":58},{"language":"default","tag":"Operational Pieces","count":58},{"language":"default","tag":"Hooking Features","count":42},{"language":"default","tag":"2. C2 Development","count":28},{"language":"default","tag":"4. Create Tasking \u0026 Comms Format","count":22},{"language":"default","tag":"Agent Messages","count":20}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"version-4.0/customizing/3.-consuming-containers/eventing/workflow-triggers","slug":"/version-4.0/customizing/3.-consuming-containers/eventing/workflow-triggers","pageMetadata":{"title":"Workflow Triggers","description":null,"href":"/version-4.0/customizing/3.-consuming-containers/eventing/workflow-triggers"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,p:`p`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Info}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`what-are-they`,children:`What are they?`}),`\n`,_jsxs(_components.p,{children:[`Triggers are the “events” that kick off your workflow. They typically involve something “happening” within Mythic’s sphere of influence and sometimes allow you to add some additional context via `,_jsx(_components.code,{children:`trigger_data`}),`.`]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`trigger_data`}),` isn’t set in stone and can be expanded upon over time. If you have additional ideas for trigger data, let me know!`]})}),`\n`,_jsx(Heading,{level:`2`,id:`trigger-options`,children:`Trigger Options`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`manual`}),` - This workflow is triggered manually in the UI via the green run icon.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`trigger_data`}),` - N/A`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`keyword`}),` - This workflow is triggered by a keyword and optional dictionary of contextual data.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`trigger_data`}),` - dictionary of any extra data you want to send along. Normally, this is an `,_jsx(_components.em,{children:`extra`}),` way of triggering a workflow that’s normally triggered in another way. In that case, you should probably pass along in the `,_jsx(_components.code,{children:`trigger_data`}),` whatever your workflow normally expects.`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`mythic_start`}),` - This workflow is triggered when Mythic starts.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`trigger_data`}),` - N/A`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`cron`}),` - This workflow is triggered on a cron schedule.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`trigger_data`}),` - Dictionary with the following keys:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`cron`}),` - a normal `,_jsx(_components.code,{children:`cron`}),` string indicating when you want to execute this workflow. This is a handy place to check out for cron execution strings (`,_jsx(_components.a,{href:`https://crontab.guru/`,children:`https://crontab.guru/`}),`).`]}),`\n`]}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`payload_build_start`}),` - This workflow is triggered when a Payload first starts being built.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`trigger_data`}),` - Dictionary with the following keys:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`payload_types`}),` - a list of all the payload types where you `,_jsx(_components.em,{children:`want`}),` this to trigger. If you don’t specify any, then it will trigger for `,_jsx(_components.em,{children:`all`}),` payload types.`]}),`\n`]}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`payload_build_finish`}),` - This workflow is triggered when a Payload finishes being built (either successfully or with an error).`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`trigger_data`}),` - Dictionary with the following keys:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`payload_types`}),` - a list of all the payload types where you `,_jsx(_components.em,{children:`want`}),` this to trigger. If you don’t specify any, then it will trigger for `,_jsx(_components.em,{children:`all`}),` payload types.`]}),`\n`]}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`task_create`}),` - This workflow is triggered when a Task is first created and sent for preprocessing.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`trigger_data`}),` - N/A`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`task_start`}),` - This workflow is triggered when a Task is picked up by an agent to start executing.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`trigger_data`}),` - N/A`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`task_finish`}),` - This workflow is triggered when a Task finishes (at any point in the task lifecycle) either successfully or with an error.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`trigger_data`}),` - N/A`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`user_output`}),` - This workflow is triggered when a Task returns new output in the `,_jsx(_components.code,{children:`user_output`}),` field for the user to see in the UI.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`trigger_data`}),` - N/A`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`file_download`}),` - This workflow is triggered when a file finishes downloading from a callback.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`trigger_data`}),` - N/A`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`file_upload`}),` - This workflow is triggered when a file finishes uploading to Mythic.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`trigger_data`}),` - N/A`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`screenshot`}),` - This workflow is triggered when a screenshot finishes downloading from a callback.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`trigger_data`}),` - N/A`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`alert`}),` - This workflow is triggered when an agent sends an alert back to Mythic.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`trigger_data`}),` - N/A`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`callback_new`}),` - This workflow is triggered when a new callback is created.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`trigger_data`}),` - Dictionary with the following keys:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`payload_types`}),` - a list of all the payload types where you `,_jsx(_components.em,{children:`want`}),` this to trigger. If you don’t specify any, then it will trigger for `,_jsx(_components.em,{children:`all`}),` payload types.`]}),`\n`]}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`task_intercept`}),` - This workflow is triggered after a Task finishes its `,_jsx(_components.code,{children:`opsec_post`}),` check to allow one more chance for a task to be blocked.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`trigger_data`}),` - N/A`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`response_intercept`}),` - This workflow is triggered when a Task returns new output in the `,_jsx(_components.code,{children:`user_output`}),` field for the user to see in the UI, but first passes that output to this workflow for modification before saving it in the database.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`trigger_data`}),` - N/A`]}),`\n`]}),`\n`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"Workflow Triggers","description":null,"href":"/version-4.0/customizing/3.-consuming-containers/eventing/workflow-triggers"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"What are they?","slug":"what-are-they","depth":2,"children":[]},{"title":"Trigger Options","slug":"trigger-options","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"specterops-3","siteName":"Mythic","title":"Workflow Triggers - Mythic","navMaps":{"firstHrefInVersion":{"version 4.0":{"href":"/version-4.0/customizing/3.-consuming-containers/eventing/workflow-triggers","matchLevel":0},"version 3.3":{"href":"/customizing/3.-consuming-containers/eventing/workflow-triggers","matchLevel":1}},"firstHrefInLanguage":{}},"lastModified":"2026-08-03T05:40:25.703Z","originalFileLocation":"version-4.0/customizing/3.-consuming-containers/eventing/workflow-triggers.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Mythic\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/specterops-3/CtO7omxk-GskQdbQ/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/specterops-3/CtO7omxk-GskQdbQ/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/specterops-3/CtO7omxk-GskQdbQ/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/specterops-3/CtO7omxk-GskQdbQ/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/specterops-3/CtO7omxk-GskQdbQ/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/specterops-3/CtO7omxk-GskQdbQ/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/specterops-3/CtO7omxk-GskQdbQ/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/specterops-3/CtO7omxk-GskQdbQ/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/specterops-3/CtO7omxk-GskQdbQ/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Workflow Triggers - Mythic\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Mythic\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.mythic-c2.net/version-4.0/customizing/3.-consuming-containers/eventing/workflow-triggers\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://specterops-3.mintlify.app/_mintlify/api/og/v2?division=Eventing\u0026amp;title=Workflow+Triggers\u0026amp;theme=cfca8a284e14b6c3ed528a84\u0026amp;signature=29a71e9f9e7a9ca7d9298e204e8e27755ff2edf5e9033f89e2af3538bd3a4e9e\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Workflow Triggers - Mythic\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://specterops-3.mintlify.app/_mintlify/api/og/v2?division=Eventing\u0026amp;title=Workflow+Triggers\u0026amp;theme=cfca8a284e14b6c3ed528a84\u0026amp;signature=29a71e9f9e7a9ca7d9298e204e8e27755ff2edf5e9033f89e2af3538bd3a4e9e\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/specterops-3/CtO7omxk-GskQdbQ/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Mythic\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6D70A7\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.mythic-c2.net/version-4.0/customizing/3.-consuming-containers/eventing/workflow-triggers\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/version-4.0/customizing/3.-consuming-containers/eventing/workflow-triggers.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.mythic-c2.net/#organization\",\"name\":\"Mythic\",\"url\":\"https://docs.mythic-c2.net\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/specterops-3/3s2YOrygh-Ut9KJD/logo/mythic.png?fit=max\u0026auto=format\u0026n=3s2YOrygh-Ut9KJD\u0026q=85\u0026s=9dc129a1531ec4f44de0b0e79ad03679\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.mythic-c2.net#website\",\"name\":\"Mythic\",\"url\":\"https://docs.mythic-c2.net\",\"publisher\":{\"@id\":\"https://docs.mythic-c2.net/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.mythic-c2.net/version-4.0/customizing/3.-consuming-containers/eventing/workflow-triggers#webpage\",\"url\":\"https://docs.mythic-c2.net/version-4.0/customizing/3.-consuming-containers/eventing/workflow-triggers\",\"name\":\"Workflow Triggers\",\"dateModified\":\"2026-08-03T05:40:25.703Z\",\"isPartOf\":{\"@id\":\"https://docs.mythic-c2.net#website\"},\"breadcrumb\":{\"@id\":\"https://docs.mythic-c2.net/version-4.0/customizing/3.-consuming-containers/eventing/workflow-triggers#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.mythic-c2.net/version-4.0/customizing/3.-consuming-containers/eventing/workflow-triggers#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"overview\",\"item\":\"https://docs.mythic-c2.net/version-4.0/customizing/customizing-public-agent\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"3. Consuming Containers\",\"item\":\"https://docs.mythic-c2.net/version-4.0/customizing/3.-consuming-containers\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Eventing\",\"item\":\"https://docs.mythic-c2.net/version-4.0/customizing/3.-consuming-containers/eventing\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Workflow Triggers\",\"item\":\"https://docs.mythic-c2.net/version-4.0/customizing/3.-consuming-containers/eventing/workflow-triggers\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.mythic-c2.net/version-4.0/customizing/3.-consuming-containers/eventing/workflow-triggers#article\",\"headline\":\"Workflow Triggers\",\"name\":\"Workflow Triggers\",\"url\":\"https://docs.mythic-c2.net/version-4.0/customizing/3.-consuming-containers/eventing/workflow-triggers\",\"mainEntityOfPage\":{\"@id\":\"https://docs.mythic-c2.net/version-4.0/customizing/3.-consuming-containers/eventing/workflow-triggers#webpage\"},\"dateModified\":\"2026-08-03T05:40:25.703Z\",\"publisher\":{\"@id\":\"https://docs.mythic-c2.net/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.mythic-c2.net#website\"}}]}\u003c/script>","siteName":"Mythic","nav":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/its-a-feature/Mythic"},{"anchor":"#mythic Community","icon":"slack","href":"https://slack.specterops.io"}]},"versions":[{"version":"version 4.0","tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/version-4.0/home"}]},{"tab":"GraphQL API","pages":[{"title":"GraphQL API","href":"/version-4.0/scripting/home"}]},{"tab":"Development","groups":[{"group":"overview","pages":[{"title":"Overview","href":"/version-4.0/customizing/customizing-public-agent"},{"group":"Hooking Features","pages":[{"title":"Overview","href":"/version-4.0/customizing/hooking-features"},{"title":"Actions","href":"/version-4.0/customizing/hooking-features/actions"},{"group":"Linking Agents","pages":[{"title":"Overview","href":"/version-4.0/customizing/hooking-features/linking-agents"},{"title":"P2P Connections","href":"/version-4.0/customizing/hooking-features/linking-agents/action-p2p_info"}]},{"title":"Process Browser","href":"/version-4.0/customizing/hooking-features/process_list"},{"title":"Artifacts","href":"/version-4.0/customizing/hooking-features/artifacts"},{"title":"Credentials","href":"/version-4.0/customizing/hooking-features/credentials"},{"title":"File Downloads (Agent -> Mythic)","href":"/version-4.0/customizing/hooking-features/download"},{"title":"File Uploads (Mythic -> Agent)","href":"/version-4.0/customizing/hooking-features/action-upload"},{"title":"Screenshots","href":"/version-4.0/customizing/hooking-features/screenshots"},{"title":"Add / Remove Commands","href":"/version-4.0/customizing/hooking-features/commands"},{"title":"Keylog","href":"/version-4.0/customizing/hooking-features/keylog"},{"title":"File Browser","href":"/version-4.0/customizing/hooking-features/file-browser"},{"title":"Tokens","href":"/version-4.0/customizing/hooking-features/tokens"},{"title":"Alerts","href":"/version-4.0/customizing/hooking-features/alerts"},{"title":"SOCKS","href":"/version-4.0/customizing/hooking-features/socks"},{"title":"RPFWD","href":"/version-4.0/customizing/hooking-features/rpfwd"},{"title":"Interactive Tasking","href":"/version-4.0/customizing/hooking-features/interactive-tasking"},{"title":"Task status","href":"/version-4.0/customizing/hooking-features/task-status"},{"title":"OnContainerStart","href":"/version-4.0/customizing/hooking-features/oncontainerstart"},{"title":"Task Context Tracking","href":"/version-4.0/customizing/hooking-features/context-tracking"}]},{"group":"1. Payload Type Development","pages":[{"title":"1. Overview","href":"/version-4.0/customizing/payload-type-development"},{"group":"2. Payload Type Definition","pages":[{"title":"Payload Type Definition","href":"/version-4.0/customizing/payload-type-development/payload-type-info/payload-type-definition"},{"title":"Dynamic Build Parameters \u0026 C2 Variations","href":"/version-4.0/customizing/payload-type-development/payload-type-info/dynamic-build-parameters"},{"title":"JSONString Parameters","href":"/version-4.0/customizing/payload-type-development/payload-type-info/json-string-parameters"},{"title":"Wrapper Compatibility","href":"/version-4.0/customizing/payload-type-development/payload-type-info/wrapper-compatibility"},{"title":"Container Syncing","href":"/version-4.0/customizing/payload-type-development/payload-type-info/container-syncing"},{"title":"Turning a VM into a Container","href":"/version-4.0/customizing/payload-type-development/payload-type-info/turning-a-vm-into-a-container"}]},{"group":"3. Adding Commands","pages":[{"title":"Overview","href":"/version-4.0/customizing/payload-type-development/adding-commands"},{"title":"Commands","href":"/version-4.0/customizing/payload-type-development/adding-commands/commands"}]},{"group":"4. Create Tasking \u0026 Comms Format","pages":[{"title":"Overview","href":"/version-4.0/customizing/payload-type-development/create_tasking"},{"group":"Agent Messages","pages":[{"title":"Overview","href":"/version-4.0/customizing/payload-type-development/create_tasking/agent-side-coding"},{"title":"1. Agent Message Format","href":"/version-4.0/customizing/payload-type-development/create_tasking/agent-side-coding/agent-message-format"},{"title":"2. Checkin","href":"/version-4.0/customizing/payload-type-development/create_tasking/agent-side-coding/initial-checkin"},{"title":"3. Get Tasking","href":"/version-4.0/customizing/payload-type-development/create_tasking/agent-side-coding/action_get_tasking"},{"title":"4. Submitting Responses","href":"/version-4.0/customizing/payload-type-development/create_tasking/agent-side-coding/action-post_response"},{"title":"5. SOCKS","href":"/version-4.0/customizing/payload-type-development/create_tasking/agent-side-coding/socks"},{"title":"6. Reverse Port Forward","href":"/version-4.0/customizing/payload-type-development/create_tasking/agent-side-coding/rpfwd"},{"title":"7. Peer-to-peer messages","href":"/version-4.0/customizing/payload-type-development/create_tasking/agent-side-coding/delegates"},{"title":"8. Interactive Tasking","href":"/version-4.0/customizing/payload-type-development/create_tasking/agent-side-coding/8.-interactive-tasking"},{"title":"9. Agent RPC","href":"/version-4.0/customizing/payload-type-development/create_tasking/agent-side-coding/agent-rpc"},{"title":"10. File Editor Protocol","href":"/version-4.0/customizing/payload-type-development/create_tasking/agent-side-coding/file-editor-protocol"}]}]},{"title":"5. Browser Scripting","href":"/version-4.0/customizing/payload-type-development/browser-scripting"},{"title":"6. Dynamic Command Parameter Values","href":"/version-4.0/customizing/payload-type-development/dynamic-parameter-values"},{"title":"7. Sub-tasking / Task Callbacks","href":"/version-4.0/customizing/payload-type-development/sub-tasking-task-callbacks"},{"title":"8. OPSEC Checking","href":"/version-4.0/customizing/payload-type-development/opsec-checking"},{"title":"9. Translation Containers","href":"/version-4.0/customizing/payload-type-development/translation-containers"},{"title":"10. Process Response","href":"/version-4.0/customizing/payload-type-development/process-response"},{"title":"11 TypedArray Parse Function","href":"/version-4.0/customizing/payload-type-development/12-typedarray-parse-function"},{"title":"12. SOCKS","href":"/version-4.0/customizing/payload-type-development/socks"},{"title":"13. Reverse PortFwd","href":"/version-4.0/customizing/payload-type-development/reverse-portfwd"},{"title":"14. Interactive Tasking","href":"/version-4.0/customizing/payload-type-development/15.-interactive-tasking"}]},{"group":"2. C2 Development","pages":[{"group":"2.1 Getting Started","pages":[{"title":"1. Getting Started","href":"/version-4.0/customizing/c2-related-development/mythic-definition/2.1.1-c2-class-definition"},{"title":"2. Parameters","href":"/version-4.0/customizing/c2-related-development/mythic-definition/2.1.2-c2-parameters"},{"title":"3. Running","href":"/version-4.0/customizing/c2-related-development/mythic-definition/2.1.3-c2-running"},{"title":"4. Server Code","href":"/version-4.0/customizing/c2-related-development/mythic-definition/2.1.4-c2-server-code"}]},{"group":"2.2 Advanced Features","pages":[{"title":"1. Configuration Files","href":"/version-4.0/customizing/c2-related-development/server-side-coding/2.2.1-c2-configuration-files"},{"title":"2. OPSEC Checks","href":"/version-4.0/customizing/c2-related-development/server-side-coding/2.2.2-opsec-checks-for-c2-profiles"},{"title":"3. Configuration Checks","href":"/version-4.0/customizing/c2-related-development/server-side-coding/2.2.3-configuration-checks"},{"title":"4. Sample Message","href":"/version-4.0/customizing/c2-related-development/server-side-coding/2.2.4-sample-message"},{"title":"5. File Hosting","href":"/version-4.0/customizing/c2-related-development/server-side-coding/2.2.5-file-hosting"},{"title":"6. Redirect Rules","href":"/version-4.0/customizing/c2-related-development/server-side-coding/2.2.6-redirect-rules"},{"title":"7. Get IOC","href":"/version-4.0/customizing/c2-related-development/server-side-coding/2.2.7-get-ioc"},{"title":"8. Push C2","href":"/version-4.0/customizing/c2-related-development/server-side-coding/2.2.8-push-c2"},{"title":"9. Custom RPC","href":"/version-4.0/customizing/c2-related-development/server-side-coding/2.2.9-custom-rpc"}]},{"group":"2.3 Docker","pages":[{"title":"1. Docker Containers","href":"/version-4.0/customizing/c2-related-development/server-side-coding/2.3.1-c2-docker-containers"}]}]},{"group":"3. Consuming Containers","pages":[{"title":"Overview","href":"/version-4.0/customizing/3.-consuming-containers"},{"title":"Webhooks","href":"/version-4.0/customizing/3.-consuming-containers/webhooks"},{"title":"Logging","href":"/version-4.0/customizing/3.-consuming-containers/logging"},{"group":"Eventing","pages":[{"title":"Overview","href":"/version-4.0/customizing/3.-consuming-containers/eventing"},{"title":"Operator Context (run_as)","description":null,"href":"/version-4.0/customizing/3.-consuming-containers/eventing/operator-context-run_as"},{"title":"Workflow Triggers","href":"/version-4.0/customizing/3.-consuming-containers/eventing/workflow-triggers"},{"title":"Steps","description":null,"href":"/version-4.0/customizing/3.-consuming-containers/eventing/steps"}]},{"title":"Auth","href":"/version-4.0/customizing/3.-consuming-containers/auth"},{"title":"Chat Containers","href":"/version-4.0/customizing/3.-consuming-containers/chat"}]},{"title":"4. Extending Agent Commands","href":"/version-4.0/customizing/4.-extending-agent-commands"},{"title":"5. Custom Browsers","href":"/version-4.0/customizing/5.-custom-browsers"},{"title":"Mythic UI Development","href":"/version-4.0/customizing/mythic-ui-development"}]}]},{"tab":"MythicRPC","pages":[{"title":"MythicRPC","href":"/version-4.0/mythicrpc/mythicrpc"}]}]},{"version":"version 3.3","pages":[{"title":"version 3.3","href":"/customizing/3.-consuming-containers/eventing/workflow-triggers"}]},{"version":"version 3.0","tabs":[{"tab":"Documentation"}]},{"version":"version 2.3","tabs":[{"tab":"Documentation"}]}]},"basePath":"","title":"Workflow Triggers - Mythic","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":[],"chunks":[]}