> ## Documentation Index
> Fetch the complete documentation index at: https://developers.hubspot.de/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# CRM-API | Chronik-Events

export const postmanIcon = <svg xmlns="http://www.w3.org/2000/svg" width={25} height={25} preserveAspectRatio="xMidYMid" viewBox="0 0 256 256">
    <path fill="#FF6C37" d="M254.953 144.253c8.959-70.131-40.569-134.248-110.572-143.206C74.378-7.912 10.005 41.616 1.047 111.619c-8.959 70.003 40.569 134.248 110.572 143.334 70.131 8.959 134.248-40.569 143.334-110.7Z" />
    <path fill="#FFF" d="m174.2 82.184-54.007 54.007-15.229-15.23c53.11-53.11 58.358-48.503 69.236-38.777Z" />
    <path fill="#FF6C37" d="M120.193 137.47c-.384 0-.64-.128-.895-.384l-15.358-15.229a1.237 1.237 0 0 1 0-1.792c54.007-54.006 59.638-48.887 71.028-38.649.255.256.383.512.383.896s-.128.64-.383.896l-54.007 53.878c-.128.256-.512.384-.768.384Zm-13.437-16.509 13.437 13.438 52.087-52.087c-9.47-8.446-15.87-11.006-65.524 38.65Z" />
    <path fill="#FFF" d="m135.679 151.676-14.718-14.718 54.007-54.006c14.46 14.59-7.167 38.265-39.29 68.724Z" />
    <path fill="#FF6C37" d="M135.679 152.956c-.384 0-.64-.128-.896-.384l-14.718-14.718c-.256-.256-.256-.512-.256-.896s.128-.64.384-.895L174.2 82.056a1.237 1.237 0 0 1 1.791 0 15.58 15.58 0 0 1 4.991 11.902c-.256 14.206-16.38 32.25-44.28 58.614-.383.256-.767.384-1.023.384Zm-12.926-15.998c8.19 8.319 11.646 11.646 12.926 12.926 21.5-20.476 42.36-41.464 42.488-55.926.128-3.327-1.152-6.655-3.327-9.214l-52.087 52.214Z" />
    <path fill="#FFF" d="m105.22 121.345 10.878 10.878c.256.256.256.512 0 .768-.128.128-.128.128-.256.128l-22.524 4.863c-1.152.128-2.175-.64-2.431-1.791-.128-.64.128-1.28.512-1.664l13.053-13.054c.256-.256.64-.384.768-.128Z" />
    <path fill="#FF6C37" d="M92.934 139.262c-1.92 0-3.327-1.536-3.327-3.455 0-.896.384-1.792 1.024-2.432l13.053-13.054c.768-.64 1.792-.64 2.56 0l10.878 10.878c.768.64.768 1.792 0 2.56-.256.256-.512.384-.896.512l-22.524 4.863c-.256 0-.512.128-.768.128Zm11.902-16.51-12.542 12.543c-.256.256-.383.64-.128 1.024.128.383.512.511.896.383l21.116-4.607-9.342-9.342Z" />
    <path fill="#FFF" d="M202.739 52.238c-8.191-7.935-21.373-7.679-29.307.64-7.935 8.318-7.679 21.372.64 29.306A20.678 20.678 0 0 0 199.155 85l-14.59-14.59 18.174-18.172Z" />
    <path fill="#FF6C37" d="M188.405 89.223c-12.158 0-22.012-9.854-22.012-22.012 0-12.158 9.854-22.012 22.012-22.012 5.631 0 11.134 2.176 15.23 6.143.255.256.383.512.383.896s-.128.64-.384.895L186.357 70.41l13.566 13.566c.512.512.512 1.28 0 1.792l-.256.256c-3.327 2.047-7.295 3.199-11.262 3.199Zm0-41.337c-10.75 0-19.452 8.703-19.324 19.453 0 10.75 8.702 19.452 19.452 19.324 2.944 0 5.887-.64 8.575-2.047l-13.438-13.31c-.256-.256-.384-.512-.384-.896s.128-.64.384-.895l17.149-17.15c-3.456-2.943-7.807-4.479-12.414-4.479Z" />
    <path fill="#FFF" d="m203.122 52.622-.255-.256-18.301 18.044 14.461 14.462c1.408-.896 2.816-1.92 3.967-3.072a20.51 20.51 0 0 0 .128-29.178Z" />
    <path fill="#FF6C37" d="M199.155 86.28c-.384 0-.64-.128-.896-.384l-14.589-14.59c-.256-.256-.384-.512-.384-.896s.128-.64.384-.895l18.173-18.173a1.237 1.237 0 0 1 1.791 0l.384.256c8.575 8.574 8.575 22.396.128 31.098-1.28 1.28-2.687 2.432-4.223 3.328-.384.128-.64.256-.768.256Zm-12.798-15.87 12.926 12.926c1.024-.64 2.048-1.536 2.816-2.304 7.294-7.294 7.678-19.196.64-26.875L186.357 70.41Z" />
    <path fill="#FFF" d="M176.375 84.488a7.879 7.879 0 0 0-11.134 0l-48.247 48.247 8.063 8.063 51.062-44.792c3.328-2.816 3.584-7.807.768-11.134-.256-.128-.384-.256-.512-.384Z" />
    <path fill="#FF6C37" d="M124.929 142.077c-.384 0-.64-.128-.896-.383l-8.063-8.063a1.237 1.237 0 0 1 0-1.792l48.247-48.247a9.115 9.115 0 0 1 12.926 0 9.115 9.115 0 0 1 0 12.926l-.384.384-51.063 44.792c-.128.255-.384.383-.767.383Zm-6.143-9.342 6.27 6.271 50.167-44.024c2.816-2.304 3.072-6.527.768-9.342-2.303-2.816-6.526-3.072-9.342-.768-.128.128-.256.256-.512.384l-47.351 47.48Z" />
    <path fill="#FFF" d="M80.009 187.637c-.512.256-.768.768-.64 1.28l2.175 9.214c.512 1.28-.256 2.816-1.663 3.2-1.024.384-2.176 0-2.816-.768l-14.077-13.95 45.943-45.943 15.87.256 10.75 10.75c-2.56 2.175-18.045 17.149-55.542 35.961Z" />
    <path fill="#FF6C37" d="M78.985 202.61c-1.024 0-2.048-.383-2.688-1.151l-13.95-13.95c-.255-.256-.383-.512-.383-.896 0-.383.128-.64.384-.895l45.944-45.944c.256-.256.64-.384.895-.384l15.87.256c.383 0 .64.128.895.384l10.75 10.75c.256.256.384.64.384 1.024s-.128.64-.512.896l-.895.767c-13.566 11.902-31.995 23.804-54.902 35.194l2.175 9.086c.384 1.664-.384 3.456-1.92 4.352-.767.384-1.407.512-2.047.512Zm-14.078-15.997 13.182 13.054c.384.64 1.152.896 1.792.512.64-.384.896-1.152.512-1.792l-2.176-9.214c-.256-1.152.256-2.176 1.28-2.688 22.652-11.39 40.952-23.163 54.39-34.81l-9.47-9.47-14.718-.256-44.792 44.664Z" />
    <path fill="#FFF" d="m52.11 197.62 11.006-11.007 16.38 16.381-26.107-1.791c-1.151-.128-1.92-1.152-1.791-2.304 0-.512.128-1.024.512-1.28Z" />
    <path fill="#FF6C37" d="m79.497 204.146-26.236-1.791c-1.92-.128-3.199-1.792-3.071-3.712.128-.768.384-1.535 1.024-2.047L62.22 185.59a1.237 1.237 0 0 1 1.792 0l16.38 16.38c.385.385.512.897.257 1.408-.256.512-.64.768-1.152.768Zm-16.381-15.74-10.11 10.11c-.384.255-.384.895 0 1.151.127.128.255.256.511.256l22.652 1.536-13.053-13.054ZM104.452 146.557c-.768 0-1.28-.64-1.28-1.28 0-.384.128-.64.384-.896l12.414-12.414a1.237 1.237 0 0 1 1.792 0l8.062 8.063c.384.384.512.768.384 1.28-.128.384-.512.767-1.023.895l-20.477 4.352h-.256Zm12.414-11.902-8.446 8.446 13.821-2.943-5.375-5.503Z" />
    <path fill="#FFF" d="m124.8 140.926-14.077 3.071c-1.024.256-2.048-.384-2.303-1.408-.128-.64 0-1.28.511-1.791l7.807-7.807 8.063 7.935Z" />
    <path fill="#FF6C37" d="M110.467 145.277a3.168 3.168 0 0 1-3.2-3.2c0-.895.385-1.663.897-2.303l7.806-7.807a1.237 1.237 0 0 1 1.792 0l8.062 8.063c.384.384.512.768.384 1.28-.128.384-.512.767-1.023.895l-14.078 3.072h-.64Zm6.399-10.622-6.91 6.91c-.257.257-.257.512-.129.768s.384.384.768.384l11.774-2.56-5.503-5.502ZM203.25 64.907c-.256-.767-1.151-1.151-1.92-.895-.767.255-1.151 1.151-.895 1.92 0 .127.128.255.128.383.768 1.536.512 3.455-.512 4.863-.512.64-.384 1.536.128 2.048.64.512 1.536.384 2.048-.256 1.92-2.432 2.303-5.503 1.023-8.063Z" />
  </svg>;

export const ScopesList = ({scopes = [], description = "Diese API erfordert einen der folgenden Bereiche:"}) => {
  if (!scopes || scopes.length === 0) {
    return null;
  }
  const sortedScopes = scopes.sort((a, b) => a.localeCompare(b));
  return <div>
      <div className="text-sm mb-2">{description}</div>
      <div>
        {sortedScopes.map((scope, index) => <div key={index}>
            <code>
              <span className="text-xs">{scope}</span>
            </code>
          </div>)}
      </div>
    </div>;
};

<Card title="Run in Postman" href="https://app.getpostman.com/run-collection/e5a01a5644f5e061f744" icon={postmanIcon} horizontal={true} />

<RelatedApiLink />

<Accordion title="Bereichsanforderungen">
  <ScopesList
    scopes={[
  'crm.objects.companies.highly_sensitive.read.v2',
  'crm.objects.companies.highly_sensitive.write.v2',
  'crm.objects.companies.read',
  'crm.objects.companies.sensitive.read.v2',
  'crm.objects.companies.sensitive.write.v2',
  'crm.objects.companies.write',
  'crm.objects.contacts.highly_sensitive.read.v2',
  'crm.objects.contacts.highly_sensitive.write.v2',
  'crm.objects.contacts.read',
  'crm.objects.contacts.sensitive.read.v2',
  'crm.objects.contacts.sensitive.write.v2',
  'crm.objects.contacts.write',
  'crm.objects.deals.highly_sensitive.read.v2',
  'crm.objects.deals.highly_sensitive.write.v2',
  'crm.objects.deals.read',
  'crm.objects.deals.sensitive.read.v2',
  'crm.objects.deals.sensitive.write.v2',
  'crm.objects.deals.write',
  'crm.schemas.companies.read',
  'crm.schemas.companies.write',
  'crm.schemas.contacts.read',
  'crm.schemas.contacts.write',
  'crm.schemas.deals.read',
  'crm.schemas.deals.write',
  'tickets',
  'tickets.highly_sensitive.v2',
  'tickets.sensitive.v2',
  'timeline'
]}
  />
</Accordion>

Die CRM-Erweiterungen ermöglichen es, dass Informationen aus anderen Systemen in HubSpot-Kontakt-, Unternehmens-, Deal- oder Ticket-Objekten angezeigt werden können. Die Chronik-Events-Endpunkte ermöglichen es Ihnen, benutzerdefinierte Chronik-Events zu erstellen. Wenn Sie möchten, dass Ihre Daten von Benutzern bearbeitet werden können, jedoch keines der Standard-CRM-Objekte Ihren Anforderungen entspricht, können Sie [benutzerdefinierte Objekte](/api-reference/crm-custom-objects-v3/guide) in Betracht ziehen.

<Frame>
  <img src="https://www.hubspot.de/hubfs/timeline_api/event_expanded-2.png" alt="event_expanded-2" />
</Frame>

Sie möchten z. B. Ihre Kontakte besser anhand der Interaktionen mit Ihrem Unternehmen und Content segmentieren. Dazu benötigen Sie mehr Informationen über sie. Ihre App kann benutzerdefinierte Events erstellen (Kontakte, die sich registriert, jedoch nicht an einem jüngsten Webinar teilgenommen haben; welche Variante eines Registrierungsprozesses einen Kontakt abgeschlossen hat, usw.), die Ihnen mehr Kontext über die Interaktionen von Kontakten mit Ihrem Unternehmen liefern.

## Eine Event-Vorlage erstellen

Bevor Sie Events erstellen können, müssen Sie eine Event-Vorlage erstellen. Event-Vorlagen beschreiben Aktionen, die Ihre App zur Chronik eines Kontakt-, Unternehmens- oder Deal-Objekts in HubSpot hinzufügt. Beispiele für diese Aktionen sind unter anderem das Aufrufen eines Videos, die Registrierung für ein Webinar oder das Ausfüllen einer Umfrage. Eine einzelne App kann bis zu 750 Event-Vorlagen erstellen.

Events werden standardmäßig für Kontakte erstellt, sie können jedoch mithilfe des `objectType`-Feldes auch für Unternehmen oder Deals erstellt werden. Im Abschnitt zur Erstellung einer Vorlage für Chronik-Events finden Sie weitere Informationen.

Jede Event-Vorlage verfügt über einen eigenen Satz an Token und Vorlagen. Sie können Events für Kontakte als Kriterien beim Erstellen neuer Kontaktlisten oder Workflows verwenden, z. B.: „Erstellen einer Liste aller Kontakte mit einem Video-Like, bei der der Videoname XYZ enthält“, wobei die Event-Vorlage „Video-Like“ heißt und über ein Event-Token mit dem Namen „Videoname“ verfügt."

### Event-Vorlagen über die API erstellen

In diesem Beispiel erstellen wir eine neue Event-Vorlage vom Typ „Beispiel-Webinar-Registrierung“. Verwenden Sie zur Authentifizierung den Entwickler-API-Schlüssel in Ihrem App-Entwickler-Account.

```shell theme={null}
curl -X POST
-H "Content-Type: application/json" -d '
{
  "name": "Example Webinar Registration",
  "objectType": "contacts"
}' \
'https://api.hubapi.com/crm/v3/timeline/<<appId>>/event-templates?hapikey=<<developerAPIkey>>''
```

Ersetzen Sie unbedingt `<appId>` mit Ihrer eigenen App-ID, die Sie sowohl unter *Meine Apps* als auch auf den App-Detailseiten in Ihrem Entwickler-Account finden können. Sie müssen auch `<developerHapikey>` mit Ihrem eigenen Entwickler-API-Schlüssel ersetzen, den Sie finden, indem Sie zu **Apps** > **HubSpot-API-Schlüssel abrufen** gehen.

Die Eigenschaften `headerTemplate` und `detailTemplate` könnten auch hier angegeben werden. Mehr Informationen dazu finden Sie im Abschnitt *Header- und Detail-Vorlagen definieren* weiter unten.

Diese `POST`-Anfrage gibt die vollständige, gespeicherte Definition der Event-Vorlage zurück. Beachten Sie unbedingt die `id`-Eigenschaft in dieser Antwort. Dies ist die Event-Vorlagen-ID, die Sie für alle Aktualisierungen dieser Event-Vorlage oder Token in der Zukunft benötigen.

Sie können alle für eine App definierten Event-Vorlagen über diesen GET-Befehl anzeigen. Dabei werden auch die Event-Vorlagen-IDs zurückgegeben:

```shell theme={null}
curl -X GET 'https://api.hubapi.com/crm/v3/timeline/<<appId>>/event-templates?hapikey=<<developerAPIkey>>'
```

### Event-Vorlagen in HubSpot erstellen

Neben dem Erstellen und Verwalten von Chronik-Event-Vorlagen über die API können Sie auch Event-Vorlagen in Ihrem HubSpot-Entwickler-Account verwalten.

Gehen Sie in Ihren App-Einstellungen zu **Chronik-Events** und klicken Sie dann auf **Event-Typ erstellen**, um eine neue Event-Vorlage für diese App zu erstellen. Wenn Sie bereits Event-Vorlagen erstellt haben, werden diese ebenfalls hier angezeigt

<Frame>
  <img src="https://www.hubspot.de/hubfs/timeline-event-example-app.png" alt="example-app" />
</Frame>

Sie beginnen mit einem Entwurf Ihrer neuen Event-Vorlage. Nachdem Sie den Objekttyp und die Detail- und Header-Vorlagen für das Event festgelegt haben, klicken Sie auf **Erstellen**.

<Frame>
  <img src="https://www.hubspot.de/hubfs/new-timeline-event-template.png" alt="new-timeline-event-template" />
</Frame>

Legen Sie beim Erstellen oder Bearbeiten Ihrer Event-Vorlage auf der Registerkarte *Daten* alle Token fest, die Sie mit ihr verwenden möchten.

<Frame>
  <img src="https://f.hubspotusercontent00.net/hubfs/53/data-tab-1.png" alt="data-tab-1" />
</Frame>

<Warning>
  ### Hinweis:

  Sobald eine Vorlage gelöscht wurde, werden vorhandene Events, die diese Vorlage verwenden, dauerhaft aus Accounts mit Ihrer verknüpften App entfernt. Sie können keine neuen Events mehr für diesen Typ erstellen, sehen aber weiterhin dennoch frühere Event-Daten in Listen und Berichten. Es kann mehrere Stunden dauern, bis diese Änderungen in HubSpot angezeigt werden.
</Warning>

### Event-Token definieren

Nachdem Sie eine Event-Vorlage festgelegt haben, möchten Sie wahrscheinlich auch deren Token definieren. Token für Event-Vorlagen ermöglichen es Ihnen, benutzerdefinierte Daten anzuhängen, die in der Chronik angezeigt und für die Automatisierung in Workflows verwendet werden können. Für Kontakte können sie auch zur Listensegmentierung verwendet werden. Sie können bis zu 500 Token pro Chronik-Event-Vorlage erstellen.

#### Event-Token über die API erstellen

Mithilfe der in Schritt 1 erstellten Event-Vorlagen-ID fügen wir einige Token hinzu, um das Webinar zu identifizieren, für das sich unsere Kontakte registriert haben.

```shell theme={null}
curl -X POST -H "Content-Type: application/json" -d '
{
  "name": "webinarName",
  "label": "Webinar Name",
  "type": "string"
}' \
'https://api.hubapi.com/crm/v3/timeline/<<appId>>/event-templates/<<eventTemplateId>>/tokens?hapikey=<<developerHapikey>>'

curl -X POST -H "Content-Type: application/json" -d '
{
  "name": "webinarId",
  "label": "Webinar Id",
  "type": "string"
}' \
'https://api.hubapi.com/crm/v3/timeline/<<appId>>/event-templates/<<eventTemplateId>>/tokens?hapikey=<<developerHapikey>>'

curl -X POST -H "Content-Type: application/json" -d '
{
  "name": "webinarType",
  "label": "Webinar Type",
  "type": "enumeration",
  "options": [
    {
      "value": "regular",
      "label": "Regular"
    },
    {
      "value": "ama",
      "label": "Ask me anything"
    }
  ]
}' \
'https://api.hubapi.com/crm/v3/timeline/<<appId>>/event-templates/<<eventTemplateId>>/tokens?hapikey=<<developerHapikey>>'
```

In ähnlicher Weise werden mit `GET` alle Token zurückgegeben, die in einer Event-Vorlage definiert sind:

```shell theme={null}
curl -X GET -H "Content-Type: application/json" 'https://api.hubapi.com/crm/v3/timeline/<<appId>>/event-templates/<<eventTemplateId>>?hapikey=<<developerHapikey>>'
```

Die unterstützten Token-Typen umfassen:

* `string`
* `number`
* `enumeration`: Eine aus einer Reihe von Optionen. Siehe webinarType-Beispiel oben.
* `date`: Alle Datumsangaben müssen in Millisekunden in Unix-Zeit angegeben sein.

***Hinweis**: Event-Token können nicht Protokoll (log) oder Suche (lookup) benannt werden. Diese Token sind als Helfer von Handlebars.js reserviert, der Bibliothek, die zur Anzeige von Events in Apps verwendet wird. Weitere Informationen finden Sie [in der Handlebars.js-Dokumentation](http://handlebarsjs.com/builtin_helpers.html)*.

***

### Header- und Detail-Vorlagen definieren

Header- und Detail-Vorlagen bestimmen, wie Sie ein Chronik-Event angezeigt werden soll. Sie können [Markdown](http://daringfireball.net/projects/markdown/syntax)-Dokumente mit [Handlebars](http://handlebarsjs.com/)-Vorlagen angeben. Die Header-Vorlage sollte eine einzeilige Beschreibung des Events sein, und die Details-Vorlage ist die Drilldown-Ansicht des Events (Beispiele unten).

Die Event-Token werden als Daten an die Vorlagen übergeben. Anhand unseres Beispiels können Sie die `webinarName`-Token in der Vorlage mithilfe von `{{webinarName}}` referenzieren.

Die `extraData` eines Events (erläutert unter „Grundlegendes zu extraData"“) können nur in der Details-Vorlage referenziert werden.

#### Header- und Detail-Vorlagen über die API definieren

Header- und Detail-Vorlagen können in der Event-Vorlage über die Event-Vorlagen-Endpunkte definiert werden. Wir können beispielsweise Vorlagen zu unserer „Beispiel-Webinar-Registrierung“ hinzufügen, indem dies mit einem `PUT` modifiziert wird:

```shell theme={null}
curl -X PUT -H "Content-Type: application/json" -d '
{
  "id": "<<eventTemplateId>>",
  "name": "Example Name Change",
  "headerTemplate": "Registered for [{{webinarName}}](https://mywebinarsystem/webinar/{{webinarId}})",
  "detailTemplate": "Registration occurred at {{#formatDate timestamp}}{{/formatDate}}"
}' \
'https://api.hubapi.com/crm/v3/timeline/<<appId>>/event-templates/<<eventTemplateId>>?hapikey=<<developerHapikey>>'
```

Beachten Sie hier die `#formatDate`-Direktive. Mit ihr möchten wir eine benutzerfreundliche Datumsformatierung ermöglichen.

Sobald ein Event für einen Kontakt mit ihrer Hilfe erstellt wird (siehe "[Erstellen eines Events)](#creating-an-event)", wird Folgendes in der Chronik des Kontakts angezeigt:

<Frame>
  <img src="https://developers.hubspot.com/hs-fs/hubfs/timeline_api/event_collapsed.png?width=640&name=event_collapsed.png" alt="event_collapsed.png" />
</Frame>

Klicken auf „Details anzeigen“ stellt die Details-Vorlage dar:

<Frame>
  <img src="https://developers.hubspot.com/hs-fs/hubfs/timeline_api/event_expanded.png?width=640&name=event_expanded.png" alt="event_expanded.png" />
</Frame>

Weitere Informationen dazu, wie Sie Symbol festlegen, das neben den Events angezeigt wird, finden Sie unten unter "[Einrichten eines benutzerdefinierten Symbols"](/api-reference/crm-timeline-v3/guide#customicon).

Der Text „Beispiel-App-Name“ oben ist der Name der App. In der CRM-Chronik können Events nach App gefiltert werden.

### Alle Aspekte einer Event-Vorlage in einem einzigen Aufruf definieren

Bisher haben Sie gesehen, wie die einzelnen Aspekte einer Event-Vorlage schrittweise definiert wurden. Sie können aber auch alles in einem einzigen `POST`-Aufruf definieren.

```shell theme={null}
curl -X POST -H "Content-Type: application/json" -d '
{
  "name": "Another Webinar Registration",
  "objectType": "contacts",
  "headerTemplate": "Registered for [{{webinarName}}](https://mywebinarsystem/webinar/{{webinarId}})",
  "detailTemplate": "Registration occurred at {{#formatDate timestamp}}{{/formatDate}}",
  "tokens": [
    {
      "name": "webinarName",
      "label": "Webinar Name",
      "type": "string"
    },
    {
      "name": "webinarId",
      "label": "Webinar Id",
      "type": "string"
    },
    {
      "name": "webinarType",
      "label": "Webinar Type",
      "type": "enumeration",
      "options": [
        {
          "value": "regular",
          "label": "Regular"
        },
        {
          "value": "ama",
          "label": "Ask me anything"
        }
      ]
    }
  ]
}' \
'https://api.hubapi.com/crm/v3/timeline/<<appId>>/event-templates?hapikey=<<developerAPIkey>>'
```

## Ein Event erstellen

Nachdem nun eine Event-Vorlage mit Token und Vorlagen eingerichtet ist, sind wir bereit, Events für die Kontakte, Unternehmen, Deals und Tickets unserer Kunden zu erstellen. In den folgenden Beispielen wird davon ausgegangen, dass mit der oben erstellten `contacts`-Event-Vorlage gearbeitet wird. Wenn die Event-Vorlage oben nicht so eingerichtet ist, dass sie über die Token `webinarName` und `webinarId` verfügt, erhalten Sie einen Fehler beim Versuch, das Event zu erstellen. Hier ein Beispiel-`POST` für das Erstellen eines Events:

<Warning>
  ### Hinweis:

  Entwickler-API-Schlüssel und Zugriffstoken von privaten Apps können <u>nicht</u> als Authentifizierung beim Erstellen von Ereignissen verwendet werden. Um ein Event zu erstellen, muss der zugehörige HubSpot-Account Zugriff über [OAuth](/apps/legacy-apps/authentication/working-with-oauth) auf Ihre App gewähren. Sobald Sie ein [Zugriffstoken](/api-reference/auth-oauth-v1/guide) abrufen, können Sie es zum Hinzufügen von Events zum Account verwenden.
</Warning>

```shell theme={null}
curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer <<OAuth2AccessToken>>" \
-d '
{
  "eventTemplateId": "<<eventTemplateId>>",
  "email": "a.test.contact@email.com",
  "tokens": {
    "webinarName": "A Test Webinar",
    "webinarId": "001001",
    "webinarType": "regular"
  }
}' \
'https://api.hubapi.com/crm/v3/timeline/events'
```

Dadurch wird ein Event in der Chronik von `a.test.contact@email.com`' erstellt (ausgehend davon, dass die Vorlagen unter „Definieren von Vorlagen“ verwendet werden):

<Frame>
  <img src="https://developers.hubspot.com/hs-fs/hubfs/timeline_api/event_collapsed.png?width=640&name=event_collapsed.png" alt="event_collapsed.png" />
</Frame>

### Den Events-Zeitstempel festlegen

Der Zeitstempel des Events bestimmt, wo das Event in der Chronik des Objekts angezeigt wird. Standardmäßig wird der Event-Zeitstempel angezeigt, wenn der POST-Befehl gesendet wird. Sie können die Event-Zeit anpassen, indem Sie sie im Anfragetext in einer Zeitstempel-Eigenschaft angeben:

```shell theme={null}
curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer <<OAuth2AccessToken>>" \
-d '
{
  "eventTemplateId": "<<eventTemplateId>>",
  "email": "a.test.contact@email.com",
  "timestamp": "2020-03-18T15:30:32Z",
  "tokens": {
    "webinarName": "A Test Webinar",
    "webinarId": "001001",
    "webinarType": "regular"
  }
}' \
'https://api.hubapi.com/crm/v3/timeline/events'
```

Dies wird bevorzugt, wenn Sie den exakten Zeitpunkt kennen, an dem eine Aktion stattgefunden hat. In diesem Beispiel gilt, wenn wir den Zeitstempel für diese Webinar-Registrierung haben, sollten wir ihn in diesem POST bereitstellen.

Zeitstempel können in Millisekunden-Epoche-Zeit oder im [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)-Format vorliegen.

### Ein Event zu einem CRM-Objekt zuordnen

Um ein Event erstellen zu können, müssen Sie das Event mit einem Kontakt, einem Unternehmen oder einem Deal im Account des Kunden verknüpfen können.

In den obigen Beispielen wurde der objectType auf Kontakt festgelegt und wir haben E-Mail verwendet, um das Event mit einem Kontakt zu verknüpfen. E-Mail-Adressen müssen für Kontakte in HubSpot eindeutig sein. Wenn es einen vorhandenen Kontakt mit der angegebenen E-Mail gibt, wird dieser Kontakt aktualisiert. Wenn kein Kontakt vorhanden ist, wird ein neuer Kontakt erstellt. Standardmäßig verfügt dieser neue Kontakt nur über die angegebene E-Mail-Kontakteigenschaft. Erfahren Sie mehr über das [Aktualisieren (Stempeln) von Kontakteigenschaften mit Event-Daten](#stamp-event-data-onto-crm-object-properties), um zusätzliche Daten zu Kontakteigenschaften hinzuzufügen.

```shell theme={null}
// {
  "eventTemplateId": "<<eventTemplateId>>",
  "email": "a.test.contact@email.com",
  "tokens": {
    "webinarName": "A Test Webinar",
    "webinarId": "001001",
    "webinarType": "regular"
  }
}
```

Wenn Sie mit bekannten Kontakten arbeiten, können Sie auch die Kontakt-`vid` verwenden, um das Event zu verknüpfen. In diesen Fällen würden Sie `objectId` im Anfrage-JSON verwenden. Sie müssen die VID eines vorhandenen Kontakts einbeziehen, da Sie keine neuen Kontakte mithilfe von `objectId` erstellen können. In diesem Beispiel wird die `objectId` anstelle von E-Mail verwendet:

```shell theme={null}
// {
  "eventTemplateId": "<<eventTemplateId>>",
  "objectId": "29851",
  "tokens": {
    "webinarName": "A Test Webinar",
    "webinarId": "001001",
    "webinarType": "regular"
  }
}
```

Sie können ein Event auch nach Benutzertoken, oder `utk`, einem Kontakt zuordnen. Das Benutzertoken wird vom HubSpot-Tracking-Code zum Nachverfolgen von Besuchern verwendet und wird im `hubspotutk`-Cookie gespeichert. Verwenden Sie den `utk`-Parameter, um ein Event nach Benutzertoken einem Kontakt zuzuordnen. Hinweis: Es ist nicht möglich, Events mit anonymen Besuchern mithilfe des Benutzertokens zuzuordnen. Wenn das Event also nur mithilfe des `utk`-Parameters zugeordnet wird und das angegebene Benutzerertoken nicht bereits einem Kontakt zugeordnet ist, würde kein neuer Kontakt erstellt und das Event wäre nicht in HubSpot sichtbar. Das Event wird jedoch in der Chronik angezeigt, wenn ein neuer Kontakt über andere Methoden mit dem Benutzerertoken verknüpft worden ist, (in der Regel über eine [Formulareinsendung, einschließlich des hutk](https://developers.hubspot.de/docs/reference/api/marketing/forms/v3-legacy#submit-data-to-a-form-supporting-authentication), oder über die [Methode des Identifizierens der Tracking-Code-API](https://developers.hubspot.de/docs/reference/api/analytics-and-events/tracking-code)). Aus diesem Grund empfehlen wir, die `email` zusätzlich zum `utk` zu berücksichtigen, um sicherzustellen, dass das Event einem neuen oder vorhandenen Kontakt zugeordnet wird.

Wenn Sie mit einer Event-Vorlage für Kontakte arbeiten, ist es möglich, mehrere Identifikationsparameters mit dem Event zu berücksichtigen, sodass jede Kombination der `email`-, `objectId`- und `utk`-Parameter berücksichtigt werden kann. Wenn mehrere Parameter berücksichtigt werden, hat die objectId (vid) die höchste Priorität beim Bestimmen des Kontakts, der dem Event zugeordnet werden soll, gefolgt von `utk` und `email` mit der geringsten Priorität. Dies bedeutet, dass Sie die E-Mail-Adresse eines vorhandenen Objekts aktualisieren können, indem Sie eine neue E-Mail-Adresse im `email`-Parameter mit der `vid` eines bekannten Objekts in `objectId` berücksichtigen können. In diesem Beispiel werden die E-Mail-Adresse und das Benutzertoken zusammen verwendet:

```shell theme={null}
// {
  "eventTemplateId": "<<eventTemplateId>>",
  "email": "a.test.contact@email.com",
  "utk": "89b5afb740d41f4cd6651ac5237edf09"
  "tokens": {
    "webinarName": "A Test Webinar",
    "webinarId": "001001",
    "webinarType": "regular"
  }
```

Neben dem Arbeiten mit Kontakten ist es auch möglich, Event-Vorlagen für Unternehmen und Deals zu erstellen. Für diese Event-Vorlagen müssen Sie `objectId` verwenden, um das Event dem Unternehmen oder Deal zuzuordnen. Für muss die `objectId` auf die `companyId` des Unternehmens festgelegt sein, dem das Event zugeordnet werden soll, und für müssten Sie die `objectId` auf die `dealId` des Deal festlegen.

Wenn im folgenden Beispiel davon ausgegangen wird, dass die Event-Vorlage auf den `COMPANY` `objectType` festgelegt wurde, würde dieses Event mit dem Unternehmensobjekt mit der `companyId` 528253914 zugeordnet:

```shell theme={null}
// {
  "eventTemplateId": "<<eventTemplateId>>",
  "objectId": "3001",
  "tokens": {
    "dealProperty": "Custom property for deal"
  }
}
```

### Chronikerweiterungen

Die Chronik-Erweiterungen können verwendet werden, um Daten aus einem externen System mithilfe eines iFrame anzuzeigen. Wenn berücksichtigt, zeigt das Event einen Link an, der ein modales Dialogfenster öffnet, das bei Anklicken den iFrame-Inhalt anzeigt. Die Details für den iFrame werden im timelineIFrame-Feld festgelegt. Dies ist ein Objekt enthält, das die folgenden Felder enthält:

* `linkLabel`: Der Text, der zur Anzeige des Links, der den IFrame-Inhalt anzeigt, verwendet wird.
* `headerLabel`: Das Label des modalen Fensters, das die IFrame-Inhalte anzeigt.
* `url`: Der URI des IFrame-Contents.
* `width`: Die Breite des modalen Fensters.
* `height`: Die Höhe des modalen Fensters.

Bei Verwendung beispielsweise dieser Daten für ein Event:

```shell theme={null}
// {
  "eventTemplateId": "<<eventTemplateId>>",
  "email": "a.test.contact@email.com",
  "tokens": {
    "webinarName": "A Test Webinar",
    "webinarId": "001001",
    "webinarType": "regular"
  },
  "timelineIFrame": {
    "linkLabel":"View external data",
    "headerLabel":"Example iframe",
    "url":"https://www.example.com",
    "width":800,
    "height":300
  }
}
```

Würde dieses Event erstellt werden, einschließlich des Links „Externe Daten anzeigen“:

<Frame>
  <img src="https://developers.hubspot.com/hs-fs/hubfs/timeline_api/external_data_link.png?width=640&name=external_data_link.png" alt="external_data_link.png" />
</Frame>

Durch Klicken auf diesen Link würde ein modales Fenster geöffnet, das die in der `url` festgelegte Seite anzeigt:

<Frame>
  <img src="https://developers.hubspot.com/hs-fs/hubfs/timeline_api/iframe_modal.png?width=640&name=iframe_modal.png" alt="iframe_modal.png" />
</Frame>

### CRM-Objekteigenschaften mit Event-Daten aktualisieren (stempeln)

In vielen Fällen möchten Sie die Eigenschaften für die Kontakte, Unternehmen oder Deals ändern, für die Sie Events hinzufügen, ändern. Dies geschieht häufig in Fällen, in denen über das Event tatsächlich ein Kontakt erstellt wird – Sie möchten wahrscheinlich die Eigenschaften „Vorname“ und „Nachname“ im Kontakt aktualisieren, damit Sie nicht nur einen Kontakt mit einer E-Mail-Adresse und einem Event erstellen.

Sie können das zugehörige Objekt mit Daten von einem Event aktualisieren (stempeln), indem Sie Ihre benutzerdefinierten Event-Token Kontakt-, Unternehmens- oder Deal-Eigenschaften zuordnen.

Ziehen Sie diesen `PUT`-Befehl zum Aktualisieren einer benutzerdefinierten Event-Vorlage in Betracht. Beachten Sie dabei das `objectPropertyName`-Feld:

```shell theme={null}
curl -X PUT -H "Content-Type: application/json" -d '
{
  "label" : "Updated Webinar Name",
  "objectPropertyName": "zz_webinar_name"
}' \
'https://api.hubapi.com/crm/v3/timeline/<<appId>>/event-templates/<<eventTemplateId>>/tokens/<<tokenName>>?hapikey=<<developerHapikey>>'
```

Dieser verwendet `objectPropertyName`, um dieses benutzerdefinierte Event-Token der Eigenschaft `contact`-Objekt `zz_webinar_name` zuordnen. Das heißt, dass beim Erstellen eines neuen Events, das ein `webinarName`-Token angibt, auch die `zz_webinar_name`-Eigenschaft des zugehörigen `contact` festgelegt wird. Sie können diese auf benutzerdefinierte oder vordefinierte HubSpot-Eigenschaften festlegen.

Angenommen, wir haben beispielsweise bereits eine `companyName`-Token erstellt, das eine benutzerdefinierte `zz_company_name`-Eigenschaft im Kontakt referenziert. Dies führt dann dazu, dass bei Erstellen eines Event wie diesem die `zz_company_name`- und `zz_webinar_name`-Eigenschaften im Kontakt mit der E-Mail-Adresse [a.test.contact@email.com](mailto:a.test.contact@email.com) festgelegt werden:

```shell theme={null}
curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer <<OAuth2AccessToken>>" \
-d '
{
  "eventTemplateId": "<<eventTemplateId>>",
  "email": "a.test.contact@email.com",
  "tokens": {
    "webinarName": "Test Webinar will update contact property",
    "companyName": "TestCo",
    "webinarId": "001001",
    "webinarType": "regular"
  }
}' \
'https://api.hubapi.com/crm/v3/timeline/events'
```

<Frame>
  <img src="https://developers.hubspot.com/hs-fs/hubfs/timeline_api/set_property.png?width=1024&name=set_property.png" alt="set_property.png" />
</Frame>

Hinweis: Wenn eine benutzerdefinierte Eigenschaft mit einem Event-Token aktualisiert (gestempelt) wird und diese benutzerdefinierte Eigenschaft für einen HubSpot-Account nicht vorhanden ist, wird der Wert weiterhin für das Event festgelegt, es wird jedoch für das entsprechende Objekt ignoriert.

### `extraData` Verstehen

Sie müssen möglicherweise detaillierte Daten zu einem Event hinzufügen, das nicht der einfachen Token-Wert-Struktur entspricht, die von den Event-Vorlagen-Token verwendet wird. Möglicherweise müssen Sie auch eine Liste oder eine gewisse hierarchische Aufschlüsselung zu einem Integrations-Event hinzufügen. Hier kommt nun `extraData` ins Spiel.

Sie können ein `extraData`-Attribut zum JSON-Text eines Events hinzufügen. Der Wert dieses `extraData`-Attributs kann beliebiger zulässiger JSON sein. Zum Beispiel:

```shell theme={null}
curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer <<OAuth2AccessToken>>" \
-d '
{
  "eventTemplateId": "<<eventTemplateId>>",
  "email": "a.test.contact@email.com",
  "tokens": {
    "webinarName": "Test Webinar will update contact property",
    "companyName": "TestCo",
    "webinarId": "001001",
    "webinarType": "regular"
  },
  "extraData": {
    "pollData": [
      {
        "question": "How excited are you for this webinar?",
        "answer":"Quite!"
      },
      {
        "question": "How frequently do you use our product?",
        "answer":"Daily"
      }
    ],
    "coWorkers": [
      {
        "name": "Joe Coworker",
        "email":"joe.coworker@testco.com"
      },
      {
        "name": "Jane Coworker",
        "email":"jane.coworker@testco.com"
      }
    ]
  }
}' \
'https://api.hubapi.com/crm/v3/timeline/events'
```

Ein Beispiel für die Verwendung von `extraData` in einer Details-Vorlage:

```shell theme={null}
//
Registration occurred at {{#formatDate timestamp}}{{/formatDate}}

#### Poll Questions
{{#each extraData.pollData}}
  **{{question}}**: {{answer}}
{{/each}}

#### Co-Workers
{{#each extraData.coWorkers}}
  * {{name}}
{{/each}}
```

Dies führt zu einem Chronik-Event, das wie folgt aussieht:

<Frame>
  <img src="https://developers.hubspot.com/hs-fs/hubfs/timeline_api/extra_data.png?width=640&name=extra_data.png" alt="extra_data.png" />
</Frame>

Hinweis: Das `extraData`-Attribut kann nur in der Details-Vorlage für ein Event referenziert werden. Es kann weder in der Kopfzeilen-Vorlage oder in der Listensegmentierung verwendet werden.

### Ein benutzerdefiniertes Symbol einrichten

Um Ihre Chronikelemente visuell ansprechender gestalten, sollten Sie ein benutzerdefiniertes Symbol hinzufügen.

Diese Bilddatei für dieses Symbol sollte:

* ungefähr quadratische Maße aufweisen,
* einen durchsichtigen Hintergrund haben,
* den Inhalt in der Mitte des Symbols haben,
* auf bis zu 30 x 30 Pixel verkleinert werden können sowie
* über eine Dateigröße von höchstens 5 MB verfügen.

Um das Symbol für Chronik Events festzulegen, navigieren Sie zu „Chronik Events“. Klicken Sie auf das Platzhalterbild oder das vorhandene Symbol, um es festzulegen oder zu aktualisieren.

<Frame>
  <img src="https://www.hubspot.de/hubfs/timeline_assets.png" alt="timeline_assets" />
</Frame>

Nachdem Sie das oder die Symbole festgelegt haben, wird es bzw. werden sie neben allen mit dieser Anwendung verknüpften Chronik-Events angezeigt:

<Frame>
  <img src="https://developers.hubspot.com/hs-fs/hubfs/timeline_api/timeline_icon.png?width=640&name=timeline_icon.png" alt="timeline_icon.png" />
</Frame>

### Beschränkungen für Event-Instanzen

Bei der Erstellung eines Events unterliegt jede serialisierte Event-Instanz den folgenden Größenbeschränkungen:

* 500 Bytes für die Event-Instanz-ID,
* 510 KB pro Eigenschaft/Token sowie
* 1 MB Gesamtgröße für die Event-Instanz.

***

#### Verwandte Dokumente

[Grundlegendes zum CRM](/guides/crm/understanding-the-crm)

[CRM-Karten](/api-reference/crm-public-app-crm-cards-v3/guide)
