Logo Site EngageLab Mark Colored TransparentDocumentation
Rechercher

Envoi de message personnalisé

Si vous avez créé un contenu de modèle personnalisé sur la plateforme OTP, appelez cette interface pour envoyer le contenu de message personnalisé.

Adresse d'appel

POST https://otp.api.engagelab.cc/v1/custom-messages

Authentification

Veuillez consulter Authentification pour savoir comment effectuer l'authentification de l'API.

Format de la requête

En-tête de requête

POST /v1/custom-messages HTTP/1.1 Content-Type: application/json Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
              
              POST /v1/custom-messages  HTTP/1.1  
Content-Type: application/json  
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0

            
Afficher ce bloc de code dans la fenêtre flottante

Corps de la requête

{ "to": "+6591234567", "template":{ "id":"test-template-1", "params": { "code": "codevalue", "var1":"value1" } } }
              
              {
    "to": "+6591234567", 
    "template":{
      "id":"test-template-1",
      "params": {
        "code": "codevalue",
        "var1":"value1"
        }
    }
}

            
Afficher ce bloc de code dans la fenêtre flottante

Paramètres de requête

Un objet de requête est exprimé au format JSON ; l'en-tête de requête doit donc inclure Content-Type: application/json.

Paramètre Type Option Description
to String Obligatoire Destinataire de l'envoi, numéro de téléphone ou adresse e-mail, +6598765432, support@engagelab.com
template JSON Object Obligatoire Informations du modèle, voir les paramètres de second niveau ci-dessous
|_ id String Obligatoire ID du modèle
|_ params JSON Object Facultatif Paramètres du modèle
_ |_ code String Facultatif Lorsque le type de modèle est un code de vérification, ce champ est obligatoire.
_ |_ var String Facultatif Valeur de la clé d'une variable de modèle personnalisée
Si vous avez défini des variables personnalisées lors de la création du modèle, vous leur transmettez ici leurs valeurs ; si rien n'est transmis, la clé de la variable est envoyée telle quelle, comme {{var1}}

Remarques sur params

  1. Pour les variables prédéfinies du modèle telles que {{brand_name}}, {{ttl}}, {{pwa_url}}, etc., il n'est pas nécessaire de les transmettre ; le système les remplace automatiquement par le contenu spécifié lors de la création du modèle ;
  2. Si le type de modèle est un code de vérification, la variable {{code}} doit obligatoirement être transmise, sinon une erreur sera renvoyée ;
  3. De même, pour les champs de variables personnalisées présents dans le contenu du modèle lors de sa création, leur valeur est également affectée via params. Par exemple, si le contenu du modèle est Hi {{name}}, your verify code is {{code}}, vous devez affecter le paramètre params:{"name":"Bob"}.
  4. Variables spéciales du canal Email : pour le canal Email, vous pouvez remplacer dynamiquement l'objet de l'e-mail (subject), le nom de l'expéditeur (from_name), l'adresse e-mail de l'expéditeur (from_mail), etc., via params. Pour l'utilisation avancée détaillée, veuillez consulter Créer un modèle - Utilisation avancée des variables de modèle Email.

Exemple de requête

1. Envoyer un code de vérification personnalisé :

{ "to": "+6591234567", "template":{ "id":"code-template", "params": { "code": "123456" } } }
              
              {
    "to": "+6591234567", 
    "template":{
      "id":"code-template",
      "params": {
        "code": "123456"        
        }
    }
}

            
Afficher ce bloc de code dans la fenêtre flottante

2. Envoyer un contenu de notification personnalisé :

{ "to": "+6591234567", "template": { "id": "notification-template", "params": { "order": "123456" } } }
              
              {
    "to": "+6591234567",
    "template": {
        "id": "notification-template",
        "params": {
            "order": "123456"
        }
    }
}

            
Afficher ce bloc de code dans la fenêtre flottante

3. Envoyer un contenu marketing personnalisé :

{ "to": ["+6591234567"], "template": { "id": "marketing-template", "params": { "name": "EngageLab", "promotion": "30%" } } }
              
              {
    "to": ["+6591234567"],
    "template": {
        "id": "marketing-template",
        "params": {
            "name": "EngageLab",
            "promotion": "30%"
        }
    }
}

            
Afficher ce bloc de code dans la fenêtre flottante

Paramètres de réponse

Réponse en cas de succès

Champ Type Option Description
message_id String Obligatoire ID du message, identifie de manière unique un message donné
send_channel String Obligatoire Indique le canal d'envoi actuel, valeurs possibles : whatsapp/sms/email/voice
{ "message_id": "1725407449772531712", "send_channel": "sms" }
              
              {
    "message_id": "1725407449772531712",
    "send_channel": "sms"
}

            
Afficher ce bloc de code dans la fenêtre flottante

Notez que la valeur send_channel renvoyée ne représente pas le canal final de livraison à l'utilisateur, mais uniquement le canal utilisé à ce stade ; par exemple, si la stratégie configurée dans le modèle prévoit qu'en cas d'échec de livraison sur le canal WhatsApp, un renvoi automatique soit effectué sur le canal SMS, l'interface renverra la valeur whatsapp. Une fois l'échec de livraison détecté après un certain délai, le système utilisera le canal SMS pour l'envoi.

Réponse en cas d'échec

Le code de statut HTTP est 4xx ou 5xx, et le corps de la réponse contient les champs suivants :

Champ Type Option Description
code int Obligatoire Code d'erreur, voir la description des codes d'erreur
message String Obligatoire Détails de l'erreur
{ "code": 5001, "message": "sms send fail" }
              
              {
    "code": 5001,
    "message": "sms send fail"
}

            
Afficher ce bloc de code dans la fenêtre flottante

Codes d'erreur

Code d'erreur http code Description
1000 500 Erreur interne
2001 401 Échec de l'authentification, le token correct n'a pas été fourni
2002 401 Échec de l'authentification, le token a expiré ou a été désactivé
2004 403 Aucune autorisation pour appeler cette API
3001 400 Format des paramètres de requête invalide, veuillez vérifier que le contenu JSON est conforme au format des paramètres
3002 400 Paramètres de requête incorrects, veuillez vérifier que les paramètres de requête respectent les exigences
3003 400 Paramètres de requête incorrects, échec de la vérification métier associée, consultez la description de l'erreur dans le champ message pour plus de détails
3004 400 Limite de fréquence dépassée : pour un même modèle et un même utilisateur cible, un nouvel envoi est impossible pendant la durée de validité du code de vérification
4001 400 La ressource associée n'existe pas, par exemple l'utilisation d'un modèle inexistant lors de l'envoi d'un message basé sur un modèle
5001 400 Échec de l'envoi (générique/autre)
5011 400 Format du numéro de téléphone invalide
5012 400 Cible inaccessible
5013 400 Numéro placé sur liste noire
5014 400 Contenu non conforme aux normes
5015 400 Message intercepté/rejeté
5016 400 Erreur interne d'envoi
5017 400 Aucune autorisation d'envoi pour la région Chine
5018 400 Téléphone hors service (éteint/suspendu)
5019 400 L'utilisateur s'est désabonné
5020 400 Numéro non enregistré/numéro inexistant
Icon Solid Transparent White Qiyu
Contactez-nous