The Customer Service Management (CSM) bulk APIs allow you to create, update, and manage large volumes of customer and organization data. These APIs are designed for integration scenarios where you need to sync data from external systems like CRMs, support platforms, or customer databases.
Bulk APIs provide asynchronous operations for:
All bulk operations are asynchronous, returning a task ID that you can poll to check the status and results of the operation.
Creates or updates basic customer account records. Use this API when you need to quickly create customer accounts with just essential information (email and display name). This is ideal for initial bulk imports or when you want to create accounts first and populate detail fields later.
Use Case: Rapidly onboard customers from your CRM with minimal information, then enrich their profiles later with additional detail fields.
Max per Request: 50 customers
Creates or updates comprehensive customer profiles including detail field values and organization associations. This is the most feature-rich customer bulk operation, allowing you to populate the complete customer profile in a single request.
Use Case: Complete customer migration from external systems where you want to import customer data, custom fields, and organizational relationships all at once.
Max per Request: 100 customers
Updates specific detail field values for existing customers without modifying other profile attributes. Use this API when you need to update custom fields across many customers.
Use Case: Sync updated customer attributes (e.g., support tier, health score) from your CRM to CSM without re-importing entire customer profiles.
Max per Request: 100 customers
Creates or updates basic organization records. Similar to customer accounts, this operation handles essential organization information (name, ID) without detail fields.
Use Case: Quickly set up organization structures in CSM for grouping customers and managing organizational relationships.
Max per Request: 50 organizations
Creates or updates comprehensive organization profiles including detail field values. This allows you to populate complete organization information in bulk.
Use Case: Migrate organizational hierarchies and company data from your CRM with all associated custom fields and attributes.
Max per Request: 100 organizations
Updates specific detail field values for existing organizations. Use this API to sync organization-level custom fields.
Use Case: Update organization attributes (e.g., industry, contract status, renewal date) across multiple organizations without re-importing entire profiles.
Max per Request: 100 organizations
When you submit a bulk operation:
taskId and statusUrlExample response:
1 2{ "taskId": "abc123def456", "statusUrl": "https://api.atlassian.com/api/v1/tasks/abc123def456" }
Every bulk API request requires an Idempotency-Key header. This ensures safe retries without duplicating operations.
Idempotency-Key value.f47ac10b-58cc-4372-a567-0e02b2c3d479)Poll the task status endpoint to check results:
1 2GET /api/v1/tasks/{taskId}
Status values:
PROCESSING: Task is runningCOMPLETED: Task finished successfully (may include partial failures)FAILED: Task failed completelyExample completed response:
1 2{ "taskId": "abc123def456", "status": "COMPLETED", "createdDate": "2026-01-15T10:00:00Z", "completedDate": "2026-01-15T10:01:23Z", "failures": [ { "index": 1, "message": "Customer with email 'invalid@' is not valid" } ] }
Here's a complete example of creating customer profiles in bulk:
1 2# Step 1: Submit bulk operation curl -X POST https://api.atlassian.com/api/v1/customer/profile/bulk \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "Idempotency-Key: f47ac10b-58cc-4372-a567-0e02b2c3d479" \ -H "X-ExperimentalApi: true" \ -H "Content-Type: application/json" \ -d '{ "customers": [ { "email": "john.doe@example.com", "displayName": "John Doe", "details": { "phone": "+1-555-0123", "company": "Acme Corp" } }, { "email": "jane.smith@example.com", "displayName": "Jane Smith", "details": { "phone": "+1-555-0124", "company": "Tech Inc" } } ] }' # Response: # { # "taskId": "abc123def456", # "statusUrl": "https://api.atlassian.com/api/v1/tasks/abc123def456" # } # Step 2: Poll for results curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ https://api.atlassian.com/api/v1/tasks/abc123def456
Use bulk APIs to sync customer data from your external CRM:
See HubSpot Integration Guide for a detailed example.
Update specific detail field values without modifying other profile information:
1 2POST /api/v1/customer/details/bulk { "customers": [ { "email": "john.doe@example.com", "details": [ { "fieldId": "support-tier", "operation": "UPDATE", "value": "Premium" } ] } ] }
Bulk create organizations before associating customers:
1 2POST /api/v1/organization/profile/bulk { "organizations": [ { "name": "Acme Corporation", "details": { "industry": "Manufacturing", "website": "https://acme.example.com" } } ] }
Validate data before submission:
Solution: Generate a new UUID for each distinct request. Only reuse keys when retrying the exact same request.
Solution:
Solution:
Solution:
For support with bulk APIs:
Rate this page: