@tiledesk/tiledesk-whatsapp-connector 0.1.73 → 0.1.74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +92 -143
- package/package.json +1 -1
- package/routes/api.js +7 -2
package/index.js
CHANGED
|
@@ -502,19 +502,21 @@ router.get("/direct/tiledesk", async (req, res) => {
|
|
|
502
502
|
.then((response) => {
|
|
503
503
|
winston.verbose(
|
|
504
504
|
"(wab) Message sent to WhatsApp! " +
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
505
|
+
response.status +
|
|
506
|
+
" " +
|
|
507
|
+
response.statusText
|
|
508
508
|
);
|
|
509
509
|
})
|
|
510
510
|
.catch((err) => {
|
|
511
|
-
winston.error("(wab) error send message: ", err);
|
|
511
|
+
//winston.error("(wab) error send message: ", err);
|
|
512
512
|
return res.status(400).send({ success: false, error: err });
|
|
513
513
|
});
|
|
514
514
|
|
|
515
515
|
res.status(200).send("Message sent");
|
|
516
516
|
});
|
|
517
517
|
|
|
518
|
+
|
|
519
|
+
// Can be deleted?
|
|
518
520
|
router.post("/tiledesk/broadcast", async (req, res) => {
|
|
519
521
|
winston.verbose("(wab) Message received from Tiledesk (Broadcast)");
|
|
520
522
|
|
|
@@ -526,22 +528,18 @@ router.post("/tiledesk/broadcast", async (req, res) => {
|
|
|
526
528
|
let settings = await db.get(CONTENT_KEY);
|
|
527
529
|
|
|
528
530
|
if (!settings) {
|
|
529
|
-
return res
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
error: "WhatsApp is not installed for the project_id: " + project_id,
|
|
534
|
-
});
|
|
531
|
+
return res.status(400).send({
|
|
532
|
+
success: false,
|
|
533
|
+
error: "WhatsApp is not installed for the project_id: " + project_id,
|
|
534
|
+
});
|
|
535
535
|
}
|
|
536
536
|
|
|
537
537
|
if (!settings.business_account_id) {
|
|
538
|
-
return res
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
"Missing parameter 'WhatsApp Business Account ID'. Please update your app.",
|
|
544
|
-
});
|
|
538
|
+
return res.status(400).send({
|
|
539
|
+
success: false,
|
|
540
|
+
error:
|
|
541
|
+
"Missing parameter 'WhatsApp Business Account ID'. Please update your app.",
|
|
542
|
+
});
|
|
545
543
|
}
|
|
546
544
|
|
|
547
545
|
let receiver_list = req.body.receiver_list;
|
|
@@ -599,9 +597,9 @@ router.post("/tiledesk/broadcast", async (req, res) => {
|
|
|
599
597
|
.then((response) => {
|
|
600
598
|
winston.verbose(
|
|
601
599
|
"(wab) Message sent to WhatsApp! " +
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
600
|
+
response.status +
|
|
601
|
+
" " +
|
|
602
|
+
response.statusText
|
|
605
603
|
);
|
|
606
604
|
messages_sent += 1;
|
|
607
605
|
i += 1;
|
|
@@ -609,14 +607,12 @@ router.post("/tiledesk/broadcast", async (req, res) => {
|
|
|
609
607
|
execute(receiver_list[i]);
|
|
610
608
|
} else {
|
|
611
609
|
winston.debug("(wab) End of list");
|
|
612
|
-
return res
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
errors: errors,
|
|
619
|
-
});
|
|
610
|
+
return res.status(200).send({
|
|
611
|
+
success: true,
|
|
612
|
+
message: "Broadcast terminated",
|
|
613
|
+
messages_sent: messages_sent,
|
|
614
|
+
errors: errors,
|
|
615
|
+
});
|
|
620
616
|
}
|
|
621
617
|
})
|
|
622
618
|
.catch((err) => {
|
|
@@ -632,14 +628,12 @@ router.post("/tiledesk/broadcast", async (req, res) => {
|
|
|
632
628
|
execute(receiver_list[i]);
|
|
633
629
|
} else {
|
|
634
630
|
winston.debug("(wab) End of list");
|
|
635
|
-
return res
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
errors: errors,
|
|
642
|
-
});
|
|
631
|
+
return res.status(200).send({
|
|
632
|
+
success: true,
|
|
633
|
+
message: "Broadcast terminated",
|
|
634
|
+
messages_sent: messages_sent,
|
|
635
|
+
errors: errors,
|
|
636
|
+
});
|
|
643
637
|
}
|
|
644
638
|
});
|
|
645
639
|
}
|
|
@@ -647,84 +641,14 @@ router.post("/tiledesk/broadcast", async (req, res) => {
|
|
|
647
641
|
}
|
|
648
642
|
});
|
|
649
643
|
|
|
650
|
-
/*
|
|
651
|
-
router.post('/tiledesk/broadcast2', async (req, res) => {
|
|
652
|
-
|
|
653
|
-
winston.verbose("(wab) Message received from Tiledesk (Broadcast)");
|
|
654
|
-
|
|
655
|
-
let tiledeskChannelMessage = req.body.payload;
|
|
656
|
-
winston.verbose("(wab) tiledeskChannelMessage: ", tiledeskChannelMessage)
|
|
657
|
-
let project_id = req.body.payload.id_project;
|
|
658
|
-
|
|
659
|
-
let CONTENT_KEY = "whatsapp-" + project_id;
|
|
660
|
-
let settings = await db.get(CONTENT_KEY);
|
|
661
|
-
|
|
662
|
-
if (!settings) {
|
|
663
|
-
return res.status(400).send({ success: false, error: "WhatsApp is not installed for the project_id: " + project_id });
|
|
664
|
-
}
|
|
665
|
-
|
|
666
|
-
let receiver_list = req.body.receiver_list;
|
|
667
|
-
let phone_number_id = req.body.phone_number_id;
|
|
668
|
-
|
|
669
|
-
if (!tiledeskChannelMessage.attributes.attachment.template) {
|
|
670
|
-
return res.status(400).send({ success: false, error: "Message must contain a template." })
|
|
671
|
-
}
|
|
672
|
-
|
|
673
|
-
const tlr = new TiledeskWhatsappTranslator();
|
|
674
|
-
const twClient = new TiledeskWhatsapp({ token: settings.wab_token, GRAPH_URL: GRAPH_URL, API_URL: API_URL, BASE_FILE_URL: BASE_FILE_URL });
|
|
675
|
-
|
|
676
|
-
let messages_sent = 0;
|
|
677
|
-
let errors = [];
|
|
678
|
-
let error_count = 0;
|
|
679
|
-
|
|
680
|
-
if (receiver_list) {
|
|
681
|
-
let i = 0;
|
|
682
|
-
async function execute(whatsapp_receiver) {
|
|
683
|
-
|
|
684
|
-
let customTiledeskJsonMessage = await tlr.sanitizeTiledeskMessage(tiledeskChannelMessage, whatsapp_receiver)
|
|
685
|
-
winston.info("customTiledeskJsonMessage: ", customTiledeskJsonMessage)
|
|
686
|
-
|
|
687
|
-
let whatsappJsonMessage = await tlr.toWhatsapp(customTiledeskJsonMessage, whatsapp_receiver.phone_number);
|
|
688
|
-
winston.verbose("(wab) message created for receiver: " + whatsapp_receiver.phone_number);
|
|
689
|
-
winston.verbose("(wab) whatsappJsonMessage", whatsappJsonMessage);
|
|
690
|
-
|
|
691
|
-
//winston.debug("(wab) End of list")
|
|
692
|
-
//return res.sendStatus(200);
|
|
693
|
-
|
|
694
|
-
await twClient.sendMessage(phone_number_id, whatsappJsonMessage).then((response) => {
|
|
695
|
-
winston.verbose("(wab) Message sent to WhatsApp! " + response.status + " " + response.statusText);
|
|
696
|
-
messages_sent += 1;
|
|
697
|
-
i += 1;
|
|
698
|
-
if (i < receiver_list.length) {
|
|
699
|
-
execute(receiver_list[i])
|
|
700
|
-
} else {
|
|
701
|
-
return res.status(200).send({ success: true, message: "Broadcast terminated", messages_sent: messages_sent, errors: errors });
|
|
702
|
-
winston.debug("(wab) End of list")
|
|
703
|
-
}
|
|
704
|
-
}).catch((err) => {
|
|
705
|
-
winston.error("(wab) error send message: " + err.response.data.error.message);
|
|
706
|
-
errors.push({ receiver: whatsapp_receiver.phone_number, error: err.response.data.error.message });
|
|
707
|
-
i += 1;
|
|
708
|
-
if (i < receiver_list.length) {
|
|
709
|
-
execute(receiver_list[i])
|
|
710
|
-
} else {
|
|
711
|
-
winston.debug("(wab) End of list")
|
|
712
|
-
return res.status(200).send({ success: true, message: "Broadcast terminated", messages_sent: messages_sent, errors: errors });
|
|
713
|
-
}
|
|
714
|
-
})
|
|
715
|
-
}
|
|
716
|
-
execute(receiver_list[0]);
|
|
717
|
-
}
|
|
718
|
-
})
|
|
719
|
-
*/
|
|
720
|
-
|
|
721
644
|
router.post("/tiledesk", async (req, res) => {
|
|
722
645
|
winston.verbose("(wab) Message received from Tiledesk");
|
|
646
|
+
console.log("req.body: ", JSON.stringify(req.body));
|
|
723
647
|
|
|
724
648
|
var tiledeskChannelMessage = req.body.payload;
|
|
725
649
|
winston.debug("(wab) tiledeskChannelMessage: ", tiledeskChannelMessage);
|
|
726
650
|
var project_id = req.body.payload.id_project;
|
|
727
|
-
|
|
651
|
+
|
|
728
652
|
// get settings from mongo
|
|
729
653
|
let CONTENT_KEY = "whatsapp-" + project_id;
|
|
730
654
|
let settings = await db.get(CONTENT_KEY);
|
|
@@ -776,7 +700,9 @@ router.post("/tiledesk", async (req, res) => {
|
|
|
776
700
|
}
|
|
777
701
|
|
|
778
702
|
if (!phone_number_id) {
|
|
779
|
-
return res
|
|
703
|
+
return res
|
|
704
|
+
.status(400)
|
|
705
|
+
.send({ success: false, message: "Phone number id undefined" });
|
|
780
706
|
}
|
|
781
707
|
|
|
782
708
|
/*
|
|
@@ -861,7 +787,12 @@ router.post("/tiledesk", async (req, res) => {
|
|
|
861
787
|
twClient
|
|
862
788
|
.sendMessage(phone_number_id, whatsappJsonMessage)
|
|
863
789
|
.then((response) => {
|
|
864
|
-
winston.verbose(
|
|
790
|
+
winston.verbose(
|
|
791
|
+
"(wab) Message sent to WhatsApp! " +
|
|
792
|
+
response.status +
|
|
793
|
+
" " +
|
|
794
|
+
response.statusText
|
|
795
|
+
);
|
|
865
796
|
i += 1;
|
|
866
797
|
if (i < commands.length) {
|
|
867
798
|
execute(commands[i]);
|
|
@@ -892,7 +823,6 @@ router.post("/tiledesk", async (req, res) => {
|
|
|
892
823
|
}
|
|
893
824
|
}
|
|
894
825
|
execute(commands[0]);
|
|
895
|
-
|
|
896
826
|
} else if (tiledeskChannelMessage.text || tiledeskChannelMessage.metadata) {
|
|
897
827
|
let whatsappJsonMessage = await tlr.toWhatsapp(
|
|
898
828
|
tiledeskChannelMessage,
|
|
@@ -911,22 +841,38 @@ router.post("/tiledesk", async (req, res) => {
|
|
|
911
841
|
twClient
|
|
912
842
|
.sendMessage(phone_number_id, whatsappJsonMessage)
|
|
913
843
|
.then((response) => {
|
|
914
|
-
winston.verbose(
|
|
844
|
+
winston.verbose(
|
|
845
|
+
"(wab) Message sent to WhatsApp! " +
|
|
846
|
+
response.status +
|
|
847
|
+
" " +
|
|
848
|
+
response.statusText
|
|
849
|
+
);
|
|
915
850
|
return res.sendStatus(200);
|
|
916
851
|
})
|
|
917
852
|
.catch((err) => {
|
|
918
|
-
winston.error("(wab) error send message: ", err);
|
|
919
|
-
return res
|
|
853
|
+
//winston.error("(wab) error send message: ", err);
|
|
854
|
+
return res
|
|
855
|
+
.status(400)
|
|
856
|
+
.send({ success: false, error: "Template not existing" });
|
|
920
857
|
});
|
|
921
858
|
} else {
|
|
922
859
|
winston.error("(wab) Whatsapp Json Message is undefined!");
|
|
923
|
-
return res
|
|
860
|
+
return res
|
|
861
|
+
.status(400)
|
|
862
|
+
.send({
|
|
863
|
+
success: false,
|
|
864
|
+
error: "An error occurred during message translation",
|
|
865
|
+
});
|
|
924
866
|
}
|
|
925
867
|
} else {
|
|
926
868
|
winston.debug("(wab) no command, no text --> skip");
|
|
927
|
-
return res
|
|
869
|
+
return res
|
|
870
|
+
.sendStatus(400)
|
|
871
|
+
.send({
|
|
872
|
+
success: false,
|
|
873
|
+
error: "No command or text specified. Skip message.",
|
|
874
|
+
});
|
|
928
875
|
}
|
|
929
|
-
|
|
930
876
|
});
|
|
931
877
|
|
|
932
878
|
// Endpoint for Whatsapp Business
|
|
@@ -935,18 +881,17 @@ router.post("/webhook/:project_id", async (req, res) => {
|
|
|
935
881
|
// Parse the request body from the POST
|
|
936
882
|
let project_id = req.params.project_id;
|
|
937
883
|
winston.verbose("(wab) Message received from WhatsApp");
|
|
938
|
-
|
|
884
|
+
|
|
939
885
|
// Check the Incoming webhook message
|
|
940
886
|
// info on WhatsApp text message payload: https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/payload-examples#text-messages
|
|
941
887
|
if (req.body.object) {
|
|
942
|
-
|
|
943
888
|
let CONTENT_KEY = "whatsapp-" + project_id;
|
|
944
889
|
let settings = await db.get(CONTENT_KEY);
|
|
945
890
|
winston.debug("(wab) settings: ", settings);
|
|
946
|
-
|
|
891
|
+
|
|
947
892
|
if (!settings) {
|
|
948
893
|
winston.warn("(wab) settings not found for project_id: " + project_id);
|
|
949
|
-
winston.warn("(wab) settings not found for request: ", req.body)
|
|
894
|
+
winston.warn("(wab) settings not found for request: ", req.body);
|
|
950
895
|
return res.sendStatus(200);
|
|
951
896
|
}
|
|
952
897
|
|
|
@@ -972,9 +917,11 @@ router.post("/webhook/:project_id", async (req, res) => {
|
|
|
972
917
|
winston.verbose("(wab) Skip system message");
|
|
973
918
|
return res.sendStatus(200);
|
|
974
919
|
}
|
|
975
|
-
|
|
920
|
+
|
|
976
921
|
if (req.body.entry[0].id !== settings.business_account_id) {
|
|
977
|
-
winston.verbose(
|
|
922
|
+
winston.verbose(
|
|
923
|
+
"(wab) Skip message with waba that not belong to Tiledesk project id"
|
|
924
|
+
);
|
|
978
925
|
return res.sendStatus(200);
|
|
979
926
|
}
|
|
980
927
|
|
|
@@ -1038,7 +985,7 @@ router.post("/webhook/:project_id", async (req, res) => {
|
|
|
1038
985
|
lastname: " ",
|
|
1039
986
|
},
|
|
1040
987
|
};
|
|
1041
|
-
|
|
988
|
+
|
|
1042
989
|
let tiledeskJsonMessage;
|
|
1043
990
|
|
|
1044
991
|
/*
|
|
@@ -1147,8 +1094,8 @@ router.post("/webhook/:project_id", async (req, res) => {
|
|
|
1147
1094
|
if (!filename) {
|
|
1148
1095
|
winston.debug(
|
|
1149
1096
|
"(wab) Unable to download media with id " +
|
|
1150
|
-
|
|
1151
|
-
|
|
1097
|
+
media.id +
|
|
1098
|
+
". Message not sent."
|
|
1152
1099
|
);
|
|
1153
1100
|
return res
|
|
1154
1101
|
.status(500)
|
|
@@ -1173,8 +1120,8 @@ router.post("/webhook/:project_id", async (req, res) => {
|
|
|
1173
1120
|
if (!filename) {
|
|
1174
1121
|
winston.debug(
|
|
1175
1122
|
"(wab) Unable to download media with id " +
|
|
1176
|
-
|
|
1177
|
-
|
|
1123
|
+
media.id +
|
|
1124
|
+
". Message not sent."
|
|
1178
1125
|
);
|
|
1179
1126
|
return res
|
|
1180
1127
|
.status(500)
|
|
@@ -1199,8 +1146,8 @@ router.post("/webhook/:project_id", async (req, res) => {
|
|
|
1199
1146
|
if (!filename) {
|
|
1200
1147
|
winston.debug(
|
|
1201
1148
|
"(wab) Unable to download media with id " +
|
|
1202
|
-
|
|
1203
|
-
|
|
1149
|
+
media.id +
|
|
1150
|
+
". Message not sent."
|
|
1204
1151
|
);
|
|
1205
1152
|
return res
|
|
1206
1153
|
.status(500)
|
|
@@ -1225,8 +1172,8 @@ router.post("/webhook/:project_id", async (req, res) => {
|
|
|
1225
1172
|
if (!filename) {
|
|
1226
1173
|
winston.debug(
|
|
1227
1174
|
"(wab) Unable to download media with id " +
|
|
1228
|
-
|
|
1229
|
-
|
|
1175
|
+
media.id +
|
|
1176
|
+
". Message not sent."
|
|
1230
1177
|
);
|
|
1231
1178
|
return res
|
|
1232
1179
|
.status(500)
|
|
@@ -1374,11 +1321,9 @@ router.post("/newtest", async (req, res) => {
|
|
|
1374
1321
|
let key = "bottest:" + short_uid;
|
|
1375
1322
|
|
|
1376
1323
|
if (!redis_client) {
|
|
1377
|
-
return res
|
|
1378
|
-
.
|
|
1379
|
-
|
|
1380
|
-
message: "Test it out on Whatsapp not available. Redis not ready.",
|
|
1381
|
-
});
|
|
1324
|
+
return res.status(500).send({
|
|
1325
|
+
message: "Test it out on Whatsapp not available. Redis not ready.",
|
|
1326
|
+
});
|
|
1382
1327
|
}
|
|
1383
1328
|
|
|
1384
1329
|
await redis_client.set(key, JSON.stringify(info), "EX", 604800);
|
|
@@ -1452,6 +1397,7 @@ router.get("/templates/detail", async (req, res) => {
|
|
|
1452
1397
|
}
|
|
1453
1398
|
});
|
|
1454
1399
|
|
|
1400
|
+
/*
|
|
1455
1401
|
router.get("/templates/:project_id", async (req, res) => {
|
|
1456
1402
|
winston.verbose("(wab) /templates");
|
|
1457
1403
|
|
|
@@ -1493,6 +1439,7 @@ router.get("/templates/:project_id", async (req, res) => {
|
|
|
1493
1439
|
});
|
|
1494
1440
|
}
|
|
1495
1441
|
});
|
|
1442
|
+
*/
|
|
1496
1443
|
|
|
1497
1444
|
/*
|
|
1498
1445
|
router.get("/ext/templates/:project_id", async (req, res) => {
|
|
@@ -1613,17 +1560,19 @@ async function startApp(settings, callback) {
|
|
|
1613
1560
|
}
|
|
1614
1561
|
|
|
1615
1562
|
if (!settings.JOB_TOPIC_EXCHANGE) {
|
|
1616
|
-
winston.info(
|
|
1563
|
+
winston.info(
|
|
1564
|
+
"(wab) JOB_TOPIC_EXCHANGE should be present. Using default value"
|
|
1565
|
+
);
|
|
1617
1566
|
JOB_TOPIC_EXCHANGE = "tiledesk-whatsapp";
|
|
1618
1567
|
} else {
|
|
1619
1568
|
JOB_TOPIC_EXCHANGE = settings.JOB_TOPIC_EXCHANGE;
|
|
1620
1569
|
winston.info("(wab) JOB_TOPIC_EXCHANGE is present");
|
|
1621
1570
|
}
|
|
1622
|
-
|
|
1571
|
+
|
|
1623
1572
|
if (settings.BRAND_NAME) {
|
|
1624
|
-
BRAND_NAME = settings.BRAND_NAME
|
|
1573
|
+
BRAND_NAME = settings.BRAND_NAME;
|
|
1625
1574
|
}
|
|
1626
|
-
|
|
1575
|
+
|
|
1627
1576
|
// // For test only
|
|
1628
1577
|
// if (settings.LOG_MONGODB_URL) {
|
|
1629
1578
|
// /**
|
|
@@ -1661,11 +1610,11 @@ async function startApp(settings, callback) {
|
|
|
1661
1610
|
if (callback) {
|
|
1662
1611
|
callback(null);
|
|
1663
1612
|
}
|
|
1664
|
-
})
|
|
1613
|
+
});
|
|
1665
1614
|
} else {
|
|
1666
1615
|
db.connect(settings.MONGODB_URL, () => {
|
|
1667
1616
|
winston.info("(wab) KVBaseMongo successfully connected.");
|
|
1668
|
-
|
|
1617
|
+
|
|
1669
1618
|
if (callback) {
|
|
1670
1619
|
callback(null);
|
|
1671
1620
|
}
|
package/package.json
CHANGED
package/routes/api.js
CHANGED
|
@@ -13,6 +13,7 @@ let API_URL = null;
|
|
|
13
13
|
let GRAPH_URL = null;
|
|
14
14
|
let BASE_FILE_URL = null;
|
|
15
15
|
let AMQP_MANAGER_URL = null;
|
|
16
|
+
let JOB_TOPIC_EXCHANGE = null;
|
|
16
17
|
|
|
17
18
|
router.get('/', async (req, res) => {
|
|
18
19
|
res.status(200).send({ message: "API route works"})
|
|
@@ -78,8 +79,9 @@ router.post('/customer/io', async (req, res) => {
|
|
|
78
79
|
})
|
|
79
80
|
|
|
80
81
|
} else {
|
|
82
|
+
winston.error("(wab) whatsappJsonMessage is undefined");
|
|
81
83
|
res.status(400).send({ success: false, error: "whatsappJsonMessage is undefined" });
|
|
82
|
-
|
|
84
|
+
|
|
83
85
|
}
|
|
84
86
|
})
|
|
85
87
|
|
|
@@ -136,6 +138,7 @@ router.post('/tiledesk/broadcast', async (req, res) => {
|
|
|
136
138
|
let phone_number_id = body.phone_number_id;
|
|
137
139
|
let template = body.template;
|
|
138
140
|
let transaction_id = body.transaction_id;
|
|
141
|
+
let broadcast = body.broadcast;
|
|
139
142
|
|
|
140
143
|
if (!transaction_id) {
|
|
141
144
|
transaction_id = "tiledesk-broadcast-" + Date.now();
|
|
@@ -144,6 +147,7 @@ router.post('/tiledesk/broadcast', async (req, res) => {
|
|
|
144
147
|
let CONTENT_KEY = "whatsapp-" + project_id;
|
|
145
148
|
let settings = await db.get(CONTENT_KEY);
|
|
146
149
|
|
|
150
|
+
console.log("Settings: ", settings);
|
|
147
151
|
if (!settings) {
|
|
148
152
|
return res.status(400).send({ success: false, error: "WhatsApp is not installed for the project_id: " + project_id });
|
|
149
153
|
}
|
|
@@ -159,7 +163,8 @@ router.post('/tiledesk/broadcast', async (req, res) => {
|
|
|
159
163
|
phone_number_id: phone_number_id,
|
|
160
164
|
transaction_id: transaction_id,
|
|
161
165
|
template: template,
|
|
162
|
-
settings: settings
|
|
166
|
+
settings: settings,
|
|
167
|
+
broadcast: broadcast
|
|
163
168
|
};
|
|
164
169
|
|
|
165
170
|
winston.debug('(wab) data_To_scheduler: ', data_To_scheduler);
|