Developer
News and Updates
Get Support
Sign in
Get Support
Sign in
DOCUMENTATION
Cloud
Data Center
Resources
Sign in
Sign in
DOCUMENTATION
Cloud
Data Center
Resources
Sign in
Last updated Jan 15, 2026

Import from Salesforce CRM to Customer Service Management

Before you start

You'll import these core concepts from Salesforce to Customer Service Management:

Salesforce contacts → Customer Service Management customers

In Salesforce, contacts are individual people associated with business accounts. In Customer Service Management, these become customers.

Salesforce accounts → Customer Service Management organizations

Salesforce has two types of accounts that require different integration approaches:

Business accounts: Standard company accounts that group contacts together. These map directly to Customer Service Management organizations.

Person accounts: Individual people stored as accounts (combines contact and account data). This concept doesn't exist in Customer Service Management - you'll need to decide whether to integrate these as:

  • Customers - If they're individuals you provide support to
  • Organizations - If they represent single-person businesses

Custom fields → Detail fields

Salesforce has predefined fields for contacts, business accounts, and person accounts. Customer Service Management has some default detail fields, but you'll need to create additional ones to match the Salesforce fields you use.

Default customer detail fields in CSM:

  • Phone
  • External ID
  • Type
  • Title
  • Region
  • Preferred language

Default organization detail fields in CSM:

  • Type
  • Industry
  • External ID
  • Website
  • Address

Note: The "Type" field exists for both customers and organizations with the same preconfigured values, but these can be customized. These preconfigured values are: Customer, Prospect, Partner, Supplier/Vendor, Other.

Any Salesforce fields beyond these defaults will need custom detail fields created in Customer Service Management.

Available detail field types you can create:

  • TEXT - Single-line text input
  • EMAIL - Email addresses with validation
  • URL - Website links with validation
  • DATE - Date, with YYYY-MM-DD format when being defined using an API
  • NUMBER - Numeric values (integers and decimals)
  • BOOLEAN - True/false or yes/no values
  • PHONE - Phone numbers with validation
  • SELECT - Single-choice dropdown (up to 2,000 options)
  • MULTISELECT - Multiple-choice selection (up to 2,000 options)

New to Customer Service Management? Start with the getting started guide.

Integration steps

1. Prepare your data

Export from Salesforce

Export contacts, business accounts, and person accounts, and the fields and values you wish to copy to CSM.

Create detail fields in Customer Service Management

Before importing data, create all the detail fields you will need in CSM. You can learn about how to do this in the documentation on managing customer detail fields. You can also use the following APIs:

Customer detail fields: Use the create customer detail field API to create fields that will store information about individual customers.

Organization detail fields: Use the create organization detail field API to create fields that will store information about businesses and companies.

Learn more about managing customer detail fields in the documentation on managing customer detail fields.

2. Use bulk APIs for integration

Import customers Use the Bulk customer profile management API to create customers with details.

Import organizations Use the Bulk organization profile management API to create organizations with details and associated customers.

Additional bulk operations:

Example customer import:

1
2
{
  "customers": [
    {
      "operationType": "CREATE",
      "payload": {
        "email": "john.doe@acme.com",
        "displayName": "John Doe",
        "details": [
          {"name": "Title", "values": ["Sales Manager"]},
          {"name": "Region", "values": ["North America"]},
          {"name": "Type", "values": ["Customer"]}
        ],
        "associateOrganizations": [123]
      }
    },
    {
      "operationType": "CREATE",
      "payload": {
        "email": "jane.smith@company.com",
        "displayName": "Jane Smith",
        "details": [
          {"name": "Title", "values": ["CTO"]},
          {"name": "Region", "values": ["Europe"]},
          {"name": "Type", "values": ["Prospect"]}
        ],
        "associateOrganizations": [456]
      }
    },
    {
      "operationType": "CREATE",
      "payload": {
        "email": "mike.wilson@startup.com",
        "displayName": "Mike Wilson",
        "details": [
          {"name": "Title", "values": ["Founder"]},
          {"name": "Region", "values": ["Asia Pacific"]},
          {"name": "Type", "values": ["Partner"]}
        ],
        "associateOrganizations": [789, 123]
      }
    }
  ]
}

Example organization import:

1
2
{
  "organizations": [
    {
      "operationType": "CREATE",
      "payload": {
        "name": "Acme Corporation",
        "details": [
          {"name": "Type", "values": ["Customer"]},
          {"name": "Industry", "values": ["Technology"]},
          {"name": "Website", "values": ["https://acme.com"]},
          {"name": "Annual Revenue", "values": ["10000000"]}
        ]
      }
    },
    {
      "operationType": "CREATE",
      "payload": {
        "name": "Planets Solutions Ltd",
        "details": [
          {"name": "Type", "values": ["Prospect"]},
          {"name": "Industry", "values": ["Finance"]},
          {"name": "Website", "values": ["https://planetssolutions.com"]},
          {"name": "Annual Revenue", "values": ["5000000"]}
        ]
      }
    },
    {
      "operationType": "CREATE",
      "payload": {
        "name": "Startup Innovations",
        "details": [
          {"name": "Type", "values": ["Partner"]},
          {"name": "Industry", "values": ["Technology"]},
          {"name": "Website", "values": ["https://startup.com"]},
          {"name": "Annual Revenue", "values": ["500000"]}
        ]
      }
    }
  ]
}

3. Monitor bulk operations

All bulk API calls return a taskId. Check the status of the bulk operation with the GET task status API.

Learn more about monitoring bulk operations in Customer Service Management.

Common issues

Authentication errors

  • Check your API token permissions
  • Verify workspace ID in requests

Learn how to authenticate with Customer Service Management APIs and manage API tokens.

Data validation failures

  • Make sure detail field names match exactly (case-sensitive)
  • Check that SELECT field values match predefined options
  • Ensure required fields are populated

Rate limiting

  • Customer Service Management APIs have rate limits - add delays between requests
  • Use bulk APIs instead of individual calls
  • Watch response headers for rate limit info

Implementation example

1
2
import requests

def import_salesforce_customers_batch(customers):
    """Import Salesforce contacts using bulk API"""
    url = "https://api.atlassian.com/jsm/csm/cloudid/{cloudId}/api/v1/customer/profile/bulk"
    headers = {
        "Authorization": "Bearer YOUR_TOKEN",
        "Content-Type": "application/json",
        "X-ExperimentalApi": "opt-in",
        "Idempotency-Key": uuid.uuid4(),
    }

    payload = {
        "customers": [{
            "operationType": "CREATE",
            "payload": customer
        } for customer in customers]
    }

    response = requests.post(url, headers=headers, json=payload)
    return response.json().get("taskId")

# Transform Salesforce data
customers = []
for sf_contact in salesforce_contacts:
    # Handle Person Account decision
    if sf_contact["is_person_account"]:
        # Decide: migrate as customer or organization based on business logic
        pass

    customer = {
        "email": sf_contact["Email"],
        "displayName": sf_contact["Name"],
        "details": [
            {"name": "Title", "values": [sf_contact["Title"]]},
            {"name": "Phone", "values": [sf_contact["Phone"]]}
        ],
        "associateOrganizations": [sf_contact["AccountId"]] if sf_contact["AccountId"] else []
    }
    customers.append(customer)

# Migrate in batches of 100
for i in range(0, len(customers), 100):
    batch = customers[i:i+100]
    task_id = migrate_salesforce_customers_batch(batch)
    # Monitor task_id for completion

Additional resources:

Need help? Contact Atlassian support.

Rate this page: