Deploy an AI-powered sales automation system to AWS in 30 minutes.
Deploy directly to your AWS account:
Note: This button uses the manually uploaded template. Lambda code must be deployed separately using ./deploy.sh
What if you could engage a new web lead not in hours, but in seconds?
The Atlas Engine is a serverless, AI-powered B2B sales accelerator built on AWS. It's a high-impact, interactive demo that solves the "immediate contact" problem by turning a simple web chat into a real-time, AI-driven, outbound phone call. It's a "silent salesperson" that demonstrates a sophisticated, event-driven architecture in real-time.
The Journey (Web Chat to Phone Call in < 60 Seconds) goes as follows:
-
A user interacts with an Amazon Lex chatbot on the web.
-
Their info triggers an AWS Step Functions workflow, which creates a lead in Salesforce.
-
Amazon Bedrock (Claude 3.5 Sonnet) dynamically generates a contextual greeting based on the user's chat.
-
Amazon Connect is triggered, placing an immediate outbound, AI-powered voice call to the user.
-
The user talks to the AI-driven IVR, which can answer questions live (using Bedrock) or handle requests.
-
After the call, Amazon Transcribe and Bedrock create a summary, and the Step Function resumes to post it to the Salesforce lead record.
Before clicking the deploy button, ensure you have:
- AWS Account with admin permissions
- Bedrock Model Access - Enable Claude 3.5 Sonnet in Bedrock Console
- Salesforce Connected App - Create credentials following SALESFORCE_INTEGRATION.md
- AWS Secrets Manager Secret - Store Salesforce credentials:
aws secretsmanager create-secret \ --name AtlasEngine/SalesforceCreds \ --secret-string '{"username":"your-email@company.com","client_id":"YOUR_CLIENT_ID","private_key":"-----BEGIN PRIVATE KEY-----\nYOUR_KEY\n-----END PRIVATE KEY-----"}'
| Environment | Monthly Cost | Use Case |
|---|---|---|
| Development | ~$24/month | Testing, 1K conversations |
| Staging | ~$214/month | QA, 10K conversations |
| Production | ~$1,138/month | Live, 50K conversations |
See COST_ESTIMATION.md for detailed breakdown and optimization strategies.
After CloudFormation completes:
-
Configure Amazon Lex Bot
- Go to Amazon Lex Console
- Create a new bot named "AtlasEngineBot"
- Add the Lambda fulfillment ARN from CloudFormation Outputs
- Build and publish the bot
-
Optional: Set Up Amazon Connect (for voice calls)
- Go to Amazon Connect Console
- Create or use existing instance
- Update stack parameters with ConnectInstanceId and SourcePhoneNumber
- Configure contact flow to use the deployed Lambda functions
-
Test the System
# Test Step Functions workflow aws stepfunctions start-execution \ --state-machine-arn <WORKFLOW_ARN_FROM_OUTPUTS> \ --input '{"firstName":"John","lastName":"Doe","phone":"+15555551234"}'
π CONFUSED? Pick your guide:
- Never done this before? β START_HERE.md
- Just want commands? β CHEAT_SHEET.txt
- Want full details? β Keep reading below
- Open Terminal on your Mac
- Navigate to this folder:
cd /Users/johndoe/Downloads/aws_org_export
The scripts will use your AWS CLI configuration. To set region:
# Check current region
aws configure get region
# Change region (if needed)
aws configure set region us-west-2Note: You don't need to manually add account ID - AWS automatically detects it from your credentials.
Create a file with your Salesforce credentials:
cat > salesforce-creds.json << 'EOF'
{
"username": "your-email@company.com",
"client_id": "YOUR_SALESFORCE_CLIENT_ID",
"private_key": "-----BEGIN PRIVATE KEY-----\nYOUR_KEY_HERE\n-----END PRIVATE KEY-----"
}
EOF# Make scripts executable (one-time setup)
chmod +x *.sh
# Run deployment
./deploy.shThe script will:
- Ask you questions (environment, region, etc.)
- Build everything automatically
- Deploy to AWS
- Show you what to do next
That's it! Takes 15-20 minutes.
./test-deployment.sh devQ: Do I need to edit any files with my account ID? A: No! The scripts automatically detect your AWS account from your credentials.
Q: How do I change the region?
A: Either set it before deployment (aws configure set region us-west-2) or the script will ask you.
Q: What if I don't have Salesforce credentials yet? A: The script creates a placeholder secret. You can update it later.
Q: How much will this cost? A: Development environment: ~$24/month. See COST_ESTIMATION.md.
Q: How do I remove everything?
A: Run ./cleanup.sh dev
- 8 Lambda Functions: CreateLead, GenerateScenario, InvokeCall, LexFulfillment, UpdateLead, StartTranscription, SummarizeAndResume
- 2 Lambda Layers: Python libraries (requests, phonenumbers) and Salesforce libraries (simple-salesforce, PyJWT)
- 2 DynamoDB Tables: Interactions storage and task token management
- 1 Step Functions Workflow: Orchestrates lead creation β scenario generation β outbound call β lead update
- Amazon Bedrock Integration: Claude 3.5 Sonnet for AI-powered conversations
- Salesforce Integration: JWT authentication for CRM sync
- Amazon Connect: Outbound voice contact capability
- deploy.sh: Automated deployment with validation
- cleanup.sh: Complete resource removal
- validate.sh: Pre-deployment checks
- test-deployment.sh: Post-deployment validation
- build-layers.sh: Lambda layer builder
- QUICK_START.md: 30-minute deployment guide
- DEPLOYMENT_GUIDE.md: Comprehensive deployment documentation
- COST_ESTIMATION.md: Detailed cost breakdown and optimization
- DEPLOYMENT_ARCHITECTURE.md: System architecture and dependencies
- SECURITY_AUDIT_REPORT.md: Security findings and remediation
- sam-template/template.yaml: Main SAM template
- quick-start.yaml: One-click CloudFormation deployment
- parameters-example.json: Configuration examples
| Environment | Monthly Cost | Use Case |
|---|---|---|
| Development | ~$24 | Testing, 1K conversations |
| Staging | ~$214 | QA, 10K conversations |
| Production | ~$1,138 | Live, 50K conversations |
See COST_ESTIMATION.md for detailed breakdown.
User β Amazon Lex β Lambda (Fulfillment)
β
Step Functions
β
ββββββββββββββββββΌβββββββββββββββββ
β β β
Salesforce Amazon Bedrock Amazon Connect
(CRM Sync) (AI Scenarios) (Voice Calls)
β β β
ββββββββββββββββββΌβββββββββββββββββ
β
DynamoDB
(Interactions)
aws_org_export/
βββ deploy.sh # Main deployment script
βββ cleanup.sh # Resource cleanup
βββ validate.sh # Pre-deployment validation
βββ test-deployment.sh # Post-deployment tests
βββ build-layers.sh # Lambda layer builder
βββ requirements.txt # Python dependencies
βββ parameters-example.json # Configuration template
βββ quick-start.yaml # One-click CloudFormation
βββ QUICK_START.md # 30-min deployment guide
βββ DEPLOYMENT_GUIDE.md # Full documentation
βββ COST_ESTIMATION.md # Cost analysis
βββ lambda/ # Lambda function code
β βββ CreateLeadHandler_code/
β βββ GenerateDynamicScenarioHandler_code/
β βββ InvokeOutboundCallHandler_code/
β βββ LexFulfillmentHandler_code/
β βββ UpdateLeadHandler_code/
β βββ StartTranscriptionHandler_code/
β βββ SummarizeAndResumeHandler_code/
βββ sam-template/
β βββ template.yaml # SAM template
β βββ samconfig.toml # SAM configuration
βββ stepfunctions/
βββ workflow-definition.asl.json # Step Functions definition
- AWS CLI 2.x
- SAM CLI 1.100+
- Python 3.13+
- AWS account with:
- Admin IAM permissions
- Bedrock model access (Claude 3.5 Sonnet)
- Salesforce Connected App credentials
./deploy.sh./build-layers.sh
sam build --parallel
sam deploy --guidedaws cloudformation create-stack \
--stack-name AtlasEngine-Infrastructure \
--template-body file://quick-start.yaml \
--parameters file://parameters.json \
--capabilities CAPABILITY_IAM# Validate environment
./validate.sh
# Deploy to dev
./deploy.sh
# Run tests
./test-deployment.sh dev
# Test Step Functions
aws stepfunctions start-execution \
--state-machine-arn <WORKFLOW_ARN> \
--input '{"firstName":"John","lastName":"Doe","phone":"+15555551234"}'- Secrets stored in AWS Secrets Manager
- IAM least-privilege policies
- Encryption at rest for DynamoDB
- VPC deployment supported
- No hardcoded credentials
See SECURITY_AUDIT_REPORT.md for audit results.
Edit sam-template/template.yaml:
BedrockModelId:
Default: anthropic.claude-3-opus-20240229-v1:0MyCustomHandler:
Type: AWS::Serverless::Function
Properties:
CodeUri: ../lambda/MyCustomHandler_code/
Handler: lambda_function.lambda_handler# Deploy to staging
ENVIRONMENT=staging ./deploy.sh
# Deploy to production
ENVIRONMENT=prod ./deploy.sh# Remove all resources
./cleanup.sh dev
# Or manually
aws cloudformation delete-stack --stack-name AtlasEngine-dev# View Lambda logs
sam logs --stack-name AtlasEngine-dev --tail
# View Step Functions executions
aws stepfunctions list-executions \
--state-machine-arn <WORKFLOW_ARN>
# View DynamoDB metrics
aws cloudwatch get-metric-statistics \
--namespace AWS/DynamoDB \
--metric-name ConsumedReadCapacityUnits \
--dimensions Name=TableName,Value=AtlasEngineInteractions-dev# Check SAM logs
sam logs --stack-name AtlasEngine-dev
# Validate template
sam validate
# Clean and rebuild
rm -rf .aws-sam && sam buildIncrease timeout in template.yaml:
Timeout: 300
MemorySize: 1024Enable model access in AWS Console: Bedrock β Model access β Manage model access
See DEPLOYMENT_GUIDE.md for more troubleshooting.
- QUICK_START.md - 30-minute deployment
- DEPLOYMENT_GUIDE.md - Complete guide
- COST_ESTIMATION.md - Cost analysis
- DEPLOYMENT_ARCHITECTURE.md - Architecture
- SECURITY_AUDIT_REPORT.md - Security audit
- Fork the repository
- Create feature branch
- Test changes with
./validate.sh - Submit pull request
MIT License - See LICENSE file for details
- AWS Documentation: https://docs.aws.amazon.com/
- Bedrock Docs: https://docs.aws.amazon.com/bedrock/
- SAM Docs: https://docs.aws.amazon.com/serverless-application-model/
- Issues: Create GitHub issue
After deployment, you should see:
- β 8 Lambda functions deployed
- β 2 DynamoDB tables created
- β 1 Step Functions workflow active
- β Salesforce integration working
- β Bedrock models accessible
- β All tests passing
Ready to deploy? Run ./deploy.sh now!
