Aller au contenu principal

Dépannage de la Validation d'Envoi

Le pipeline d'envoi valide son entrée avant le début de la création du document. Si la validation échoue, la mutation renvoie directement l'erreur au client et aucun ID de tâche n'est retourné.

Cela s'applique à :

Texte à Copier Pour Votre IA

Utilisez ceci lorsque vous invitez un outil d'IA à vous aider avec les workflows d'envoi GraphQL de Legalesign :

Use the Legalesign GraphQL send validation rules below as the source of truth.

- Treat send input as strictly validated JSON.
- If send input is invalid, the mutation returns an error immediately and no task ID is returned.
- Only poll task after send succeeds and returns a task ID.
- For send workflows, monitor task.report.status until it reaches COMPLETED or FAILED.
- Prefer subscriptions over polling for production real-time UX.
- groupId, templateId, title, and recipients are required.
- Base64 IDs must decode to the expected prefixes:
groupId=grp, templateId=tpl, roleId=rol, scheduleId=sch, experience=exp, field id=ele, attachment id=att.
- recipients must contain fewer than 200 items.
- Each recipient must include email and order.
- The input must include an initial recipient: either order 0, or order 1 when roleId is provided.
- The recipient with the lowest order number must have a non-empty email.
- title must be 1028 characters or fewer.
- tag must be 250 characters or fewer.
- pdfPassword must be 150 characters or fewer.
- documentCCEmail must contain 10 email addresses or fewer.
- redirect must be a valid URI or null.

Si l'IA a besoin de directives plus complètes, orientez-la vers cette page.

Résumé pour l'IA

  • Traitez l'entrée de send comme un JSON strict avec des règles de validation.
  • Si l'entrée send est invalide, la mutation renvoie immédiatement une erreur et aucun ID de tâche n'est retourné.
  • Ne polluez task qu'après que send ait réussi et retourné un ID de tâche.
  • Pour les workflows d'envoi, surveillez task.report.status jusqu'à ce qu'il atteigne COMPLETED ou FAILED.
  • Pour une expérience utilisateur en temps réel en production, privilégiez les abonnements au lieu du polling.

Comment Détecter un Échec de Validation

Exécutez la mutation normalement.

  • Si l'entrée est invalide, la mutation renvoie immédiatement une erreur de validation.
  • Si l'entrée est valide, la mutation renvoie un ID de tâche et la création du document continue de manière asynchrone.

Cela signifie que le dépannage de la validation se fait lors de la mutation, et non via la requête task.

Ne commencez la surveillance de la tâche qu'après la réussite de send et le retour d'un ID de tâche.

Quels Types d'Erreurs Attendre

Le validateur d'envoi vérifie la forme et le contenu du JSON d'entrée avant que le traitement ne continue. Les échecs de validation sont spécifiques au champ qui a échoué, par exemple :

  • send input missing required field 'groupId'
  • send input.groupId must be a base64-encoded group id
  • send input.recipients must include a recipient with order 0, or order 1 when roleId is provided
  • recipients[0].email must be a valid email
  • recipients[1].attachments[0] must be a base64-encoded attachment id

Problèmes Courants de Validation

Champs de premier niveau obligatoires manquants

Ces champs sont obligatoires :

  • groupId
  • templateId
  • title
  • recipients

IDs encodés invalides

Le validateur vérifie que les IDs sont encodés en base64 et ont le préfixe décodé attendu :

  • groupId -> grp
  • templateId -> tpl
  • roleId -> rol
  • scheduleId -> sch
  • experience -> exp
  • champ id -> ele
  • pièce jointe id -> att

Problèmes d’ordre des destinataires

L'entrée d'envoi doit inclure un destinataire initial :

  • soit un destinataire avec order: 0
  • soit un destinataire avec order: 1 lorsque roleId est fourni

De plus, le destinataire avec le numéro d'ordre le plus bas doit avoir un email non vide.

Limites des champs destinataires

Les règles courantes de validation des destinataires comprennent :

  • email doit être valide et contenir au maximum 75 caractères
  • firstName et lastName doivent contenir au maximum 60 caractères
  • phoneNumber doit contenir au maximum 120 caractères
  • message doit contenir au maximum 10000 caractères
  • expiryDate doit être un datetime ISO 8601 valide ou null
  • ccEmail doit être un email valide
  • ccIncludeLink doit être un booléen

Limites des champs de premier niveau

Les règles courantes de validation au niveau de l'envoi comprennent :

  • title doit contenir au maximum 1028 caractères
  • tag doit contenir au maximum 250 caractères
  • pdfPassword doit contenir au maximum 150 caractères
  • documentCCEmail doit contenir au maximum 10 adresses e-mail
  • redirect doit être un URI valide ou null
  • recipients doit contenir moins de 200 éléments
  • senderFields et participantFields doivent contenir chacun moins de 1000 éléments

Charges utiles invalides de planning ou de champ

Si vous intégrez en ligne les plannings destinataires ou les valeurs de champ :

  • chaque élément du planning doit inclure daysAfter, frequency, when, timeOfDay, subject, message et skipWeekend
  • when du planning doit être l’une des valeurs 1, 2 ou 3
  • subject et message du planning doivent contenir au maximum 500 caractères
  • chaque entrée de champ doit inclure un id d’élément valide

Flux de Débogage Recommandé

  1. Validez votre charge utile localement avec le Schéma JSON d'Entrée Send.
  2. Exécutez la mutation.
  3. Si la mutation renvoie une erreur de validation, corrigez la charge utile et recommencez.
  4. Si la mutation renvoie un ID de tâche, commencez à polluer task pour surveiller la création du document.

Quand Utiliser des Abonnements à la Place

Le polling de task est idéal pour démarrer, tester et prototyper.

Pour les workflows en production, utilisez les abonnements pour des mises à jour en temps réel et considérez le statut de tâche pollé comme une solution de secours ou un outil de prototypage.

Pour des conseils spécifiques sur les abonnements de tâches, voir Suivre les Tâches d’Envoi avec les Abonnements.

Articles Connexes