Create an import definition for a custom object
/api/bulk/2.0/customObjects/{parentId}/imports
Request
- application/json
- text/csv
-
parentId(required): integer
The custom object's resource identification number.
objectCustomObjectImportIndividual-
autoDeleteDuration:
string
Title:
autoDeleteDurationTime until the definition will be deleted, expressed using the ISO-8601 standard. -
createdAt:
string(date-time)
Title:
createdAtThe date and time the entity was created, expressed using the ISO-8601 standard. This is a read-only property. -
createdBy:
string
Title:
createdByThe login id of the user who created the entity. This is a read-only property. -
dataRetentionDuration:
string
Title:
dataRetentionDurationThe length of time that unsync'd data from this import should remain in the staging area. Bulk API 2.0 uses the ISO-8601 standard for specifying all durations. Valid values are anything from PT1H (1 hour) to P14D (2 weeks). This setting will default to P7D (7 days) if not explicitly set during import definition creation. -
externalSystemId:
integer
Title:
externalSystemIdThe id of the external system. -
fields:
object fields
Title:
fieldsList of fields to be included in the operation. -
id:
integer
Title:
idThe import definition???s resource identification number. -
identifierFieldName:
string
Title:
identifierFieldNameThe field which will be used to identify the entity. Must be a string value, at least 1 character and at most 100 characters long. The following field types are not supported: Large Text, Date, and Boolean. -
importPriorityUri:
string
Title:
importPriorityUriMust reference an existing/imports/priorities/{id}. For more information about this parameter, see the Oracle Eloqua Developer Help Center. -
isSyncTriggeredOnImport:
boolean
Title:
isSyncTriggeredOnImportWhether or not the sync is triggered on import. -
isUpdatingMultipleMatchedRecords:
boolean
Title:
isUpdatingMultipleMatchedRecordsWhether or not imported data will be mapped to multiple existing records. For contact imports, theisUpdatingMultipleMatchedRecordsproperty must be set tofalseto updateContact.Field(C_EmailAddress). -
kbUsed:
integer(int64)
Title:
kbUsedThe amount of space used in kilobytes. This is a read-only property. -
mapDataCards:
boolean
Title:
mapDataCardsWhether or not data cards will be mapped on import. For more information about this parameter, see the Oracle Eloqua Developer Help Center. -
mapDataCardsCaseSensitiveMatch:
boolean
Title:
mapDataCardsCaseSensitiveMatchPerform a case sensitive search when mapping custom object records or events to a contact or account. For more information about this parameter, see the Oracle Eloqua Developer Help Center. -
mapDataCardsEntityField:
string
Title:
mapDataCardsEntityFieldThis field specifies which Eloqua entity field will be used for mapping. For more information about this parameter, see the Oracle Eloqua Developer Help Center. -
mapDataCardsEntityType:
string
Title:
mapDataCardsEntityTypeThis field specifies the entity of the custom data object or event import. Allowed values are "Contact" or "Company". For more information about this parameter, see the Oracle Eloqua Developer Help Center. -
mapDataCardsSourceField:
string
Title:
mapDataCardsSourceFieldThis field specifies the source document field that will be used for matching. For more information about this parameter, see the Oracle Eloqua Developer Help Center. -
name:
string
Title:
nameThe name of the import definition. -
nullIdentifierFieldName:
boolean
Title:
nullIdentifierFieldNameWhether or not to null the identifier field. -
parentId:
integer
Title:
parentIdThe parent object's resource identification number. -
syncActions:
array syncActions
Title:
syncActionsSpecifies operations to perform during the sync with a maximum of 10 actions. See Sync actions parameters for a list of sync actions. For more information about this parameter, see the Oracle Eloqua Developer Help Center. There currently are not any sync actions available for Events. -
updatedAt:
string(date-time)
Title:
updatedAtThe date and time the entity was last updated, expressed using the ISO-8601 standard. This is a read-only property. -
updatedBy:
string
Title:
updatedByThe login id of the user that last updated the entity. This is a read-only property. -
updateRule:
string
Title:
RuleTypeDefault Value:alwaysAllowed Values:[ "always", "ifNewIsNotNull", "ifExistingIsNull", "useFieldRule" ]The rule used when doing updates on existing data. For more information about this parameter, see the Oracle Eloqua Developer Help Center. -
updateRuleByField:
object updateRuleByField
Title:
updateRuleByFieldThe rule by field used when doing updates on existing data. Each pair is a field name mapped to a rule type. -
uri:
string
Title:
uriSystem-generated unique resource identifier that defines the definition for future referencing. This is a read-only property.
objectfieldsarraysyncActions-
Array of:
object SyncAction
Title:
SyncActionThe definition of the action to take at time of syncronization.
objectupdateRuleByFieldobjectSyncAction-
action:
string
Title:
SyncActionTypeDefault Value:addAllowed Values:[ "add", "remove", "setStatus" ]The action to take at time of synchronization. -
destination:
string
Title:
destinationThe ML statement used to reference an object used by the action. -
status:
string
Title:
MemberStatusDefault Value:bouncedAllowed Values:[ "bounced", "subscribed", "unsubscribed", "active", "complete", "pending", "errored", "yes", "no", "invalid", "permission" ]The status of members. -
updateAll:
boolean
Title:
updateAllUpdate status of all records in an execution.
Response
- application/json
201 Response
objectCustomObjectImportIndividualResponse-
autoDeleteDuration:
string
Title:
autoDeleteDurationTime until the definition will be deleted, expressed using the ISO-8601 standard. -
createdAt:
string(date-time)
Title:
createdAtThe date and time the entity was created, expressed using the ISO-8601 standard. This is a read-only property. -
createdBy:
string
Title:
createdByThe login id of the user who created the entity. This is a read-only property. -
dataRetentionDuration:
string
Title:
dataRetentionDurationThe length of time that unsync'd data from this import should remain in the staging area. Bulk API 2.0 uses the ISO-8601 standard for specifying all durations. Valid values are anything from PT1H (1 hour) to P14D (2 weeks). This setting will default to P7D (7 days) if not explicitly set during import definition creation. -
externalSystemId:
integer
Title:
externalSystemIdThe id of the external system. -
fields:
object fields
Title:
fieldsList of fields to be included in the operation. -
identifierFieldName:
string
Title:
identifierFieldNameThe field which will be used to identify the entity. Must be a string value, at least 1 character and at most 100 characters long. The following field types are not supported: Large Text, Date, and Boolean. -
importPriorityUri:
string
Title:
importPriorityUriMust reference an existing/imports/priorities/{id}. For more information about this parameter, see the Oracle Eloqua Developer Help Center. -
isSyncTriggeredOnImport:
boolean
Title:
isSyncTriggeredOnImportWhether or not the sync is triggered on import. -
isUpdatingMultipleMatchedRecords:
boolean
Title:
isUpdatingMultipleMatchedRecordsWhether or not imported data will be mapped to multiple existing records. For contact imports, theisUpdatingMultipleMatchedRecordsproperty must be set tofalseto updateContact.Field(C_EmailAddress). -
kbUsed:
integer(int64)
Title:
kbUsedThe amount of space used in kilobytes. This is a read-only property. -
mapDataCards:
boolean
Title:
mapDataCardsWhether or not data cards will be mapped on import. For more information about this parameter, see the Oracle Eloqua Developer Help Center. -
mapDataCardsCaseSensitiveMatch:
boolean
Title:
mapDataCardsCaseSensitiveMatchPerform a case sensitive search when mapping custom object records or events to a contact or account. For more information about this parameter, see the Oracle Eloqua Developer Help Center. -
mapDataCardsEntityField:
string
Title:
mapDataCardsEntityFieldThis field specifies which Eloqua entity field will be used for mapping. For more information about this parameter, see the Oracle Eloqua Developer Help Center. -
mapDataCardsEntityType:
string
Title:
mapDataCardsEntityTypeThis field specifies the entity of the custom data object or event import. Allowed values are "Contact" or "Company". For more information about this parameter, see the Oracle Eloqua Developer Help Center. -
mapDataCardsSourceField:
string
Title:
mapDataCardsSourceFieldThis field specifies the source document field that will be used for matching. For more information about this parameter, see the Oracle Eloqua Developer Help Center. -
name:
string
Title:
nameThe name of the import definition. -
nullIdentifierFieldName:
boolean
Title:
nullIdentifierFieldNameWhether or not to null the identifier field. -
syncActions:
array syncActions
Title:
syncActionsSpecifies operations to perform during the sync with a maximum of 10 actions. See Sync actions parameters for a list of sync actions. For more information about this parameter, see the Oracle Eloqua Developer Help Center. There currently are not any sync actions available for Events. -
updatedAt:
string(date-time)
Title:
updatedAtThe date and time the entity was last updated, expressed using the ISO-8601 standard. This is a read-only property. -
updatedBy:
string
Title:
updatedByThe login id of the user that last updated the entity. This is a read-only property. -
updateRule:
string
Title:
RuleTypeDefault Value:alwaysAllowed Values:[ "always", "ifNewIsNotNull", "ifExistingIsNull", "useFieldRule" ]The rule used when doing updates on existing data. For more information about this parameter, see the Oracle Eloqua Developer Help Center. -
updateRuleByField:
object updateRuleByField
Title:
updateRuleByFieldThe rule by field used when doing updates on existing data. Each pair is a field name mapped to a rule type. -
uri:
string
Title:
uriSystem-generated unique resource identifier that defines the definition for future referencing. This is a read-only property.
objectfieldsarraysyncActions-
Array of:
object SyncAction
Title:
SyncActionThe definition of the action to take at time of syncronization.
objectupdateRuleByFieldobjectSyncAction-
action:
string
Title:
SyncActionTypeDefault Value:addAllowed Values:[ "add", "remove", "setStatus" ]The action to take at time of synchronization. -
destination:
string
Title:
destinationThe ML statement used to reference an object used by the action. -
status:
string
Title:
MemberStatusDefault Value:bouncedAllowed Values:[ "bounced", "subscribed", "unsubscribed", "active", "complete", "pending", "errored", "yes", "no", "invalid", "permission" ]The status of members. -
updateAll:
boolean
Title:
updateAllUpdate status of all records in an execution.
400 Response
401 Response
403 Response
404 Response
409 Response
410 Response
412 Response
413 Response
500 Response
503 Response
Examples
The following examples demonstrate how to create a custom object import definition using an HTTP request and cURL. For more information on requests, see API requests.
HTTP Request Example
Create a new "Hot Air Balloon" custom object (id #9) import:
POST /customObjects/9/imports
Content-Type: application/json
Request body:
{
"name": "Hot Air Balloon Import",
"fields": {
"inflated": "{{CustomObject[9].Field[99]}}",
"ID": "{{CustomObject[9].ExternalId}}"
},
"identifierFieldName": "ID"
}
Note:
Custom objects are unique to each Eloqua installation. Examples here will not map directly to your custom objects and their fields. You can obtain a list of all custom objects using theGET /customObjects endpoint. Once you have a custom object's id #, you can retrieve its field list by using the GET /customobjects/{id}/fields endpoint: this will allow you to create accurate import/export definitions.
Response:
{
"id": 32082,
"parentId": 9,
"mapDataCardsCaseSensitiveMatch": false,
"name": "Hot Air Balloon Import",
"fields": {
"inflated": "{{CustomObject[9].Field[99]}}",
"ID": "{{CustomObject[9].ExternalId}}"
},
"identifierFieldName": "ID",
"isSyncTriggeredOnImport": false,
"dataRetentionDuration": "P7D",
"isUpdatingMultipleMatchedRecords": false,
"uri": "/customObjects/9/imports/32082",
"createdBy": "API.User",
"createdAt": "2015-09-15T19:27:02.3559836Z",
"updatedBy": "API.User",
"updatedAt": "2015-09-15T19:27:02.3559836Z"
}
Create a new custom object import and map records to contacts via contact ID:
POST /customobjects/9/imports
Content-Type: application/json
Request body:
{
"name": "Simple CDO Contact Import 2",
"mapDataCards": "true",
"mapDataCardsEntityField": "{{Contact.Field(ContactIDExt)}}",
"mapDataCardsSourceField": "contactID",
"mapDataCardsEntityType": "Contact",
"mapDataCardsCaseSensitiveMatch": "false",
"updateRule": "always",
"dataRetentionDuration": "P7D",
"fields": {
"email": "{{CustomObject[8].Field[58]}}",
"first": "{{CustomObject[8].Field[405]}}",
"contactID": "{{CustomObject[8].Field[406]}}"
},
"identifierFieldName": "contactID"
}
-
"mapDataCardsEntityField": "{{Contact.Field(ContactIDExt)}}"This is the internal Eloqua name for the Eloqua Contact ID field.
-
"mapDataCardsSourceField": "contactID"This is the source field from imported data that will be used for mapping.
-
"contactID": "{{CustomObject[8].Field[406]}}"Whichever field you are using for mapping has to exist in both entities (in this case on a contact record and CDO record). Meaning you have to create a new custom data object field for the
contactIDvalue.
Response
{
"id": 836,
"parentId": 8,
"mapDataCards": true,
"mapDataCardsCaseSensitiveMatch": false,
"mapDataCardsEntityField": "{{Contact.Field(ContactIDExt)}}",
"mapDataCardsSourceField": "contactID",
"mapDataCardsEntityType": "Contact",
"name": "Simple CDO Contact Import 2",
"updateRule": "always",
"fields": {
"email": "{{CustomObject[8].Field[58]}}",
"first": "{{CustomObject[8].Field[405]}}",
"contactID": "{{CustomObject[8].Field[406]}}"
},
"identifierFieldName": "contactID",
"isSyncTriggeredOnImport": false,
"dataRetentionDuration": "P7D",
"isUpdatingMultipleMatchedRecords": false,
"uri": "/customObjects/8/imports/836",
"createdBy": "API.User",
"createdAt": "2016-02-01T21:43:03.7931253Z",
"updatedBy": "API.User",
"updatedAt": "2016-02-01T21:43:03.7931253Z"
}
cURL Example
Here is the same example in cURL given an instance with the name APITest, username API.User, and POD of 3.
curl --user "APITest\API.User" --header "Content-Type: application/json" --request POST --data '{"name":"Hot Air Balloon Import","fields":{"inflated":"{{CustomObject[9].Field[99]}}","ID":"{{CustomObject[9].ExternalId}}"},"identifierFieldName":"ID"}' https://secure.p03.eloqua.com/api/bulk/2.0/customObjects/9/imports