Lorsqu’un événement se produit sur gextra nous appelons l’url d’antipodes. Cette url reçoit un JSON en POST. Tout se passe comme si l’appel était fait ainsi :
curl -X POST https://xxxxxx \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
--data '{...}'

Quand le webhook est-il appelé ?

Le webhook n’est PAS appelé à la création d’un contact / candidature / survey via les endpoints POST d’antipodes (commercial/create, survey/create, announcement/postuler). À la création, antipodes possède déjà toutes les données puisque c’est lui qui les envoie. Le webhook est appelé uniquement lorsqu’un administrateur gextra effectue une action interne sur l’entrée. C’est donc un mécanisme de mise à jour, pas de confirmation de réception.

Déclencheurs par type d’entrée

Entrée (URL antipodes → gextra)Action interne qui déclenche le webhookChamp principal de qualification
commercial/createÉdition de la démarche commerciale (résultat, motif…)resultat
commercial/createAjout d’une action (appel, visite, envoi doc…)actionType + resultat
commercial/createAffectation d’un résident à la démarche (admission)resultat = commercial.resultat.realisee
survey/create (type contact / survey / complaint)Traitement du message par un admin (bouton “done”)done
announcement/postulerChangement de statut de la candidature par un adminstatus
En mode test (email test@antipodes-m.com ou query string ?test=1), le webhook est également appelé immédiatement à la création pour vérifier le bon fonctionnement côté antipodes.

Liste des différents évenements

  • Contact :
    • Message traitée
    • Contact établi (téléphone, etc.)
    • Visite réalisée
    • Admission réalisée
    • Ne donnera pas suite
  • Satisfaction :
    • Message traitée
  • Réclamation :
    • Message traitée
  • Candidatures :
    • Candidature consultée
    • Déjà contacté
    • Reçu en entretien
    • Candidature non retenue
    • Candidature retenue
  • Commercial :
    • Prise d’information (tel /email)
    • Visite d’etablissement
    • Envoi de documentation
    • Autre

Exemple de JSON envoyé :

Contact data Champs d’un contact :
  • done (BOOLEAN): Message traité
  • contact (BOOLEAN): Contact établi (téléphone, etc.)
  • visite (BOOLEAN): Visite réalisée
  • admission (BOOLEAN): Admission réalisée
  • quit (BOOLEAN): Ne donnera pas suite
  • doneComment (TEXT): Commentaire
// "type" vaudra :
// "survey.type.contact":
{
  id: 23435,
  gclId: 'EAIaIQobChMI1pywgp-H-QIV5o5oCR2Gbw1eEAAYAiAAEgL3WPD_BwE',
  customId: null,
  type: 'survey.type.contact',
  done: false,
  doneComment: 'test',
  contact: false,
  visite: false,
  admission: false,
  quit: false,
}

// "type" vaudra :
// "survey.type.survey" &&
// "survey.type.complaint" :
{
  id: 23435,
  gclId: 'EAIaIQobChMI1pywgp-H-QIV5o5oCR2Gbw1eEAAYAiAAEgL3WPD_BwE',
  customId: null,
  type: 'survey.type.survey',
  done: false,
  doneComment: 'test',
}
Candidature data Pour les candidatures, le champ de qualification côté gextra est status (pas resultat).
// status vaudra :
// "postule.status.seen": Candidature consultée
// "postule.status.contact": Déjà contacté
// "postule.status.entretien": Reçu en entretien
// "postule.status.ko": Candidature non retenue
// "postule.status.ok": Candidature retenue
// "postule.status.unshown": Ne s'est pas présenté à l'entretien
// "postule.status.nonews": Ne donne plus de nouvelle
// "postule.status.hire": Recruté(e)

{
    id: 9470,
    type: 'postuler',
    customId: null,
    status: 'postuler.status.seen',
}
Commercial data (contact commercial) Le champ de qualification est resultat. Il reste null tant qu’aucun admin gextra n’a édité la démarche : c’est attendu. Les 3 valeurs possibles sont :
  • commercial.resultat.refuse : Admission refusée
  • commercial.resultat.nosuite : Ne donnera pas de suite
  • commercial.resultat.realisee : Admission réalisée
{
    id: '1',
    customId: 1,
    sejourType: 'commercial.sejourType.permanent',
    type: 'commercial.type.email',
    commentBy: 'commentaire sur le contact etabli',
    resultat: 'commercial.resultat.refuse',
    motif: 'commercial.motif.dossierrefuse',
    actionType: 'commercialaction.type.autre',
    comment: '',
    dateFirstContact: '',
    dateAction: '',
    commentAction: '',
    dureeAppel: '',
}