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

> Tìm hiểu cách sử dụng API email của AutoSend để gửi email giao dịch tự động cho các giao dịch, hoàn tiền và sự kiện thanh toán của Dodo Payments.

## Giới thiệu

Tích hợp AutoSend và Dodo Payments cho phép bạn tự động gửi thông báo email theo thời gian thực cho tất cả các sự kiện thanh toán, từ các giao dịch thành công đến các nỗ lực không thành công và xác nhận hoàn tiền.

Gửi email giao dịch cho các sự kiện thanh toán bằng API email mạnh mẽ của AutoSend.

<Info>
  Tích hợp này yêu cầu Khóa API AutoSend của bạn để xác thực. Bạn có thể tìm khóa API trong bảng điều khiển AutoSend tại Cài đặt > Khóa API.
</Info>

## Bắt đầu

Thực hiện các bước sau để tích hợp AutoSend với Dodo Payments:

<Steps>
  <Step title="Open Webhook Section">
    Điều hướng đến phần Webhooks trong bảng điều khiển Dodo Payments của bạn.

    <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">
    Chọn AutoSend từ danh sách các tích hợp có sẵn.
  </Step>

  <Step title="Enter API Key">
    Cung cấp khóa API AutoSend của bạn để xác thực. Bạn có thể tìm khóa API trong bảng điều khiển AutoSend tại Cài đặt > Khóa API.

    <Card title="Learn how to create and manage API keys" icon="key" href="https://docs.autosend.com/api-keys">
      Truy cập tài liệu AutoSend để biết hướng dẫn chi tiết về cách tạo và quản lý khóa API.
    </Card>
  </Step>

  <Step title="Configure Transformation">
    Thiết lập các bộ xử lý chuyển đổi JavaScript để tùy chỉnh nội dung email dựa trên sự kiện thanh toán.
  </Step>

  <Step title="Test & Create">
    Kiểm tra cấu hình webhook để đảm bảo email được gửi đúng cách, sau đó tạo tích hợp.
  </Step>

  <Step title="Activation Complete">
    🎉 Tích hợp AutoSend của bạn hiện đang hoạt động và sẽ tự động gửi email cho các sự kiện thanh toán được cấu hình.
  </Step>
</Steps>

## Ví dụ Mã

### Email Xác Nhận Thanh Toán

Gửi email xác nhận khi một khoản thanh toán được xử lý thành công:

```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;
}
```

### Email Chào Mừng Đăng Ký

Gửi email chào mừng khi một đăng ký mới được tạo:

```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;
}
```

### Thông Báo Thất Bại Thanh Toán

Gửi email thông báo khi một khoản thanh toán thất bại:

```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;
}
```

## Thực Hành Tốt Nhất

* **Xác minh miền gửi của bạn**: Đảm bảo miền email gửi của bạn đã được xác minh trong AutoSend để cải thiện khả năng gửi và tránh các vấn đề xác thực. Các miền đã được xác minh giúp ngăn chặn email rơi vào thư mục spam.

* **Sử dụng dữ liệu động để cá nhân hóa**: Sử dụng trường `dynamicData` để cá nhân hóa email với thông tin cụ thể của khách hàng như tên, số tiền thanh toán và thông tin đăng ký. Email cá nhân hóa có tỷ lệ tương tác cao hơn.

* **Viết tiêu đề rõ ràng**: Viết tiêu đề mô tả rõ ràng chỉ ra mục đích của email. Tránh các từ kích hoạt spam và giữ cho tiêu đề ngắn gọn (dưới 50 ký tự).

* **Kiểm tra trước khi sản xuất**: Luôn kiểm tra email của bạn trước khi gửi chúng trong sản xuất. Điều này đảm bảo nội dung email của bạn hiển thị đúng cách và tất cả dữ liệu động được ánh xạ chính xác.

## Tài Liệu API

Để biết chi tiết đầy đủ về API AutoSend, bao gồm tất cả các tham số và mã lỗi có sẵn, hãy truy cập [Tài liệu API AutoSend](https://docs.autosend.com/api-reference/mails/send).

## Khắc Phục Sự Cố

<AccordionGroup>
  <Accordion title="Emails not being sent">
    * Xác minh Khóa API đúng và đang hoạt động
    * Kiểm tra xem miền gửi có được xác minh trong AutoSend không
    * Đảm bảo địa chỉ email người nhận hợp lệ
    * Xem xét giới hạn và hạn mức gửi của AutoSend
    * Xác minh URL điểm cuối API đúng: `https://api.autosend.com/v1/mails/send`
    * Kiểm tra xem các tham số bắt buộc đã có trong payload chưa
  </Accordion>

  <Accordion title="Transformation errors">
    * Xác thực cấu trúc JSON khớp định dạng API AutoSend
    * Kiểm tra xem tất cả trường bắt buộc đã có (`to`, `from`, `templateId` hoặc `html`/`text`)
    * Đảm bảo địa chỉ email được định dạng đúng
    * Xác minh `templateId` hợp lệ nếu sử dụng mẫu
    * Kiểm tra rằng các khóa `dynamicData` khớp với biến trong mẫu của bạn
  </Accordion>

  <Accordion title="Template issues">
    * Xác minh ID mẫu của bạn đúng và đang hoạt động trong AutoSend
    * Đảm bảo các khóa `dynamicData` khớp với các biến được sử dụng trong mẫu
    * Kiểm tra rằng tất cả biến mẫu bắt buộc đã được cung cấp
    * Thử nghiệm mẫu của bạn độc lập trong bảng điều khiển AutoSend
  </Accordion>
</AccordionGroup>
