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

# Create multiple events

> Crie em lote várias instâncias de eventos de linha do tempo com base em um modelo de evento. Uma vez criados, esses eventos são imutáveis na linha do tempo do objeto e não podem ser modificados. Se o modelo de evento tiver sido configurado para atualizar propriedades de objeto por meio de "objectPropertyName", essa chamada também tentará atualizar essas propriedades ou adicioná-las caso não existam.

export const ScopesList = ({scopes = [], description = "Esta API requer um dos seguintes escopos:"}) => {
  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: "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>;
};

<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/batch/create
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/events/batch/create:
    post:
      tags:
        - Batch
      summary: Criar vários eventos
      description: >-
        Crie em lote várias instâncias de eventos de linha do tempo com base em
        um modelo de evento. Uma vez criados, esses eventos são imutáveis na
        linha do tempo do objeto e não podem ser modificados. Se o modelo de
        evento tiver sido configurado para atualizar propriedades de objeto por
        meio de "objectPropertyName", essa chamada também tentará atualizar
        essas propriedades ou adicioná-las caso não existam.
      operationId: post-/integrators/timeline/v3/events/batch/create_createBatch
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchInputTimelineEvent'
        required: true
      responses:
        '201':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchResponseTimelineEventResponse'
        '207':
          description: multiple statuses
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/BatchResponseTimelineEventResponseWithErrors
        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:
    BatchInputTimelineEvent:
      required:
        - inputs
      type: object
      properties:
        inputs:
          type: array
          description: Uma coleção de eventos de linha do tempo que queremos criar.
          items:
            $ref: '#/components/schemas/TimelineEvent'
    BatchResponseTimelineEventResponse:
      required:
        - completedAt
        - results
        - startedAt
        - status
      type: object
      properties:
        completedAt:
          type: string
          description: O momento em que a solicitação foi concluída.
          format: date-time
        links:
          type: object
          additionalProperties:
            type: string
          description: Links para a documentação.
        requestedAt:
          type: string
          description: O momento em que a solicitação ocorreu.
          format: date-time
        results:
          type: array
          description: Eventos criados com sucesso.
          items:
            $ref: '#/components/schemas/TimelineEventResponse'
        startedAt:
          type: string
          description: O momento em que a solicitação começou a ser processada.
          format: date-time
        status:
          type: string
          description: >-
            O status da resposta em lote. Deve sempre ser COMPLETED se
            processado.
          enum:
            - CANCELED
            - COMPLETE
            - PENDING
            - PROCESSING
    BatchResponseTimelineEventResponseWithErrors:
      required:
        - completedAt
        - results
        - startedAt
        - status
      type: object
      properties:
        completedAt:
          type: string
          description: Quando a solicitação foi concluída.
          format: date-time
        errors:
          type: array
          items:
            $ref: '#/components/schemas/StandardError'
        links:
          type: object
          additionalProperties:
            type: string
          description: Links para documentação útil.
        numErrors:
          type: integer
          description: O número de erros encontrados, se houver.
          format: int32
        requestedAt:
          type: string
          description: Quando a solicitação foi feita, se houver.
          format: date-time
        results:
          type: array
          items:
            $ref: '#/components/schemas/TimelineEventResponse'
        startedAt:
          type: string
          description: Quando a solicitação começou.
          format: date-time
        status:
          type: string
          description: O resultado da operação em lote.
          enum:
            - CANCELED
            - COMPLETE
            - PENDING
            - PROCESSING
    TimelineEvent:
      required:
        - eventTemplateId
        - id
        - tokens
      type: object
      properties:
        customObjectTypeId:
          type: string
        domain:
          type: string
          description: O domínio do evento (frequentemente pareado com o utk).
        email:
          type: string
          description: >-
            O endereço de e-mail usado para eventos específicos de contato. Pode
            ser usado para identificar contatos existentes, criar novos contatos
            ou alterar o e-mail de um contato existente (se estiver pareado com
            o "objectId").
        eventTemplateId:
          type: string
          description: O ID do modelo do evento.
        extraData:
          type: object
          properties: {}
          description: >-
            Dados adicionais específicos do evento que podem ser interpretados
            pelo markdown do modelo.
        id:
          type: string
          description: >-
            Identificador do evento. É opcional e recomendamos que você não
            inclua um. Se você omitir este identificador, criaremos um para
            você. Você também pode usar "{{uuid}}" em qualquer lugar do ID para
            gerar uma string única, garantindo a exclusividade.
        objectId:
          type: string
          description: >-
            O identificador do objeto do CRM. É necessário para todos os
            eventos, exceto contatos (nos quais o utk ou o e-mail podem ser
            usados).
        timelineIFrame:
          $ref: '#/components/schemas/TimelineEventIFrame'
        timestamp:
          type: string
          description: >-
            A hora em que o evento ocorreu. Se não for transmitido, a hora atual
            será usada. É usado para determinar onde um evento é mostrado na
            linha do tempo de um objeto do CRM.
          format: date-time
        tokens:
          type: object
          additionalProperties:
            type: string
          description: >-
            Uma coleção de chaves de token e valores associados aos tokens do
            modelo.
        utk:
          type: string
          description: >-
            Use o parâmetro "utk" para associar um evento com um contato pelo
            "usertoken". É recomendado fazer isso se você não souber o e-mail de
            um usuário, mas tiver um token de identificação do usuário em seus
            cookies.
    TimelineEventResponse:
      required:
        - eventTemplateId
        - id
        - objectType
        - tokens
      type: object
      properties:
        createdAt:
          type: string
          description: Não usado.
          format: date-time
        customObjectTypeId:
          type: string
        domain:
          type: string
          description: O domínio do evento (frequentemente pareado com o utk).
        email:
          type: string
          description: >-
            O endereço de e-mail usado para eventos específicos de contato. Pode
            ser usado para identificar contatos existentes, criar novos contatos
            ou alterar o e-mail de um contato existente (se estiver pareado com
            o "objectId").
        eventTemplateId:
          type: string
          description: O ID do modelo do evento.
        extraData:
          type: object
          properties: {}
          description: >-
            Dados adicionais específicos do evento que podem ser interpretados
            pelo markdown do modelo.
        id:
          type: string
          description: >-
            Identificador do evento. Deve ser exclusivo para o aplicativo e
            modelo de evento. Se você usar o mesmo ID para diferentes objetos do
            CRM, o último a ser processado prevalecerá e o primeiro não terá um
            registro. Você também pode usar "{{uuid}}" em qualquer lugar no ID
            para gerar uma string única, garantindo a exclusividade.
        objectId:
          type: string
          description: >-
            O identificador do objeto do CRM. É necessário para todos os
            eventos, exceto contatos (nos quais o utk ou o e-mail podem ser
            usados).
        objectType:
          type: string
          description: O ObjectType associado a EventTemplate.
        timelineIFrame:
          $ref: '#/components/schemas/TimelineEventIFrame'
        timestamp:
          type: string
          description: >-
            A hora em que o evento ocorreu. Se não for transmitido, a hora atual
            será usada. É usado para determinar onde um evento é mostrado na
            linha do tempo de um objeto do CRM.
          format: date-time
        tokens:
          type: object
          additionalProperties:
            type: string
          description: >-
            Uma coleção de chaves de token e valores associados aos tokens do
            modelo.
        utk:
          type: string
          description: >-
            Use o parâmetro "utk" para associar um evento com um contato pelo
            "usertoken". É recomendado fazer isso se você não souber o e-mail de
            um usuário, mas tiver um token de identificação do usuário em seus
            cookies.
    StandardError:
      required:
        - category
        - context
        - errors
        - links
        - message
        - status
      type: object
      properties:
        category:
          type: string
          description: A categoria do erro.
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: >-
            O contexto do erro, possívelmente incluindo informações sobre a
            ocorrência.
        errors:
          type: array
          description: Os objetos de erro detalhados.
          items:
            $ref: '#/components/schemas/ErrorDetail'
        id:
          type: string
          description: O ID do erro, se houver.
        links:
          type: object
          additionalProperties:
            type: string
          description: Links para documentação útil.
        message:
          type: string
          description: A mensagem de erro, se houver.
        status:
          type: string
          description: O resultado da operação em lote.
        subCategory:
          type: object
          properties: {}
          description: A subcategoria do erro, se houver.
      description: >-
        Representa uma resposta de erro padrão na API do HubSpot, fornecendo
        informações detalhadas sobre um erro ocorrido durante uma solicitação de
        API.
    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
    TimelineEventIFrame:
      required:
        - headerLabel
        - height
        - linkLabel
        - url
        - width
      type: object
      properties:
        headerLabel:
          type: string
          description: O rótulo da janela modal que exibe o conteúdo do iframe.
        height:
          type: integer
          description: A altura da janela modal em pixels.
          format: int32
        linkLabel:
          type: string
          description: O texto mostrando o link que exibirá o iframe.
        url:
          type: string
          description: O URI do conteúdo do iframe.
        width:
          type: integer
          description: A largura da janela modal em pixels.
          format: int32
    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: ''

````