如何将 JSON 部分标签添加到 SendGrid 联系人,以便在动态电子邮件中使用 handlebars 模板语言进行解析

How to add JSON section tags to a SendGrid contact for parsing with handlebars templating language in dynamic email

问题简要概述

我正在尝试将 JSON 数据存储在我的 SendGrid 联系人中,以便在 SendGrid GUI 中设计的动态电子邮件模板中使用。

首先,在 SendGrid 电子邮件生成器中,我可以在代码块中编写以下代码:

这是该代码块中的 handlebar 代码...

<ol>
    {{#each user.accounts}}
        {{#if this.isPending}}
            <li>
                {{this.name}} is <strong>pending activation.</strong>
            </li>
        {{else}}
            <li>
                {{this.name}} is <strong>active.</strong>
            </li>
        {{/if}}
    {{/each}}
</ol>

当我预览该代码并添加一些测试数据时,我得到以下信息: 这是该代码块中的 JSON 代码,格式更好一些...

{
    "user": {
        "accounts": [
            {
                "name": "Checking",
                "isPending": false
            },
            {
                "name": "401k",
                "isPending": true
            },          
            {
                "name": "Savings",
                "isPending": true
            }
        ]
    }
}

问题

到目前为止,上面提到的一切都是完美的 - 这正是我想要的...根据电子邮件将发送给每个联系人的动态内容填充电子邮件数据。这是我遇到障碍的地方,发送真实电子邮件时来自联系人的 JSON 测试数据在哪里?以及如何使用 API?

使用 JSON 数据填充联系人

据我所知,在通过 API(或通过 GUI,就此而言)创建新联系人时,没有选项可以将此自定义 JSON 数据添加到新联系人(see API docs here)

当我设置此电子邮件以通过 SendGrid 自动化流程发送给我的 SendGrid 联系人时,有谁知道如何填充我的代码块使用的 JSON 来显示 pending/activated 帐户特定于每个用户的数据?

谢谢,非常感谢您对此提供的任何帮助!

我认为 JSON 数据实际上只有在 using the API to send an email with a template 时才有用。然后,您将 JSON 数据作为 dynamic_template_data 提供,并填充到电子邮件模板中。

处理自动化时,您需要从联系人记录本身提取数据。您可以在模板设计器的 标签 部分获取联系人的数据。

联系人中已有许多字段,例如 first_namelast_nameemailaddress_line_1 等。您还可以 add Custom Fields which give you further fields you can use on your contacts. Custom Fields can be created by adding new columns on an CSV upload of your contacts, by creating them in the SendGrid admin or by creating them via API.

如果您使用 API 创建或更新您的联系人,您可以在 API 请求中传递一个 custom_fields 的对象作为联系人记录的一部分。例如:

const data = {
  "contacts": [
    {
      "email": "ryan39@lee-young.com",
      "custom_fields": {
        "w1": "2002-10-02T15:00:00Z",
        "w33": 9.5,
        "e2": "Coffee is a beverage that puts one to sleep when not drank."
      }
    }
  ]
};

请注意,当您通过 API create/update 时要在联系人上设置自定义字段,您需要使用自定义字段 ID 作为 custom_fields 对象中的键(如上例,使用了 ID“w1”、“w33”、“e2”)。如果您需要知道这些 ID,可以 use the API to get all field definitions.

添加自定义字段后,它们也将在设计编辑器中作为标签提供,然后您就可以在电子邮件设计中使用它们。

唯一的问题是,我注意到您在示例中使用了一组帐户。如果您需要一组任意数据,那么我认为您无法通过联系数据和自动化来实现。您可以为支票账户、401k 和储蓄设置单独的自定义字段。但是您不能在自定义字段中包含任意数据。如果您确实需要任意数据,那么自动化可能不适合您,您应该使用发送邮件 API 并提供动态模板数据来发送电子邮件。