Skip to content

Salesforce Integration

Sync marketplace data with Salesforce CRM for unified sales operations.

Overview

The Automatum-Salesforce integration enables bi-directional synchronization of customers, opportunities, and contract data between your cloud marketplace operations and Salesforce CRM.

Features

  • Customer Sync: Automatically sync marketplace customers to Salesforce Accounts
  • Opportunity Tracking: Create and update opportunities from private offers
  • Contract Management: Sync entitlements to Salesforce Contracts
  • Revenue Reporting: Flow marketplace revenue into Salesforce reports
  • Activity Logging: Track all marketplace interactions in Salesforce

Prerequisites

Before setting up the integration:

  • Salesforce account with API access
  • Admin or integration permissions in Salesforce
  • Automatum Professional or Enterprise plan
  • API enabled in Salesforce org

Setup

Step 1: Connect Salesforce

  1. Navigate to Settings > Integrations > Salesforce
  2. Click Connect Salesforce
  3. Log in to your Salesforce org
  4. Authorize Automatum to access Salesforce
  5. Grant required permissions

Step 2: Configure OAuth

Production Environment:

  • Redirects to login.salesforce.com

Sandbox Environment:

  • Redirects to test.salesforce.com
  • Select "Sandbox" in connection settings

Step 3: Map Fields

Configure field mappings between Automatum and Salesforce:

Customer → Account Mapping:

Automatum FieldSalesforce FieldSync Direction
Customer NameAccount NameBi-directional
AWS Account IDCustom: AWS_Account_ID__cAutomatum → SF
Azure Tenant IDCustom: Azure_Tenant_ID__cAutomatum → SF
IndustryIndustryBi-directional
WebsiteWebsiteBi-directional

Private Offer → Opportunity Mapping:

Automatum FieldSalesforce FieldSync Direction
Offer NameOpportunity NameAutomatum → SF
Offer ValueAmountAutomatum → SF
StatusStageBi-directional
Close DateClose DateAutomatum → SF
VendorCustom: Marketplace__cAutomatum → SF

Step 4: Create Custom Fields

Create these custom fields in Salesforce:

On Account Object:

AWS_Account_ID__c (Text, 12 chars)
Azure_Tenant_ID__c (Text, 36 chars)
Marketplace_Customer_ID__c (Text, 50 chars)
Marketplace_Source__c (Picklist: AWS, Azure)

On Opportunity Object:

Marketplace__c (Picklist: AWS, Azure)
Private_Offer_ID__c (Text, 50 chars)
Contract_Duration__c (Number)
Marketplace_Status__c (Picklist)

On Contract Object:

Entitlement_ID__c (Text, 50 chars)
Marketplace_Product__c (Text, 255 chars)
Usage_Based__c (Checkbox)

Step 5: Configure Sync Settings

Sync Frequency:

  • Real-time (recommended)
  • Hourly
  • Daily

Sync Direction:

  • Automatum → Salesforce only
  • Bi-directional
  • Salesforce → Automatum only

Conflict Resolution:

  • Automatum wins
  • Salesforce wins
  • Most recent wins

Data Synchronization

Customer Sync

When a new marketplace customer is created:

  1. Automatum checks for existing Account by email/AWS ID/Azure ID
  2. If found: Updates existing Account
  3. If not found: Creates new Account
  4. Links Automatum customer to Salesforce Account

Matching Rules:

json
{
  "matchingFields": [
    "AWS_Account_ID__c",
    "Azure_Tenant_ID__c",
    "Email"
  ],
  "matchOrder": "first_match",
  "createIfNoMatch": true
}

Opportunity Sync

Private offers sync to Opportunities:

Stage Mapping:

Automatum StatusSalesforce Stage
CreatedProspecting
Email SentQualification
Email SeenProposal
AcceptedClosed Won
ExpiredClosed Lost
CancelledClosed Lost

Auto-Create Opportunity:

json
{
  "trigger": "private_offer.created",
  "action": "create_opportunity",
  "mapping": {
    "Name": "{{productName}} - {{customerName}}",
    "Amount": "{{offerValue}}",
    "CloseDate": "{{expirationDate}}",
    "StageName": "Prospecting"
  }
}

Contract Sync

Entitlements sync to Salesforce Contracts:

On Offer Acceptance:

  1. Opportunity updated to "Closed Won"
  2. Contract created in Salesforce
  3. Contract linked to Account and Opportunity

Contract Fields:

json
{
  "AccountId": "{{salesforceAccountId}}",
  "StartDate": "{{contractStartDate}}",
  "EndDate": "{{contractEndDate}}",
  "ContractTerm": "{{durationMonths}}",
  "Status": "Activated",
  "Entitlement_ID__c": "{{entitlementId}}"
}

Automation Rules

Workflow Automation

Create rules to automate actions:

Example: High-Value Deal Alert

json
{
  "name": "High Value Deal Notification",
  "trigger": {
    "event": "private_offer.accepted",
    "conditions": [
      { "field": "value", "operator": "greater_than", "value": 100000 }
    ]
  },
  "actions": [
    {
      "type": "salesforce_task",
      "assignTo": "Account Owner",
      "subject": "High-Value Deal Closed: {{customerName}}",
      "dueDate": "+1 day"
    },
    {
      "type": "salesforce_chatter",
      "group": "Deal_Announcements",
      "message": "🎉 ${{offerValue}} deal closed with {{customerName}}!"
    }
  ]
}

Assignment Rules

Auto-assign marketplace customers to sales reps:

By Territory:

json
{
  "rules": [
    {
      "condition": { "field": "country", "value": "US" },
      "assignTo": "US_Sales_Queue"
    },
    {
      "condition": { "field": "country", "value": "EU" },
      "assignTo": "EMEA_Sales_Queue"
    }
  ]
}

By Deal Size:

json
{
  "rules": [
    {
      "condition": { "field": "value", "operator": ">=", "value": 100000 },
      "assignTo": "Enterprise_Team"
    },
    {
      "condition": { "field": "value", "operator": "<", "value": 100000 },
      "assignTo": "Commercial_Team"
    }
  ]
}

Activity Logging

Tracked Activities

Activities logged to Salesforce:

ActivitySalesforce ObjectDetails
Offer createdTaskSubject, due date, notes
Email sentEmail MessageRecipients, subject, body
Email openedTaskTimestamp, tracking
Offer acceptedEventClose date, value
Contract renewalTaskRenewal date, value

Activity Settings

Configure activity logging:

json
{
  "logActivities": true,
  "activityTypes": [
    "private_offer.created",
    "private_offer.sent",
    "private_offer.viewed",
    "private_offer.accepted"
  ],
  "assignTo": "Account Owner",
  "defaultTaskStatus": "Completed"
}

Reports & Dashboards

Available Reports

Pre-built reports for Salesforce:

  1. Marketplace Revenue Report

    • Revenue by marketplace (AWS/Azure)
    • Revenue by product
    • Revenue by sales rep
  2. Private Offer Pipeline

    • Offers by stage
    • Conversion rates
    • Average deal size
  3. Customer Health

    • Usage trends
    • Renewal rates
    • At-risk customers

Create Custom Reports

Build reports using synced data:

  1. Go to Salesforce Reports
  2. Select report type (Opportunities, Accounts, etc.)
  3. Filter by Marketplace__c field
  4. Add relevant fields
  5. Save and schedule

Dashboard Components

Add marketplace data to dashboards:

  • Marketplace pipeline chart
  • Revenue by cloud platform
  • Offer acceptance rate
  • Contract renewal forecast

Troubleshooting

Sync Issues

Records not syncing:

  1. Check connection status in Settings
  2. Verify API limits not exceeded
  3. Review sync logs for errors
  4. Check field mapping configuration

Duplicate records:

  1. Review matching rules
  2. Adjust duplicate management settings
  3. Enable deduplication

Permission Errors

"Insufficient privileges" error:

  1. Verify Salesforce user has API access
  2. Check object-level permissions
  3. Review field-level security
  4. Reconnect with admin user

Data Mismatch

Values not matching:

  1. Check field mapping
  2. Verify data types match
  3. Review transformation rules
  4. Check sync direction settings

API Access

Query Salesforce Data

bash
GET /api/integrations/salesforce/query
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "query": "SELECT Id, Name, Amount FROM Opportunity WHERE Marketplace__c = 'AWS'"
}

Trigger Manual Sync

bash
POST /api/integrations/salesforce/sync
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "objectType": "customer",
  "customerId": "cust_123",
  "direction": "to_salesforce"
}

Security

Data Access

Automatum accesses:

  • Accounts (read/write)
  • Opportunities (read/write)
  • Contracts (read/write)
  • Tasks (create)
  • Custom objects (as configured)

Permission Sets

Create dedicated permission set:

  1. API Enabled
  2. Object access for synced objects
  3. Field access for mapped fields

Token Management

  • OAuth tokens stored encrypted
  • Automatic token refresh
  • Revoke access anytime in Settings

Best Practices

  1. Test in sandbox first - Validate before production
  2. Clean data regularly - Remove duplicates
  3. Monitor sync logs - Catch issues early
  4. Train your team - Ensure adoption
  5. Review mappings quarterly - Update as needed

Next Steps

Need Help?

Contact support@automatum.io for Salesforce integration assistance.

Automatum GTM Platform