如何通过Sendinblue API为双选入联系人设置分类类型属性?
如何在Sendinblue Double Opt-in (DOI) API中正确设置分类(Category)类型的联系人属性
问题背景
已能正常运行Sendinblue DOI创建联系人的示例代码,但设置GENDER这类带预定义值的分类类型属性时,多种写法均无法生效。
正确解决方案
对于DOI接口的attributes字段,分类类型属性直接使用预定义的标签值(字符串形式)传入即可,但需满足两个前提:
- 你的Sendinblue账户中已创建
GENDER分类属性,且预定义标签包含male/female/diverse; - 传入的字符串必须与后台预定义标签完全一致(大小写敏感)。
修正后的完整代码示例:
const SibApiV3Sdk = require('sib-api-v3-sdk'); let defaultClient = SibApiV3Sdk.ApiClient.instance; let apiKey = defaultClient.authentications['api-key']; apiKey.apiKey = 'YOUR API KEY'; let apiInstance = new SibApiV3Sdk.ContactsApi(); let createDoiContact = new SibApiV3Sdk.CreateDoiContact(); createDoiContact.email = "example@example.com"; // 正确设置分类类型属性 createDoiContact.attributes = {"FNAME":"John","LNAME":"Doe", "GENDER": "male"}; createDoiContact.includeListIds = [2]; createDoiContact.templateId = 1; createDoiContact.redirectionUrl = "https://yourdomain.com/redirect"; apiInstance.createDoiContact(createDoiContact).then(function() { console.log('API called successfully.'); }, function(error) { // 打印完整错误信息用于排查 console.error('Error details:', error.response.data); });
常见失败原因说明
- 数组格式不适用:
[{"label": "male", value: 1}]是更新联系人接口的格式,DOI创建接口不支持; - 嵌套对象格式错误:
{"category": "male"}不符合DOI接口的扁平键值对要求; - 标签不匹配:传入的字符串与后台预定义标签不一致(如大小写错误);
- 属性未配置:账户中未创建对应分类属性,或属性类型不是「分类」。
排查步骤
- 登录Sendinblue后台,进入「联系人 > 属性」,确认目标分类属性存在、类型正确且包含目标标签;
- 调用API时打印完整错误响应(
error.response.data),根据提示定位具体问题。
内容的提问来源于stack exchange,提问作者user7996789
相关产品推荐
相关产品推荐

