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

# Update event by external ID

> Insère un événement marketing. S'il existe un événement marketing existant avec l'identifiant spécifié, il sera mis à jour, sinon, un nouvel événement sera créé.

> **Supported products**

> **Required Scopes**


## OpenAPI

````yaml specs/legacy/v3/marketing-marketing-events-v3.json PUT /marketing/v3/marketing-events/events/{externalEventId}
openapi: 3.0.1
info:
  title: Marketing Marketing Events
  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-related-documentation:
    - name: Marketing Events Guide
      url: >-
        https://developers.hubspot.com/docs/guides/api/marketing/marketing-events
servers:
  - url: https://api.hubapi.com
security: []
tags:
  - name: Basic
  - name: Batch
  - name: Event Attendees
  - name: Event Status
  - name: Identifiers
  - name: List Associations
  - name: Participant State
  - name: Settings
  - name: Subscriber State Changes
paths:
  /marketing/v3/marketing-events/events/{externalEventId}:
    put:
      tags:
        - Basic
      summary: Créer ou mettre à jour un événement marketing
      description: >-
        Insère un événement marketing. S'il existe un événement marketing
        existant avec l'identifiant spécifié, il sera mis à jour, sinon, un
        nouvel événement sera créé.
      operationId: put-/marketing/v3/marketing-events/events/{externalEventId}_upsert
      parameters:
        - name: externalEventId
          in: path
          description: >-
            L'identifiant de l'événement marketing dans l'application
            d'événements externe
          required: true
          style: simple
          explode: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MarketingEventCreateRequestParams'
        required: true
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MarketingEventPublicDefaultResponse'
        default:
          $ref: '#/components/responses/Error'
          description: ''
      security:
        - oauth2:
            - crm.objects.marketing_events.write
components:
  schemas:
    MarketingEventCreateRequestParams:
      required:
        - customProperties
        - eventName
        - eventOrganizer
        - externalAccountId
        - externalEventId
      type: object
      properties:
        customProperties:
          type: array
          description: "Une liste de «\_PropertyValues\_». Il peut s'agir de n'importe quel type de noms et de valeurs de propriétés que vous souhaitez. Toutefois, ils doivent déjà exister dans la définition de l'objet «\_MarketingEvent\_» du compte HubSpot. S'ils n'existent pas, ils seront filtrés et non définis.\nPour ce faire, vous devrez créer un nouveau « \_PropertyGroup\_» sur l'objet MarketingEvent du compte HubSpot pour votre application spécifique et créer la propriété personnalisée que vous souhaitez suivre sur ce compte HubSpot. Ne créez aucune nouvelle propriété par défaut sur l'objet MarketingEvent, car cela s'appliquerait à tous les comptes HubSpot.\n"
          items:
            $ref: '#/components/schemas/PropertyValue'
        endDateTime:
          type: string
          description: La date et l'heure de fin de l'événement marketing.
          format: date-time
        eventCancelled:
          type: boolean
          description: "Indique si l'événement marketing a été annulé. «\_faux\_» par défaut"
        eventCompleted:
          type: boolean
          description: "Indique si l'événement marketing est terminé. La valeur par défaut est «\_faux\_»."
        eventDescription:
          type: string
          description: La description de l'événement marketing.
        eventName:
          type: string
          description: Le nom de l'événement marketing.
        eventOrganizer:
          type: string
          description: Le nom de l'organisateur de l'événement marketing.
        eventType:
          type: string
          description: "Décrit le type d'événement. Par exemple\_: «\_WEBINAR\_», «\_CONFERENCE\_», «\_WORKSHOP\_»"
        eventUrl:
          type: string
          description: >-
            Une URL dans l'application d'événement externe d'où il est possible
            de gérer l'événement marketing.
        externalAccountId:
          type: string
          description: >-
            L'identifiant du compte associé à cet événement marketing dans
            l'application d'événement externe.
        externalEventId:
          type: string
          description: >-
            L'identifiant de l'événement marketing dans l'application
            d'événements externe.
        startDateTime:
          type: string
          description: La date et l'heure de début de l'événement marketing.
          format: date-time
    MarketingEventPublicDefaultResponse:
      required:
        - createdAt
        - customProperties
        - eventName
        - eventOrganizer
        - id
        - updatedAt
      type: object
      properties:
        createdAt:
          type: string
          description: La date et l'heure de création de l'événement marketing.
          format: date-time
        customProperties:
          type: array
          description: "Une liste de «\_PropertyValues\_». Il peut s'agir de n'importe quel type de noms et de valeurs de propriétés que vous souhaitez. Toutefois, ils doivent déjà exister dans la définition de l'objet «\_MarketingEvent\_» du compte HubSpot. S'ils n'existent pas, ils seront filtrés et non définis.\nPour ce faire, vous devrez créer un nouveau « \_PropertyGroup\_» sur l'objet MarketingEvent du compte HubSpot pour votre application spécifique et créer la propriété personnalisée que vous souhaitez suivre sur ce compte HubSpot. Ne créez aucune nouvelle propriété par défaut sur l'objet MarketingEvent, car cela s'appliquerait à tous les comptes HubSpot.\n"
          items:
            $ref: '#/components/schemas/PropertyValue'
        endDateTime:
          type: string
          description: La date et l'heure de fin de l'événement marketing.
          format: date-time
        eventCancelled:
          type: boolean
          description: Indique si l'événement marketing a été annulé.
        eventCompleted:
          type: boolean
          description: Indique si l'événement marketing est terminé.
        eventDescription:
          type: string
          description: La description de l'événement marketing.
        eventName:
          type: string
          description: Le nom de l'événement marketing.
        eventOrganizer:
          type: string
          description: Le nom de l'organisateur de l'événement marketing.
        eventType:
          type: string
          description: Le type de l'événement marketing.
        eventUrl:
          type: string
          description: >-
            Une URL dans l'application d'événement externe d'où il est possible
            de gérer l'événement marketing.
        id:
          type: string
          description: L'ID de l'objet CRM de l'événement marketing.
        objectId:
          type: string
          description: L'ID de l'objet CRM de l'événement marketing.
        startDateTime:
          type: string
          description: La date et l'heure de début de l'événement marketing.
          format: date-time
        updatedAt:
          type: string
          description: La date et l'heure de mise à jour de l'événement marketing.
          format: date-time
    PropertyValue:
      required:
        - dataSensitivity
        - isEncrypted
        - isLargeValue
        - maskedSubstrings
        - name
        - persistenceTimestamp
        - requestId
        - selectedByUser
        - selectedByUserTimestamp
        - source
        - sourceId
        - sourceLabel
        - sourceMetadata
        - sourceUpstreamDeployable
        - sourceVid
        - timestamp
        - unit
        - updatedByUserId
        - useTimestampAsPersistenceTimestamp
        - value
      type: object
      properties:
        dataSensitivity:
          type: string
          description: Niveau de sensibilité des données
          enum:
            - high
            - none
            - standard
        isEncrypted:
          type: boolean
          description: Indique si la propriété est cryptée.
        isLargeValue:
          type: boolean
          description: >-
            Indique si la valeur de la propriété est stockée comme valeur
            importante dans le stockage
        maskedSubstrings:
          $ref: '#/components/schemas/MaskedSubstrings'
        name:
          type: string
          description: Nom de la propriété personnalisée
        persistenceTimestamp:
          type: integer
          description: >-
            L'horodatage qui indique le moment où la valeur en cours d'écriture
            est enregistrée dans le stockage
          format: int64
        requestId:
          type: string
          description: L'ID de la demande
        selectedByUser:
          type: boolean
          description: Indique si la propriété est sélectionnée.
        selectedByUserTimestamp:
          type: integer
          description: >-
            Horodatage indiquant le moment où la propriété a été sélectionnée
            par l'utilisateur
          format: int64
        source:
          type: string
          description: Source de la propriété
          enum:
            - ACADEMY
            - ACCEPTANCE_TEST
            - ACTIVITY_AUTO_ASSOCIATE
            - ACTIVITY_LOG_REVERT
            - ADS
            - AI_GROUP
            - ANALYTICS
            - API
            - APPROVALS
            - ASSISTS
            - ASSOCIATIONS
            - AUTO_ASSOCIATE_BY_DOMAIN
            - AUTOMATION_JOURNEY
            - AUTOMATION_PLATFORM
            - AVATARS_SERVICE
            - BATCH_UPDATE
            - BCC_TO_CRM
            - BEHAVIORAL_EVENTS
            - BET_ASSIGNMENT
            - BET_CRM_CONNECTOR
            - BIDEN
            - BILLING
            - BOT
            - BREEZE_AGENT
            - CALCULATED
            - CENTRAL_EXCHANGE_RATES
            - CHATSPOT
            - CLONE_OBJECTS
            - COMMUNICATOR
            - COMPANIES
            - COMPANY_FAMILIES
            - COMPANY_INSIGHTS
            - CONNECTED_ACCOUNT
            - CONTACTS
            - CONTACTS_WEB
            - CONTENT_MEMBERSHIP
            - CONVERSATIONAL_ENRICHMENT
            - CONVERSATIONS
            - CRM_PROCESSES_PLATFORM
            - CRM_UI
            - CRM_UI_BULK_ACTION
            - CUSTOMER_AGENT
            - CUSTOMER_PORTAL
            - DATA_ENRICHMENT
            - DATA_QUALITY
            - DATASET
            - DEALS
            - DEFAULT
            - DELETE_OBJECTS
            - DI_WRITE_TO_CRM
            - EMAIL
            - EMAIL_INBOX_IMPORT
            - EMAIL_INTEGRATION
            - ENGAGEMENTS
            - EXTENSION
            - FILE_MANAGER
            - FLYWHEEL_PRODUCT_DATA_SYNC
            - FORECASTING
            - FORM
            - FORWARD_TO_CRM
            - GMAIL_INTEGRATION
            - GOALS
            - HEISENBERG
            - HELP_DESK
            - HELP_DESK_AI
            - IMPORT
            - INTEGRATION
            - INTEGRATIONS_PLATFORM
            - INTEGRATIONS_SYNC
            - INTENT
            - INTERNAL_PROCESSING
            - LEADIN
            - LEGAL_BASIS_REMEDIATION
            - MARKET_SOURCING
            - MARKETPLACE
            - MARKETS
            - MEETINGS
            - MERGE_COMPANIES
            - MERGE_CONTACTS
            - MERGE_OBJECTS
            - MERGE_REVERT_OBJECTS
            - MICROAPPS
            - MIGRATION
            - MOBILE_ANDROID
            - MOBILE_IOS
            - PAYMENTS
            - PIPELINE_SETTINGS
            - PLAYBOOKS
            - PORTAL_OBJECT_SYNC
            - PORTAL_USER_ASSOCIATOR
            - PRESENTATIONS
            - PRIMARY_AUTOMATION
            - PROPERTY_DEFAULT_VALUE
            - PROPERTY_RESTORE
            - PROPERTY_SETTINGS
            - PROSPECTING_AGENT
            - QUOTAS
            - QUOTES
            - RECYCLING_BIN
            - RESTORE_OBJECTS
            - REVENUE_PLATFORM
            - SALES
            - SALES_MESSAGES
            - SALESFORCE
            - SEQUENCES
            - SETTINGS
            - SIDEKICK
            - SIGNALS
            - SLACK_INTEGRATION
            - SMART_DATA_CAPTURE
            - SOCIAL
            - SUCCESS
            - TALLY
            - TASK
            - UNKNOWN
            - WAL_INCREMENTAL
            - WORK_UI
            - WORKFLOW_CONTACT_DELETE_ACTION
            - WORKFLOWS
        sourceId:
          type: string
          description: Identifiant de la source de la propriété
        sourceLabel:
          type: string
          description: Libellé indiquant la source de la propriété
        sourceMetadata:
          type: string
          description: "Source des métadonnées encodées en chaîne\_base64"
        sourceUpstreamDeployable:
          type: string
          description: Indique quel service en amont a modifié la propriété
        sourceVid:
          type: array
          description: L'identifiant unique associé à la source.
          items:
            type: integer
            format: int64
        timestamp:
          type: integer
          description: Horodatage de la demande
          format: int64
        unit:
          type: string
          description: L'unité
        updatedByUserId:
          type: integer
          description: >-
            L'identifiant de l'utilisateur qui a mis à jour la propriété en
            dernier
          format: int32
        useTimestampAsPersistenceTimestamp:
          type: boolean
          description: >-
            Indique si l'horodatage de persistance est identique à celui de la
            version de stockage
        value:
          type: string
          description: Valeur de la propriété personnalisée
      description: >-
        Représente une propriété personnalisée unique d'un événement marketing,
        stockant son nom, sa valeur, ses métadonnées (telles que la source,
        l'horodatage et la sensibilité) et les informations d'audit associées
        pour le suivi des modifications.
    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
      description: >-
        Représente une réponse d'erreur renvoyée par l'API lorsqu'une opération
        échoue. Ce composant est utilisé dans divers points de terminaison pour
        fournir des informations détaillées sur l'erreur rencontrée.
      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
    MaskedSubstrings:
      required:
        - substrings
      type: object
      properties:
        substrings:
          type: array
          items:
            $ref: '#/components/schemas/MaskedSubstring'
    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
      description: >-
        Représente des informations détaillées sur une erreur survenue dans
        l'API. Ce composant est utilisé pour fournir un contexte et des
        spécificités supplémentaires sur les erreurs, généralement dans le cadre
        d'une réponse d'erreur.
    MaskedSubstring:
      required:
        - end
        - label
        - start
      type: object
      properties:
        end:
          type: integer
          format: int32
        label:
          type: string
        start:
          type: integer
          format: int32
  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.marketing_events.read: ''
            crm.objects.marketing_events.write: ''

````