Note: This release is in preview. Features described here don’t become generally available until the latest general availability date that Salesforce announces for this release. Before then, and where features are noted as beta, pilot, or developer preview, we can’t guarantee general availability within any particular time frame or at all. Make your purchase decisions only on the basis of generally available products and features.
Create a Job
URI: /services/data/vXX.X/jobs/ingest
Availability: This resource is available in API version 41.0 and later.
Formats: JSON
HTTP Method: POST
Authentication: Authorization: Bearer token
Parameters: None.
Headers: Optionally, use the Sforce-Call-Options header to specify a default namespace.
Request Body
| Property | Type | Description | Required or Optional |
|---|---|---|---|
| assignmentRuleId | string | The ID of an assignment rule to run for a Case or a Lead. The assignment rule can be active or inactive. The ID can be retrieved by using the Lightning
Platform SOAP API or the Lightning Platform REST API to query the
AssignmentRule object. This property is available in API version 49.0 and later. Not supported for refresh and consentImport. |
Optional |
| columnDelimiter | ColumnDelimiterEnum | The column delimiter used for CSV job data. The default value is COMMA. Valid values are:
|
Optional |
| contentType | ContentType | The content type for the job. The only valid value (and the default) is CSV. | Optional |
| externalIdFieldName | string | The external ID field in the object being updated. Only needed for upsert operations. Field values must also exist in CSV job data. For Marketing Object upsert, this property is not supported. The upsert matches on the record's primary key. Not supported for the consentImport operation. |
Required for upsert operations |
| lineEnding | LineEndingEnum | The line ending used for CSV job data, marking the end of a data row. The default is LF. Valid values are:
|
Optional |
| object | string | The object type for the data being processed. Use only a single object type per job. Specify the API name for marketing objects. Omit this property for the consentImport operation. Consent ingest isn't backed by an object type. Including object with consentImport returns an error. |
Required |
| operation | OperationEnum | The processing operation for the job. Valid values are:
Supported operations by target:
When the hardDelete value is specified, the deleted records aren't stored in the Recycle Bin. Instead, they become immediately eligible for deletion. The permission for this operation, “Bulk API Hard Delete,” is disabled by default and must be enabled by an administrator. A Salesforce user license is required for hard delete. |
Required |
For multipart requests, the request body can also include CSV record data.
Response Body
| Property | Type | Description |
|---|---|---|
| apiVersion | string | The API version that the job was created in. |
| assignmentRuleId | id | The ID of the assignment rule. This property is only shown if an assignment rule is specified when the job is created. |
| columnDelimiter | ColumnDelimiterEnum | The column delimiter used for CSV job data. Values include:
|
| concurrencyMode | ConcurrencyModeEnum | For future use. How the request was processed. Currently only parallel mode is supported. (When other modes are added, the mode will be chosen automatically by the API and will not be user configurable.) |
| contentType | ContentType | The format of the data being processed. Only CSV is supported. |
| contentUrl | URL | The URL to use for Upload Job Data requests for this job. Only valid if the job is in Open state. |
| createdById | string | The ID of the user who created the job. |
| createdDate | dateTime | The date and time in the UTC time zone when the job was created. |
| externalIdFieldName | string | The name of the external ID field for an upsert. |
| id | string | Unique ID for this job. |
| jobType | JobTypeEnum | The job’s type. Values include:
|
| lineEnding | LineEndingEnum | The line ending used for CSV job data. Values include:
|
| object | string | The object type for the data being processed. Empty for jobs created with the consentImport operation. |
| operation | The processing operation for the job. Values include:
|
|
| state | JobStateEnum | The current state of processing for the job. Values include:
|
| systemModstamp | dateTime | Date and time in the UTC time zone when the job finished. |
Usage Notes
For small amounts of job data (100,000 characters or less), you can create a job and upload all the data for a job using a multipart request. The following example request header and body uses a multipart format to contain both job information and job data.
1Content-Type: multipart/form-data; boundary=BOUNDARY1--BOUNDARY
2Content-Type: application/json
3Content-Disposition: form-data; name="job"
4
5{
6 "object":"Contact",
7 "contentType":"CSV",
8 "operation":"insert"
9}
10
11--BOUNDARY
12Content-Type: text/csv
13Content-Disposition: form-data; name="content"; filename="content"
14
15(Content of your CSV file)
16--BOUNDARY--