Schedule flows to run automatically on intervals, daily, weekly, or on new builds
Automations allow you to schedule flows and suites to run automatically based on triggers like new builds, time intervals, or specific schedules. This ensures continuous testing without manual work.
For mobile apps, choose the execution target, device model, and OS version. Latest is the default for both device and OS, so each run uses the newest compatible option available at that time. Choose a specific model or OS to pin it. If a pinned selection is no longer available, the automation card shows the dispatch failure instead of silently using different hardware.For a two-device flow or suite, choose separate models and OS versions for
Device 1 and Device 2. An automation can mix one-device and two-device
targets: one-device targets run on Device 1. If a two-device flow later joins a
label that an automation with a single device targets, that device selection is
used for both of its devices.
Each time the automation runs, it runs whatever is in the folders at that
moment, the same way running a folder does
If a folder is deleted, it matches nothing. When nothing is left to run, the
automation shows “No runnable flows matched this automation”
When the build comes from a connected repo with code-managed tests turned
on, a CI/CD automation runs the folders’ repo tests as they are at the
build’s commit. Otherwise it runs the folders as they are in the dashboard
Repo tests in a folder the pull request renamed or deleted don’t run. Tests
made in the dashboard and filed in that folder still run. If nothing is left,
the GitHub check on the commit reports “No flows matched”
Using suites is recommended because your automation automatically includes new flows added to the suite later.
Use Suites for AutomationsAutomate suites rather than individual flows. When you add a flow to the suite, it’s automatically included in all related automations.
Enable “Only Run on New Builds”For daily/weekly automations, enable this option to skip runs when no new build has been uploaded since the last run.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Autosana","colors":{"primary":"#0D9373","light":"#07C983","dark":"#0D9373"},"logo":{"light":"https://mintcdn.com/autosana/mTDCZgW2I2SWs-UB/logo/light.svg?fit=max\u0026auto=format\u0026n=mTDCZgW2I2SWs-UB\u0026q=85\u0026s=ccb4d8c65c27b826c24b21c2c40eece6","dark":"https://mintcdn.com/autosana/mTDCZgW2I2SWs-UB/logo/dark.svg?fit=max\u0026auto=format\u0026n=mTDCZgW2I2SWs-UB\u0026q=85\u0026s=e7d9ad801e878c55ff81cab43ea6b42a","href":"https://docs.autosana.ai"},"favicon":"https://mintcdn.com/autosana/tfnV7RyCfUuC94qX/logo/favicon.png?fit=max\u0026auto=format\u0026n=tfnV7RyCfUuC94qX\u0026q=85\u0026s=0010a2d74f105f6ba6f6c6fd0ba85b6c","styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"autosana","hasAudioNarration":false,"actualSubdomain":"autosana","customDomains":["docs.autosana.ai"],"gitSource":{"type":"github","owner":"autosana","repo":"autosanadashboard","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae66873149aa82e62104cdb","collectionId":"512b986e-957a-4fc9-97e7-f5e569ae17a1","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae66873149aa82e62104cdb"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae68259149aa82e621074cc","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Core Features","count":12},{"language":"default","tag":"APIs","count":11},{"language":"default","tag":"Integrations","count":11},{"language":"default","tag":"Getting Started","count":7},{"language":"default","tag":"Code-Managed Flows","count":6},{"language":"default","tag":"Uploading Your App","count":5},{"language":"default","tag":"Guides","count":5},{"language":"default","tag":"Best Practices","count":2}]},"assistantConfig":{"enableStarterQuestions":false},"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":"automations","slug":"/automations","pageMetadata":{"title":"Automations","description":"Schedule flows to run automatically on intervals, daily, weekly, or on new builds","href":"/automations"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Schedule flows to run automatically on intervals, daily, weekly, or on new builds\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"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`,blockquote:`blockquote`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Automations allow you to schedule flows and suites to run automatically based on triggers like new builds, time intervals, or specific schedules. This ensures continuous testing without manual work.`}),`\n`,_jsx(Heading,{level:`2`,id:`what-is-an-automation`,children:`What is an Automation?`}),`\n`,_jsxs(_components.p,{children:[`An `,_jsx(_components.strong,{children:`Automation`}),` defines when and how flows or suites should run automatically. Automations can be triggered by:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`CI/CD Build Uploads`}),`: Run flows whenever a new app build is uploaded`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Daily Schedule`}),`: Run flows at a specific time every day`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Weekly Schedule`}),`: Run flows on a specific day and time each week`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Intervals`}),`: Run flows at a custom interval (as frequent as every minute)`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`creating-an-automation`,children:`Creating an Automation`}),`\n`,_jsx(Heading,{level:`3`,id:`step-1-navigate-to-automations`,children:`Step 1: Navigate to Automations`}),`\n`,_jsxs(_components.p,{children:[`Click on `,_jsx(_components.strong,{children:_jsx(_components.a,{href:`https://autosana.ai/automations`,children:`Automations`})}),` in the sidebar.`]}),`\n`,_jsx(Heading,{level:`3`,id:`step-2-click-“create-automation”`,children:`Step 2: Click “Create Automation”`}),`\n`,_jsxs(_components.p,{children:[`Click the `,_jsx(_components.strong,{children:`Create Automation`}),` button in the top right.`]}),`\n`,_jsx(Heading,{level:`3`,id:`step-3-name-your-automation`,children:`Step 3: Name Your Automation`}),`\n`,_jsx(_components.p,{children:`Enter a descriptive name (e.g., “Nightly Regression Flows”, “Smoke Flows on Build”)`}),`\n`,_jsx(Heading,{level:`3`,id:`step-4-select-an-app`,children:`Step 4: Select an App`}),`\n`,_jsx(_components.p,{children:`Choose which app the flows will run on.`}),`\n`,_jsx(Heading,{level:`3`,id:`step-5-select-a-device`,children:`Step 5: Select a Device`}),`\n`,_jsxs(_components.p,{children:[`For mobile apps, choose the execution target, device model, and OS version. `,_jsx(_components.strong,{children:`Latest`}),` is the default for both device and OS, so each run uses the newest compatible option available at that time. Choose a specific model or OS to pin it. If a pinned selection is no longer available, the automation card shows the dispatch failure instead of silently using different hardware.`]}),`\n`,_jsxs(_components.p,{children:[`For a two-device flow or suite, choose separate models and OS versions for\n`,_jsx(_components.strong,{children:`Device 1`}),` and `,_jsx(_components.strong,{children:`Device 2`}),`. An automation can mix one-device and two-device\ntargets: one-device targets run on Device 1. If a two-device flow later joins a\nlabel that an automation with a single device targets, that device selection is\nused for both of its devices.`]}),`\n`,_jsx(Heading,{level:`3`,id:`step-6-select-targets`,children:`Step 6: Select Targets`}),`\n`,_jsx(_components.p,{children:`Choose what to run:`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Option 1: Select Suites (Recommended)`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Check one or more suites to run`}),`\n`,_jsx(_components.li,{children:`Suites automatically stay up-to-date when flows are added or removed`}),`\n`,_jsx(_components.li,{children:`Best for organized, maintainable automations`}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Option 2: Select Individual Flows`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Check specific flows to run`}),`\n`,_jsx(_components.li,{children:`Creates a fixed list of flows`}),`\n`,_jsx(_components.li,{children:`Best for one-off or specific flow combinations`}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Option 3: Select Folders`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Check one or more `,_jsx(_components.a,{href:`/flows#running-a-folder`,children:`folders`})]}),`\n`,_jsxs(_components.li,{children:[`Each time the automation runs, it runs whatever is in the folders at that\nmoment, the same way `,_jsx(_components.a,{href:`/flows#running-a-folder`,children:`running a folder`}),` does`]}),`\n`,_jsx(_components.li,{children:`If a folder is deleted, it matches nothing. When nothing is left to run, the\nautomation shows “No runnable flows matched this automation”`}),`\n`,_jsx(_components.li,{children:`When the build comes from a connected repo with code-managed tests turned\non, a CI/CD automation runs the folders’ repo tests as they are at the\nbuild’s commit. Otherwise it runs the folders as they are in the dashboard`}),`\n`,_jsx(_components.li,{children:`Repo tests in a folder the pull request renamed or deleted don’t run. Tests\nmade in the dashboard and filed in that folder still run. If nothing is left,\nthe GitHub check on the commit reports “No flows matched”`}),`\n`]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Using suites is recommended because your automation automatically includes new flows added to the suite later.`})}),`\n`,_jsx(Heading,{level:`3`,id:`step-7-configure-schedule`,children:`Step 7: Configure Schedule`}),`\n`,_jsx(_components.p,{children:`Choose when and how often the automation runs:`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`CI/CD Build Upload`}),` - Runs when new builds are uploaded via CI/CD`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Best for smoke flows on every build`}),`\n`,_jsx(_components.li,{children:`No additional configuration needed`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Daily`}),` - Runs once per day`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Set time (e.g., 2:00 AM) and timezone (ET/CT/PT/UTC)`}),`\n`,_jsx(_components.li,{children:`Best for nightly regression suites`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Weekly`}),` - Runs once per week`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Set day, time, and timezone (ET/CT/PT/UTC)`}),`\n`,_jsx(_components.li,{children:`Best for comprehensive regression before releases`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Interval`}),` - Runs at a custom interval`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Choose from presets (5 min, 15 min, 30 min, 1 hr, etc.) or set a custom value`}),`\n`,_jsx(_components.li,{children:`Start immediately or at a specific time in ET/CT/PT/UTC`}),`\n`,_jsx(_components.li,{children:`Best for continuous monitoring`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`“Only Run on New Builds”`}),` (Optional)`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Enable to skip runs if no new build was uploaded since the last run`}),`\n`,_jsx(_components.li,{children:`Saves resources on unchanged builds`}),`\n`,_jsx(_components.li,{children:`Useful for daily/weekly automations`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`step-8-review-and-create`,children:`Step 8: Review and Create`}),`\n`,_jsx(_components.p,{children:`Review the summary at the bottom of the dialog:`}),`\n`,_jsxs(_components.blockquote,{children:[`\n`,_jsxs(_components.p,{children:[`“Autosana will run `,_jsx(_components.strong,{children:`[flows/suites]`}),` on `,_jsx(_components.strong,{children:`[app name]`}),` [trigger schedule]”`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Create Schedule`}),` to activate your automation.`]}),`\n`,_jsx(Heading,{level:`2`,id:`managing-automations`,children:`Managing Automations`}),`\n`,_jsx(Heading,{level:`3`,id:`running-an-automation-manually`,children:`Running an Automation Manually`}),`\n`,_jsx(_components.p,{children:`To trigger an automation immediately:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Click the play icon (▶️) on the automation card`}),`\n`,_jsx(_components.li,{children:`Confirm you want to run it`}),`\n`,_jsx(_components.li,{children:`View results in the Runs page`}),`\n`]}),`\n`,_jsx(_components.p,{children:`This is useful for testing an automation or running it ad-hoc.`}),`\n`,_jsx(Heading,{level:`3`,id:`enabling/disabling-an-automation`,children:`Enabling/Disabling an Automation`}),`\n`,_jsx(_components.p,{children:`Toggle the switch on the automation card:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Enabled (blue)`}),`: Automation will run on schedule`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Disabled (gray)`}),`: Automation is paused`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Disabling an automation keeps the configuration but prevents it from running.`}),`\n`,_jsx(Heading,{level:`2`,id:`automation-triggers-in-detail`,children:`Automation Triggers in Detail`}),`\n`,_jsx(Heading,{level:`3`,id:`ci/cd-trigger`,children:`CI/CD Trigger`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`How it works:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Monitors for new app or build uploads via CI/CD API`}),`\n`,_jsx(_components.li,{children:`Automatically starts when a new build is detected`}),`\n`,_jsx(_components.li,{children:`Runs immediately upon upload completion`}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Use cases:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Post-deployment validation`}),`\n`,_jsx(_components.li,{children:`Continuous integration pipelines`}),`\n`,_jsx(_components.li,{children:`Automated smoke flows`}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Example:`})}),`\n`,_jsx(CodeBlock,{numberOfLines:`5`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Name: \"Smoke Flows on Build\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Trigger: CI/CD app/build upload`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Suites: [\"Smoke Flows\"]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Only run on new builds: N/A (always runs on upload)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.a,{href:`/ci-cd-integration`,children:`Learn how to set up our CI/CD integration →`})}),`\n`,_jsx(Heading,{level:`3`,id:`daily-schedule`,children:`Daily Schedule`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`How it works:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Runs once every 24 hours at the specified time`}),`\n`,_jsx(_components.li,{children:`Uses your selected timezone (ET, CT, PT, or UTC)`}),`\n`,_jsx(_components.li,{children:`Calculates next run based on current time`}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Use cases:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Nightly regression suites`}),`\n`,_jsx(_components.li,{children:`Daily health checks`}),`\n`,_jsx(_components.li,{children:`Morning or evening validation`}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Example:`})}),`\n`,_jsx(CodeBlock,{numberOfLines:`5`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Name: \"Nightly Regression\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Trigger: Daily at 2:00 AM PT`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Suites: [\"Regression Suite\"]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Only run on new builds: Yes`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`3`,id:`weekly-schedule`,children:`Weekly Schedule`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`How it works:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Runs once per week on the specified day and time`}),`\n`,_jsx(_components.li,{children:`Uses your selected timezone (ET, CT, PT, or UTC)`}),`\n`,_jsx(_components.li,{children:`Ideal for less frequent, comprehensive suites`}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Use cases:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Weekly regression before releases`}),`\n`,_jsx(_components.li,{children:`Weekend validation`}),`\n`,_jsx(_components.li,{children:`Comprehensive flow suites`}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Example:`})}),`\n`,_jsx(CodeBlock,{numberOfLines:`5`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Name: \"Weekly Full Regression\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Trigger: Monday at 9:00 AM ET`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Suites: [\"Full Regression Suite\"]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Only run on new builds: No`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`3`,id:`interval-schedule`,children:`Interval Schedule`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`How it works:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Repeats at a custom interval (minimum 1 minute, maximum 1 week)`}),`\n`,_jsx(_components.li,{children:`Can start immediately or at a specific time in ET, CT, PT, or UTC`}),`\n`,_jsx(_components.li,{children:`Continues running until disabled`}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Use cases:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`High-frequency monitoring (every 1-15 minutes)`}),`\n`,_jsx(_components.li,{children:`Continuous validation (every 1-2 hours)`}),`\n`,_jsx(_components.li,{children:`Scheduled checks (every 12 hours)`}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Example:`})}),`\n`,_jsx(CodeBlock,{numberOfLines:`5`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Name: \"Frequent Smoke Check\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Trigger: Every 30 minutes, starting at 8:00 AM PT`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Suites: [\"Critical Path Flows\"]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Only run on new builds: Yes`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`2`,id:`best-practices`,children:`Best Practices`}),`\n`,_jsxs(Tip,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Use Suites for Automations`})}),_jsx(_components.p,{children:`Automate suites rather than individual flows. When you add a flow to the suite, it’s automatically included in all related automations.`})]}),`\n`,_jsxs(Tip,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Enable “Only Run on New Builds”`})}),_jsx(_components.p,{children:`For daily/weekly automations, enable this option to skip runs when no new build has been uploaded since the last run.`})]}),`\n`,_jsx(Heading,{level:`2`,id:`next-steps`,children:`Next Steps`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/ci-cd-integration`,children:`Set up our CI/CD integration →`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/suites`,children:`Learn about organizing flows with suites →`})}),`\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":{"config":{},"pageMetadata":{"title":"Automations","description":"Schedule flows to run automatically on intervals, daily, weekly, or on new builds","href":"/automations"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"What is an Automation?","slug":"what-is-an-automation","depth":2,"children":[]},{"title":"Creating an Automation","slug":"creating-an-automation","depth":2,"children":[{"title":"Step 1: Navigate to Automations","slug":"step-1-navigate-to-automations","depth":3,"children":[]},{"title":"Step 2: Click “Create Automation”","slug":"step-2-click-“create-automation”","depth":3,"children":[]},{"title":"Step 3: Name Your Automation","slug":"step-3-name-your-automation","depth":3,"children":[]},{"title":"Step 4: Select an App","slug":"step-4-select-an-app","depth":3,"children":[]},{"title":"Step 5: Select a Device","slug":"step-5-select-a-device","depth":3,"children":[]},{"title":"Step 6: Select Targets","slug":"step-6-select-targets","depth":3,"children":[]},{"title":"Step 7: Configure Schedule","slug":"step-7-configure-schedule","depth":3,"children":[]},{"title":"Step 8: Review and Create","slug":"step-8-review-and-create","depth":3,"children":[]}]},{"title":"Managing Automations","slug":"managing-automations","depth":2,"children":[{"title":"Running an Automation Manually","slug":"running-an-automation-manually","depth":3,"children":[]},{"title":"Enabling/Disabling an Automation","slug":"enabling/disabling-an-automation","depth":3,"children":[]}]},{"title":"Automation Triggers in Detail","slug":"automation-triggers-in-detail","depth":2,"children":[{"title":"CI/CD Trigger","slug":"ci/cd-trigger","depth":3,"children":[]},{"title":"Daily Schedule","slug":"daily-schedule","depth":3,"children":[]},{"title":"Weekly Schedule","slug":"weekly-schedule","depth":3,"children":[]},{"title":"Interval Schedule","slug":"interval-schedule","depth":3,"children":[]}]},{"title":"Best Practices","slug":"best-practices","depth":2,"children":[]},{"title":"Next Steps","slug":"next-steps","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"autosana","siteName":"Autosana","title":"Automations - Autosana","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-26T07:56:59.359Z","originalFileLocation":"automations.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=\"system\"}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=\"description\" content=\"Schedule flows to run automatically on intervals, daily, weekly, or on new builds\">\u003cmeta data-mint-head name=\"application-name\" content=\"Autosana\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/autosana/uGhYB-g6Mqq-UAaf/_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/autosana/uGhYB-g6Mqq-UAaf/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/autosana/uGhYB-g6Mqq-UAaf/_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/autosana/uGhYB-g6Mqq-UAaf/_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/autosana/uGhYB-g6Mqq-UAaf/_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/autosana/uGhYB-g6Mqq-UAaf/_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/autosana/uGhYB-g6Mqq-UAaf/_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/autosana/uGhYB-g6Mqq-UAaf/_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/autosana/uGhYB-g6Mqq-UAaf/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Automations - Autosana\">\u003cmeta data-mint-head property=\"og:description\" content=\"Schedule flows to run automatically on intervals, daily, weekly, or on new builds\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Autosana\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.autosana.ai/automations\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://autosana.mintlify.app/_mintlify/api/og/v2?division=Core+Features\u0026amp;title=Automations\u0026amp;description=Schedule+flows+to+run+automatically+on+intervals%2C+daily%2C+weekly%2C+or+on+new+builds\u0026amp;theme=585caf19b96d6b7f19feb974\u0026amp;signature=6b593d7fc287d3ebab3007137a591afb6e23f4c421ff6264065f1c8d86616b6d\">\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=\"Automations - Autosana\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Schedule flows to run automatically on intervals, daily, weekly, or on new builds\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://autosana.mintlify.app/_mintlify/api/og/v2?division=Core+Features\u0026amp;title=Automations\u0026amp;description=Schedule+flows+to+run+automatically+on+intervals%2C+daily%2C+weekly%2C+or+on+new+builds\u0026amp;theme=585caf19b96d6b7f19feb974\u0026amp;signature=6b593d7fc287d3ebab3007137a591afb6e23f4c421ff6264065f1c8d86616b6d\">\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/autosana/uGhYB-g6Mqq-UAaf/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Autosana\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0D9373\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.autosana.ai/automations\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/automations.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.autosana.ai/#organization\",\"name\":\"Autosana\",\"url\":\"https://docs.autosana.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/autosana/mTDCZgW2I2SWs-UB/logo/light.svg?fit=max\u0026auto=format\u0026n=mTDCZgW2I2SWs-UB\u0026q=85\u0026s=ccb4d8c65c27b826c24b21c2c40eece6\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.autosana.ai#website\",\"name\":\"Autosana\",\"url\":\"https://docs.autosana.ai\",\"publisher\":{\"@id\":\"https://docs.autosana.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.autosana.ai/automations#webpage\",\"url\":\"https://docs.autosana.ai/automations\",\"name\":\"Automations\",\"description\":\"Schedule flows to run automatically on intervals, daily, weekly, or on new builds\",\"dateModified\":\"2026-10-26T07:56:59.359Z\",\"isPartOf\":{\"@id\":\"https://docs.autosana.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.autosana.ai/automations#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.autosana.ai/automations#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Core Features\",\"item\":\"https://docs.autosana.ai/apps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Automations\",\"item\":\"https://docs.autosana.ai/automations\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.autosana.ai/automations#article\",\"headline\":\"Automations\",\"name\":\"Automations\",\"description\":\"Schedule flows to run automatically on intervals, daily, weekly, or on new builds\",\"url\":\"https://docs.autosana.ai/automations\",\"mainEntityOfPage\":{\"@id\":\"https://docs.autosana.ai/automations#webpage\"},\"dateModified\":\"2026-10-26T07:56:59.359Z\",\"publisher\":{\"@id\":\"https://docs.autosana.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.autosana.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Autosana\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Autosana","nav":{"global":null,"groups":[{"group":"Getting Started","pages":[{"title":"Intro(doc)tion","href":"/introduction"},{"title":"Quickstart","href":"/quickstart"},{"title":"Web Testing","href":"/web-testing"},{"title":"Mobile Testing","href":"/real-device-testing"},{"title":"MCP Server","href":"/mcp-setup"},{"title":"Install the CLI","href":"/install-cli"},{"title":"Local Testing","href":"/local-testing"}]},{"group":"Core Features","pages":[{"title":"Apps","href":"/apps"},{"title":"Flows","href":"/flows"},{"title":"Suites","description":"Group and manage related flows with test suites","href":"/suites"},{"title":"Automations","href":"/automations"},{"title":"Hooks","description":"Set the state of the app before, during, and after your flows run via scripts, API calls, and app launch configurations","href":"/hooks"},{"title":"Environments","href":"/environments"},{"title":"Variables","href":"/variables"},{"title":"Notifications","href":"/notifications"},{"title":"Performance Monitoring","href":"/performance-monitoring"},{"title":"Network Traffic","href":"/network-traffic"},{"title":"Issues","href":"/issues"},{"title":"Team","href":"/team"}]},{"group":"Best Practices","pages":[{"title":"Writing Effective Flow Instructions","href":"/writing-effective-flow-instructions"},{"title":"Making Suites, Parallelizable, Isolated, and Repeatable","href":"/guides-parallelizable-isolated-tests"}]},{"group":"Code-Managed Flows","pages":[{"title":"Code-Managed Flows","sidebarTitle":"Overview","href":"/code-managed-flows"},{"title":"Files \u0026 Schema","href":"/code-managed-files"},{"title":"Running from the CLI","sidebarTitle":"Running from the CLI","href":"/code-managed-cli"},{"title":"Validation, Syncing \u0026 Pull Requests","sidebarTitle":"Syncing \u0026 Pull Requests","href":"/code-managed-sync"},{"title":"GitLab CI","sidebarTitle":"GitLab CI","href":"/gitlab-ci"},{"title":"Migrating Existing Flows","sidebarTitle":"Migrating","href":"/code-managed-migrate"}]},{"group":"Guides","pages":[{"title":"Multi-Device Testing","href":"/multi-device-testing"},{"title":"Testing Push Notifications","href":"/guides-push-notifications"},{"title":"Testing In-App Purchases","href":"/guides-in-app-purchases"},{"title":"Testing One-time Passwords (OTP)","href":"/guides-otp-testing"},{"title":"Testing App Clips","href":"/guides-app-clips"}]},{"group":"Integrations","pages":[{"title":"GitHub Bot","href":"/github-integration"},{"title":"Code Review","href":"/code-review"},{"title":"Jira Cloud","href":"/jira-integration"},{"title":"Linear Tickets","href":"/linear-integration"},{"title":"Slack Notifications","href":"/slack-integration"},{"title":"Grok Bot","href":"/grok-bot"},{"title":"Devin","href":"/devin"},{"title":"Dots","href":"/dots"},{"title":"Hermes Agent","href":"/hermes-agent"},{"title":"Webhooks","href":"/webhooks"},{"title":"Tailscale","href":"/private-network"}]},{"group":"Uploading Your App","pages":[{"title":"Finding Your Bundle ID","href":"/bundle-id"},{"title":"Building Your Mobile App for Our Cloud","href":"/app-build-guide"},{"title":"Upload a Build","href":"/upload-build"},{"title":"Github Action for App Uploads","href":"/ci-cd-integration"},{"title":"Run Location","href":"/run-location"}]},{"group":"APIs","pages":[{"title":"API Reference","href":"/api-reference"},{"title":"Apps API","href":"/api-apps"},{"title":"Suites \u0026 Flows API","href":"/api-suites-flows"},{"title":"Labels API","href":"/api-labels"},{"title":"Runs API","href":"/api-runs"},{"title":"Hooks API","href":"/api-hooks"},{"title":"Environment Variables API","href":"/api-env-vars"},{"title":"Members API","href":"/api-members"},{"title":"Usage API","href":"/api-usage"},{"title":"App Build Upload API","href":"/api-ci"},{"title":"Network Allowlist","href":"/network-allowlist"}]}]},"basePath":"","title":"Automations - Autosana","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":[],"chunks":[]}