- Flow avec External Services — Sans code. Enregistrez la spécification OpenAPI de Firma une seule fois, puis invoquez
Create and send signing requestdepuis n’importe quel Flow. Idéal pour les administrateurs. - Apex avec Named Credentials — Code. Appelez Firma directement depuis des classes Apex, des Flow Actions ou des contrôleurs LWC. Idéal pour les développeurs qui veulent un contrôle total.
- Action Agentforce — Exposez Firma comme une Action sur un agent Agentforce afin qu’il puisse envoyer des demandes de signature en réponse à une invite utilisateur ou à un déclencheur.
Prérequis
- Un compte Firma avec une clé API
- Un org Salesforce (édition Enterprise, Unlimited ou Developer) avec la permission de créer des Named Credentials et des External Services
- Au moins un modèle Firma avec des champs de signature configurés
Firma utilise la clé API brute comme valeur de l’en-tête
Authorization. Ne la préfixez pas avec Bearer. Cela diffère de nombreuses autres API.Étape 0 : Stocker la clé API Firma comme Named Credential
Les Named Credentials sont le mécanisme sécurisé de Salesforce pour stocker les URL de terminaison et les en-têtes d’authentification. Chaque autre section de ce guide y fait référence.- Dans Setup, recherchez Named Credentials et ouvrez la page
- Sous External Credentials, cliquez sur New :
- Label :
Firma - Name :
Firma - Authentication Protocol :
Custom
- Label :
- Cliquez sur le nouvel External Credential, faites défiler jusqu’à Principals, puis cliquez sur New :
- Parameter Name :
Default - Sequence Number :
1 - Identity Type :
Named Principal - Authentication Parameters : ajoutez un paramètre
- Name :
ApiKey - Value : votre clé API Firma
- Name :
- Parameter Name :
- Faites défiler jusqu’à Custom Headers et ajoutez-en un :
- Name :
Authorization - Value :
{!$Credential.Firma.ApiKey}
- Name :
- Retournez dans Named Credentials, cliquez sur New :
- Label :
Firma API - Name :
Firma_API - URL :
https://api.firma.dev/functions/v1/signing-request-api - External Credential :
Firma - Allowed Namespaces : laissez la valeur par défaut
- Label :
- Enregistrez
Parcours 1 : Flow avec External Services
Le parcours sans code. Vous importez la spécification OpenAPI de Firma une seule fois, et les actions deviennent disponibles comme étapes invocables dans n’importe quel Flow.Étape 1 : Enregistrer Firma comme External Service
- Dans Setup, recherchez External Services et cliquez sur Add an External Service
- Choisissez From API Specification, puis Save and Next
- Configurez :
- External Service Name :
Firma - Select a Named Credential :
Firma_API - Service Schema :
Upload from Localou collez le JSON
- External Service Name :
- Collez la spécification OpenAPI de Firma depuis
https://docs.firma.dev/api-reference/v01.26.00/openapi-v01.26.00.json - Cliquez sur Save and Next
- Sélectionnez les opérations que vous voulez rendre disponibles dans Flow. Choix courants :
POST /signing-requests/create-and-sendPOST /signing-requestsPOST /signing-requests/{id}/sendGET /signing-requests/{id}GET /templates
- Cliquez sur Save and Next, puis Finish
Consultez le changelog de l’API Firma pour connaître la dernière URL de spécification. Salesforce met la spécification en cache au moment de l’enregistrement, il faut donc réenregistrer l’External Service chaque fois que vous voulez de nouveaux endpoints.
Étape 2 : Construire le Flow
- Dans Setup, ouvrez Flows et créez un nouveau Flow (Record-Triggered est le plus courant)
- Choisissez votre objet déclencheur (Opportunity, Contract, Quote ou un objet personnalisé) et la condition qui doit envoyer une demande de signature (par ex.,
StageNameégal àClosed Won) - Ajoutez un élément Action
- Recherchez
Firmaet choisissezCreate and send signing request - Mappez les entrées :
template_id: une valeur de Custom Metadata, un champ d’enregistrement ou un identifiant de modèle codé en durrecipients: construisez une collection d’enregistrements de destinataires. Les champs obligatoires sontfirst_nameetemail. Les champs optionnels incluentlast_name,designation(par défautSigner),order,company,title,phone_numberet les champs d’adresse. Le plus simple est un élément Assignment qui construit la collection à partir des champs de contact de l’enregistrement déclencheur.
- Enregistrez et activez
Parcours 2 : Apex avec Named Credentials
Pour les développeurs qui veulent un contrôle total, appelez Firma directement depuis Apex. Utilisez le Named Credential comme base de l’endpoint afin que la clé API reste chiffrée.callout:Firma_API indique à Salesforce d’utiliser le Named Credential, qui injecte automatiquement l’en-tête Authorization. Aucune clé API n’apparaît dans le code, dans les journaux ni dans l’inspection des requêtes sérialisées.
L’endpoint
create-and-send crée la demande de signature et l’envoie par email aux destinataires en un seul appel. Si vous avez besoin d’une étape de revue contrôlée par Apex, utilisez POST /signing-requests pour créer un brouillon, puis POST /signing-requests/{id}/send séparément.Parcours 3 : Action Agentforce
Pour permettre à un agent Agentforce d’envoyer des demandes de signature en réponse à une invite (« envoie le NDA standard à alice@example.com »), enveloppez l’un des éléments ci-dessus dans une Agent Action.- Dans Setup, ouvrez Agentforce Builder et choisissez l’agent que vous voulez étendre
- Ouvrez le Topic concerné (par ex.,
Contract Lifecycle) - Cliquez sur New Action et choisissez Flow ou Apex
- Flow : choisissez un Flow d’écran ou autolancé qui enveloppe l’action External Services
Firma.Create and send signing request - Apex : choisissez la méthode
FirmaInvocable.send
- Flow : choisissez un Flow d’écran ou autolancé qui enveloppe l’action External Services
- Définissez les entrées que l’agent collectera depuis la conversation : modèle, nom du signataire, email du signataire
- Ajoutez l’action au Topic et publiez
Intégration webhook : réagir quand les documents sont signés
Recevez les webhooks Firma dans Salesforce en exposant un endpoint Apex REST, puis mettez à jour l’enregistrement d’origine (Opportunity, Contract, objet personnalisé) lorsque la demande de signature est terminée.Étape 1 : Créer l’endpoint Apex REST
Étape 2 : Vérifier la signature du webhook
Firma signe chaque payload de webhook avec HMAC-SHA256. Vérifiez toujours la signature en production pour rejeter les payloads usurpés. Votre secret de webhook est disponible dans Paramètres > Webhooks du tableau de bord Firma.receive() avant le traitement :
Étape 3 : Exposer l’endpoint publiquement
Les appels webhook de Firma ne sont pas authentifiés en tant qu’utilisateur Salesforce, exposez donc l’endpoint via un Experience Cloud Site. Créez un site (ou utilisez-en un existant), puis accordez au profil utilisateur invité du site la permission d’exécuter la classe ApexFirmaWebhook. Consultez Salesforce : Allow Guest Users to Access Apex REST pour les étapes de configuration complètes.
Étape 4 : Enregistrer le webhook dans Firma
- Dans le tableau de bord Firma, allez dans Paramètres > Webhooks
- Ajoutez un nouveau webhook pointant vers
https://<your-site-domain>/services/apexrest/firma-webhook - Abonnez-vous aux événements qui vous intéressent (
signing_request.completed,signing_request.recipient.declined,signing_request.expired)
Signature intégrée dans Lightning
Si vous voulez que les signataires complètent les documents à l’intérieur d’une page Lightning, utilisez un Lightning Web Component qui intègre l’interface de signature Firma. Après un appel create-and-send réussi, lisez l’ID du signataire dans la réponse et transmettez-le au LWC :https://app.firma.dev à vos CSP Trusted Sites pour que l’iframe se charge. Consultez le guide de signature intégrée pour la configuration complète, y compris les bonnes pratiques de sécurité.
Pour les ISV et partenaires AppExchange : signature multi-org
Si vous développez une application AppExchange qui nécessite des signatures électroniques pour chacun de vos orgs clients, utilisez Firma Customer Workspaces. Chaque org client dispose de son propre espace de travail Firma isolé avec des modèles, un suivi d’utilisation et une piste d’audit distincts. Provisionnez un espace de travail par org au moment de l’installation, stockez la clé API de l’espace de travail dans un Protected Custom Setting sur cet org, et référencez-la depuis le Named Credential. Aucune fuite de données entre les clients.Connexion MCP pour la création assistée par IA
Firma propose un serveur MCP Docs àhttps://docs.firma.dev/mcp. Connectez-le à Claude, Cursor ou tout autre outil IA compatible MCP pendant que vous écrivez de l’Apex ou construisez des Flows, et l’assistant pourra répondre avec précision aux questions sur l’API à partir de la documentation Firma. Cela concerne l’expérience de développement et n’affecte pas votre intégration déployée.
Étapes suivantes
- Authentification API - clés API et portée des espaces de travail
- Guide des webhooks - types d’événements, payloads et vérification de signature
- Signature intégrée - expérience de signature intégrée à l’application
- Création d’espaces de travail - configurations multi-locataires pour les applications SaaS
- Guide de configuration complet - parcours d’intégration Firma de bout en bout
- Référence API - documentation complète des endpoints