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

# HubSpot

> Créez et mettez à jour automatiquement des contacts, des entreprises et des affaires dans HubSpot à partir des événements de Dodo Payments.

## Introduction

Synchronisez vos données de paiement directement dans HubSpot CRM. Créez des contacts à partir de paiements réussis, suivez le cycle de vie des abonnements et construisez des profils clients complets—le tout déclenché automatiquement par les événements de Dodo Payments.

<Info>
  Cette intégration nécessite un accès administrateur HubSpot pour configurer les portées OAuth et les autorisations API.
</Info>

## Commencer

<Steps>
  <Step title="Open the Webhook Section">
    Dans votre tableau de bord Dodo Payments, allez à <b>Webhooks → + Ajouter un point de terminaison</b> et développez le menu déroulant des intégrations.

    <Frame>
      <img src="https://mintcdn.com/dodopayments/slbAEdrLLwKHfaRf/images/integrations/hubspot.png?fit=max&auto=format&n=slbAEdrLLwKHfaRf&q=85&s=73c4881df63edfb05bd24d804f01caab" alt="Ajouter un point de terminaison et menu déroulant des intégrations" style={{ maxHeight: '500px', width: 'auto' }} width="1724" height="942" data-path="images/integrations/hubspot.png" />
    </Frame>
  </Step>

  <Step title="Select HubSpot">
    Choisissez la carte d'intégration <b>HubSpot</b>.
  </Step>

  <Step title="Connect HubSpot">
    Cliquez sur <b>Se connecter à HubSpot</b> et autorisez les portées OAuth requises.
  </Step>

  <Step title="Configure Transformation">
    Modifiez le code de transformation pour mapper les données de paiement aux objets CRM HubSpot.
  </Step>

  <Step title="Test & Create">
    Testez avec des charges utiles d'exemple et cliquez sur <b>Créer</b> pour activer la synchronisation.
  </Step>

  <Step title="Done!">
    🎉 Les événements de paiement créeront/ mettront à jour automatiquement des enregistrements dans votre CRM HubSpot.
  </Step>
</Steps>

## Exemples de code de transformation

### Créer un contact à partir d'un paiement

```javascript create_contact.js icon="js" expandable theme={null}
function handler(webhook) {
  if (webhook.eventType === "payment.succeeded") {
    const p = webhook.payload.data;
    webhook.url = "https://api.hubapi.com/crm/v3/objects/contacts";
    webhook.payload = {
      properties: {
        email: p.customer.email,
        firstname: p.customer.name.split(' ')[0] || '',
        lastname: p.customer.name.split(' ').slice(1).join(' ') || '',
        phone: p.customer.phone || '',
        company: p.customer.company || '',
        amount: (p.total_amount / 100).toString(),
        payment_method: p.payment_method || '',
        currency: p.currency || 'USD'
      }
    };
  }
  return webhook;
}
```

### Mettre à jour un contact avec un abonnement

```javascript update_contact.js icon="js" expandable theme={null}
function handler(webhook) {
  if (webhook.eventType === "subscription.active") {
    const s = webhook.payload.data;
    webhook.url = `https://api.hubapi.com/crm/v3/objects/contacts/${s.customer.customer_id}`;
    webhook.method = "PATCH";
    webhook.payload = {
      properties: {
        subscription_status: "active",
        subscription_amount: (s.recurring_pre_tax_amount / 100).toString(),
        subscription_frequency: s.payment_frequency_interval,
        next_billing_date: s.next_billing_date,
        product_id: s.product_id
      }
    };
  }
  return webhook;
}
```

### Créer une affaire à partir d'un paiement

```javascript create_deal.js icon="js" expandable theme={null}
function handler(webhook) {
  if (webhook.eventType === "payment.succeeded") {
    const p = webhook.payload.data;
    webhook.url = "https://api.hubapi.com/crm/v3/objects/deals";
    webhook.payload = {
      properties: {
        dealname: `Payment - ${p.customer.email}`,
        amount: (p.total_amount / 100).toString(),
        dealstage: "closedwon",
        closedate: new Date().toISOString(),
        hs_currency: p.currency || "USD"
      },
      associations: [
        {
          to: {
            id: p.customer.customer_id
          },
          types: [
            {
              associationCategory: "HUBSPOT_DEFINED",
              associationTypeId: 3
            }
          ]
        }
      ]
    };
  }
  return webhook;
}
```

## Conseils

* Utilisez l'explorateur API de HubSpot pour tester la création d'objets
* Mapper les montants de paiement aux champs de devise HubSpot
* Inclure les identifiants clients pour des associations appropriées
* Définir les étapes d'affaires appropriées en fonction du statut de paiement

## Dépannage

<AccordionGroup>
  <Accordion title="Records not created in HubSpot">
    * Vérifiez que les portées OAuth incluent les autorisations d’écriture
    * Assurez-vous que les propriétés HubSpot requises existent
    * Vérifiez que l’e-mail du client est valide et unique
    * Passez en revue les limites de taux de l’API HubSpot
  </Accordion>

  <Accordion title="Transformation errors">
    * Validez que la structure JSON correspond au format de l’API HubSpot
    * Vérifiez que toutes les propriétés requises sont incluses
    * Assurez-vous que les noms de propriétés correspondent exactement aux noms de champs HubSpot
  </Accordion>
</AccordionGroup>
