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

# Segment

> Envoyez des événements Dodo Payments à Segment pour l'analyse et l'intégration de la plateforme de données clients.

## Introduction

Suivez les événements de paiement dans Segment pour alimenter vos analyses, votre automatisation marketing et votre plateforme de données clients. Envoyez automatiquement des événements de paiement, d'abonnement et de cycle de vie client vers plus de 300 outils en aval.

<Info>
  Cette intégration nécessite une clé d'écriture Segment depuis votre espace de travail Segment.
</Info>

## Prise en main

<Steps>
  <Step title="Open the Webhook Section">
    Dans votre tableau de bord Dodo Payments, accédez à <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/segment.png?fit=max&auto=format&n=slbAEdrLLwKHfaRf&q=85&s=024e80f2cafa4245742eac33f445ebe5" alt="Ajouter un point de terminaison et menu déroulant des intégrations" style={{ maxHeight: '500px', width: 'auto' }} width="1644" height="948" data-path="images/integrations/segment.png" />
    </Frame>
  </Step>

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

  <Step title="Enter Write Key">
    Saisissez votre clé d'écriture Segment dans la configuration.
  </Step>

  <Step title="Configure Transformation">
    Modifiez le code de transformation pour formater les événements pour l'API Track de Segment.
  </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 seront désormais suivis dans Segment et envoyés à vos outils connectés.
  </Step>
</Steps>

## Exemples de code de transformation

### Suivre les événements de paiement

```javascript track_payments.js icon="js" expandable theme={null}
function handler(webhook) {
  if (webhook.eventType === "payment.succeeded") {
    const p = webhook.payload.data;
    webhook.url = "https://api.segment.io/v1/track";
    webhook.payload = {
      userId: p.customer.customer_id,
      event: "Payment Completed",
      properties: {
        amount: (p.total_amount / 100).toFixed(2),
        currency: p.currency || "USD",
        payment_method: p.payment_method || "unknown",
        payment_id: p.payment_id,
        customer_email: p.customer.email,
        customer_name: p.customer.name
      },
      timestamp: webhook.payload.timestamp
    };
  }
  return webhook;
}
```

### Suivre le cycle de vie de l'abonnement

```javascript track_subscriptions.js icon="js" expandable theme={null}
function handler(webhook) {
  const s = webhook.payload.data;
  switch (webhook.eventType) {
    case "subscription.active":
      webhook.url = "https://api.segment.io/v1/track";
      webhook.payload = {
        userId: s.customer.customer_id,
        event: "Subscription Started",
        properties: {
          subscription_id: s.subscription_id,
          product_id: s.product_id,
          amount: (s.recurring_pre_tax_amount / 100).toFixed(2),
          frequency: s.payment_frequency_interval,
          next_billing: s.next_billing_date,
          customer_email: s.customer.email
        },
        timestamp: webhook.payload.timestamp
      };
      break;
    case "subscription.cancelled":
      webhook.url = "https://api.segment.io/v1/track";
      webhook.payload = {
        userId: s.customer.customer_id,
        event: "Subscription Cancelled",
        properties: {
          subscription_id: s.subscription_id,
          product_id: s.product_id,
          cancelled_at: s.cancelled_at,
          cancel_at_next_billing: s.cancel_at_next_billing_date,
          customer_email: s.customer.email
        },
        timestamp: webhook.payload.timestamp
      };
      break;
  }
  return webhook;
}
```

### Identifier les propriétés du client

```javascript identify_customer.js icon="js" expandable theme={null}
function handler(webhook) {
  if (webhook.eventType === "payment.succeeded") {
    const p = webhook.payload.data;
    webhook.url = "https://api.segment.io/v1/identify";
    webhook.payload = {
      userId: p.customer.customer_id,
      traits: {
        email: p.customer.email,
        name: p.customer.name,
        total_spent: (p.total_amount / 100).toFixed(2),
        payment_method: p.payment_method || "unknown",
        last_payment_date: webhook.payload.timestamp,
        customer_since: webhook.payload.timestamp
      }
    };
  }
  return webhook;
}
```

## Conseils

* Utilisez des noms d'événements cohérents dans votre intégration
* Incluez des propriétés pertinentes pour l'analyse et la segmentation
* Définissez des horodatages appropriés pour un suivi précis des événements
* Utilisez des identifiants clients comme userId pour une identification correcte des utilisateurs

## Dépannage

<AccordionGroup>
  <Accordion title="Events not appearing in Segment">
    * Vérifiez que la clé d'écriture est correcte et activée
    * Vérifiez que les noms d'événements respectent les conventions de nommage de Segment
    * Assurez-vous que userId est correctement défini pour l'identification des utilisateurs
    * Passez en revue les limites de débit de l'API Segment
  </Accordion>

  <Accordion title="Transformation errors">
    * Validez que la structure JSON correspond au format de l'API Segment
    * Vérifiez que tous les champs requis sont présents
    * Assurez-vous que les noms d'événements sont des chaînes de caractères, pas des objets
  </Accordion>
</AccordionGroup>
