Sur cette page

Présentation de l’API

Comment effectuer des appels d’API vers ProcessMind

Ce guide présente des exemples et des bonnes pratiques pour appeler l’API ProcessMind afin de récupérer des données, d’envoyer des informations ou d’automatiser des flux de travail.

Pour consulter la documentation complète des points de terminaison, avec les formats des requêtes et des réponses, reportez-vous à la référence de l’API.

Pour obtenir d’autres exemples et des bibliothèques clientes, consultez la documentation de l’API sur GitHub.

URL de base de l’API

Toutes les requêtes d’API doivent être envoyées à l’adresse suivante :

https://api.processmind.com

Toutes les routes sont versionnées sous /v1. La spécification complète de l’API, lisible par machine, est disponible au format OpenAPI 3.1 à l’adresse suivante :

GET https://api.processmind.com/v1/openapi.json

Authentification

Toutes les requêtes d’API doivent inclure votre clé d’API dans l’en-tête x-api-key :

x-api-key: your-api-key-here

Vous pouvez obtenir la clé d’API dans les paramètres de votre compte ProcessMind. Consultez Obtenir votre clé d’API pour connaître la procédure.

Codes d’état

L’API de ProcessMind utilise les codes d’état HTTP standard :

État Signification
200 OK Requête réussie
201 Created Ressource créée
204 No Content Requête réussie, sans corps de réponse
400 Bad Request Requête non valide ou paramètres manquants ou non valides
401 Unauthorized Clé d’API manquante ou non valide
403 Forbidden Authentifié, mais non autorisé à effectuer l’action
404 Not Found La ressource n’existe pas
500 Internal Server Error Erreur inattendue du serveur

Concepts clés

  • apiKey : votre jeton d’authentification pour toutes les requêtes d’API.
  • tenantId : identifie le contexte de votre espace de travail ou de votre organisation. Vous le trouverez dans les paramètres de votre compte.
  • datatableId : identifie une datatable précise pour les opérations sur les données. Cette valeur est disponible via l’option Obtenir l’identifiant de la datatable dans le menu des paramètres du jeu de données, au sein de ProcessMind.

Ce que vous pouvez faire

L’API ProcessMind vous permet de :

  • Gérer les tenants : récupérer les informations d’un tenant, mettre à jour ses paramètres et consulter ses statistiques
  • Gérer les utilisateurs : ajouter, modifier ou supprimer des utilisateurs de tenants et d’organisations
  • Gérer les processus : créer des processus, importer des modèles BPMN et les organiser dans des dossiers
  • Connecter les données : associer des datatables à des processus pour les analyser
  • Importer des données : importer directement des fichiers CSV/XLSX dans des datatables
  • Gérer les jeux de données : répertorier, examiner et supprimer des jeux de données et des datatables

Exemples courants

Voici des exemples pratiques montrant comment effectuer des opérations courantes avec l’API ProcessMind.

Obtenir une URL d’importation présignée

Pour importer un fichier dans une datatable, obtenez d’abord une URL présignée :

const presignedUrl = await getPresignedUploadUrl({
	apiKey,
	tenantId: "tenant-123",
	datatableId: "table-456"
});
console.log(presignedUrl); // https://s3.amazonaws.com/…?X-Amz-Signature=…

Répertorier les jeux de données

Récupérez tous les jeux de données de votre tenant :

const datasets = await getDatasets({
	apiKey,
	tenantId: "tenant-123"
});
console.log(datasets);

Obtenir les informations d’un tenant

Récupérez les informations de votre tenant :

const tenantInfo = await getTenant({
	apiKey,
	tenantId: "tenant-123"
});
console.log(tenantInfo);

Créer un processus

Créez un processus dans votre tenant :

const process = await createProcess({
	apiKey,
	tenantId: "tenant-123",
	displayName: "Order to Cash"
});
console.log(process.id); // Use this ID for subsequent operations

Importer un modèle BPMN

Importez un fichier BPMN pour définir votre modèle de processus :

const fs = require("fs");
const bpmnXml = fs.readFileSync("./my-process.bpmn", "utf8");

await uploadBpmn({
	apiKey,
	tenantId: "tenant-123",
	processId: "process-456",
	bpmnXml
});

Associer des données à un processus

Connectez une datatable à un processus pour l’analyser :

const mapping = await createProcessMapping({
	apiKey,
	tenantId: "tenant-123",
	processId: "process-456",
	dataTableId: "datatable-789",
	displayName: "Sales Data 2024",
	showByDefault: true
});

Ajouter un utilisateur à un tenant

Ajoutez un utilisateur à votre tenant :

const result = await addTenantUser({
	apiKey,
	tenantId: "tenant-123",
	id: "user-456",
	email: "colleague@example.com",
	isAdminInTenant: false,
	isActiveInTenant: true,
	sendInvitationEmail: true
});

Remarque : Les champs de rôle dans le corps de la requête (isAdminInTenant, access, isDashboardViewer) sont pris en compte tels quels. Les points de terminaison de gestion des utilisateurs offrent une interface complète d’administration du tenant. Vous devez donc fournir uniquement des clés API avec un périmètre d’écriture aux appelants auxquels vous accordez des droits d’administration. L’API système n’envoie aucun e-mail d’invitation ; vous êtes responsable de l’intégration de l’utilisateur.

Importer des fichiers

La procédure générale pour importer un fichier dans ProcessMind est la suivante :

  1. Obtenez une URL présignée à l’aide de l’appel getPresignedUploadUrl.
  2. Effectuez une requête PUT vers cette URL avec le contenu du fichier.
  3. L’URL présignée autorise directement l’importation vers le stockage cloud ; aucun identifiant supplémentaire n’est nécessaire.

Voici un exemple simplifié utilisant fetch :

async function uploadFile({ apiKey, tenantId, datatableId, file }) {
	// Step 1: Obtain a presigned URL
	const uploadUrl = await getPresignedUploadUrl({ apiKey, tenantId, datatableId });
	
	// Step 2: Upload the file via PUT
	await fetch(uploadUrl, {
		method: "PUT",
		headers: {
			"Content-Type": file.type
		},
		body: file
	});
}

info

  • Les URL présignées expirent après un délai défini, souvent quelques minutes. Utilisez l’URL rapidement après l’avoir récupérée.
  • Si un import échoue, par exemple en raison d’une interruption réseau, demandez une nouvelle URL présignée avant de réessayer.
  • Conservez toujours votre apiKey en lieu sûr et ne l’exposez pas côté client, par exemple dans une interface front-end publique.

Exemples complets

Vous trouverez ci-dessous des exemples complets, prêts à être copiés-collés, dans différents langages.

Exemple Bash : importer un fichier

Script Bash minimal permettant d’importer un fichier dans ProcessMind à l’aide de deux appels curl, avec des espaces réservés pour toutes les valeurs

Télécharger l’exemple BASH

Exemple Node.js : importer un fichier CSV local

Importe un fichier CSV local dans ProcessMind à l’aide d’une URL présignée.

Étapes :

  1. Récupérez une URL d’importation présignée auprès de l’API.
  2. Lisez le fichier local depuis le disque.
  3. Importez le fichier vers l’URL présignée à l’aide de HTTP PUT.

Configuration :

  • Indiquez votre clé d’API, tenantId, datatableId et filePath lors de l’appel à uploadFile().
  • L’URL de base de l’API est définie sur https://api.processmind.com
Télécharger l’exemple NodeJS

Exemple Python : importer un fichier CSV local

Importe un fichier CSV local vers une API distante à l’aide d’une URL présignée.

Étapes :

  1. Récupérez une URL d’importation présignée auprès de l’API.
  2. Lisez le fichier local depuis le disque.
  3. Importez le fichier vers l’URL présignée à l’aide de HTTP PUT.

Configuration :

  • Mettez à jour api_key, tenant_id, datatable_id et file_path selon vos besoins.
Télécharger l’exemple Python

Pagination

Les points de terminaison de liste acceptent les paramètres de requête limit et offset et renvoient un tableau JSON brut, sans enveloppe ni nombre total :

Paramètre Type Valeur par défaut Maximum
limit entier 100 1 000
offset entier 0 Aucun
GET /v1/tenant/{tenantId}/processes?limit=50&offset=100

Pour parcourir tous les résultats, continuez à envoyer des requêtes avec offset += limit jusqu’à ce que le tableau de réponse contienne moins d’éléments que la valeur limit demandée, ou qu’il soit vide. Les valeurs supérieures au maximum sont rejetées avec 400. Les points de terminaison de données versionnés, jeux de données, datatables, versions et webhooks, suivent la même convention.

Versionnement et obsolescence

  • Toutes les routes sont versionnées sous /v1 ; les changements incompatibles sont publiés dans une nouvelle version au lieu de modifier silencieusement /v1.
  • Les obsolescences sont annoncées dans le journal des modifications et sur cette page au moins 6 mois avant la suppression d’une route, et les routes obsolètes continuent de fonctionner pendant cette période.
  • Les réponses des routes obsolètes contiennent un en-tête Sunset indiquant la date de suppression, ainsi que Deprecation: true.
  • Les changements importants visibles par les clients sont toujours répertoriés dans le journal des modifications ; abonnez-vous ou consultez cette page avant de mettre à niveau des clients d’API dont la version est figée.

Étapes suivantes

info

Si vous avez des questions ou besoin d’assistance concernant l’API, contactez l’équipe d’assistance ou ouvrez un ticket dans le dépôt d’exemples d’API.