Skip to Content
Atlas Studio IDEWorkflow Automation

Workflow Automation

Atlas Studio provides enterprise-grade workload automation with AI-generated workflows, supporting batch processing, cross-system orchestration, SAP/mainframe integration, and managed file transfer.

Building Workflows

With the Workflow Agent (Natural Language)

Open Workflow Agent and describe your workflow:

Build a workflow that: 1. Runs every weekday at 6 AM 2. Queries the orders database for yesterday's failed orders 3. Generates a CSV report 4. Sends it to the finance team via email 5. If row count > 100, also pages the on-call engineer

The agent generates a DAG workflow with all nodes pre-configured.

With the Visual Builder

Create nodes by dragging from the node palette:

Trigger → SQL Query → Condition → Branch A (email) / Branch B (email + PagerDuty)

Scheduling

Cron Syntax

# Every weekday at 9 AM 0 9 * * 1-5 # Every 6 hours 0 */6 * * * # First Monday of each month at 8 AM 0 8 * * 1#1 # Every 15 minutes */15 * * * *

Atlas Studio uses standard cron format. Seconds-level scheduling is available on Pro+ plans:

# Every 30 seconds (extended cron) */30 * * * * *

Business Calendars

Attach a business calendar to a workflow to automatically skip non-business days:

  1. Web Portal → Calendars → Add Calendar
  2. Select base calendar (Mon-Fri, Mon-Sat, custom)
  3. Import ICS holiday file (Google Calendar, Outlook export, etc.)
  4. Assign to workflow: Scheduling → Calendar → select calendar

Use case: Month-end payroll batch runs on the last business day of each month, automatically skipping weekends and public holidays.

Cron: 0 22 L * * (last day of month, 10 PM) Calendar: US Business Days Missed run: Shift to previous business day

Missed Run Policies

PolicyBehavior
SkipDon’t catch up — skip missed runs
Run immediatelyRun as soon as the scheduler is available
Run onceRun one catch-up even if multiple were missed

SLA Monitoring & Escalation

Define SLA deadlines per workflow:

sla: expectedDuration: 120m # expected finish time warningAt: 80% # alert at 80% of window deadlineAt: 6:00 AM UTC # hard deadline escalationPolicy: onWarning: - type: slack channel: "#ops-alerts" message: "⚠️ {workflow_name} at 80% of SLA window" onBreach: - type: pagerduty severity: critical

The SLA monitor runs in the background on the Web Portal — desktop app doesn’t need to be open.


Cross-Workflow Dependencies

Workflow B can wait for Workflow A to complete:

In Workflow A (upstream):

Last node → Emit Event: "etl-load-complete"

In Workflow B (downstream):

First node → Wait For Event: "etl-load-complete" Not-before window: 1h (don't trigger on events older than 1 hour) Timeout: 4h (fail if no event within 4 hours)

This replaces polling loops and time-based hacks.


SAP Integration (Pro/Enterprise)

RFC Function Call

node: sap-rfc connection: sap-prod functionModule: BAPI_GOODSMVT_CREATE parameters: GOODSMVT_HEADER: PSTNG_DATE: "{{ today }}" DOC_DATE: "{{ today }}" GOODSMVT_ITEM: - MATERIAL: "{{ material_id }}" PLANT: "1000" MOVE_TYPE: "101"

OData / REST

node: sap-odata connection: sap-prod method: POST entity: /sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV/PurchaseOrders body: CompanyCode: "1000" PurchasingOrganization: "1000"

IDoc Posting

node: sap-idoc connection: sap-prod messageType: MATMAS segments: E1MARAM: MATNR: "{{ material_id }}" MTART: FERT

Mainframe / z-OS Integration (Pro/Enterprise)

Submit JCL Job

node: zos-job connection: mainframe-prod jcl: | //ATLASJOB JOB (ACCT),'ATLAS-STUDIO',CLASS=A,MSGCLASS=X //STEP1 EXEC PGM=IEFBR14 //* jobName: ATLASJOB pollInterval: 30s timeout: 2h onAbend: fail # fail workflow if job ABENDs

The node polls to completion, parses return codes (CC 0000 = success, any ABEND = failure), and retrieves SYSOUT spool for logs.


Managed File Transfer (MFT)

SFTP to S3 with PGP Encryption

nodes: - name: download-from-sftp type: mft-download source: type: sftp connection: partner-sftp path: /outbound/report_{{ date }}.csv stableAgeCheck: 60s # wait 60s after file appears before downloading - name: pgp-encrypt type: pgp-encrypt input: "{{ download-from-sftp.localPath }}" recipientPublicKey: vault:finance-team-pgp-key - name: upload-to-s3 type: mft-upload destination: type: s3 bucket: finance-reports key: encrypted/report_{{ date }}.csv.gpg checksum: sha256 # verify checksum after upload transferReceipt: true

File Watcher Trigger

Instead of a cron schedule, trigger a workflow when a file arrives:

trigger: type: file-watcher source: type: sftp connection: vendor-sftp path: /inbound/*.csv pollInterval: 5m stableAgeCheck: 60s # file must not change for 60s ackMarker: .processed # create *.processed file after pickup

Dev → Test → Prod Promotion

Environment promotion is available on Growth+ plans.

Setting up environments

Tag each workflow: Environment → dev / test / production

Requesting promotion

  1. In the Desktop IDE: Workflow → Request Promotion → select target environment
  2. Atlas Studio shows a full diff of all changed nodes and edges
  3. Submit promotion request

Approving a promotion

Web Portal → Promotions → pending request shows:

  • Who requested it and when
  • Full node/edge diff (green = added, red = removed, yellow = changed)
  • Approve → workflow is promoted with a snapshot for rollback
  • Reject → requester is notified with comments

Rolling back

If a promoted workflow causes issues: Workflows → select workflow → Version History → select previous snapshot → Restore