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

# Create an event template

> Les modèles d'événement définissent la structure générale d'un événement personnalisé dans la chronologie et vous permettent d'envoyer des données d'événement à HubSpot. Un modèle comprend un texte formaté pour son titre et ses détails, ainsi que toutes les définitions de propriétés personnalisées. Une seule application peut inclure jusqu'à 750 modèles d'événements.<br/><Warning> Les API d'événements de chronologie « v1 » et « v3 » ne sont disponibles que pour les partenaires d'application ayant déjà défini des événements de chronologie « v1 »/« v3 » dans leur application publique. <ul><li> Si votre application ne comprend encore aucun événement de chronologie, les requêtes adressées à ce point de terminaison échoueront. Vous pouvez plutôt commencer à utiliser la [dernière version de la plateforme de développement](/apps/developer-platform/build-apps/overview). Notez que vous devrez demander une autorisation avant de pouvoir définir des événements pour votre application. Pour en savoir plus, consultez la [présentation des événements d'application](/apps/developer-platform/add-features/app-events/overview). </li><li>Si votre application inclut un événement de chronologie « v1 »/« v3 », découvrez comment [le migrer vers la plateforme de développement](/apps/developer-platform/add-features/app-events/create-and-manage-event-types#migrate-an-existing-timeline-event-type). Vous n'avez pas besoin de demander d'autorisation avant de migrer les types d'événements existants.</li></ul>Si vous n'êtes pas un partenaire d'application, vous pouvez envoyer des données d'événements personnalisés à HubSpot à l'aide de l'[API des événements personnalisés](/api-reference/events-manage-event-definitions-v3/guide).</Warning>

export const SupportedProducts = ({marketing, sales, service, cms, marketingLevel, salesLevel, serviceLevel, cmsLevel}) => {
  const translations = {
    header: "Produits pris en charge",
    description: "Exige l'un des produits suivants ou un produit supérieur.",
    productNames: {
      marketing: "Marketing Hub",
      sales: "Sales Hub",
      service: "Service Hub",
      cms: "Content Hub"
    },
    tiers: {
      free: "Gratuit",
      starter: "Starter",
      professional: "Pro",
      enterprise: "Entreprise"
    }
  };
  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: Chronologie
  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: >-
    Après avoir configuré un nouvel ensemble de flux d'inscription sur votre
    site, actualisez les chronologies de contact pour indiquer le flux complété.
    Pour chaque événement, vous pourriez aussi ajouter un lien ouvrant une
    iframe qui présente des données externes additionnelles sur l'événement.
  x-hubspot-related-documentation:
    - name: Timeline Events Guide
      url: https://developers.hubspot.com/docs/guides/api/crm/extensions/timeline
  x-hubspot-introduction: >-
    Utilisez l'API des événements de la chronologie pour ajouter des
    informations sur des événements personnalisés aux chronologies des dossiers
    CRM. Vous aurez d'abord besoin de créer une application publique puis un
    modèle d'événement pour présenter les données d'événement. 
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: Créer un modèle d'événement
      description: "Les modèles d'événement définissent la structure générale d'un événement personnalisé dans la chronologie et vous permettent d'envoyer des données d'événement à HubSpot. Un modèle comprend un texte formaté pour son titre et ses détails, ainsi que toutes les définitions de propriétés personnalisées. Une seule application peut inclure jusqu'à 750\_modèles d'événements.<br/><Warning> Les API d'événements de chronologie «\_v1\_» et «\_v3\_» ne sont disponibles que pour les partenaires d'application ayant déjà défini des événements de chronologie «\_v1\_»/«\_v3\_» dans leur application publique. <ul><li> Si votre application ne comprend encore aucun événement de chronologie, les requêtes adressées à ce point de terminaison échoueront. Vous pouvez plutôt commencer à utiliser la [dernière version de la plateforme de développement](/apps/developer-platform/build-apps/overview). Notez que vous devrez demander une autorisation avant de pouvoir définir des événements pour votre application. Pour en savoir plus, consultez la [présentation des événements d'application](/apps/developer-platform/add-features/app-events/overview). </li><li>Si votre application inclut un événement de chronologie «\_v1\_»/«\_v3\_», découvrez comment [le migrer vers la plateforme de développement](/apps/developer-platform/add-features/app-events/create-and-manage-event-types#migrate-an-existing-timeline-event-type). Vous n'avez pas besoin de demander d'autorisation avant de migrer les types d'événements existants.</li></ul>Si vous n'êtes pas un partenaire d'application, vous pouvez envoyer des données d'événements personnalisés à HubSpot à l'aide de l'[API des événements personnalisés](/api-reference/events-manage-event-definitions-v3/guide).</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: >-
            Ceci utilise la syntaxe Markdown avec Handlebars et des données
            spécifiques à un événement pour générer du HTML sur une chronologie
            lorsque vous développez les détails.
        headerTemplate:
          type: string
          description: >-
            Ceci utilise la syntaxe Markdown avec Handlebars et des données
            spécifiques à un événement pour afficher du HTML sur une chronologie
            comme un en-tête.
        name:
          type: string
          description: Le nom du modèle.
        objectType:
          type: string
          description: >-
            Le type d'objet du CRM pour lequel ce modèle est conçu. [Contacts,
            entreprises, tickets et transactions] sont pris en charge.
        tokens:
          type: array
          description: >-
            Une collection de jetons pouvant être utilisés comme propriétés
            personnalisées sur l'événement et pour créer des objets CRM à part
            entière.
          items:
            $ref: '#/components/schemas/TimelineEventTemplateToken'
    TimelineEventTemplate:
      required:
        - id
        - name
        - objectType
        - tokens
      type: object
      properties:
        createdAt:
          type: string
          description: "La date et l'heure de création du modèle d'événement, sous la forme d'un horodatage ISO\_8601. Sera nul si le modèle a été créé avant le 18\_février\_2020."
          format: date-time
        detailTemplate:
          type: string
          description: >-
            Ceci utilise la syntaxe Markdown avec Handlebars et des données
            spécifiques à un événement pour générer du HTML sur une chronologie
            lorsque vous développez les détails.
        headerTemplate:
          type: string
          description: >-
            Ceci utilise la syntaxe Markdown avec Handlebars et des données
            spécifiques à un événement pour afficher du HTML sur une chronologie
            comme un en-tête.
        id:
          type: string
          description: L'ID du modèle.
        name:
          type: string
          description: Le nom du modèle.
        objectType:
          type: string
          description: >-
            Le type d'objet du CRM pour lequel ce modèle est conçu. [Contacts,
            entreprises, tickets et transactions] sont pris en charge.
        tokens:
          type: array
          description: >-
            Une collection de jetons pouvant être utilisés comme propriétés
            personnalisées sur l'événement et pour créer des objets CRM à part
            entière.
          items:
            $ref: '#/components/schemas/TimelineEventTemplateToken'
        updatedAt:
          type: string
          description: "La date et l'heure de la dernière mise à jour du modèle d'événement, sous la forme d'un horodatage ISO\_8601. Sera nul si le modèle a été créé avant le 18\_février\_2020."
          format: date-time
    TimelineEventTemplateToken:
      required:
        - label
        - name
        - options
        - type
      type: object
      properties:
        createdAt:
          type: string
          description: "La date et l'heure de création du jeton de modèle d'événement, sous la forme d'un horodatage ISO\_8601. Sera nul si le modèle a été créé avant le 18\_février\_2020."
          format: date-time
        label:
          type: string
          description: Utilisé pour la segmentation de listes et le reporting.
        name:
          type: string
          description: >-
            Le nom du jeton référencé dans les modèles. Il doit être unique pour
            le modèle spécifique. Il ne peut contenir que des caractères
            alphanumériques, des points, des tirets ou des tirets bas (. - _).
        objectPropertyName:
          type: string
          description: >-
            Le nom de la propriété d'objet du CRM. Cela remplira la propriété
            d'objet du CRM associée à l'événement. Avec suffisamment de ces
            éléments, vous pouvez construire entièrement des objets CRM via
            l'API de chronologie.
        options:
          type: array
          description: >-
            Si le type est `enumeration`, nous devrions avoir une liste
            d'options parmi lesquelles choisir.
          items:
            $ref: '#/components/schemas/TimelineEventTemplateTokenOption'
        type:
          type: string
          description: >-
            Le type de données du jeton. Vous pouvez actuellement choisir parmi
            [chaîne, nombre, date, énumération].
          enum:
            - date
            - enumeration
            - number
            - string
        updatedAt:
          type: string
          description: "La date et l'heure de la dernière mise à jour du jeton de modèle d'événement, sous la forme d'un horodatage ISO\_8601. Sera nul si le modèle a été créé avant le 18\_février\_2020."
          format: date-time
    Error:
      required:
        - category
        - correlationId
        - message
      type: object
      properties:
        category:
          type: string
          description: La catégorie d'erreur
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Contexte concernant la condition d'erreur
          example: >-
            {invalidPropertyName=[propertyValue], missingScopes=[scope1,
            scope2]}
        correlationId:
          type: string
          description: >-
            Un identifiant unique pour la demande. Incluez cette valeur dans
            tous les rapports d'erreurs ou tickets d'assistance
          format: uuid
          example: aeb5f871-7f07-4993-9211-075dc63e7cbf
        errors:
          type: array
          description: informations supplémentaires à propos de l'erreur
          items:
            $ref: '#/components/schemas/ErrorDetail'
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            Une carte des noms de liens vers les URI associés contenant de la
            documentation sur l'erreur ou les mesures correctives recommandées
        message:
          type: string
          description: >-
            Un message lisible par la personne décrivant l'erreur ainsi que les
            mesures correctives possibles, le cas échéant
          example: An error occurred
        subCategory:
          type: string
          description: >-
            Une catégorie spécifique qui contient des détails plus précis sur
            l'erreur
      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: Le libellé de l'option qui s'affiche en avant-plan.
        value:
          type: string
          description: La valeur de l'option fournie lors de l'événement.
    ErrorDetail:
      required:
        - message
      type: object
      properties:
        code:
          type: string
          description: Le code du statut associé au détail de l'erreur
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Contexte concernant la condition d'erreur
          example: '{missingScopes=[scope1, scope2]}'
        in:
          type: string
          description: Le nom du champ ou du paramètre dans lequel l'erreur a été trouvée.
        message:
          type: string
          description: >-
            Un message lisible par la personne décrivant l'erreur ainsi que les
            mesures correctives possibles, le cas échéant
        subCategory:
          type: string
          description: >-
            Une catégorie spécifique qui contient des détails plus précis sur
            l'erreur
  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: ''

````