Diffusion Multi Canal

Api : création d’une diffusion

10 minutes de lecture imprimer

DMC met à votre disposition un certain nombres de fonctions pour créer et envoyer une diffusion via les API (en json) avec la méthode GET mais le POST fonctionne aussi.

Prérequis

  • Avoir souscris aux API
  • Avoir reçu sont mot de passe API.

Dans les exemples ci-dessous, la ponctuation (les crochets et autres parenthèses) doivent être strictement respectée.

Première étape

Création de la diffusion : méthode createBroadcast.

  1. Identification : la variable authenticate contient le json d’authentification qui est composé comme ci dessous.
authenticate={
	"serviceId": "900000000",
	"servicePassword": "mdpapi",
	"spaceId": "000",
	"lang": "fr_FR"
}

Dans l’exemple ci-dessus, vous devez renseigner

  • serviceId => votre numéro de service.
  • servicePassword => le mot de passe reçu lors de votre déploiement.
  • spaceID => l’espace que vous voulez utiliser pour vos envoi via API.

Cette variable Json sera à renseigner pour chaque méthode.

2. Diffusion : la variable broadcast contient les informations de la diffusion

&broadcast={
"callPlanningId": "55",
"scenarioId": "122",
"broadcastName": "Nom de la diffusion"
}

Dans l’exemple ci-dessus, vous devez renseigner

  • CallPlanningId => Id du planning (pour connaître cet Id, via l’extranet, via API)
  • scenarioId => Id du scénario (pour connaître cet Id, via l’extranet, via API)
  • BroadcastName => Champ alphanumérique libre qui apparaîtra dans la liste des diffusions.

3. Message : la variable liste customizableMessage contient les informations sur le message

customizableMessage=[
{
« customizableId »: « 00000 »,
« text »: « Texte à envoyer. A bientôt avec DMC. »
}
]

Dans l’exemple ci-dessus, vous devez renseigner

  • customizableId => Id permettant l’utilisation du scénario (pour connaître cet Id, via l’extranet, via API)
  • text => contient le texte du message à envoyer. Peut être du HTML dans le cas d’un mail. Limité à 4095 caractères

Avec l’ensemble de ces variables décrites ci-dessus vous pouvez constituer votre url d’appel de la méthode createBroadcast. Les éléments en rouge doivent être remplacés par vos propres données.

https://www.dmc.sfr-sh.fr/DmcWS/1.5.7/JsonService/BroadcastWS/createBroadcast?authenticate={
"serviceId": "900000000",
"servicePassword": "mdpAPI",
"spaceId": "00000",
"lang": "fr_FR"
}&broadcast={
"callPlanningId": "55",
"scenarioId": "122",
"broadcastName": "Nom de la diffusion"
}&customizableMessage=[
{
"customizableId": "00000",
"text": "Texte à envoyer. A bientôt avec DMC."
}
]

Ou utiliser l’api workshop pour constituer et tester votre requête :

Une fois la requête exécutée la méthode vous retourne :

  • En cas d’erreur le champ sucess est à « false ». Et les champ « errorCode » et « errorDetail » vous indique la cause de l’erreur.
{
   "success":false,
   "errorCode":"BEANPARAMETER_REQUIRED",
   "errorDetail":"Dans l\u0027objet customizableMessage le paramètre customizableId est requis",
   "fatal":true,
   "invalidParams":true
}
  • En cas de succès le champ success est à « true »
{
   "success":true,
   "response":{
      "broadcastName":"Nom de la diffusion",
      "broadcastId":197861536,
      "priority":2,
      "startDate":1646751423395,
      "stopDate":1646924223395,
      "scenarioName":"Sms",
      "scenarioId":122,
      "callPlanningId":55,
      "callPlanningName":"Planning 24/7",
      "maxSimultaneousContact":0,
      "broadcastOrigin":"WS",
      "spreading":false
   }
}

Vous devez récupérer le broadcastId pour les étapes suivantes (en bleu ci-dessus).

Vous pouvez voir cette diffusion sur l’extranet DMC dans liste de diffusions.

Son état est en mode « Edition » car nous sommes à l’étape création de la diffusion. Si vous n’exécutez pas les étapes suivantes, la diffusion ne « partira » jamais.

Etape 2

Ajouter des contacts

Plusieurs méthodes permettent cela.

  • addContactToBroadcast : Ajoute un ou plusieurs contacts.
  • addGroupContactToBroadcast : Ajouter les contacts d’un groupe dans une diffusion (si vous utilisez les contacts de DMC)
  • importContactBroadcast : Importer un fichier de contacts (format csv) que vous devez au préalable charger sur la machine avec la méthode uploadService.
  • insertContactFromDocument : Importer des contacts à partir d’un fichier csv déposé dans les documents DMC.

Exemple d’utilisation de addContactToBroadcast pour ajouter un seul contact (le champ numéro de téléphone uniquement).

https://www.dmc.sfr-sh.fr/DmcWS/1.5.7/JsonService/BroadcastWS/addContactToBroadcast?authenticate={
"serviceId": "900000000",
"servicePassword": "mdpAPI",
"spaceId": "00001",
"lang": "fr_FR"}

&contact=[{"phoneNumber1": "0600000001"}
]&broadcastId="197861536"

réponse de la méthode :

{
   "success":true,
   "response":[
      {
         "saved":true,
         "contactId":4514415690
      }
   ]
}

Autre possibilité d’utilisation avec addContactToBroadcast pour plusieurs contacts (le champ numéro de téléphone uniquement).

Le nombre de contacts maximum autorisé par appel est limité à 100.

https://www.dmc.sfr-sh.fr/DmcWS/1.5.7/JsonService/BroadcastWS/addContactToBroadcast?authenticate={
"serviceId": "900000000",
"servicePassword": "mdpAPI",
"spaceId": "0001",
"lang": "fr_FR"
}&contact=[
{
"phoneNumber1": "0600000002"
},
{
"phoneNumber1": "0600000001"
}
]&broadcastId="197861536"

Réponse de la méthode

{
   "success":true,
   "response":[
      {
         "saved":true,
         "contactId":4514415693
      },
      {
         "saved":false,
         "error":"Ce contact existe déjà",
         "errorCode":"DATABASE_CONSTRAINT_ERROR"
      }
   ]
}

Vous remarquerez que l’ajout tient compte des doublons éventuels.

Comme indiqué ci-dessus que deux contacts après le lancement des 2 exemples précédents.

3eme étape

lancer la diffusion : activateBroadcast

https://www.dmc.sfr-sh.fr/DmcWS/1.5.7/JsonService/BroadcastWS/activateBroadcast?authenticate={
"serviceId": "900000000",
"servicePassword": "mdpAPI",
"spaceId": "0001",
"lang": "fr_FR"
}&broadcastId="197861536"

Réponse de la méthode

{
   "success":true,
   "response":{
      "broadcastName":"Nom de la diffusion",
      "broadcastId":197861536,
      "priority":2,
      "startDate":1646751423395,
      "stopDate":1646924223395,
      "scenarioName":"Sms simple",
      "scenarioId":27120,
      "callPlanningId":84,
      "callPlanningName":"Planning 24/7",
      "maxSimultaneousContact":0,
      "status":"Chargement en cours",
      "statusCode":"BR_LOADING",
      "runningContactNumber":0,
      "endedContactNumber":0,
      "totalContactNumber":2,
      "broadcastOrigin":"WS",
      "spreading":false
   }
}

Sur l’extranet vous verrez que la diffusion a bien changé d’état.

Connaitre l’état de la diffusion

La méthode getBroadcast

https://www.dmc.sfr-sh.fr/DmcWS/1.5.7/JsonService/BroadcastWS/getBroadcast?authenticate={
"serviceId": "900000000",
"servicePassword": "mdpAPI",
"spaceId": "0001",
"lang": "fr_FR"
}&broadcastId="197861536"

réponse de la méthode

{
   "success":true,
   "response":{
      "broadcastName":"Nom de la diffusion",
      "broadcastId":197861536,
      "priority":2,
      "startDate":1646751423395,
      "stopDate":1646924223395,
      "scenarioName":"Sms simple",
      "scenarioId":27120,
      "callPlanningId":84,
      "callPlanningName":"Planning 24/7",
      "maxSimultaneousContact":0,
      "status":"Terminée",
      "statusCode":"BR_FINISHED",
      "broadcastOrigin":"WS",
      "spreading":false
   }
}

Cette méthode correspond à ce qui apparait dans la liste des diffusions de l’extranet

La méthode findBroadcastCra

https://www.dmc.sfr-sh.fr/DmcWS/1.5.7/JsonService/SupervisionWS/findBroadcastCra?authenticate={
"serviceId": "900000000",
"servicePassword": "mdpAPI",
"spaceId": "0001",
"lang": "fr_FR"
}&broadcastId="197861536"

Réponse de la méthode

{
   "success":true,
   "response":{
      "list":[
         {
            "contactId":4514412539,
            "spaceId":106137,
            "active":false,
            "creationDate":1646756793916,
            "phoneNumber1":"0600000001",
            "broadcastId":197861536,
            "callAttempts":1,
            "callDate":1646757948313,
            "statusLastChange":1646757949000,
            "callAdress":"+33646090992",
            "callResult":"Reçu",
            "callResultCode":"CRA_SMS_RECEIVED",
            "status":"DONE",
            "callDetail":"1 partie(s)",
            "quotaOccurs":0
         },
         {
            "contactId":4514447522,
            "spaceId":106137,
            "active":false,
            "creationDate":1646757660898,
            "phoneNumber1":"0600000002",
            "broadcastId":197861536,
            "callAttempts":1,
            "callDate":1646757947315,
            "statusLastChange":1646757958000,
            "callAdress":"+33646090993",
            "callResult":"Numéro erroné",
            "callResultCode":"CRA_SMS_BADNUMBER",
            "status":"FAILED",
            "callDetail":"1 partie(s)",
            "quotaOccurs":0
         }
      ],
      "total":2
   }
}

Ceci est l’équivalent du compte rendu de la diffusion dans l’extranet.

Ces informations vous ont-elles aidé ?


Laurent

Chargé de compte, spécialiste des offres DMC, GCC et des API au sein de SFR Business.