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

# AutoSend

> Aprende a usar la API de correo electrónico de AutoSend para enviar correos electrónicos transaccionales automatizados para tus transacciones, reembolsos y eventos de pago de Dodo Payments.

## Introducción

La integración de AutoSend y Dodo Payments te permite enviar automáticamente notificaciones por correo electrónico en tiempo real para todos los eventos de pago, desde transacciones exitosas hasta intentos fallidos y confirmaciones de reembolso.

Envía correos electrónicos transaccionales para eventos de pago utilizando la poderosa API de correo electrónico de AutoSend.

<Info>
  Esta integración requiere tu clave de API de AutoSend para autenticación. Puedes encontrar tu clave de API en el panel de AutoSend en Configuración > Claves de API.
</Info>

## Comenzando

Sigue estos pasos para integrar AutoSend con Dodo Payments:

<Steps>
  <Step title="Open Webhook Section">
    Navega a la sección de Webhooks en tu panel de control de Dodo Payments.

    <Frame>
      <img src="https://mintcdn.com/dodopayments/VOF9xBBvs1EjN4xq/images/integrations/autosend.png?fit=max&auto=format&n=VOF9xBBvs1EjN4xq&q=85&s=8645c6b295d3fecdf62f046e4480b1e4" alt="Add Endpoint and integrations dropdown" style={{ maxHeight: '500px', width: 'auto' }} width="1750" height="1234" data-path="images/integrations/autosend.png" />
    </Frame>
  </Step>

  <Step title="Select AutoSend Integration">
    Elige AutoSend de la lista de integraciones disponibles.
  </Step>

  <Step title="Enter API Key">
    Proporciona tu clave de API de AutoSend para la autenticación. Puedes encontrar tu clave de API en el panel de AutoSend en Configuración > Claves de API.

    <Card title="Learn how to create and manage API keys" icon="key" href="https://docs.autosend.com/api-keys">
      Visita la documentación de AutoSend para obtener instrucciones detalladas sobre cómo crear y gestionar claves de API.
    </Card>
  </Step>

  <Step title="Configure Transformation">
    Configura controladores de transformación en JavaScript para personalizar el contenido de los correos según los eventos de pago.
  </Step>

  <Step title="Test & Create">
    Prueba la configuración de tu webhook para asegurarte de que los correos se envían correctamente, luego crea la integración.
  </Step>

  <Step title="Activation Complete">
    🎉 Tu integración con AutoSend ya está activa y enviará correos automáticamente para los eventos de pago configurados.
  </Step>
</Steps>

## Ejemplos de código

### Correo electrónico de confirmación de pago

Envía un correo electrónico de confirmación cuando un pago se procesa con éxito:

```javascript payment_confirmation.js icon="js" expandable theme={null}
function handler(webhook) {
  if (webhook.eventType === "payment.succeeded") {
    const p = webhook.payload.data;
    webhook.url = "https://api.autosend.com/v1/mails/send";
    webhook.payload = {
      to: {
        email: p.customer.email,
        name: p.customer.name,
      },
      from: {
        email: "payments@mail.yourdomain.com",
        name: "Your Company",
      },
      subject: "Payment Successful - Thank you for your purchase!",
      templateId: "A-61522f2xxxxxxxxx",
      dynamicData: {
        customerName: p.customer.name,
        amount: p.amount,
        currency: p.currency,
        paymentId: p.payment_id,
        paymentDate: new Date(p.created_at).toLocaleDateString(),
      },
      replyTo: {
        email: "support@yourdomain.com",
        name: "Support Team",
      },
    };
  }
  return webhook;
}
```

### Correo electrónico de bienvenida de suscripción

Envía un correo electrónico de bienvenida cuando se crea una nueva suscripción:

```javascript subscription_welcome.js icon="js" expandable theme={null}
function handler(webhook) {
  if (webhook.eventType === "subscription.active") {
    const s = webhook.payload.data;
    webhook.url = "https://api.autosend.com/v1/mails/send";
    webhook.payload = {
      to: {
        email: s.customer.email,
        name: s.customer.name,
      },
      from: {
        email: "subscriptions@mail.yourdomain.com",
        name: "Your Company",
      },
      subject: "Welcome to your subscription!",
      templateId: "A-61522f2xxxxxxxxx",
      dynamicData: {
        customerName: s.customer.name,
        planName: s.plan.name,
        billingInterval: s.billing_interval,
        nextBillingDate: new Date(s.next_billing_at).toLocaleDateString(),
        subscriptionId: s.subscription_id,
      },
      replyTo: {
        email: "support@yourdomain.com",
        name: "Support Team",
      },
    };
  }
  return webhook;
}
```

### Notificación de fallo de pago

Envía un correo electrónico de notificación cuando un pago falla:

```javascript payment_failure.js icon="js" expandable theme={null}
function handler(webhook) {
  if (webhook.eventType === "payment.failed") {
    const p = webhook.payload.data;
    webhook.url = "https://api.autosend.com/v1/mails/send";
    webhook.payload = {
      to: {
        email: p.customer.email,
        name: p.customer.name,
      },
      from: {
        email: "billing@mail.yourdomain.com",
        name: "Your Company Billing",
      },
      subject: "Payment Failed - Action Required",
      templateId: "A-61522f2xxxxxxxxx",
      dynamicData: {
        customerName: p.customer.name,
        amount: p.amount,
        currency: p.currency,
        failureReason: p.failure_reason,
        paymentId: p.payment_id,
        retryUrl: `https://yourdomain.com/billing/retry/${p.payment_id}`,
      },
      replyTo: {
        email: "billing@yourdomain.com",
        name: "Billing Support",
      },
    };
  }
  return webhook;
}
```

## Mejores prácticas

* **Verifica tu dominio de remitente**: Asegúrate de que tu dominio de correo electrónico de remitente esté verificado en AutoSend para mejorar la entregabilidad y evitar problemas de autenticación. Los dominios verificados ayudan a prevenir que los correos electrónicos terminen en carpetas de spam.

* **Use dynamic data for personalization**: Usa el campo `dynamicData` para personalizar los correos con información específica del cliente, como nombres, montos de pago y detalles de suscripción. Los correos personalizados tienen tasas de participación más altas.

* **Escribe líneas de asunto claras**: Escribe líneas de asunto descriptivas que indiquen claramente el propósito del correo electrónico. Evita palabras que activen el spam y mantén los asuntos concisos (menos de 50 caracteres).

* **Prueba antes de producción**: Siempre prueba tus correos electrónicos antes de enviarlos en producción. Esto asegura que el contenido de tu correo electrónico se renderice correctamente y que todos los datos dinámicos estén correctamente mapeados.

## Referencia de API

Para obtener detalles completos sobre la API de AutoSend, incluidos todos los parámetros disponibles y códigos de error, visita la [Documentación de la API de AutoSend](https://docs.autosend.com/api-reference/mails/send).

## Solución de problemas

<AccordionGroup>
  <Accordion title="Emails not being sent">
    * Verifica que la clave de API sea correcta y esté activa
    * Comprueba que el dominio del remitente esté verificado en AutoSend
    * Asegúrate de que las direcciones de correo electrónico de los destinatarios sean válidas
    * Revisa los límites y cuotas de envío de AutoSend
    * Verifica que la URL del endpoint de la API sea correcta: `https://api.autosend.com/v1/mails/send`
    * Comprueba que los parámetros necesarios estén presentes en la carga útil
  </Accordion>

  <Accordion title="Transformation errors">
    * Valida que la estructura JSON coincida con el formato de la API de AutoSend
    * Comprueba que todos los campos obligatorios estén presentes (`to`, `from`, `templateId` o `html`/`text`)
    * Asegúrate de que las direcciones de correo electrónico estén correctamente formateadas
    * Verifica que `templateId` sea válido si usas plantillas
    * Comprueba que las claves `dynamicData` coincidan con las variables de tu plantilla
  </Accordion>

  <Accordion title="Template issues">
    * Verifica que tu ID de plantilla sea correcto y esté activo en AutoSend
    * Asegúrate de que las claves `dynamicData` coincidan con las variables utilizadas en tu plantilla
    * Comprueba que se proporcionen todas las variables de plantilla requeridas
    * Prueba tu plantilla de forma independiente en el panel de AutoSend
  </Accordion>
</AccordionGroup>
