Récupération de la demande d'intervention

Réception du webhook

Lors de la création d'une demande d'intervention, je reçois un webhook avec "type": "operations:intervention:share"
En tant que prestataire, je vais recevoir un webhook de la forme suivante :
[
{
"type": "operations:intervention:share",
"id": "471b155d-09ac-4ec6-a83a-70b3b8695738",
"event": {
"type": "operations",
"body": {
"id": "6ca801bb-cae3-43a6-978a-a18216f1f7a8",
"reference": "contract1_201007151812",
"contractReference": "contract1",
"type": "intervention",
"description": "Demande dépannage pour fuite d’eau dans la salle de bain",
"status": "open",
"event": "requested",
"serviceCode": "EAU-CP-9",
"workType": "corrective",
"assetReference":"ASC-191458",
"criticalLevel": "3",
"issuer": {
"entity": {
"id": "5e78774dfb9f7e3faec804ec",
"label": "Gestionnaire"
},
"user": {
"id": "371c6829-2b25-40d7-8d2d-8238537ca146",
"name": "serviceclient+gestionnaire@intent.tech"
}
},
"operation_url": "https://apisandbox.hubintent.com/api/operations/v2/operations/contract1_201007151812?contractReference=contract1"
}
}
}
]

Lancement des actions suivantes :
  • Appel API sur le champ operation_url : GET /operations/{reference}
  • Appel API pour récupérer les photos
  • Appel API pour récupérer les documents

Une demande d'intervention se matérialise par la transmission d'un log status=open et event=requested. Pour identifier cette information, je regarde la rubrique logs du json récupéré suite à l'appel sur le champ operation_url .

Je peux récupérer de plus amples informations (commentaire, photos, date et heure, contacts) sur le détail de la demande dans le log en question (status=open et event=requested) dans la rubrique logs .

JSON récupéré suite à l'appel sur le champ operation_url
{
"_links": {
"self": {
"href": "https://apisandbox.hubintent.com/api/operations/v2/operations/contract1_201007151813?contractReference=contract1"
},
"documents:list": {
"href": "https://apisandbox.hubintent.com/api/documents/v1/documents?elementType=intervention&elementReference=contract1_201007151813"
}
},
"reference": "contract1_2010071518132",
"description": "Demande dépannage pour fuite d’eau dans la salle de bain",
"criticalLevel": 3,
"issuer": {
"entity": {
"id": "5e78774dfb9f7e3faec804ec",
"label": "Gestionnaire",
"logoUrl": "https://image.freepik.com/vecteurs-libre/modele-ligne-logo-abstrait-colore-simple-immobilier_143546-15.jpg"
},
"user": {
"id": "aab631d7-d7cf-478f-b463-55e646762946",
"type": "client",
"name": "Connecteur Gestionnaire"
}
},
"contract": {
"reference": "contract1",
"label": "Maintenance Multitechnique",
"topic": "Multitechnique",
"entities": [
{
"id": "5e7875e3fb9f7e3faec804eb",
"label": "MyPrestataire",
"logoUrl": "https://image.freepik.com/vecteurs-libre/conception-reparation_24908-54569.jpg"
},
{
"id": "5e78774dfb9f7e3faec804ec",
"label": "Gestionnaire",
"logoUrl": "https://image.freepik.com/vecteurs-libre/modele-ligne-logo-abstrait-colore-simple-immobilier_143546-15.jpg"
}
]
},
"type": "intervention",
"service": {
"code": "EAU-CP-9",
"originalCode": "EAU-CP-9"
},
"workType": "corrective",
"status": "open",
"event": "requested",
"eventDate": "2020-10-07T15:18:00+02:00",
"logDate": "2020-10-07T15:18:00+02:00",
"eventHistory": [
"requested"
],
"location": {
"assetReference": "LOGEMENT_011"
},
"contacts": [
"BEGIN:VCARD\r\nVERSION:3\r\nFN;CHARSET=UTF-8:Pierre DURAND\r\nN;CHARSET=UTF-8:DURAND;Pierre;;;\r\nEMAIL;CHARSET=UTF-8;HOME;INTERNET:serviceclient+gestionnaire@intent.tech\r\nTEL;TYPE=WORK,VOICE:0786220276\r\nREV:2020-10-07T15:18:12+02:00\r\nEND:VCARD"
],
"logs": [
{
"issuer": {
"entity": {
"id": "5e78774dfb9f7e3faec804ec",
"label": "Gestionnaire",
"logoUrl": "https://image.freepik.com/vecteurs-libre/modele-ligne-logo-abstrait-colore-simple-immobilier_143546-15.jpg"
},
"user": {
"id": "aab631d7-d7cf-478f-b463-55e646762946",
"type": "client",
"name": "Connecteur Gestionnaire"
}
},
"reference": "contract1_2010071518132",
"description": "Demande dépannage pour fuite d’eau dans la salle de bain",
"contractReference": "contract1",
"contacts": [
"BEGIN:VCARD\r\nVERSION:3\r\nFN;CHARSET=UTF-8:Pierre DURAND\r\nN;CHARSET=UTF-8:DURAND;Pierre;;;\r\nEMAIL;CHARSET=UTF-8;HOME;INTERNET:serviceclient+gestionnaire@intent.tech\r\nTEL;TYPE=WORK,VOICE:0786220276\r\nREV:2020-10-07T15:18:12+02:00\r\nEND:VCARD"
],
"creationDate": "2020-10-28T18:11:18+01:00",
"type": "intervention",
"serviceCode": "EAU-CP-9",
"workType": "corrective",
"status": "open",
"event": "requested",
"eventDate": "2020-10-07T15:18:00+02:00",
"logDate": "2020-10-07T15:18:00+02:00",
"location": {
"assetReference": "LOGEMENT_011",
"assetOwner": "gestionnaire.intent"
},
"equipmentWorkingOrder": "not_operational",
"criticalLevel": 3
}
],
"creationDate": "2020-10-28T18:11:18+01:00",
"lastUpdateDate": "2020-10-28T18:11:18+01:00"
}

Plusieurs demandes d'interventions dans le même webhook

Le webhook est sous forme de tableau [] et peut donc contenir plusieurs messages.
Si plusieurs demandes d'intervention sont faites dans un laps de temps très court (moins de 30 secondes), vous recevrez les demandes d'interventions dans le même message webhook.

Il peut arriver que 2 utilisateurs réalisent une demande d'intervention en même temps sur 2 bâtiments différents. Vous recevrez ainsi les 2 demandes dans le même message.

[
{
"type": "operations:intervention:share",
"id": "471b155d-09ac-4ec6-a83a-70b3b8695738",
"event": {
"type": "operations",
"body": {
"id": "6ca801bb-cae3-43a6-978a-a18216f1f7a8",
"reference": "contract1_201007151812",
"contractReference": "contract1",
"type": "intervention",
"description": "Demande dépannage pour fuite d’eau dans la salle de bain",
"status": "open",
"event": "requested",
"serviceCode": "EAU-CP-9",
"workType": "corrective",
"assetReference":"ASC-191458",
"criticalLevel": "3",
"issuer": {
"entity": {
"id": "5e78774dfb9f7e3faec804ec",
"label": "Gestionnaire"
},
"user": {
"id": "371c6829-2b25-40d7-8d2d-8238537ca146",
"name": "serviceclient+gestionnaire@intent.tech"
}
},
"operation_url": "https://apisandbox.hubintent.com/api/operations/v2/operations/contract1_201007151812?contractReference=contract1"
}
}
},
{
"type": "operations:intervention:share",
"id": "091b155d-09ac-4ec6-a83a-70b3b8695653",
"event": {
"type": "operations",
"body": {
"id": "bv8801bb-cae3-43a6-978a-a18216f1f777",
"reference": "contract1_201007151814",
"contractReference": "contract1",
"type": "intervention",
"description": "Problème évier cuisine, merci d'intervenir",
"status": "open",
"event": "requested",
"serviceCode": "EAU-CP-3",
"workType": "corrective",
"assetReference":"ASC-875460",
"criticalLevel": "3",
"issuer": {
"entity": {
"id": "5e78774dfb9f7e3faec804ec",
"label": "Gestionnaire"
},
"user": {
"id": "371c6829-2b25-40d7-8d2d-8238537ca146",
"name": "serviceclient+gestionnaire@intent.tech"
}
},
"operation_url": "https://apisandbox.hubintent.com/api/operations/v2/operations/contract1_201007151814?contractReference=contract1"
}
}
}
]

Si plusieurs demandes d'interventions sont présentes dans le message webhook, je viens bien récupérer chacune des demandes.

Accusé de réception de la demande d’intervention par le prestataire

Suite à la réception de la demande d'intervention, je transmets automatiquement un accusé réception pour informer mon client de la bonne réception de sa demande.

{
  "reference": "contract1_201007151812",
  "description": "Nous accusons bonne réception de votre demande de dépannage",
  "contractReference": "contract1",
  "status": "open",
  "event": "acknowledged",
  "eventDate": "2020-10-07T15:19:00",
  "logDate": "2020-10-07T15:19:00",
  "serviceCode": "EAU-CP-9",
  "location": {
    "assetReference": "LOGEMENT_011"
  },
  "workType": "corrective",
  "equipmentWorkingOrder": "not_operational",
  "criticalLevel": 3,
  "visitAttempt": 1
}