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

# Create an event template

> Event-Vorlagen definieren die allgemeine Struktur für ein benutzerdefiniertes Chronik-Event und ermöglichen es Ihnen, Event-Daten an HubSpot zu senden. Eine Vorlage enthält eine formatierte Kopie für Überschrift und Details sowie für alle benutzerdefinierten Eigenschaftsdefinitionen. Eine einzelne App kann bis zu 750 Event-Vorlagen enthalten.<br/><Warning>Die Chronik-Events-APIs „v1“ und „v3“ sind nur für App-Partner verfügbar, in deren öffentlichen Apps vorhandene „v1“/„v3“-Chronik-Events definiert sind. <ul><li>Wenn Ihre App noch keine Chronik-Events enthält, schlagen Anfragen an diesen Endpunkt fehl. Beginnen Sie dann stattdessen in der [neuesten Version der Entwicklerplattform](/apps/developer-platform/build-apps/overview). Hinweis: Sie müssen zunächst eine Genehmigung anfordern, bevor Sie App-Events für Ihre App definieren können. Weitere Informationen erhalten Sie in der [Übersicht über App-Events](/apps/developer-platform/add-features/app-events/overview).</li><li>Wenn Ihre App ein „v1“/„v3“-Chronik-Event enthält, erfahren Sie hier, wie Sie [es zur Entwicklerplattform migrieren](/apps/developer-platform/add-features/app-events/create-and-manage-event-types#migrate-an-existing-timeline-event-type). Beim Migrieren vorhandener Event-Typen müssen Sie vorab keine Genehmigung anfordern.</li></ul>Wenn Sie kein App-Partner sind, können Sie benutzerdefinierte Event-Daten über die [API für benutzerdefinierte Events](/api-reference/events-manage-event-definitions-v3/guide) an HubSpot senden.</Warning>

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

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


## OpenAPI

````yaml specs/legacy/v3/crm-timeline-v3.json POST /integrators/timeline/v3/{appId}/event-templates
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/{appId}/event-templates:
    post:
      tags:
        - Basic
      summary: Eine Event-Vorlage erstellen
      description: "Event-Vorlagen definieren die allgemeine Struktur für ein benutzerdefiniertes Chronik-Event und ermöglichen es Ihnen, Event-Daten an HubSpot zu senden. Eine Vorlage enthält eine formatierte Kopie für Überschrift und Details sowie für alle benutzerdefinierten Eigenschaftsdefinitionen. Eine einzelne App kann bis zu 750\_Event-Vorlagen enthalten.<br/><Warning>Die Chronik-Events-APIs „v1“ und „v3“ sind nur für App-Partner verfügbar, in deren öffentlichen Apps vorhandene „v1“/„v3“-Chronik-Events definiert sind. <ul><li>Wenn Ihre App noch keine Chronik-Events enthält, schlagen Anfragen an diesen Endpunkt fehl. Beginnen Sie dann stattdessen in der [neuesten Version der Entwicklerplattform](/apps/developer-platform/build-apps/overview). Hinweis: Sie müssen zunächst eine Genehmigung anfordern, bevor Sie App-Events für Ihre App definieren können. Weitere Informationen erhalten Sie in der [Übersicht über App-Events](/apps/developer-platform/add-features/app-events/overview).</li><li>Wenn Ihre App ein „v1“/„v3“-Chronik-Event enthält, erfahren Sie hier, wie Sie [es zur Entwicklerplattform migrieren](/apps/developer-platform/add-features/app-events/create-and-manage-event-types#migrate-an-existing-timeline-event-type). Beim Migrieren vorhandener Event-Typen müssen Sie vorab keine Genehmigung anfordern.</li></ul>Wenn Sie kein App-Partner sind, können Sie benutzerdefinierte Event-Daten über die [API für benutzerdefinierte Events](/api-reference/events-manage-event-definitions-v3/guide) an HubSpot senden.</Warning>"
      operationId: post-/integrators/timeline/v3/{appId}/event-templates_create
      parameters:
        - name: appId
          in: path
          description: ''
          required: true
          style: simple
          explode: false
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TimelineEventTemplateCreateRequest'
        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/TimelineEventTemplate'
        default:
          $ref: '#/components/responses/Error'
          description: ''
      deprecated: true
      security:
        - oauth2:
            - developers-write
components:
  schemas:
    TimelineEventTemplateCreateRequest:
      required:
        - name
        - objectType
        - tokens
      type: object
      properties:
        detailTemplate:
          type: string
          description: >-
            Dabei wird die Markdown-Syntax mit Handlebars und eventspezifischen
            Daten verwendet, um HTML in einer Chronik darzustellen, wenn die
            Details erweitert werden.
        headerTemplate:
          type: string
          description: >-
            Dabei wird die Markdown-Syntax mit Handlebars und eventspezifischen
            Daten verwendet, um HTML in einer Chronik als Header darzustellen.
        name:
          type: string
          description: Der Vorlagenname.
        objectType:
          type: string
          description: >-
            Der Typ des CRM-Objekts, für das diese Vorlage gilt. Unterstützt
            werden [Kontakte, Unternehmen, Tickets und Deals].
        tokens:
          type: array
          description: >-
            Eine Filtergruppe mit Token, die als benutzerdefinierte
            Eigenschaften für das Event und zum Erstellen vollwertiger
            CRM-Objekte verwendet werden können.
          items:
            $ref: '#/components/schemas/TimelineEventTemplateToken'
    TimelineEventTemplate:
      required:
        - id
        - name
        - objectType
        - tokens
      type: object
      properties:
        createdAt:
          type: string
          description: "Der Zeitpunkt (Datum und Uhrzeit), an dem die Event-Vorlage erstellt wurde (ISO\_8601-Zeitstempel). Wird auf null gesetzt, wenn die Vorlage vor dem 18.\_Februar 2020 erstellt wurde."
          format: date-time
        detailTemplate:
          type: string
          description: >-
            Dabei wird die Markdown-Syntax mit Handlebars und eventspezifischen
            Daten verwendet, um HTML in einer Chronik darzustellen, wenn die
            Details erweitert werden.
        headerTemplate:
          type: string
          description: >-
            Dabei wird die Markdown-Syntax mit Handlebars und eventspezifischen
            Daten verwendet, um HTML in einer Chronik als Header darzustellen.
        id:
          type: string
          description: Die Vorlagen-ID.
        name:
          type: string
          description: Der Vorlagenname.
        objectType:
          type: string
          description: >-
            Der Typ des CRM-Objekts, für das diese Vorlage gilt. Unterstützt
            werden [Kontakte, Unternehmen, Tickets und Deals].
        tokens:
          type: array
          description: >-
            Eine Filtergruppe mit Token, die als benutzerdefinierte
            Eigenschaften für das Event und zum Erstellen vollwertiger
            CRM-Objekte verwendet werden können.
          items:
            $ref: '#/components/schemas/TimelineEventTemplateToken'
        updatedAt:
          type: string
          description: "Der Zeitpunkt (Datum und Uhrzeit) der letzten Aktualisierung der Eventvorlage mit ISO\_8601-Zeitstempel. Wird auf null gesetzt, wenn die Vorlage vor dem 18.\_Februar 2020 erstellt wurde."
          format: date-time
    TimelineEventTemplateToken:
      required:
        - label
        - name
        - options
        - type
      type: object
      properties:
        createdAt:
          type: string
          description: "Der Zeitpunkt (Datum/Uhrzeit), an dem das Token für Event-Vorlagen erstellt wurde (ISO\_8601-Zeitstempel). Wird auf null gesetzt, wenn die Vorlage vor dem 18.\_Februar 2020 erstellt wurde."
          format: date-time
        label:
          type: string
          description: Für Listensegmentierung und Berichte.
        name:
          type: string
          description: >-
            Der Name des Tokens, auf den in den Vorlagen verwiesen wird. Muss
            für die jeweilige Vorlage eindeutig sein. Zulässig: alphanumerische
            Zeichen, Punkte, Bindestriche und Unterstriche (. - _).
        objectPropertyName:
          type: string
          description: >-
            Der Name der CRM-Objekteigenschaft. Dadurch wird die dem Event
            zugeordnete CRM-Objekteigenschaft ausgefüllt. Bei ausreichenden
            Angaben können Sie CRM-Objekte komplett über die Chronik-API
            erstellen.
        options:
          type: array
          description: >-
            Beim Typ „Aufzählung“ sollte eine Liste von Optionen zur Auswahl
            stehen.
          items:
            $ref: '#/components/schemas/TimelineEventTemplateTokenOption'
        type:
          type: string
          description: >-
            Der Datentyp des Tokens. Ausgewählt werden können [string, number,
            date, enumeration].
          enum:
            - date
            - enumeration
            - number
            - string
        updatedAt:
          type: string
          description: "Der Zeitpunkt (Datum/Uhrzeit) der letzten Aktualisierung des Token für Event-Vorlagen mit ISO\_8601-Zeitstempel. Wird auf null gesetzt, wenn die Vorlage vor dem 18.\_Februar 2020 erstellt wurde."
          format: date-time
    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
    TimelineEventTemplateTokenOption:
      required:
        - label
        - value
      type: object
      properties:
        label:
          type: string
          description: Das Label der Option, das im Frontend angezeigt wird.
        value:
          type: string
          description: Der Wert der Option, die beim Auftreten bereitgestellt wird.
    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: ''

````