Partez sur des bonnes bases pour utiliser efficacement l'API dans votre intégration
Documentation Swagger générique
Changez «api» dans l'URL pour pointer la documentation sur votre compte et tester votre API.
Exemple: https://VOTRECOMPAGNIE.progressionlive.com/server/doc/rest/index.html.
Cas d'usage - Intégration d'un système de style « Planification des ressources d'entreprise » (ERP).
Lors d'une connexion à un système ERP (ex. SAP Business One), le but final consiste souvent à retrouver une facture de Progression dans celui-ci. Cela permet de faire les retraits d'inventaire et de finaliser la facturation de ces tâches.
Pour notre cas d'usage, nous assumerons que les données maitres seront mises à jour dans le logiciel ERP.
Pour synchroniser la facture, nous devrons envoyer 3 informations clés:
- l'emplacement (lieux des travaux)
Nous devrons donc nous assurer de lier ces 3 entités entre les 2 logiciels (Progression et le ERP) et de les garder à jour.
Une fois ces 3 entités synchronisées entre les 2 logiciels, nous pourrons transférer la facture vers l'ERP. L'ERP retournera dans Progression pour confirmer la tâche.
Bonnes pratiques génériques
- Évitez la «scrutation», utilisez plutôt nos webhooks pour avoir les données les plus à jour possible.
- Si vous ne pouvez pas éviter le mode «scrutation», utilisez les filtres pour limiter la réponse
- Stockez la valeur de référence de votre autre système dans Progression avec le champ «externalId».
- ⚠️ Attention, si vous connectez plusieurs autres logiciels, un seul ID externe est disponible par entité dans Progression.
- Stockez l'ID de Progression dans votre autre système.
- N'envoyez pas les champs qui sont vides ou qui ne doivent pas être mis à jour.
- Envoyez une valeur «Null» enlève la valeur dans la base de données.
Comment s'authentifier à l'API
Attention, l'accès à l'API requiert un abonnement payant au service. Pour obtenir ce service, vous pouvez nous écrire à serviceclient@progressionlive.com ou nous appeler au 1-866-670-0516.
Où trouver la clé d'API dans votre compte ?
En ce moment, cette information n'est pas accessible aux utilisateurs, il faut demander à un employé Progression. Vous pouvez contacter notre équipe de soutien par courriel au support@progressionlive.com ou par téléphone au 1-866-670-0516
Exemple de connexion Query
curl -X POST "https://VOTRECOMPAGNIE/server/rest/task/create?apiKey=VotreCleAPI" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"type\":{\"label\":\"Appel de service\"},\"summary\":\"Sommaire de la tâche\"}"
Exemple de connexion BEARER
curl -X POST "VOTRECOMPAGNIE/server/rest/task/create" -H "accept: application/json" -H "Authorization: Bearer VotreCleAPI" -H "Content-Type: application/json" -d "{\"type\":{\"label\":\"Appel de service\"},\"summary\":\"Sommaire de la tâche\"}"
Synchronisation des clients
Vérifiez si le client existe en utilisant la fonction get/client.
- Cherchez par nom ou par ID externe.
Créez le client si le client n'existe pas en utilisant post/client/create.
- N'oubliez pas de mettre votre ID de référence dans le champ «externalId» de Progression et si possible stockez le ID Progression dans votre autre logiciel pour savoir quels clients sont déjà existants dans Progression, évitant ainsi un appel API.
Mettez à jour le client s'il est déjà existant en utilisant post/client/identifier/update.
Synchronisation des emplacements
Vérifiez si l'emplacement existe en utilisant la fonction get/location/.
Créez l'emplacement si l'emplacement n'existe pas en utilisant la fonction post/location/create.
Mettez à jour l'emplacement s'il est existant en utilisant la fonction post/client/identifier/update.
Si l'emplacement est mis à jour dans Progression, pensez à utiliser un webhook pour retourner l'information dans votre autre système.
Synchronisation des produits
Vérifiez si le produit existe en utilisant la fonction get/product/list.
Créez le produit si le produit n'existe pas en utilisant la fonction post/product/create.
Mettez à jour le produit s'il est existant en utilisant la fonction post/product/identifier/update.
Si le produit a été mis à jour dans Progression, pensez à utiliser un webhook pour retourner l'information dans votre autre système.
Synchronisation des tâches
Créez une tâche en utilisant la fonction post/task/create.
Retournez l'information dans votre système lors d'une action spécifique.
Changez l'état de la tâche pour envoyer la rétroaction à l'utilisateur en cas de succès et un autre état en cas d'échec en utilisant la fonction post/task/identifier/state.
Création de Webhooks souvent utilisés
Lorsqu'une tâche de type AS progresse à un état spécifique (exemple 700).
{
"url": "monURL",
"name": "Tâche progresse à 700",
"entityName": "TaskState",
"eventType": "CREATE",
"targetUrl": "monURL",
"enabled": true,
"expand": "",
"filters": [
{
"property": "currentState.logicId",
"type": "NumberEquals",
"value": "700"
},
{
"property": "type.id",
"type": "TextExactlyMatches",
"value": "2"
}
],
"headers": {}
}
Lorsqu'un produit est mis à jour.
{
"url": "monURL",
"name": "Produit mis à jour",
"entityName": "Product",
"eventType": "UPDATE",
"targetUrl": "monURL",
"enabled": true,
"expand": "",
"filters": [],
"headers": {}
}
Lorsqu'un client est mis à jour.
{
"url": "monURL",
"name": "Client mis à jour",
"entityName": "Client",
"eventType": "UPDATE",
"targetUrl": "monURL",
"enabled": true,
"expand": "",
"filters": [],
"headers": {}
}
Lorsqu'un emplacement est mis à jour.
{
"url": "monURL",
"name": "Emplacement mis à jour",
"entityName": "Location",
"eventType": "UPDATE",
"targetUrl": "monURL",
"enabled": true,
"expand": "",
"filters": [],
"headers": {}
}