Create an activity import definition
/api/bulk/2.0/activities/imports
Request
- application/json
- text/csv
objectActivityImportIndividual-
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. -
name:
string
Title:
nameThe name of the import definition. -
nullIdentifierFieldName:
boolean
Title:
nullIdentifierFieldNameWhether or not to null the identifier field. -
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.
objectfieldsobjectupdateRuleByFieldResponse
- application/json
201 Response
objectActivityImportIndividualResponse-
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. -
name:
string
Title:
nameThe name of the import definition. -
nullIdentifierFieldName:
boolean
Title:
nullIdentifierFieldNameWhether or not to null the identifier field. -
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.
objectfieldsobjectupdateRuleByField400 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 an activity import definition using an HTTP request and cURL. For more information on requests, see API requests. See the tutorial for details on how to import data.
HTTP Request Example
Activity import steps:
Given Eloqua configuration of external activities:
- External Asset Type: Tradeshow
- External Activity: Viewed a Demo
Create a new activity import definition:
POST /activities/imports
Content-Type: application/json
Request body:
{
"name": "External Activity Import via Bulk API",
"updateRule": "always",
"dataRetentionDuration": "PT1H",
"fields": {
"C_EmailAddress": "{{Activity.Contact.Field(C_EmailAddress)}}",
"CampaignID": "{{Activity.Campaign.Id}}",
"AssetName": "{{Activity.Asset.Name}}",
"AssetType": "{{Activity.Asset.Type}}",
"AssetDate": "{{Activity.CreatedAt}}",
"ActivityType": "{{Activity.Type}}"
}
}
Important: When creating Activity imports the following fields are required:
-
One of these match fields:
"C_EmailAddress": "{{Activity.Contact.Field(C_EmailAddress)}}""ContactId": "{{Activity.Contact.Id}}""ContactIDExt": "{{Activity.Contact.Field(ContactIDExt)}}"
"CampaignID": "{{Activity.Campaign.Id}}""AssetName":"{{Activity.Asset.Name}}""AssetType":"{{Activity.Asset.Type}}""AssetDate": "{{Activity.CreatedAt}}""ActivityType": "{{Activity.Type}}"
Response:
{
"name": "External Activity Import via Bulk API",
"updateRule": "always",
"fields": {
"C_EmailAddress": "{{Activity.Contact.Field(C_EmailAddress)}}",
"CampaignID": "{{Activity.Campaign.Id}}",
"AssetName": "{{Activity.Asset.Name}}",
"AssetType": "{{Activity.Asset.Type}}",
"AssetDate": "{{Activity.CreatedAt}}",
"ActivityType": "{{Activity.Type}}"
},
"isSyncTriggeredOnImport": false,
"dataRetentionDuration": "PT1H",
"isUpdatingMultipleMatchedRecords": false,
"uri": "/activities/imports/4219",
"createdBy": "API.User",
"createdAt": "2015-12-17T17:39:59.3643557Z",
"updatedBy": "API.User",
"updatedAt": "2015-12-17T17:39:59.3643557Z"
}
Post data to import definition:
POST /activities/imports/4219/data (URI returned in import definition POST)
Request body:
[
{
"C_EmailAddress": "contact@oracle.com",
"CampaignID": 505,
"AssetName": "Booth Demo",
"AssetType": "Tradeshow",
"AssetDate": "2015-12-12T14:45:00Z",
"ActivityType": "Viewed a Demo"
}
]
Response:
204 No Content
The response, if successful is an HTTP 204 No Content message. The data is now in the staging area, ready to be synced into Eloqua. For more information on importing data into Eloqua, see the tutorial.
C_EmailAddressis the email address of the contact who performed the activity.ContactIdis the id of the contact who performed the activity.ContactIDExtis the string id of the contact who performed the activity.CampaignIDis the ID of the campaign that the activity is to be associated to.AssetNameis the descriptive name to add to the activity record.AssetTypeis the configured External Activity Type to be used for the activity record.AssetDateis the date and time the activity happened.ActivityTypeis the External Activity related to the External Activity Type to be used for the activity record.
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":"External Activity Import via Bulk API","updateRule":"always","dataRetentionDuration":"PT1H","fields":{"C_EmailAddress":"{{Activity.Contact.Field(C_EmailAddress)}}","CampaignID":"{{Activity.Campaign.Id}}","AssetName":"{{Activity.Asset.Name}}","AssetType":"{{Activity.Asset.Type}}","AssetDate":"{{Activity.CreatedAt}}","ActivityType":"{{Activity.Type}}"}}' https://secure.p03.eloqua.com/api/bulk/2.0/activities/imports