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 engineerThe 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:
- Web Portal → Calendars → Add Calendar
- Select base calendar (Mon-Fri, Mon-Sat, custom)
- Import ICS holiday file (Google Calendar, Outlook export, etc.)
- 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 dayMissed Run Policies
| Policy | Behavior |
|---|---|
| Skip | Don’t catch up — skip missed runs |
| Run immediately | Run as soon as the scheduler is available |
| Run once | Run 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: criticalThe 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: FERTMainframe / 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 ABENDsThe 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: trueFile 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 pickupDev → Test → Prod Promotion
Environment promotion is available on Growth+ plans.
Setting up environments
Tag each workflow: Environment → dev / test / production
Requesting promotion
- In the Desktop IDE: Workflow → Request Promotion → select target environment
- Atlas Studio shows a full diff of all changed nodes and edges
- 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