{"schemaVersion":"1","contentVersion":"2026-10-18.1","slug":"triggers","title":"HTTP and scheduled triggers","summary":"Start a workflow from an external request or a recurring schedule.","category":"Go deeper","minutes":10,"prerequisites":["A workflow that works with harmless manual input.","Permission to publish/configure it and sufficient workflow allowance.","A clear decision about who may invoke it."],"sections":[{"id":"choose","title":"Choose how the process starts","blocks":[{"type":"table","headers":["Trigger","Use it for"],"rows":[["Manual","Testing or an operator-initiated process."],["HTTP","A frontend action, incoming webhook, or external API call."],["Schedule","A recurring check, report, or synchronization."]]},{"type":"paragraph","text":"All of these can cause real actions and consume allowance after admission. Start with a manual test before enabling an automatic source."}]},{"id":"http","title":"Configure an HTTP trigger","blocks":[{"type":"steps","items":["Open the workflow editor and select its [HTTP Trigger](/guides/controls-workflow-triggers#http-manual).","Set the method, route/path, and response behavior using the inspector’s controls.","Review who may invoke the workflow. Keep it private unless anonymous access is part of the intended product behavior.","Select [Save](/guides/controls-workflows#toolbar) to publish the intended graph version. Open [More actions](/guides/controls-workflows#toolbar) → [API & schemas](/guides/controls-workflows#api-schemas) to copy the actual endpoint and inspect its input/output contract.","Send a harmless test request and verify both the response and the workflow run evidence."]},{"type":"paragraph","text":"Use [HTTP Trigger](/guides/controls-workflow-triggers#http-manual) to receive incoming requests and [HTTP Request](/guides/controls-workflow-nodes#http) to send requests to another service."}]},{"id":"schedule","title":"Configure a schedule","blocks":[{"type":"steps","items":["Select [Schedule Trigger](/guides/controls-workflow-triggers#schedule) and choose the supported interval or cron configuration.","Set the intended frequency and review any timezone field or scheduler interpretation before enabling it.","[Publish](/guides/publishing) and synchronize the schedule through the workflow’s available controls.","Inspect schedule status and confirm it is active rather than paused.","Verify a scheduled run and its result. Pause the schedule when it should stop generating work."]},{"type":"note","title":"Avoid accidental repeated actions","text":"A schedule can repeatedly send messages or create records. Design duplicate handling and use a test destination before leaving it active."}]},{"id":"responses","title":"Waiting for a result versus accepting work","blocks":[{"type":"paragraph","text":"A synchronous request waits for the workflow result. An asynchronous request acknowledges that work was accepted and returns run information. An accepted response is not proof that the workflow completed successfully. Follow the run status to its final outcome."}]}],"technical":[],"related":["controls-workflow-triggers","system-explorer-workflows","system-explorer-secrets","collaboration","billing"],"sources":["trigger-gateway/javascript/src/server.ts","trigger-gateway/javascript/src/routes/workflow-routes.ts","trigger-gateway/javascript/src/workflow-trigger-request.ts","trigger-gateway/javascript/src/http-trigger-input.ts"],"updated":"2026-09-06","audience":"general","media":[],"video":null,"url":"https://docs.rumata.dev/guides/triggers"}