Journal 8 Infobip API

People人员管理

这里我们使用的主要是它提供的People接口,通过增改用户信息的方式来触发Flow中的自动事务给用户发邮件。
一个people对象主要有以下结构:
{ "firstName": "Newha", "lastName": "Smith", "contactInformation": { "email": [ { "address": "soxesom787@snowlash.com" } ], "phone": [ { "number": "41793026737" } ] }, "tags": [ "New User", ], "externalId": "1243", "customAttributes": { "event": "levelup" } }
其中必填的identifier一共有三个:firstName, email/phone, externalId. externalId可以直接使用我们系统中的userId,这个也是后续索引用户使用的key。其中只有firstName是可以重复的。
phone的格式我一直没有搞太明白,至少上面的那个样例数据是可以使用的。

变量

主要的变量信息储存在tag以及customAttributes中,简单来看,tag是一个数组,customAttribute是一个字典,到时候可以按需使用。
当前定义的一些tag和变量主要包括:
"New User" "login" "logout" "levelup" "referral" "deposit" "Freespin claimed" "Bonus Claimed"
所有的tag和custom attribute属性不需要显式定义,只需在调用接口时带上相应的变量,就能在平台上看到它们了。如果想先在平台上进行修改,则可以先用脚本添加一遍(或许有在平台上添加的方法,但是我目前只找到了管理tag的地方 people→tags)。
以上就是我习惯用的可以直接调用api的脚本,请注意,同样的identifier只能被使用一次,update的时候也要注意对应相应的用户信息才行。在调用update的时候,请检查链接(Ln 60, Col 51)中填写正确的externalId。
{ event referrals currentLevel currentLevelImage currentCashback currentTotalWager currentLevelUpBonus currentMaxiWheel currentMaxiScratch currentRakeback currentMaxiVip nextLevelImage nextCashback nextTotalWager nextLevelUpBonus nextMaxiWheel nextMaxiScratch nextRakeback nextMaxiVip }
 
神奇的事情是:在添加完custom attributes之后,就可以随心所欲地在平台上使用这些变量了(即使把刚才call api添加的人员删除也没关系)。

使用流程

开发流程十分简单,但是方便起见,顺序比较重要。
  1. 先设计好要使用的变量。
  1. 如果是新变量,使用脚本或者其它方法call API让它添加在infobip平台上。
  1. 在Moments→Templates→Content Email Templates(位置见末尾的图片)设计好邮件模板,并填入指定的变量。
  1. 在Moments→Templates→Flow Templates设计发送邮件的flow。
  1. 在agg service中添加订阅消息并发送API请求的代码。
    1. 并在api-client/common/infobip 中添加字段或者类以匹配新出现的变量。
账号可以找leo开一个,如果临时用也可以直接使用:

封装的一些方法

Common

封装了add、update、partial update person,其中update会完全替代已有的所有信息,而partial只会增量添加。请注意,在设计Flow时,监听用户信息变动只会被修改了的变量触发。传入参数是infobipUser,其中customattribute可以是任意数据类,会被自动转成dictionary。

Api Client

Infobip User:
创建一个新user的时候,请使用(id, username, email)来进行初始化。

Agg

请注意,InfobipApiController仅为内部测试用,当所有功能测试完毕之后应当删除。实际事件的触发应该是通过订阅mq中的events。
设置变量value的样例代码:
table.setEvent(levelNumber.toString() + LocalDateTime.now());
因为flow只能感知到被改变了的变量,所以使用时间戳来做区分。

邮件、flow的模板设计

现在使用的入口均为change in people profile,触发条件可以是event starts with “关键字”,这样能配合刚才加的时间戳被触发。有些地方尚且用的是tag(tag contains “关键字”),暂时能满足需求,如果后续要改变,直接修改相应的地方就行了。
在发邮件的时候,发件人可以手动输入no-reply@maxibet.com。
在修改已有flow的时候,点进去再点击右下角的edit flow即可。

添加变量的方法

输入“{”就会自动跳出来所有变量的列表,注意,在编辑邮件的时候,花括号前如果没有空格是不会弹出的。
notion image

页面截图

邮件
notion image
flow
notion image
在下图中,绿色的是flow入口,右边的框定义了条件,决定进行哪些动作。例如:event starts with referral,说明当有用户的custom attribute以referral开头时,满足所需条件。
notion image
 

其它

文本中的超链接还没有加入匹配的网站(加了一部分)!
在正式部署前一定要加上。
邮件中使用的绿色字号是6FBE39
在测试时,如果遇到没有权限的情况,尝试带token调用接口,如果还不行可以加权限试一试。
现在还差bonus事件的触发,flow已经定义好了。只需要在领取freespin和bonus的时候从agg发送一条消息(参考login、deposit、levelup等)就ok。

关于邮件模板

修改完模板之后是不会同步到flow上的!需要点击使用到它们的flow,点击右下角的edit flow,在邮件模板的地方点Content*旁边的的小x然后重新选取一遍才有用。
notion image
notion image