> ## 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.

# Send event data (single)

> Senden Sie eine einzelne Event-Daten-Instanz an einen angegebenen Event-Typ.

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>;
};

export const SupportedProducts = ({marketing, sales, service, cms, marketingLevel, salesLevel, serviceLevel, cmsLevel}) => {
  const translations = {
    header: "Unterstützte Produkte",
    description: "Erfordert eines der folgenden Produkte oder höher.",
    productNames: {
      marketing: "Marketing Hub",
      sales: "Sales Hub",
      service: "Service Hub",
      cms: "Content Hub"
    },
    tiers: {
      free: "Kostenlos",
      starter: "Starter",
      professional: "Professional",
      enterprise: "Enterprise"
    }
  };
  const translateTier = tier => {
    if (!tier) return '';
    const lowerTier = tier.toLowerCase();
    return translations.tiers[lowerTier] || tier;
  };
  const products = [{
    name: marketing ? translations.productNames.marketing : '',
    level: translateTier(marketingLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/marketing-bolt.svg",
    alt: "Marketing Hub"
  }, {
    name: sales ? translations.productNames.sales : '',
    level: translateTier(salesLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/sales-star.svg",
    alt: "Sales Hub"
  }, {
    name: service ? translations.productNames.service : '',
    level: translateTier(serviceLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/service-heart.svg",
    alt: "Service Hub"
  }, {
    name: cms ? translations.productNames.cms : '',
    level: translateTier(cmsLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/content-play.svg",
    alt: "Content Hub"
  }].filter(product => product.name && product.level);
  if (products.length === 0) return null;
  return <div>
      <div className="text-sm mb-2">{translations.description}</div>
      <div className={`grid ${products.length === 1 ? 'grid-cols-1' : 'grid-cols-2'} gap-1.5`}>
        {products.map((product, index) => <div key={index} style={{
    display: 'flex',
    alignItems: 'center'
  }}>
            <img src={product.icon} alt={product.alt} className="w-3.5 h-3.5 mr-1.5 mt-2.5 mb-2.5 flex-shrink-0 align-middle" />
            <span className="font-medium mr-1 text-sm">{product.name} -</span>
            <span className="text-sm">{product.level}</span>
          </div>)}
      </div>
    </div>;
};

<AccordionGroup>
  <Accordion title="Supported products" defaultOpen="true" icon="cubes">
    <SupportedProducts marketing={true} sales={true} service={true} cms={true} marketingLevel="FREE" salesLevel="FREE" serviceLevel="FREE" cmsLevel="FREE" />
  </Accordion>

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


## OpenAPI

````yaml specs/legacy/v3/crm-timeline-v3.json POST /integrators/timeline/v3/events
openapi: 3.0.1
info:
  title: Chronik
  description: Basepom for all HubSpot Projects
  version: v3
  x-hubspot-product-tier-requirements:
    marketing: FREE
    sales: FREE
    service: FREE
    cms: FREE
    commerce: FREE
    crmHub: FREE
    dataHub: FREE
  x-hubspot-api-use-case: >-
    Richten Sie auf Ihrer Website eine Reihe neuer Anmelde-Flows ein und
    aktualisieren Sie dann die Kontaktchroniken, um anzugeben, welcher Flow
    abgeschlossen wurde. Fügen Sie außerdem in jedem Event einen Link ein, der
    einen Iframe öffnet, um zusätzliche externe Daten über das Event anzuzeigen.
  x-hubspot-related-documentation:
    - name: Timeline Events Guide
      url: https://developers.hubspot.com/docs/guides/api/crm/extensions/timeline
  x-hubspot-introduction: >-
    Verwenden Sie die Chronik-Events-API, um benutzerdefinierte
    Event-Informationen zu CRM-Datensätzen hinzuzufügen. Sie müssen zunächst
    eine öffentliche App und dann eine Event-Vorlage erstellen, um Event-Daten
    anzuzeigen. 
servers:
  - url: https://api.hubapi.com
security: []
tags:
  - name: Advanced
  - name: Basic
  - name: Batch
paths:
  /integrators/timeline/v3/events:
    post:
      tags:
        - Advanced
      summary: Event-Daten senden (einzeln)
      description: >-
        Senden Sie eine einzelne Event-Daten-Instanz an einen angegebenen
        Event-Typ.
      operationId: post-/integrators/timeline/v3/events_create
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TimelineEvent'
        required: true
      responses:
        '201':
          description: successful operation
          headers:
            Location:
              description: URL of the newly created resource
              style: simple
              explode: false
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimelineEventResponse'
        default:
          $ref: '#/components/responses/Error'
          description: ''
      deprecated: true
      security:
        - oauth2:
            - crm.objects.contacts.highly_sensitive.write.v2
        - oauth2:
            - crm.objects.contacts.write
        - oauth2:
            - crm.objects.contacts.sensitive.write.v2
        - oauth2:
            - crm.schemas.contacts.write
        - oauth2:
            - crm.objects.companies.write
        - oauth2:
            - crm.objects.companies.sensitive.write.v2
        - oauth2:
            - crm.objects.companies.highly_sensitive.write.v2
        - oauth2:
            - crm.schemas.companies.write
        - oauth2:
            - crm.schemas.deals.write
        - oauth2:
            - crm.objects.deals.write
        - oauth2:
            - crm.objects.deals.sensitive.write.v2
        - oauth2:
            - crm.objects.deals.highly_sensitive.write.v2
        - oauth2:
            - tickets
        - oauth2:
            - tickets.sensitive.v2
        - oauth2:
            - tickets.highly_sensitive.v2
        - oauth2:
            - timeline.write
        - oauth2:
            - timeline
components:
  schemas:
    TimelineEvent:
      required:
        - eventTemplateId
        - id
        - tokens
      type: object
      properties:
        customObjectTypeId:
          type: string
        domain:
          type: string
          description: Die Event-Domain (häufig gekoppelt mit UTK).
        email:
          type: string
          description: >-
            Die E-Mail-Adresse, die für kontaktspezifische Events verwendet
            wird. Dies ist hilfreich, um bestehende Kontakte zu identifizieren,
            neue Kontakte zu erstellen oder die E-Mail-Adresse eines bestehenden
            Kontakts zu ändern (bei Kopplung mit „objectId“).
        eventTemplateId:
          type: string
          description: Die Event-Vorlagen-ID.
        extraData:
          type: object
          properties: {}
          description: >-
            Weitere eventspezifische Daten, die vom Markdown der Vorlage
            interpretiert werden können.
        id:
          type: string
          description: >-
            ID für das Event. Optionale Angabe. Es wird empfohlen, keine ID zu
            übergeben. Wir erstellen eine ID für Sie, sofern hier keine Angabe
            steht. Mithilfe von „{{uuid}}“ an einer beliebigen Stelle in der ID
            können Sie eine garantiert eindeutige Zeichenfolge erstellen.
        objectId:
          type: string
          description: >-
            Die CRM-Objekt-ID. Für jedes Event erforderlich, außer bei Kontakten
            (hier kann UTK oder E-Mail verwendet werden).
        timelineIFrame:
          $ref: '#/components/schemas/TimelineEventIFrame'
        timestamp:
          type: string
          description: >-
            Die Uhrzeit, zu der das Event aufgetreten ist. Sofern nicht
            übergeben, wird die aktuelle Uhrzeit herangezogen. Hierüber wird
            festgelegt, an welcher Stelle ein Event in der Chronik eines
            CRM-Objekts angezeigt wird.
          format: date-time
        tokens:
          type: object
          additionalProperties:
            type: string
          description: >-
            Eine Filtergruppe mit Token-Schlüsseln und -Werten, die den
            Vorlagen-Token zugeordnet sind.
        utk:
          type: string
          description: >-
            Verwenden Sie den „utk“-Parameter, um ein Event über das „usertoken“
            einem Kontakt zuzuordnen. Dieses Vorgehen  wird empfohlen, wenn die
            E-Mail-Adresse eines Benutzers unbekannt, in Ihrem Cookie jedoch ein
            identifizierendes Benutzer-Token vorhanden ist.
    TimelineEventResponse:
      required:
        - eventTemplateId
        - id
        - objectType
        - tokens
      type: object
      properties:
        createdAt:
          type: string
          description: Nicht verwendet.
          format: date-time
        customObjectTypeId:
          type: string
        domain:
          type: string
          description: Die Event-Domain (häufig gekoppelt mit UTK).
        email:
          type: string
          description: >-
            Die E-Mail-Adresse, die für kontaktspezifische Events verwendet
            wird. Dies ist hilfreich, um bestehende Kontakte zu identifizieren,
            neue Kontakte zu erstellen oder die E-Mail-Adresse eines bestehenden
            Kontakts zu ändern (bei Kopplung mit „objectId“).
        eventTemplateId:
          type: string
          description: Die Event-Vorlagen-ID.
        extraData:
          type: object
          properties: {}
          description: >-
            Weitere eventspezifische Daten, die vom Markdown der Vorlage
            interpretiert werden können.
        id:
          type: string
          description: >-
            ID für das Event. Muss für App und Event-Vorlage eindeutig sein.
            Wenn Sie dieselbe ID für verschiedene CRM-Objekte verwenden, wird
            die ID für das zuletzt bearbeitete Objekt verwendet und das erste
            Objekt wird keinem Datensatz zugeordnet. Sie können auch „{{uuid}}“
            an beliebiger Stelle in der ID einfügen, um eine eindeutige
            Zeichenfolge zu generieren.
        objectId:
          type: string
          description: >-
            Die CRM-Objekt-ID. Für jedes Event erforderlich, außer bei Kontakten
            (hier kann UTK oder E-Mail verwendet werden).
        objectType:
          type: string
          description: ObjectType, der EventTemplate zugeordnet ist.
        timelineIFrame:
          $ref: '#/components/schemas/TimelineEventIFrame'
        timestamp:
          type: string
          description: >-
            Die Uhrzeit, zu der das Event aufgetreten ist. Sofern nicht
            übergeben, wird die aktuelle Uhrzeit herangezogen. Hierüber wird
            festgelegt, an welcher Stelle ein Event in der Chronik eines
            CRM-Objekts angezeigt wird.
          format: date-time
        tokens:
          type: object
          additionalProperties:
            type: string
          description: >-
            Eine Filtergruppe mit Token-Schlüsseln und -Werten, die den
            Vorlagen-Token zugeordnet sind.
        utk:
          type: string
          description: >-
            Verwenden Sie den „utk“-Parameter, um ein Event über das „usertoken“
            einem Kontakt zuzuordnen. Dieses Vorgehen  wird empfohlen, wenn die
            E-Mail-Adresse eines Benutzers unbekannt, in Ihrem Cookie jedoch ein
            identifizierendes Benutzer-Token vorhanden ist.
    TimelineEventIFrame:
      required:
        - headerLabel
        - height
        - linkLabel
        - url
        - width
      type: object
      properties:
        headerLabel:
          type: string
          description: Das Label des modalen Dialogfelds, das die iframe-Inhalte anzeigt.
        height:
          type: integer
          description: Die Höhe des modalen Dialogfelds in Pixeln.
          format: int32
        linkLabel:
          type: string
          description: Der Text mit dem Link, der den Iframe anzeigen wird.
        url:
          type: string
          description: Der URI der iframe-Inhalte.
        width:
          type: integer
          description: Die Breite des modalen Dialogfelds in Pixeln.
          format: int32
    Error:
      required:
        - category
        - correlationId
        - message
      type: object
      properties:
        category:
          type: string
          description: Die Fehlerkategorie
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Kontext zur Fehlerbedingung
          example: >-
            {invalidPropertyName=[propertyValue], missingScopes=[scope1,
            scope2]}
        correlationId:
          type: string
          description: >-
            Eine eindeutige ID für die Anfrage. Berücksichtigen Sie diesen Wert
            in Fehlerberichten oder Support-Tickets.
          format: uuid
          example: aeb5f871-7f07-4993-9211-075dc63e7cbf
        errors:
          type: array
          description: Weitere Informationen zum Fehler
          items:
            $ref: '#/components/schemas/ErrorDetail'
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            Eine Zuordnung der Namen von Links zu zugeordneten URIs mit einer
            Dokumentation zum Fehler oder empfohlenen Abhilfemaßnahmen
        message:
          type: string
          description: >-
            Eine für Menschen lesbare Nachricht mit einer Beschreibung des
            Fehlers und ggf. Abhilfemaßnahmen
          example: An error occurred
        subCategory:
          type: string
          description: Eine spezifische Kategorie, die genauere Details zum Fehler enthält
      example:
        message: Invalid input (details will vary based on the error)
        correlationId: aeb5f871-7f07-4993-9211-075dc63e7cbf
        category: VALIDATION_ERROR
        links:
          knowledge-base: https://www.hubspot.com/products/service/knowledge-base
    ErrorDetail:
      required:
        - message
      type: object
      properties:
        code:
          type: string
          description: Der Statuscode, der dem Fehlerdetail zugeordnet ist
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Kontext zur Fehlerbedingung
          example: '{missingScopes=[scope1, scope2]}'
        in:
          type: string
          description: >-
            Der Name des Felds oder Parameters, in dem der Fehler gefunden
            wurde.
        message:
          type: string
          description: >-
            Eine für Menschen lesbare Nachricht mit einer Beschreibung des
            Fehlers und ggf. Abhilfemaßnahmen
        subCategory:
          type: string
          description: Eine spezifische Kategorie, die genauere Details zum Fehler enthält
  responses:
    Error:
      description: An error occurred.
      content:
        '*/*':
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://app.hubspot.com/oauth/authorize
          tokenUrl: https://api.hubapi.com/oauth/v1/token
          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: ''
            developers-read: ''
            developers-write: ''
            tickets: ''
            tickets.highly_sensitive.v2: ''
            tickets.sensitive.v2: ''
            timeline: ''
            timeline.read: ''
            timeline.write: ''

````