AppFlow
AppFlow Overview
AWS AppFlow provides fully managed bi-directional data integration between StackFlow and SaaS applications. StackFlow uses AppFlow for large-scale data synchronization tasks: syncing CRM data from Salesforce for customer context in incidents, importing HR data from Workday for user management, and syncing asset data from ServiceNow during migrations.
- AWS AppFlow: Service enabled in account
373544523367inus-east-1 - IAM:
StackFlowAppFlowRolewithappflow:CreateFlow,appflow:StartFlow,s3:PutObjecton the AppFlow destination bucket - S3:
stackflow-appflow-data-373544523367bucket as AppFlow destination with SSE-KMS encryption - Lambda:
StackFlowAppFlowTriggerprocessing AppFlow completion events from EventBridge
Supported Connectors
| Connector | Direction | Use Case |
|---|---|---|
| Salesforce | Inbound | Sync customer records to CMDB |
| Workday | Inbound | Sync employee data for user management |
| ServiceNow | Both | Migration / coexistence sync |
| SAP | Inbound | Cost center and asset sync |
| Zendesk | Inbound | Migrate historical tickets |
Creating a Flow
aws appflow create-flow --flow-name stackflow-salesforce-accounts-sync --source-flow-config '{
"connectorType": "Salesforce",
"connectorProfileName": "stackflow-salesforce",
"sourceConnectorProperties": {
"Salesforce": {"object": "Account", "enableDynamicFieldUpdate": true}
}
}' --destination-flow-config-list '[{
"connectorType": "S3",
"destinationConnectorProperties": {
"S3": {"bucketName": "stackflow-appflow-data", "bucketPrefix": "salesforce/accounts/"}
}
}]' --tasks '[{"taskType": "Filter", ...}]' --trigger-config '{"triggerType": "Scheduled", "triggerProperties": {"Scheduled": {"scheduleExpression": "rate(1 hour)"}}}' --region us-east-1
Data Transformation
AppFlow supports field-level transformations including masking (for PII), math operations, string concatenation, and conditional mapping. For complex transformations not supported natively, the AppFlow S3 destination can trigger a Lambda function via S3 events to perform custom transformations before loading data into StackFlow via the REST API.
StackFlowFieldKeyRotator Lambda.
Error Handling
AppFlow can be configured to write failed records to an S3 error bucket for manual review and reprocessing. Set up a CloudWatch Alarm on the RecordsProcessedFailed metric for each flow to alert on integration failures. The StackFlow admin console shows AppFlow flow status in Integrations → AppFlow → Flow Status.