Saltar al contenido principal

Introducción

Rastrea eventos de pago en Segment para potenciar tu análisis, automatización de marketing y plataforma de datos de clientes. Envía eventos de pago, suscripción y ciclo de vida del cliente a más de 300 herramientas de downstream automáticamente.
Esta integración requiere una Clave de Escritura de Segment de tu espacio de trabajo de Segment.

Comenzando

1

Abre la Sección de Webhooks

En tu panel de Dodo Payments, navega a Webhooks → + Agregar Endpoint y expande el menú desplegable de integraciones.
Agregar Endpoint y menú desplegable de integraciones
2

Selecciona Segment

Elige la tarjeta de integración Segment.
3

Ingresa la Clave de Escritura

Proporciona tu Clave de Escritura de Segment en la configuración.
4

Configura la Transformación

Edita el código de transformación para dar formato a los eventos para la API Track de Segment.
5

Prueba y Crea

Prueba con cargas útiles de ejemplo y haz clic en Crear para activar la sincronización.
6

¡Listo!

🎉 Los eventos de pago ahora se rastrearán en Segment y se enviarán a tus herramientas conectadas.

Ejemplos de Código de Transformación

Rastrear Eventos de Pago

track_payments.js
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;
}

Rastrear Ciclo de Vida de Suscripción

track_subscriptions.js
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;
}

Identificar Propiedades del Cliente

identify_customer.js
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;
}

Consejos

  • Usa nombres de eventos consistentes en tu integración
  • Incluye propiedades relevantes para análisis y segmentación
  • Establece marcas de tiempo adecuadas para un rastreo preciso de eventos
  • Usa IDs de cliente como userId para una identificación adecuada del usuario

Solución de Problemas

  • Verifica que la Clave de Escritura sea correcta y esté activa
  • Asegúrate de que los nombres de los eventos sigan las convenciones de nomenclatura de Segment
  • Asegúrate de que userId esté configurado correctamente para la identificación del usuario
  • Revisa los límites de tasa de la API de Segment
  • Valida que la estructura JSON coincida con el formato de la API de Segment
  • Verifica que todos los campos requeridos estén presentes
  • Asegúrate de que los nombres de los eventos sean cadenas, no objetos