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

# API marketing | Événements marketing

> Une vue d'ensemble de l'objet Événements marketing dans HubSpot.

> **[Run in Postman](https://app.getpostman.com/run-collection/26126890-66991673-f7f9-4430-8c49-ddd3b01141b9)**

> **Exigences de portée**

# Événements marketing

Un événement marketing est un objet de CRM similaire aux contacts et aux entreprises. Celui-ci vous permet de suivre des événements marketing, tels qu'un webinar, ainsi que les contacts qui se sont inscrits et ont assisté à l'événement. Découvrez ci-dessous comment utiliser l'API d'événements marketing pour intégrer des événements marketing dans une application.

## Dans cet article

* [Exigences des domaines](#scope-requirements)
* [Différences entre les points de terminaison d'ID interne et externe](#differences-between-internal-id-and-external-id-endpoints)
* [Points de terminaison de gestion des événements](#create-and-update-events)
* [Points de terminaison de participation à l'événement](#event-attendance-endpoints)
* [Points de terminaison du statut du participant](#participant-state-endpoints)
* [Points de terminaison des associations de listes](#list-association-endpoints)
* [Configurer les paramètres d'application](#configure-app-settings)
  * [Étape 1 : Créer une API dans votre application](#step-1-create-an-api-in-your-app)
  * [Étape 2 : Fournir à HubSpot le chemin d'URL vers votre API](#step-2-provide-hubspot-with-the-url-path-to-your-api)

## Exigences des domaines

Pour effectuer une requête API vers l'un des points de terminaison d'événement marketing, les [champs d'application suivants](https://developers.hubspot.fr/docs/apps/legacy-apps/authentication/working-with-oauth.md#scopes) sont requis :

* `crm.objects.marketing_events.read` : autorise la récupération des données relatives aux événements marketing et à la participation.
* `crm.objects.marketing_events.write` : accorde la permission de créer, de supprimer ou d'apporter des modifications aux informations relatives à un événement marketing.

Lors de l'authentification des appels effectués par votre application, vous pouvez utiliser un [jeton d'accès d'application privée](https://developers.hubspot.fr/docs/apps/legacy-apps/private-apps/overview.md) ou [OAuth](https://developers.hubspot.fr/docs/api-reference/auth-oauth-v1/guide.md). Découvrez-en davantage sur les [méthodes d'authentification](https://developers.hubspot.fr/docs/apps/legacy-apps/authentication/intro-to-auth). Pour obtenir la liste complète des points de terminaison disponibles, consultez la [documentation de référence](https://developers.hubspot.fr/docs/api-reference/marketing-marketing-events-v3/guide.md).

## Différences entre les points de terminaison d'ID interne et externe

De nombreux points de terminaison ci-dessous fournissent deux méthodes différentes pour identifier un événement que vous souhaitez récupérer ou mettre à jour. Bien que le résultat final pour des points de terminaison similaires puisse être le même, ils diffèrent principalement dans les ID associés que vous fournissez :

* **Points de terminaison utilisant des ID externes :** les points de terminaison qui nécessitent les paramètres `externalEventId` et `externalAccountId` ne fonctionneront que dans l'application qui a créé l'événement à l'origine. Par exemple, si vous avez créé deux applications publiques, appelées *App A* et *App B*, et que vous avez créé un événement marketing via l'authentification et les ID associés à *App A*, seule *App A* peut lire, mettre à jour ou ajouter de nouveaux participants à l'événement. Si vous tentez d'accéder au même événement avec *App B* en utilisant les mêmes externalEventId et externalAccountId, une erreur 404 se produira.
* **Points de terminaison utilisant un objectId :** les points de terminaison qui nécessitent un `objectId` peuvent être utilisés pour accéder à un événement par n'importe quelle application avec les domaines associés répertoriés dans la section ci-dessus, quelle que soit l'application qui a créé l'événement à l'origine. Si *App A* a créé un événement marketing, *App B* peut toujours lire, mettre à jour ou ajouter des participants via des points de terminaison basés sur `objectId`.

## Points de terminaison de gestion des événements

Les sections suivantes fournissent des informations contextuelles sur les propriétés d'événements courantes et expliquent comment utiliser les différents points de terminaison de gestion des événements pour créer, lire, mettre à jour et archiver des événements.

### Propriétés d'événement

Les propriétés suivantes sont disponibles pour la récupération et la mise à jour lors de l'utilisation des points de terminaison de gestion des événements :

| Paramètre | Type | Description |
| - | - | - |
| `eventName` | Chaîne | Le titre de votre événement. |
| `eventType` | Chaîne | Le type de l'événement (par exemple, webinar, salon commercial, etc.). |
| `eventOrganizer` | Chaîne | La personne ou l'organisation qui organise l'événement. |
| `eventDescription` | Chaîne | Une description de votre événement. |
| `eventUrl` | Chaîne | URL vers laquelle les utilisateurs peuvent naviguer pour obtenir plus de détails et/ou s'inscrire à votre événement. |
| `eventCancelled` | Booléen | Si l'événement soit annulé ou non. |
| `eventStartTime` | Chaîne | Un horodatage au format ISO 8601 de l'heure de fin de l'événement. |
| `eventEndTime` | Chaîne | Un horodatage au format ISO 8601 de l'heure de fin de l'événement. |

### Créer un événement

Pour créer un événement marketing, vous pouvez faire une requête `POST` à `/marketing/v3/marketing-events/events` et fournir les paramètres `eventName`, `externalEventId`, `externalAccountId` et `eventOrganizer` dans le corps de votre requête. Vous pouvez éventuellement fournir les propriétés supplémentaires répertoriées dans le [tableau ci-dessus](#event-properties) dans votre requête.

Par exemple, si la propriété `externalAccountId` de votre application est `"12345"`, et que la propriété `externalEventId` de votre événement dans votre application est `"67890"`, vous pouvez créer un nouvel événement appelé `"Winter webinar"` avec une requête qui ressemblerait à ce qui suit :

```json theme={null}
{
  "externalAccountId": "12345",
  "externalEventId": "67890",
  "eventName": "Winter webinar",
  "eventOrganizer": "Snowman Fellowship",
  "eventCancelled": false,
  "eventUrl": "https://example.com/holiday-jam",
  "eventDescription": "Let's get together to plan for the holidays",
  "eventCompleted": false,
  "startDateTime": "2024-08-07T12:36:59.286Z",
  "endDateTime": "2024-08-07T12:36:59.286Z",
  "customProperties": [
    {
      "name": "eventSeason",
      "value": "winter"
    }
  ]
}
```

### Mettre à jour les propriétés d'événement à l'aide d'ID externes

Vous pouvez mettre à jour des événements marketing en effectuant une requête `POST` au point de terminaison `/marketing/v3/marketing-events/events/upsert`. Vous pouvez inclure n'importe quelle `customProperties` avec d'autres détails de votre événement (y compris son nom, son heure de début et sa description).

Si un événement marketing existe déjà avec l'ID spécifié dans votre requête, il sera mis à jour. Sinon, un nouvel événement sera créé.

Par exemple, la requête suivante créera un événement avec un ID de `4` nommé « Cours de cuisine virtuel » :

```json theme={null}
{
  "inputs": [
    {
      "customProperties": [
        {
          "name": "property1",
          "value": "1234"
        }
      ],
      "eventName": "Virtual cooking class",
      "startDateTime": "2023-11-30T17:46:20.461Z",
      "eventOrganizer": "Chef Joe",
      "eventDescription": "Join us for a virtual cooking class! Yum."
      "eventCancelled": false,
      "externalAccountId": "CookingCo",
      "externalEventId": "4"
    }
  ]
}
```

### Mettre à jour les propriétés d'un événement à l'aide de son objectId

Une fois qu'un événement est créé, vous pouvez mettre à jour ses propriétés en faisant une requête `PATCH` à `/marketing/v3/marketing-events/{objectId}`.

* Pour obtenir la propriété `objectId` d'un événement marketing spécifique, suivez les instructions de [cet article de la base de connaissances](https://knowledge.hubspot.com/fr/integrations/use-marketing-events#view-and-analyze-marketing-events) pour afficher les détails d'un événement dans votre compte HubSpot, puis recherchez l'ID dans le champ *ID de fiche d'informations*. La propriété `objectId` sera également renvoyée dans la réponse lors de la création d'un événement.
* Vous pouvez également faire une requête `GET` au point de terminaison `/marketing/v3/marketing-events` décrit dans la section suivante.
* Si vous avez la propriété `externalEventId` d'un événement, vous pouvez l'inclure comme chemin lorsque vous effectuez une requête `GET` à `/marketing/v3/marketing-events/{externalEventId}/identifiers`. La réponse comprendra tous les événements marketing ainsi que les identifiants pertinents pour chaque événement (c'est-à-dire `objectId`, `appInfo`, `marketingEventName` et `externalAccountId`).

### Obtenir les détails d'évènement

Pour obtenir une liste de tous les événements marketing ainsi que leurs propriétés, exécutez une requête `GET` à `/marketing/v3/marketing-events`.

Si vous avez besoin de récupérer les détails d'un événement marketing spécifique par son *ID de fiche d'informations* dans HubSpot, vous pouvez fournir l'ID comme objectId dans une requête `GET` à `/marketing/v3/marketing-events/{objectId}`.

```json theme={null}
{
  "eventName": "Test Marketing Event",
  "eventType": "test-type",
  "startDateTime": "2024-05-22T12:29:50.734Z",
  "endDateTime": "2024-05-25T12:29:50.734Z",
  "eventOrganizer": "testEventOrganizer",
  "eventDescription": "testDescription",
  "eventUrl": "testURL",
  "eventCancelled": true,
  "eventCompleted": false,
  "customProperties": [
    {
      "name": "test_custom_prop",
      "value": "1"
    },
    {
      "name": "test_prop",
      "value": "2"
    }
  ],
  "objectId": "58237132332",
  "externalEventId": null,
  "eventStatus": "CANCELLED",
  "appInfo": {
    "id": "111",
    "name": "Zoom"
  },
  "registrants": 1,
  "attendees": 1,
  "cancellations": 2,
  "noShows": 0,
  "createdAt": "2024-08-07T12:58:40.635Z",
  "updatedAt": "2024-10-15T13:35:03.353Z"
}
```

### Supprimer un événement

Pour supprimer un événement marketing, effectuez une requête `DELETE` à `/marketing/v3/marketing-events/{objectId}` avec la propriété `objectId` associée à l'événement.

En cas de succès, vous recevrez une réponse `204 No Content`.

### Mettre à jour plusieurs événements en masse

Pour mettre à jour plusieurs événements marketing en masse, vous pouvez effectuer une requête `POST` à `/marketing-events/v3/marketing-events/batch/update` et fournir les propriétés que vous souhaitez mettre à jour pour chaque événement dans le tableau inputs du corps de la requête.

Par exemple, si vous souhaitez mettre à jour plusieurs propriétés de deux événements marketing avec des ID d'objet de 58237132332 et 54073507364 dans une seule requête, le corps de votre requête ressemblera à ce qui suit :

```json theme={null}
{
  "inputs": [
    {
      "objectId": "58237132332",
      "eventCancelled": true,
      "eventOrganizer": "testEventOrganizer",
      "eventUrl": "testURL",
      "eventDescription": "testDescription",
      "eventName": "Test Marketing Event Update",
      "eventType": "test-type"
    },
    {
      "objectId": "54073507364",
      "eventCancelled": true,
      "eventOrganizer": "testEventOrganizer",
      "eventUrl": "testURL",
      "eventDescription": "testDescription",
      "eventName": "Test Marketing Event Update 2",
      "eventType": "test-type"
    }
  ]
}
```

## Points de terminaison de participation à l'événement

Les points de terminaison du statut de participation à l'événement vous permettent de créer une fiche d'informations sur les activités d'inscription d'un contact. Par exemple si le contact s'est inscrit, a assisté ou a annulé son inscription à votre événement. Vous pouvez utiliser ce point de terminaison pour enregistrer l'inscription d'un contact HubSpot à un événement marketing.

### Mettre à jour la participation à l'aide de la propriété objectId de l'événement

Si vous voulez utiliser la propriété `objectId` d'un événement marketing, vous pouvez utiliser l'ID du contact pour lequel vous souhaitez enregistrer le statut de participation, ou utiliser son adresse e-mail.

* Pour utiliser l'ID d'un contact, effectuez une requête POST à `/marketing/v3/marketing-events/{objectId}/attendance/{subscribeState}/create` puis fournissez l'ID du contact à l'aide du champ `vid` dans le tableau `inputs` du corps de votre requête. Par exemple, le corps de la requête ci-dessous fournit un exemple de mise à jour des données de participation pour un contact avec l'ID `47733471576`, qui spécifie quand le participant a rejoint et quitté l'événement via les propriétés `joinedAt` et `leftAt` :

```json theme={null}
{
  "inputs": [
    {
      "vid": 47733471576,
      "properties": {
        "joinedAt": "2024-05-22T13:38:16.500Z",
        "leftAt": "2024-05-22T15:40:16.500Z"
      },
      "interactionDateTime": 1716382579000
    }
  ]
}
```

* Pour utiliser l'adresse e-mail d'un contact, effectuez une requête POST à `/marketing/v3/marketing-events/{objectId}/attendance/{subscribeState}/email-create` puis fournissez l'adresse e-mail du contact à l'aide du champ `email` dans le tableau `inputs` du corps de votre requête.
  * Si vous créez un nouveau contact, vous pouvez inclure le champ `contactProperties` dans le tableau `inputs` du corps de votre requête pour définir les propriétés associées au contact que vous venez de créer. Si le contact existe déjà, le champ `contactProperties` fourni dans la requête ne sera pas mis à jour.
  * Par exemple, le corps de la requête ci-dessous fournit un exemple de mise à jour des données de participation pour un contact avec une adresse e-mail de `john@example.com`, qui spécifie quand le participant a rejoint et quitté l'événement via les champs `joinedAt` et `leftAt` dans l'objet `properties` de votre tableau `inputs` :

```json theme={null}
{
  "inputs": [
    {
      "contactProperties": {
        "additionalProp1": "string",
        "additionalProp2": "string"
      },
      "properties": {
        "joinedAt": "2024-05-22T13:38:16.500Z",
        "leftAt": "2024-05-22T15:40:16.500Z"
      },
      "email": "john@example.com",
      "interactionDateTime": 1716382579000
    }
  ]
}
```

Pour les deux approches ci-dessus, fournissez les valeurs suivantes pour les paramètres de chemin correspondants :

* `objectId` : l'*ID de fiche d'informations* de l'événement marketing dans votre compte HubSpot. Consultez la [section ci-dessus](#differences-between-internal-id-and-external-id-endpoints) pour plus de détails sur l'utilisation de la propriété objectId d'un événement par rapport à l'utilisation de ses ID externes.
* `subscriberState` : une énumération qui correspond au nouveau statut de participation du contact.
* `REGISTERED` : indique que le contact HubSpot s'est inscrit à l'événement.
* `ATTENDED` : permet d'indiquer que le contact HubSpot a assisté à l'événement. Si vous mettez à jour le statut d'un contact vers ATTENDED, vous pouvez également inclure les horodatages `joinedAt` et `leftAt` comme paramètres dans le corps de la requête, spécifié dans le format ISO8601 Instant.
* `CANCELLED` : indique que le contact HubSpot qui s'était préalablement inscrit à l'événement a annulé son inscription.

### Mettre à jour la participation à l'aide des ID externes de l'événement

> [!WARNING]
>
> ### Remarque :
>
> Si vous utilisiez auparavant les points de terminaison `/upsert` ou `/email-upsert` pour mettre à jour le statut d'un participant, vous pouvez utiliser les points de terminaison alternatifs répertoriés ci-dessous. Toutefois, par rapport aux points de terminaison de participation aux événements ci-dessus, l'utilisation de ces points de terminaison ne prendra pas en charge les éléments suivants :
>
> * Création d'un nouveau contact s'il n'existe pas déjà
> * Affichage des événements de la chronologie sur la page de fiche d'informations d'un contact
> * Spécification des propriétés `joinedAt` ou `leftAt`
> * Affichage d'une réponse détaillée en cas de succès

Si vous utilisez les points de terminaison nécessitant le champ `externalEventId` depuis votre application, vous pouvez utiliser les ID de contact ou l'adresse e-mail des contacts existants :

* Si vous souhaitez utiliser les ID des contacts existants :
  * Exécutez une requête `POST` à `/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/create` en utilisant l'ID de l'événement de votre application externe en tant que propriété `externalEventId`.
  * Dans le corps de la requête, fournissez un objet `inputs` qui comprend les champs suivants :
    * `interactionDateTime` : la date et l'heure auxquelles le contact s'est inscrit à l'événement.
    * `vid` : l'ID d'un contact existant.
* Si vous souhaitez utiliser l'adresse e-mail d'un des participants à l'événement :
  * Exécutez une requête `POST` à `/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/email-create`.
  * Dans le corps de la requête, fournissez un objet `inputs` qui comprend les champs suivants :
    * `interactionDateTime` : la date et l'heure auxquelles le contact s'est inscrit à l'événement.
    * `email` : l'adresse e-mail du participant en tant que valeur du champ d'adresse e-mail dans une entrée.
  * Si l'adresse e-mail que vous incluez ne correspond pas à l'adresse d'un contact existant, un nouveau contact sera créé.

Pour les deux points de terminaison ci-dessus, fournissez les valeurs suivantes pour les paramètres de chemin correspondants :

* `externalEventId` : l'identifiant de [l'événement marketing](https://knowledge.hubspot.com/fr/integrations/use-marketing-events#view-edit-and-analyze-marketing-events). Consultez la [section ci-dessus](#differences-between-internal-id-and-external-id-endpoints) pour plus de détails sur l'utilisation de la propriété objectId d'un événement par rapport à l'utilisation de ses ID externes.
* `subscriberState` : une énumération qui correspond au nouveau statut de participation du contact.
  * `REGISTERED` : indique que le contact HubSpot s'est inscrit à l'événement.
  * `ATTENDED` : permet d'indiquer que le contact HubSpot a assisté à l'événement. Si vous mettez à jour le statut d'un contact vers ATTENDED, vous pouvez également inclure les horodatages `joinedAt` et `leftAt` comme paramètres dans le corps de la requête, spécifié dans le format ISO8601 Instant.
  * `CANCELLED` : indique que le contact HubSpot qui s'était préalablement inscrit à l'événement a annulé son inscription.

> [!WARNING]
>
> ### Remarque :
>
> Ces API sont idempotentes tant que l'ID du contact et la valeur `interactionDateTime` dans l'événement n'ont pas changé. Cela vous permet de définir en toute sécurité le statut de participation plusieurs fois sans que HubSpot ne crée d'événements en double dans les propriétés des événements marketing.

## Points de terminaison du statut du participant

Vous pouvez utiliser les points de terminaison de participation pour récupérer les données des participants à vos événements marketing. Vous pouvez interroger des données telles que des indicateurs agrégés pour un événement spécifique, ainsi que des données de participation pour un contact ou un événement spécifique.

Consultez les points de terminaison de participation disponibles ci-dessous. Pour obtenir une référence complète de tous les paramètres disponibles pour chaque point de terminaison, consultez la [documentation de référence](https://developers.hubspot.fr/docs/api-reference/marketing-marketing-events-v3/guide.md).

> [!WARNING]
>
> ### Remarque :
>
> Le nombre d'activités indiqué sur la [page des événements marketing](https://knowledge.hubspot.com/fr/integrations/use-marketing-events) de votre compte HubSpot peut différer des indicateurs agrégés correspondants du point de terminaison d'API des compteurs de participation.
>
> Par exemple, si un participant s'est inscrit à un événement, puis l'a annulé, puis s'est réinscrit au même événement, chacune de ces activités sera incluse dans les totaux que vous voyez dans l'interface utilisateur des événements marketing de votre compte. Si vous utilisez les points de terminaison du statut du participant ci-dessous, seul le statut actuel d'un participant est inclus dans le compteur associé pour cet indicateur (par exemple : `attended`, `registered`, `cancelled` ou `noShows`).

### Lire les participations pour un contact spécifique

Pour obtenir des données de participation à des événements pour un contact spécifique, effectuez une requête `GET` à `/marketing/v3/marketing-events/participations/contacts/{contactIdentifier}/breakdown`, en utilisant l'ID ou l'adresse e-mail du contact comme paramètre de chemin `contactIdentifier`.

La réponse comprendra un résumé de la participation du contact à l'événement dans le champ `properties` :

```json theme={null}
{
  "results": [
    {
      "associations": {
        "marketingEvent": {
          "externalAccountId": "4",
          "marketingEventId": "123",
          "externalEventId": "456",
          "name": "Virtual baking workshop"
        },
        "contact": {
          "firstname": "Jane",
          "contactId": "156792341",
          "email": "jdoe@example.com",
          "lastname": "Doe"
        }
      },
      "createdAt": "2024-05-21T18:35:04.838Z",
      "id": "string",
      "properties": {
        "occurredAt": "2024-05-22T10:35:04.838Z",
        "attendancePercentage": "string",
        "attendanceState": "REGISTERED",
        "attendanceDurationSeconds": 3600
      }
    }
  ]
}
```

### Lire les données de répartition de la participation

Pour obtenir une répartition des données de participation à un événement spécifique, utilisez votre `externalAccountId` et le `externalEventId` de votre événement pour faire une requête `GET` à `/marketing/v3/marketing-events/participations/{externalAccountId}/{externalEventId}/breakdown`.

### Lire les compteurs de participation

Pour obtenir un récapitulatif agrégé de la participation à un événement, utilisez votre `externalAccountId` et le `externalEventId` de votre événement pour faire une requête `GET` à `/marketing/v3/marketing-events/participations/{externalAccountId}/{externalEventId}`.

La réponse comprendra le nombre total de participants :

```json theme={null}
{
  "attended": 152,
  "registered": 200,
  "cancelled": 3,
  "noShows": 8
}
```

### Filtrer les données de répartition de la participation

Lorsque vous récupérez des données de répartition ou des données de participation à un événement pour un contact spécifique, vous pouvez filtrer les données résultantes en utilisant les champs contactIdentifier, statut, limite ou après comme paramètres de requête dans votre requête.

| Paramètre de requête | Type | Description |
| - | - | - |
| `contactIdentifier` | Chaîne | L'adresse e-mail ou l'ID d'un contact spécifique |
| `state` | Énumération | Le statut de participation de l'événement Les statuts de participation possibles sont les suivants :<ul><li>`REGISTERED` : le contact s'est inscrit à l'événement</li><li>`CANCELLED` : l'inscription du contact a été annulée.</li><li>`ATTENDED` : le contact a assisté à l'événement.</li><li>`NO_SHOW` : le contact s'est inscrit mais n'a pas assisté à l'événement.</li></ul> |
| `limit` | Nombre | Permet de limiter le nombre de résultats renvoyés. Par défaut, la limite est fixée à 10. La fourchette valide est comprise entre 1 et 100. |
| `after` | Nombre | Permet de paginer entre les résultats de la réponse. Consultez le décalage fourni à la page précédente des données de réponse pour déterminer le prochain indice de résultats à renvoyer. |

## Points de terminaison des associations de listes

Vous pouvez utiliser les points de terminaison décrits dans les sections ci-dessous pour gérer les associations entre vos listes et vos événements marketing.

La plupart de ces points de terminaison nécessitent un champ `listId` en tant que paramètre de chemin, que vous trouverez sur la page des détails de la liste dans votre compte HubSpot :

* Dans votre compte HubSpot, naviguez vers **CRM** > **Listes**.
* Cliquez sur le **nom** d'une liste.
* Dans l'angle supérieur droit, cliquez sur **Détails**.
* Dans le panneau de droite, l'ID de liste apparaîtra sous *ID de liste à utiliser pour les intégrations d'API*. Vous pouvez cliquer sur **Copier l'ID de liste** pour copier l'ID dans le presse-papiers.

![list-details-panel-list-associations-api](https://www.hubspot.fr/hubfs/Knowledge_Base_2023_2024/list-details-panel-list-associations-api.png)

Lorsque vous associez des listes à vos événements marketing, elles apparaissent sur la page de détails d'un événement marketing dans votre compte HubSpot :

* Dans votre compte HubSpot, accédez à **CRM** > **Contacts**.
* En haut à gauche, cliquez sur **Contacts** et dans le menu déroulant, sélectionnez **Événements marketing**.
* Cliquez sur le **nom** d'un événement marketing.
* Dans l'onglet *Performances*, cliquez sur **Listes** pour développer la section, puis sur l'onglet **Listes ajoutées par le biais des associations**.

![review-list-associations-for-marketing-events-api](https://www.hubspot.fr/hubfs/Knowledge_Base_2023_2024/review-list-associations-for-marketing-events-api.png)

### Créer une association de liste avec un ID d'événement marketing

Pour créer une association entre un événement marketing et une liste existante, exécutez une requête `PUT` à `/marketing/v3/marketing-events/associations/{marketingEventId}/lists/{listId}`.

En cas de succès, vous recevrez une réponse `204 No content`.

### Créer une association de liste avec des ID d'événement et de compte externes

Pour créer une nouvelle association entre un événement marketing et une liste existante en utilisant l'ID de compte externe et l'ID d'événement externe, exécutez une requête `PUT` à `/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists/{listId}`.

En cas de succès, vous recevrez une réponse `204 No content`.

### Obtenir des listes associées à un événement marketing en utilisant un ID d'événement marketing

Pour obtenir toutes les listes associées à un événement marketing, exécutez une `GET` requête à `/marketing/v3/marketing-events/associations/{marketingEventId}/lists`.

La réponse sera au format suivant :

```json theme={null}
{
  "total": 1,
  "results": [
    {
      "listId": "string",
      "listVersion": 0,
      "createdAt": "2024-05-10T08:58:35.769Z",
      "updatedAt": "2024-05-10T08:58:35.769Z",
      "filtersUpdatedAt": "2024-05-10T08:58:35.769Z",
      "processingStatus": "string",
      "createdById": "string",
      "updatedById": "string",
      "processingType": "string",
      "objectTypeId": "string",
      "name": "string",
      "size": 0
    }
  ]
}
```

### Obtenir des listes associées à un événement en utilisant des ID d'événement et de compte externes

Vous pouvez également obtenir des listes associées à un événement marketing en utilisant un ID de compte externe et l'ID d'événement externe. Exécutez une requête `GET` à `/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists`.

### Supprimer l'association de liste en utilisant un ID d'événement marketing

Pour supprimer une association de liste pour un événement marketing en utilisant un ID d'événement marketing, exécutez une requête `DELETE` à `/marketing/v3/marketing-events/associations/{marketingEventId}/lists/{listId}`.

En cas de succès, vous recevrez une réponse `204 No content`.

### Supprimer l'association de liste à l'aide d'ID d'événement et de compte externes

Pour supprimer une association de liste pour un événement marketing utilisant l'ID de compte externe et un ID d'événement externe, exécutez une requête `DELETE` à `/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists/{listId}`.

En cas de succès, vous recevrez une réponse `204 No content`.

## Configurer les paramètres d'application

Une certaine configuration est requise pour permettre aux événements marketing de se synchroniser correctement avec HubSpot.

Si vous envoyez à HubSpot un changement de statut de participation (par exemple, une inscription ou une annulation), HubSpot vérifiera d'abord si un événement marketing existe pour l'ID d'événement spécifié. Si ce n'est pas le cas, HubSpot appellera le point de terminaison configuré pour votre application afin de récupérer les détails de l'événement marketing, puis créera l'événement dans HubSpot et publiera le changement de statut de participation.

Ceci est fourni pour des raisons de commodité ; cependant, il est toujours recommandé que vous créiez vous-même les événements marketing via les méthodes CRUD, fournies dans la [documentation de référence ](https://developers.hubspot.fr/docs/api-reference/marketing-marketing-events-v3/guide.md), sans vous appuyer sur cette fonctionnalité pour créer vos événements marketing dans HubSpot.

### Étape 1 : Créer une API dans votre application

Pour ce faire, HubSpot exige que chaque application qui utilise des événements marketing définisse une API pour récupérer des informations sur un événement marketing spécifique.

Exigences :

* Accepte :
  * `externalAccountId` : un paramètre de requête spécifiant accountId pour le client dans l'application externe.
  * `appId` : le paramètre de requête qui spécifie l'ID de l'application HubSpot qui demande les détails de l'événement. Il s'agira de l'ID de votre application.
  * `externalEventId` : paramètre de chemin dans l'URL de la requête qui spécifie l'ID de l'événement dans l'application externe sur laquelle HubSpot nécessite des détails.
* Renvoie :
  * Un objet JSON qui fournit les détails de l'événement marketing, qui comprend les champs suivants détaillés dans le tableau ci-dessous :

| Nom du champ | Obligatoire | Type | Description du champ |
| - | - | - | - |
| `eventName` | true | Chaîne | Le nom de l'événement marketing. |
| `eventOrganizer` | true | Chaîne | Le nom de l'organisateur de l'événement marketing. |
| `eventType` | false | Chaîne | Permet de décrire le type d'événement concerné. Par exemple : `WEBINAR`, `CONFERENCE`, `WORKSHOP` |
| `startDateTime` | false | Chaîne(\$date-time) | La date et l'heure de début de l'événement marketing. |
| `endDateTime` | false | Chaîne(\$date-time) | La date et l'heure de fin de l'événement marketing. |
| `eventDescription` | false | Chaîne | La description de l'événement marketing. |
| `eventUrl` | false | Chaîne | Une URL dans l'application d'événement externe vers l'événement marketing. |
| `eventCancelled` | false | Booléen | Indique si l'événement marketing a été annulé. La valeur par défaut est `false` |

HubSpot envoie également un en-tête `X-HubSpot-Signature-v3` que vous pouvez utiliser pour vérifier que la requête provient de HubSpot. Découvrez-en davantage sur les [signatures de requête](https://developers.hubspot.fr/docs/apps/legacy-apps/authentication/validating-requests.md) pour plus de détails sur la signature et comment la valider.

### Étape 2 : Fournir à HubSpot le chemin d'URL vers votre API

Maintenant que vous avez créé l'API dans votre application qui renverra un objet fournissant les détails d'un événement marketing spécifique, vous devez fournir à HubSpot le chemin d'URL de votre API en effectuant une requête `POST` a `/marketing/v3/marketing-events/{appId}/settings`. Cela permettra à HubSpot de déterminer comment faire des requêtes à votre application pour obtenir les détails d'un événement marketing.

Dans le corps de votre requête `POST`, spécifiez votre URL à l'aide du champ `eventDetailsURL`. La propriété `eventDetailsURL` doit répondre aux deux exigences suivantes :

* Elle doit contenir au moins une séquence de caractères `%s`, que HubSpot utilise pour remplacer dans l'ID de l'événement (`externalEventId`) comme paramètre de chemin d'accès.
* Il doit s'agir du chemin complet vers la ressource API, y compris le préfixe `https://` et le nom de domaine (par exemple : `my.event.app`).

Par exemple, si vous configurez un `eventDetailsURL` de `https://my.event.app/events/%s` et que vous devez faire une requête pour récupérer les détails d'un événement avec l'ID `1234-event-XYZ`, pour l'application HubSpot avec l'ID `app-101` et le compte avec l'ID `ABC-account-789`, HubSpot fera une requête `GET` à :

`https://my.event.app/events/1234-event-XYZ?appId=app-101&externalAccountId=ABC-account-789`
