{"schemaVersion":"1","contentVersion":"2026-10-18.1","slug":"activities","title":"Create and deploy activities","summary":"Create reusable workflow operations, deploy them, and check their status.","category":"Go deeper","minutes":7,"prerequisites":["A project and permission to inspect its activities.","Activity/build allowance for deployment or execution."],"sections":[{"id":"create","title":"Create an activity","blocks":[{"type":"paragraph","text":"Open [System Explorer](/guides/controls-preview#navigation) → [Activities](/guides/controls-activities#list) → [New Activity](/guides/controls-activities#wizard). The wizard has four steps."},{"type":"steps","items":["[Basic Info](/guides/controls-activities#wizard): give the action a name and description.","[Activity Code](/guides/controls-activities#wizard): write or review its Python files.","[Configuration](/guides/controls-activities#configuration): choose the entry function and its arguments.","[Machine Spec](/guides/controls-activities#wizard): review the resources, then click [Create Activity](/guides/controls-activities#wizard)."]},{"type":"paragraph","text":"Creating an activity queues a build. Wait for the build to finish before deploying. [Creation wizard and field details](/guides/controls-activities#wizard)."}]},{"id":"deploy-activity","title":"Deploy it and use it","blocks":[{"type":"paragraph","text":"Open the activity details and check the build result. If it succeeded, deploy the build and wait for the deployment to be ready. Fix a failed build before trying to run it."},{"type":"paragraph","text":"Add the deployed activity to a workflow and test it with sample input. [Build and source controls](/guides/controls-activities#builds-source) · [Deploy and stop controls](/guides/controls-activities#deployment)."}]},{"id":"what-is-activity","title":"What is an activity?","blocks":[{"type":"paragraph","text":"An activity is a reusable backend operation that a workflow can call. It can contain application logic or handle an integration. The workflow determines when to call it and what to do with the result."},{"type":"paragraph","text":"A [Code](/guides/controls-workflow-nodes#fields-code) or [Edit Fields](/guides/controls-workflow-nodes#fields-code) node may be enough for a simple data transformation, and an [HTTP Request](/guides/controls-workflow-nodes#http) node may be enough for a direct external API call. Use a deployed activity when the operation needs a reusable backend implementation."}]},{"id":"inspect","title":"Inspect an activity before using it","blocks":[{"type":"steps","items":["Open [Activities](/guides/controls-activities#list) in [System Explorer](/guides/controls-preview#navigation).","Select the operation you intend to use and inspect its available metadata, inputs, and deployment state.","Confirm which project owns it and which workflow may invoke it.","Add an [Activity node](/guides/controls-workflow-nodes#activity) to the workflow, then select and configure that operation.","Provide a safe input, run the workflow, and inspect the activity output and error path."]},{"type":"paragraph","text":"An activity may appear in the list before it is ready to run. Check its deployment state and configuration before relying on it in a workflow."}]},{"id":"errors","title":"Handle errors as part of the process","blocks":[{"type":"paragraph","text":"An activity can fail because of invalid input, missing permission, an unavailable dependency, an expired credential, a timeout, or exhausted runtime allowance. Route errors deliberately where the workflow supports it, and preserve enough redacted context to diagnose the failure."},{"type":"note","title":"Retries can repeat side effects","text":"If an operation creates a record or calls an external service, make sure retries do not unintentionally duplicate the action."}]}],"technical":[],"related":["controls-activities","system-explorer-workflows","system-explorer-secrets","development","billing"],"sources":["commons/activity-build/README.md","activity-build/README.md","kondor_frontend/rumata_studio/src/components/window/explorer/ActivitiesView.tsx","CONTEXT.md"],"updated":"2026-09-08","audience":"general","media":[{"src":"https://docs.rumata.dev/media/manual/activities.jpg","width":1662,"height":789,"alt":"Sabai Talk Thai Activities list with login, registration, SQL, and file-storage operations.","caption":"Reference capture from the separate Sabai Talk Thai application (September 8, 2026). These reusable operations support the application’s backend. Open [Details](/guides/controls-activities#builds-source) to inspect an operation before using it.","sectionId":"inspect"},{"src":"https://docs.rumata.dev/media/manual/activity-details.jpg","width":1662,"height":789,"alt":"Activity details dialog describing a login operation and its configuration fields.","caption":"Reference capture from the separate Sabai Talk Thai application (September 8, 2026). The details describe what the operation expects. Field definitions are different from actual secret values or customer data.","sectionId":"what-is-activity"}],"video":null,"url":"https://docs.rumata.dev/guides/activities"}