Aktivitäten

Marketo ermöglicht eine Vielzahl von Aktivitätstypen im Zusammenhang mit Lead-Datensätzen.  Fast jede Änderung, Aktion oder jeder Flussschritt wird im Aktivitätsprotokoll eines Leads aufgezeichnet und kann über die API abgerufen oder in Smart List- und Smart Campaign-Filtern und -Triggern genutzt werden.  Aktivitäten sind immer über die Lead-ID mit dem Lead-Datensatz verbunden, was dem ID-Feld des Datensatzes entspricht, und verfügen außerdem über eine eigene eindeutige ID.

Es gibt eine sehr große Anzahl potenzieller Aktivitätstypen, die von Abonnement zu Abonnement variieren können und für jeden eine eindeutige Definition haben. Während jede Aktivität ihre eigenen eindeutigen id, leadId und activityDate hat, variieren die primaryAttributeValueId und primaryAttributeValue Werte in ihrer Bedeutung.

Marketo ermöglicht auch die Erstellung benutzerdefinierter Aktivitätstypen über die Metadaten-API für benutzerdefinierte Aktivitäten. Das Hinzufügen benutzerdefinierter Aktivitäten erfolgt über die API Benutzerdefinierte Aktivitäten hinzufügen .

Die meisten Aktivitäten werden nach einiger Zeit bereinigt.

beschreiben

Um eine Liste der verfügbaren Typen und ihrer Definitionen für eine Instanz abzurufen, können Sie den Endpunkt Aktivitätstypen abrufen verwenden.

GET /rest/v1/activities/types.json
  "requestId": "6e78#148ad3b76f1",
  "success": true,
  "result": [
    {
      "id": 2,
      "name": "Fill Out Form",
      "description": "User fills out and submits form on web page",
      "primaryAttribute": {
        "name": "Webform ID",
        "dataType": "integer"
      },
      "attributes": [
        {
          "name": "Client IP Address",
          "dataType": "string"
        },
        {
          "name": "Form Fields",
          "dataType": "text"
        },
        {
          "name": "Query Parameters",
          "dataType": "string"
        },
        {
          "name": "Referrer URL",
          "dataType": "string"
        },
        {
          "name": "User Agent",
          "dataType": "string"
        },
        {
          "name": "Webpage ID",
          "dataType": "integer"
        }
      ]
    }
  ]
}

Die Antworten der realen Welt umfassen weitaus mehr Definitionen. In diesem Beispiel ist der angezeigte Typ ein „Formular ausfüllen“, das das Primärattribut „Webformular-ID“ aufweist, das auf die Marketo-ID des Formulars verweist, das ausgefüllt wurde, und das verwendet werden kann, um sich wieder auf dieses bestimmte Asset in Marketo zu beziehen. Darüber hinaus gibt es Definitionen für jedes der möglichen Attribute eines bestimmten Aktivitätsdatensatzes dieses Typs und seiner Datentypen. Wenn das Feld leer ist, wird dieses bestimmte Attribut in einem einzelnen Aktivitätsdatensatz weggelassen.

Abfrage

Um Aktivitäten aus Marketo abzurufen, rufen Sie den Endpunkt Lead-Aktivitäten ​) auf. You need to first retrieve a paging token for the datetime that you want to begin retrieving activities from. Anschließend übergeben Sie das Paging-Token im nextPageToken Abfrageparameter . Darüber hinaus können Sie im activityTypeIds Abfrageparameter bis zu zehn Aktivitätstyp-IDs als kommagetrennte Liste übergeben.

Sie können optional entweder einen listId Abfrageparameter einbeziehen, um Ihre Suche auf die Datensätze einzugrenzen, die in einer bestimmten statischen Liste enthalten sind, oder einen leadIds Abfrageparameter und nur nach Aktivitäten aus einem bestimmten Satz von Leads suchen. Sie können bis zu 30 leadIds als kommagetrennte Liste übergeben.

CAUTION
Ab dem 30.12.2026 schlagen Aufrufe an die Get Lead Activities- und Get Lead Changes-Endpunkte, die den listId enthalten, fehl (Fehlercode 1003), wenn die Target-Listen 10.000 oder mehr Leads enthalten. Um Service-Unterbrechungen zu vermeiden, stellen Sie sicher, dass -Aufrufe einen ordnungsgemäßen Umfang haben, um diese Beschränkung zu vermeiden.
GET /rest/v1/activities.json?activityTypeIds=1&nextPageToken=WQV2VQVPPCKHC6AQYVK7JDSA3I3LCWXH3Y6IIZ7YSGQLXHCPVE5Q====
{
  "requestId": "24fd#15188a88d7f",
  "result": [
    {
      "id": 102988,
      "marketoGUID": "102988",
      "leadId": 1,
      "activityDate": "2023-01-16T23:32:19Z",
      "activityTypeId": 1,
      "primaryAttributeValueId": 71,
      "primaryAttributeValue": "localhost/munchkintest2.html",
      "attributes": [
        {
          "name": "Client IP Address",
          "value": "10.0.19.252"
        },
        {
          "name": "Query Parameters",
          "value": ""
        },
        {
          "name": "Referrer URL",
          "value": ""
        },
        {
          "name": "User Agent",
          "value": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36"
        },
        {
          "name": "Webpage URL",
          "value": "/munchkintest2.html"
        }
      ]
    }
  ],
  "success": true,
  "nextPageToken": "WQV2VQVPPCKHC6AQYVK7JDSA3J62DUSJ3EXJGDPTKPEBFW3SAVUA====",
  "moreResult": false
}

Verwenden Sie für den ersten Aufruf die API Paging-Token abrufen , um nextPageToken abzurufen. Verwenden Sie für nachfolgende Aufrufe an diesen Endpunkt die nextPageToken returned aus der Antwort. Dieser Endpunkt gibt immer the nextPageToken zurück.

Wenn das Attribut moreResult wahr ist, bedeutet dies, dass mehr Ergebnisse verfügbar sind. Continue to call this endpoint until the moreResult attribute returns false, which means there are no results available. The nextPageToken returned from this API should always be reused for the next iteration of this call.

In einigen Fällen reagiert diese API möglicherweise mit weniger als 300 Aktivitätselementen, aber auch das moreResult Attribut ist auf „true“ gesetzt.  Dies zeigt an, dass mehr Aktivitäten zurückgegeben werden können und dass der Endpunkt nach neueren Aktivitäten abgefragt werden kann, indem die zurückgegebene nextPageToken in einen nachfolgenden Aufruf aufgenommen wird.

Beachten Sie, dass innerhalb jedes Ergebnis-Array-Elements das id Ganzzahlattribut durch das marketoGUID Zeichenfolgenattribut als eindeutige Kennung ersetzt wird.

Datenwertänderungen

For Data Value Change activities, a specialized version of the activities API is provided. The Get Lead Changes endpoint only returns activities of Data Value Change records to lead fields. Die Benutzeroberfläche entspricht der API für Abrufen von Lead-Aktivitäten mit zwei Unterschieden:

  • Es gibt keinen activityTypeIds, da der Endpunkt nur die Aktivitäten Datenwertänderung und Neuer Lead zurückgibt.
  • Der fields Abfrageparameter ist erforderlich, wobei Sie eine kommagetrennte Liste von Feldern übergeben können, um anzugeben, für welche Felder Sie Änderungen abrufen möchten.
CAUTION
Ab dem 30.12.2026 schlagen Aufrufe an die Get Lead Activities- und Get Lead Changes-Endpunkte, die den listId enthalten, fehl (Fehlercode 1003), wenn die Target-Listen 10.000 oder mehr Leads enthalten. Um Service-Unterbrechungen zu vermeiden, stellen Sie sicher, dass -Aufrufe einen ordnungsgemäßen Umfang haben, um diese Beschränkung zu vermeiden.
GET /rest/v1/activities/leadchanges.json?nextPageToken=GIYDAOBNGEYS2MBWKQYDAORQGA5DAMBOGAYDAKZQGAYDALBQ&fields=firstName,lastName,department
{
  "requestId": "a9ae#148add1e53d",
  "success": true,
  "nextPageToken": "GIYDAOBNGEYS2MBWKQYDAORQGA5DAMBOGAYDAKZQGAYDALBRGA3TQ===",
  "moreResult": true,
  "result": [
    {
      "id": 1078,
      "marketoGUID": "1078",
      "leadId": 775,
      "activityDate": "2014-09-17T22:31:49+0000",
      "activityTypeId": 13,
      "fields": [
        {
          "id": 48,
          "name": "firstName",
          "newValue": "FirstName_6176",
          "oldValue": "FirstName_4914"
        }
      ],
      "attributes": [
        {
          "name": "Reason",
          "value": "Web service API"
        },
        {
          "name": "Source",
          "value": "Web service API"
        },
        {
          "name": "Lead ID",
          "value": 775
        }
      ]
    }
  ]
}

Jede Aktivität in der Antwort verfügt über ein Feld-Array, einschließlich einer Liste der Änderungen in der Aktivität, in der die id und name des geänderten Felds sowie die neuen und alten Werte relativ zur Änderung angegeben sind.

Beachten Sie, dass innerhalb jedes Ergebnis-Array-Elements das id Ganzzahlattribut durch das marketoGUID Zeichenfolgenattribut als eindeutige Kennung ersetzt wird.

Gelöschte Leads

Es gibt auch einen speziellen Endpunkt Gelöschte Leads abrufen zum Abrufen gelöschter Aktivitäten aus Marketo.

GET /rest/v1/activities/deletedleads.json?nextPageToken=GIYDAOBNGEYS2MBWKQYDAORQGA5DAMBOGAYDAKZQGAYDALBQ
{
  "requestId": "a9ae#148add1e53d",
  "success": true,
  "nextPageToken": "GIYDAOBNGEYS2MBWKQYDAORQGA5DAMBOGAYDAKZQGAYDALBRGA3TQ===",
  "moreResult": true,
  "result": [
    {
      "id": 2,
      "marketoGUID": "2",
      "leadId": 6,
      "activityDate": "2013-09-26T06:56:35+0000",
      "activityTypeId": 37,
      "primaryAttributeValueId": 6,
      "primaryAttributeValue": "Owyliphys Iledil",
      "attributes": []
    },
    {
      "id": 3,
      "marketoGUID": "3",
      "leadId": 9,
      "activityDate": "2013-12-28T00:39:45+0000",
      "activityTypeId": 37,
      "primaryAttributeValueId": 4,
      "primaryAttributeValue": "First Last",
      "attributes": []
    }
  ]
}

Beachten Sie, dass innerhalb jedes Ergebnis-Array-Elements das id Ganzzahlattribut durch das marketoGUID Zeichenfolgenattribut als eindeutige Kennung ersetzt wird.

Seitendurchlauf der Ergebnisse

Standardmäßig geben die in diesem Abschnitt erwähnten Endpunkte 300 Aktivitätselemente auf einmal zurück.  Wenn das moreResult „true“ ist, sind weitere Ergebnisse verfügbar. Rufen Sie den Endpunkt auf, bis das moreResult-Attribut „false“ zurückgibt. Dies bedeutet, dass keine Ergebnisse mehr verfügbar sind. Die von diesem Endpunkt zurückgegebene nextPageToken sollte immer für die nächste Iteration dieses Aufrufs wiederverwendet werden.

In einigen Fällen reagiert dieser Endpunkt möglicherweise mit weniger als 300 Aktivitätselementen, aber auch das moreResult Attribut ist auf „true“ gesetzt.  Dies zeigt an, dass zusätzliche Aktivitäten zurückgegeben werden können und dass der Endpunkt nach neueren Aktivitäten abgefragt werden kann, indem die zurückgegebene nextPageToken in einen nachfolgenden Aufruf aufgenommen wird. Beachten Sie, dass die nextPageToken in der Anfrage URL-kodiert sein muss.

Benutzerdefinierte Aktivitätstypen

Benutzerdefinierte Aktivitäten funktionieren genau wie Standardaktivitäten, mit der Ausnahme, dass das Schema von Drittanbietern und nicht von Marketo verwaltet wird. Instanzen von benutzerdefinierten Aktivitäten werden wie Standardaktivitäten mit Lead-Datensätzen über die leadId verknüpft. Es werden jedoch sowohl primäre als auch sekundäre Attribute willkürlich definiert. Wenn ein benutzerdefinierter Aktivitätstyp genehmigt wird, werden ein entsprechender Smart List-Trigger und ein entsprechender Filter erstellt, sodass Leads basierend auf Daten zu aktuellen oder früheren benutzerdefinierten Aktivitäten verarbeitet werden können.

  • Maximale Anzahl benutzerdefinierter Aktivitäten: 10
  • Maximale Anzahl von Attributen pro benutzerdefinierter Aktivität: 20

Das Abrufen benutzerdefinierter Aktivitätsdaten erfolgt auf die gleiche Weise wie bei Standardaktivitäten über die Lead-Aktivitäten abrufen-API.

Abfragetypen

Zusätzlich zum standardmäßigen Endpunkt Abrufen von Aktivitätstypen geben die Endpunkte Abrufen benutzerdefinierter Aktivitätstypen und Beschreiben benutzerdefinierter Aktivitätstypen Details zu den in der Marketo-Instanz bereitgestellten Aktivitätstypen sowie Metadaten zu den Attributen für einen bestimmten Typ zurück. Die normale Abrufen von Aktivitätstypen gibt weiterhin Metadaten zu benutzerdefinierten Aktivitäten zurück, gibt jedoch nicht an, ob ein bestimmter Typ benutzerdefiniert ist.

Typen abrufen

GET /rest/v1/activities/external/types.json
{
  "requestId": "185d6#14b51985ff0",
  "success": true,
  "result": [
    {
      "id": 100001,
      "apiName": "attendConference",
      "name": "Attend Conference",
      "description": "Attend the conference",
      "triggerName": "Attends Conference",
      "filterName": "Attended Conference",
      "createdAt": "2016-02-03T22:36:23Z",
      "updatedAt": "2016-02-03T22:36:23Z",
      "status": "approved"
    }
  ]
}

Typen beschreiben

Für Typbeschreibungen müssen Sie apiName als Pfadparameter übergeben. Standardmäßig wird die genehmigte Version der Aktivität angezeigt. Sie können optional den draft=true übergeben, um die Entwurfsversion der Aktivität abzurufen.

GET /rest/v1/activities/external/type/{apiName}/describe.json
{
  "requestId": "185d6#14b51985ff0",
  "success": true,
  "result": [
    {
      "id": 100001,
      "apiName": "attendConference",
      "name": "Attend Conference",
      "description": "Attend the conference",
      "triggerName": "Attends Conference",
      "filterName": "Attended Conference",
      "createdAt": "2016-02-03T22:36:23Z",
      "updatedAt": "2016-02-03T22:36:23Z",
      "status": "approved",
      "primaryAttribute": {
        "apiName": "conferenceName",
        "name": "Conference Name",
        "description": "Name of the conference",
        "dataType": "string"
      },
      "attributes": [
        {
          "apiName": "conferenceDate",
          "name": "Conference Date",
          "description": "Date of the conference",
          "dataType": "datetime"
        },
        {
          "apiName": "numberOfAttendees",
          "name": "Number of Attendees",
          "description": "Number of people attending conference",
          "dataType": "integer"
        }
      ]
    }
  ]
}

Typ erstellen

Jeder benutzerdefinierte Aktivitätstyp erfordert einen Anzeigenamen, einen API-Namen, einen Trigger-Namen, einen Filternamen und ein Primärattribut.

Um die Konsistenz Ihrer Typen mit den Konventionen von Marketo sicherzustellen und Konflikte zu vermeiden, müssen Sie beim Erstellen Ihrer Typen einige Richtlinien befolgen:

Anzeigename: Der Anzeigename des Aktivitätstyps sollte kurz beschreiben, was ein Aktivitätsdatensatz darstellt, z. B. „E-Mail senden“ oder „Datenwert ändern“. Diese Namen sollten normalerweise in der infinitiven Form vorliegen, d. h. „An einer Veranstaltung teilnehmen“.  Anzeigenamen akzeptieren alphanumerische Zeichen, Leerzeichen und Unterstriche. Anzeigenamen müssen mindestens einen Buchstaben enthalten.

API-Name: Der API-Name besteht aus alphanumerischen Zeichen (maximal 255 Zeichen). Wenn Sie ein LaunchPoint-Partner sind, sollten Sie Ihren API-Namen vom Aktivitätstyp einen repräsentativen Namespace voranstellen. Dadurch sollen Konflikte mit vom Kunden bereitgestellten Typen vermieden werden.  Die Konvention besagt, dass nur Kleinbuchstaben oder Binnenmajuskeln verwendet werden, um zwischen anderen Textzeichenfolgen zu unterscheiden.

Beschreibung: Für Aktivitäten, die möglicherweise ein nicht offensichtliches Verhalten aufweisen, sollte eine Beschreibung dessen enthalten, was der Aktivitätstyp in Bezug auf den Lead darstellt.

Trigger-Name: Jeder Aktivitätstyp muss einen eindeutigen, für Menschen lesbaren Trigger-Namen haben. Die Namen der Trigger sollten im Anwesenheitszeitalter der dritten Person angegeben werden, z. B. „Teilnimmt an einem Event teil“. LaunchPoint-Partner sollten ihren Firmennamen in die Aktivität aufnehmen, z. B. „Teilnahme am Webinar - Firma Acme“.

Filtername:  Jeder Aktivitätstyp muss über einen eindeutigen, für Menschen lesbaren Filternamen verfügen. Filternamen sollten in der Vergangenheitsform der dritten Person sein, z. B. „Teilgenommen an einem Ereignis“. LaunchPoint-Partner sollten ihren Firmennamen in die Aktivität aufnehmen, d. h. „Teilnahme am Webinar - Acme Company“.

Primäres Attribut Das Hauptattribut einer benutzerdefinierten Aktivität sollte das für den Aktivitätstyp bedeutendste Feld sein. Bei einer Aktivität des Typs „Teilgenommene Veranstaltung“ wäre dies beispielsweise der Name der Veranstaltung. Primäre Attribute werden standardmäßig in jeder Instanz eines Triggers oder Filters für diesen Aktivitätstyp als Parameter eingeschlossen. Der Wert wird im Aktivitätsprotokoll eines Personendatensatzes angezeigt, ohne dass eine Aufschlüsselung der Aktivität erforderlich ist.

Wenn eine benutzerdefinierte Aktivität erstellt wird, wird sie als Entwurf erstellt und muss genehmigt werden, bevor sie zum Hinzufügen von Aktivitätsdatensätzen dieses Typs verwendet werden kann. Alle Aktualisierungen werden implizit auf die Entwurfsversion des Typs angewendet. Um die Änderungen in der Live-Version des Typs widerzuspiegeln, muss er genehmigt werden. When a custom activity type is approved and in use, no changes to the above fields may be made.

When creating a type, the description parameter is optional, while all of the following parameters are required: apiName, name, triggerName, filterName, primaryAttribute.

POST /rest/v1/activities/external/type.json
{
  "apiName": "attendConference",
  "name": "Attend Conference",
  "description": "Attend the conference",
  "triggerName": "Attends Conference",
  "filterName": "Attended Conference",
  "primaryAttribute": {
    "apiName": "conferenceName",
    "name": "Conference Name",
    "description": "Name of the conference"
  }
}
{
  "requestId": "e42b#14272d07d78",
  "success": true,
  "result": [
    {
      "apiName": "attendConference",
      "name": "Attend Conference",
      "description": "Attend the conference",
      "triggerName": "Attends Conference",
      "filterName": "Attended Conference",
      "status": "draft",
      "primaryAttribute": {
        "apiName": "conferenceName",
        "name": "Conference Name",
        "description": "Name of the conference",
        "dataType": "string"
      }
    }
  ]
}

Update Type

Updating a type is very similar, except the apiName is the only required parameter as a path parameter.

POST /rest/v1/activities/external/type/{apiName}.json
{
  "name": "Attend Conference",
  "description": "Attend the conference",
  "triggerName": "Attend Conference",
  "filterName": "Attended Conference",
  "primaryAttribute": {
    "apiName": "conferenceName",
    "name": "Conference Name",
    "description": "Name of the conference"
  }
}
{
  "requestId": "e42b#14272d07d78",
  "success": true,
  "result": [
    {
      "apiName": "attendConference",
      "name": "Attend Conference",
      "description": "Attend the conference",
      "triggerName": "Attend Conference",
      "filterName": "Attended Conference",
      "status": "draft",
      "primaryAttribute": {
        "apiName": "conferenceName",
        "name": "Conference Name",
        "description": "Name of the conference",
        "dataType": "string"
      }
    }
  ]
}

Approve Type

Types can be managed with the Approve Custom Activity Type, Discard Custom Activity Type Draft, and Delete Custom Activity Type, just like standard Marketo assets.

Custom Activity Type Attributes

Each custom activity type can have from 0-20 secondary attributes. Secondary attributes may have any valid field type for a Marketo field. They are added, updated, and removed separately from the parent type, but may be edited while an activity type is in use and then approved. When fields are edited on a live type, then all activities of that type created after approval has the new secondary attribute set. Changes will not be applied retroactively to existing activities sharing that type.

Be careful about the removal of attributes, as this will affect their availability for use in the corresponding filters.

Updates made to the secondary attribute list use the API name of each attribute as a primary key. The API Name for an attribute may not be changed, it must be deleted and added again with the desired API name.

Valid data types for attributes are: string, boolean, integer, float, link, email, currency, date, datetime, phone, text.

When changing the primary attribute of an activity type, any existing primary attribute should be demoted by setting isPrimary to false first.

Create Attributes

Creating an attribute takes a required apiName path parameter. Also required are the name and dataType parameters.The description and isPrimary parameters are optional.

POST /rest/v1/activities/external/type/{apiName}/attributes/create.json
{
  "attributes": [
    {
      "apiName": "conferenceDate",
      "name": "Conference Date",
      "description": "Date of the conference",
      "dataType": "datetime"
    },
    {
      "apiName": "numberOfAttendees",
      "name": "Number of Attendees",
      "description": "Number of people attending conference",
      "dataType": "integer"
    }
  ]
}
{
  "requestId": "e42b#14272d07d78",
  "success": true,
  "result": [
    {
      "id": 100001,
      "apiName": "attendConference",
      "name": "Attend Conference",
      "description": "Attend the conference",
      "triggerName": "Attend Conference",
      "filterName": "Attended Conference",
      "createdAt": "2016-02-03T22:36:23Z",
      "updatedAt": "2016-02-03T22:36:23Z",
      "status": "approved with draft",
      "primaryAttribute": {
        "apiName": "conferenceName",
        "name": "Conference Name",
        "description": "Name of the conference",
        "dataType": "string"
      },
      "attributes": [
        {
          "apiName": "conferenceDate",
          "name": "Conference Date",
          "description": "Date of the conference",
          "dataType": "datetime"
        },
        {
          "apiName": "numberOfAttendees",
          "name": "Number of Attendees",
          "description": "Number of people attending conference",
          "dataType": "integer"
        }
      ]
    }
  ]
}

Update attributes

When performing updates to attributes, the apiName of the attribute is the primary key. The apiName parameter must exist for the update to succeed (that is, you cannot change the apiName parameter using update).

POST /rest/v1/activities/external/type/{apiName}/attributes/update.json
{
  "attributes": [
    {
      "apiName": "conferenceDate",
      "name": "Conference Date",
      "description": "Date of the conference",
      "dataType": "datetime"
    },
    {
      "apiName": "numberOfAttendee",
      "name": "Number of Attendee",
      "description": "Number of people attending conference",
      "dataType": "integer"
    }
  ]
}
{
  "requestId": "e42b#14272d07d78",
  "success": true,
  "result": [
    {
      "id": 100001,
      "apiName": "attendConference",
      "name": "Attend Conference",
      "description": "Attend the conference",
      "triggerName": "Attend Conference",
      "filterName": "Attended Conference",
      "createdAt": "2016-02-03T22:36:23Z",
      "updatedAt": "2016-02-03T22:36:23Z",
      "status": "approved with draft",
      "primaryAttribute": {
        "apiName": "conferenceName",
        "name": "Conference Name",
        "description": "Name of the conference",
        "dataType": "string"
      },
      "attributes": [
        {
          "apiName": "conferenceDate",
          "name": "Conference Date",
          "description": "Date of the conference",
          "dataType": "datetime"
        },
        {
          "apiName": "numberOfAttendee",
          "name": "Number of Attendee",
          "description": "Number of people attending conference",
          "dataType": "integer"
        }
      ]
    }
  ]
}

Delete Attributes

Deleting an attribute takes a required apiName path parameter that is the custom activity API name.  Also required is an attribute parameter that is an array of attribute objects.  Each object must contain an apiName parameter that is the custom activity type API name.

POST /rest/v1/activities/external/type/{apiName}/attributes/delete.json
{ "attributes":[ { "apiName":"conferenceDate" }, { "apiName":"numberOfAttendees" } ] }
{
  "requestId": "e42b#14272d07d78",
  "success": true,
  "result": [
    {
      "id": 100001,
      "apiName": "attendConference",
      "name": "Attend Conference",
      "description": "Attend the conference",
      "triggerName": "Attend Conference",
      "filterName": "Attended Conference",
      "createdAt": "2016-02-03T22:36:23Z",
      "updatedAt": "2016-02-03T22:36:23Z",
      "status": "approved with draft",
      "primaryAttribute": {
        "apiName": "conferenceName",
        "name": "Conference Name",
        "description": "Name of the conference",
        "dataType": "string"
      }
    }
  ]
}

Add Custom Activities

Custom activities are write-once records of historical activities related to individual person records in Marketo. These activities have a schema that is managed by Marketo Admins or remotely via an API integration. Custom activities are added to lead records via the Add Custom Activities endpoint and related to each lead record via its leadId field. Custom activities can be viewed in the user interface via the lead's activity log, or retrieved via Get Lead Activities endpoint by specifying the custom activity's type ID.

Custom activities are appropriate for recording data that is related to a single person record and which does not need to be updated or overwritten. An example would be recording a person attending an event as an "Attended Event" activity. For records related to a person that may change, such as student enrollment, custom objects should be used instead, as they can be updated, where custom activities may not.

The input member is an array of activity objects. A maximum of 300 activity records can be submitted at a time.

The leadId, activityDate, activityTypeId, primaryAttributeValue, and attributes members are required. The attributes array must contain the non-primary attribute. This can be specified using either name (field name), or apiName (API name), and value that corresponds to the value that you are setting.

POST /rest/v1/activities/external.json
{
  "input": [
    {
      "leadId": 1001,
      "activityDate": "2016-09-26T06:56:35+07:00",
      "activityTypeId": 1001,
      "primaryAttributeValue": "Game Giveaway",
      "attributes": [
        {
          "apiName": "uRL",
          "value": "http://www.nvidia.com/game-giveaway"
        }
      ]
    },
    {
      "leadId": 1200,
      "activityDate": "2016-09-26T06:56:35+07:00",
      "activityTypeId": 1001,
      "primaryAttributeValue": "Game Giveaway",
      "attributes": [
        {
          "apiName": "uRL",
          "value": "http://www.nvidia.com/game-giveaway"
        }
      ]
    },
    {
      "leadId": 3000,
      "activityDate": "2016-09-26T06:56:35+07:00",
      "activityTypeId": 1001,
      "primaryAttributeValue": "Contest Form",
      "attributes": [
        {
          "apiName": "uRL",
          "value": "http://www.nvidia.com/game-giveaway"
        }
      ]
    }
  ]
}
{
  "requestId": "e42b#14272d07d78",
  "success": true,
  "result": [
    {
      "id": 50,
      "marketoGUID": "50",
      "status": "added"
    },
    {
      "id": 51,
      "marketoGUID": "51",
      "status": "added"
    },
    {
      "status": "skipped",
      "errors": [
        {
          "code": "1004",
          "message": "Lead not found"
        }
      ]
    }
  ]
}

Timeouts

Activities endpoints have a timeout of 30s unless noted below.

  • Get Paging Token: 300s
  • Add Custom Activity: 90s
recommendation-more-help
bb269a6d-047a-4bf7-9acd-23ad9a63dc59