如何使用SendinBlue API触发Automation工作流(CSV上传场景)
Sendinblue 自定义CSV数据触发自动化工作流解决方案
Sendinblue没有单独的Automation触发接口,你要的功能本质是通过自定义事件API触发工作流,操作步骤如下:
步骤1:后台修改工作流触发规则
- 进入Sendinblue后台「Automation」板块,打开你已配置的目标工作流
- 把原有「表单提交」触发条件替换为自定义事件触发,给事件设置唯一标识名,比如
csv_user_import - 配置事件需要携带的字段,把你CSV里读取、工作流if-else分支要用到的判断字段全部添加,比如用户邮箱
EMAIL、订单金额ORDER_AMOUNT等
步骤2:PHP侧调用事件API推送CSV数据
你已经写完CSV读取逻辑的前提下,直接调用Sendinblue官方事件接口推送每行数据即可,先通过composer安装官方PHP SDK:composer require sendinblue/api-v3-sdk
读取CSV后循环调用接口的示例代码:
<?php require_once(__DIR__ . '/vendor/autoload.php'); // 配置API密钥,密钥在Sendinblue后台「API & SMTP」板块获取 $config = SendinBlue\Client\Configuration::getDefaultConfiguration()->setApiKey('api-key', '你的Sendinblue API密钥'); $apiInstance = new SendinBlue\Client\Api\EventsApi( new GuzzleHttp\Client(), $config ); // 此处替换为你自己读取CSV单行数据的逻辑 $csv_line_data = [ 'email' => 'test@example.com', 'firstname' => '张三', 'order_amount' => 199 ]; // 构造触发事件参数 $event = new \SendinBlue\Client\Model\CreateEvent(); $event['eventName'] = 'csv_user_import'; // 和后台配置的事件标识名完全一致,大小写敏感 $event['email'] = $csv_line_data['email']; // 必须传用户邮箱作为唯一身份标识 // 事件属性字段,工作流判断需要的参数全部放在这里 $event['properties'] = [ 'FIRSTNAME' => $csv_line_data['firstname'], 'ORDER_AMOUNT' => $csv_line_data['order_amount'] ]; try { $apiInstance->createEvent($event); // 触发成功的自定义逻辑,比如记录成功行数 } catch (Exception $e) { // 触发失败的自定义逻辑,比如记录失败的CSV行号和错误原因 echo '触发错误: ', $e->getMessage(), PHP_EOL; } ?>
排查注意事项
- 事件标识名必须和后台配置完全一致,大小写不能错
- 工作流if-else分支用到的判断字段必须全部放在
properties参数里,否则分支判断会失效 - 触发后工作流未执行可以直接去Sendinblue后台「Automation」-「日志」板块查看事件触发记录,排查字段缺失、权限问题
内容的提问来源于stack exchange,提问作者RawalD
相关产品推荐
相关产品推荐

