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

# Add tokens to an existing template

> Atualize um modelo de tipo de evento existente com novos tokens.

export const SupportedProducts = ({marketing, sales, service, cms, marketingLevel, salesLevel, serviceLevel, cmsLevel}) => {
  const translations = {
    header: "Produtos suportados",
    description: "Requer um dos seguintes produtos ou superior.",
    productNames: {
      marketing: "Marketing Hub",
      sales: "Sales Hub",
      service: "Service Hub",
      cms: "Content Hub"
    },
    tiers: {
      free: "Grátis",
      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/{eventTemplateId}/tokens
openapi: 3.0.1
info:
  title: Linha do tempo
  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: >-
    Depois de configurar um novo conjunto de fluxos de cadastro no seu site,
    atualize as linhas do tempo do contato para indicar qual fluxo eles
    concluíram. Em cada caso, você deve também incluir um link para abrir um
    iframe que mostra os dados externos adicionais sobre o evento.
  x-hubspot-related-documentation:
    - name: Timeline Events Guide
      url: https://developers.hubspot.com/docs/guides/api/crm/extensions/timeline
  x-hubspot-introduction: >-
    Use a API de eventos da linha do tempo para adicionar informações de evento
    personalizado a linhas do tempo de registro de CRM. Você precisará primeiro
    criar um aplicativo público e depois um modelo de evento para mostrar dados
    de evento. 
servers:
  - url: https://api.hubapi.com
security: []
tags:
  - name: Advanced
  - name: Basic
  - name: Batch
paths:
  /integrators/timeline/v3/{appId}/event-templates/{eventTemplateId}/tokens:
    post:
      tags:
        - Advanced
      summary: Adicionar tokens a um modelo existente
      description: Atualize um modelo de tipo de evento existente com novos tokens.
      operationId: >-
        post-/integrators/timeline/v3/{appId}/event-templates/{eventTemplateId}/tokens_create
      parameters:
        - name: appId
          in: path
          description: ''
          required: true
          style: simple
          explode: false
          schema:
            type: integer
            format: int32
        - name: eventTemplateId
          in: path
          description: ''
          required: true
          style: simple
          explode: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TimelineEventTemplateToken'
        required: true
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimelineEventTemplateToken'
        default:
          $ref: '#/components/responses/Error'
          description: ''
      deprecated: true
      security:
        - oauth2:
            - developers-write
components:
  schemas:
    TimelineEventTemplateToken:
      required:
        - label
        - name
        - options
        - type
      type: object
      properties:
        createdAt:
          type: string
          description: >-
            A data e hora em que o Token do modelo de evento foi criado, como um
            registro de data e hora ISO 8601. Será nulo se o modelo foi criado
            antes de 18 de fevereiro de 2020.
          format: date-time
        label:
          type: string
          description: Usado para segmentação de listas e relatórios.
        name:
          type: string
          description: >-
            O nome do token referenciado nos modelos. Deve ser exclusivo para o
            modelo específico. Pode conter apenas caracteres alfanuméricos,
            pontos, traços ou sublinhados (. - _).
        objectPropertyName:
          type: string
          description: >-
            O nome da propriedade do objeto do CRM. Isso irá preencher a
            propriedade do objeto do CRM associada ao evento. Com uma quantidade
            suficiente de nomes, você pode construir completamente objetos do
            CRM utilizando a API de linha do tempo.
        options:
          type: array
          description: >-
            Se o tipo for "enumeration", devemos ter uma lista de opções para
            escolher.
          items:
            $ref: '#/components/schemas/TimelineEventTemplateTokenOption'
        type:
          type: string
          description: >-
            O tipo de dados do token. Atualmente, você pode escolher entre
            [string, número, data, enumeração].
          enum:
            - date
            - enumeration
            - number
            - string
        updatedAt:
          type: string
          description: >-
            A data e hora em que o Token do modelo de evento foi atualizado pela
            última vez, como um registro de data e hora ISO 8601. Será nulo se o
            modelo foi criado antes de 18 de fevereiro de 2020.
          format: date-time
    TimelineEventTemplateTokenOption:
      required:
        - label
        - value
      type: object
      properties:
        label:
          type: string
          description: O rótulo da opção exibido na interface do usuário.
        value:
          type: string
          description: O valor da opção fornecido na ocorrência.
    Error:
      required:
        - category
        - correlationId
        - message
      type: object
      properties:
        category:
          type: string
          description: A categoria de erro
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Contexto sobre a condição do erro
          example: >-
            {invalidPropertyName=[propertyValue], missingScopes=[scope1,
            scope2]}
        correlationId:
          type: string
          description: >-
            Um identificador exclusivo para a solicitação. Inclua este valor em
            relatórios de erro ou tickets de suporte
          format: uuid
          example: aeb5f871-7f07-4993-9211-075dc63e7cbf
        errors:
          type: array
          description: mais informações sobre o erro
          items:
            $ref: '#/components/schemas/ErrorDetail'
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            Um mapa de nomes de links para URIs associados que contêm
            documentação sobre o erro ou as etapas de correção recomendadas
        message:
          type: string
          description: >-
            Uma mensagem legível por humanos que descreve o erro, juntamente com
            as etapas de correção, quando apropriado
          example: An error occurred
        subCategory:
          type: string
          description: >-
            Uma categoria específica que contém mais detalhes específicos sobre
            o erro
      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: O código de status associado ao detalhe do erro
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Contexto sobre a condição do erro
          example: '{missingScopes=[scope1, scope2]}'
        in:
          type: string
          description: O nome do campo ou parâmetro no qual o erro foi encontrado.
        message:
          type: string
          description: >-
            Uma mensagem legível por humanos que descreve o erro, juntamente com
            as etapas de correção, quando apropriado
        subCategory:
          type: string
          description: >-
            Uma categoria específica que contém mais detalhes específicos sobre
            o erro
  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: ''

````