- Flow con External Services — Sin código. Registra la especificación OpenAPI de Firma una vez y luego invoca
Create and send signing requestdesde cualquier Flow. Ideal para administradores. - Apex con Named Credentials — Con código. Llama a Firma directamente desde clases Apex, Flow Actions o controladores LWC. Ideal para desarrolladores que quieren control total.
- Acción de Agentforce — Expón Firma como una Action en un agente de Agentforce para que pueda enviar solicitudes de firma en respuesta a un prompt de usuario o a un disparador.
Requisitos previos
- Una cuenta de Firma con una clave API
- Una org de Salesforce (edición Enterprise, Unlimited o Developer) con permiso para crear Named Credentials y External Services
- Al menos una plantilla de Firma con campos de firma configurados
Firma usa la clave API en bruto como el valor del header
Authorization. No la prefijes con Bearer. Esto difiere de muchas otras APIs.Paso 0: Guardar la clave API de Firma como una Named Credential
Las Named Credentials son el patrón seguro de Salesforce para guardar URLs de endpoints y headers de autenticación. El resto de las secciones de esta guía la referencian.- En Setup, busca Named Credentials y abre la página
- En External Credentials, haz clic en New:
- Label:
Firma - Name:
Firma - Authentication Protocol:
Custom
- Label:
- Entra a la nueva External Credential, baja hasta Principals y haz clic en New:
- Parameter Name:
Default - Sequence Number:
1 - Identity Type:
Named Principal - Authentication Parameters: agrega un parámetro
- Name:
ApiKey - Value: tu clave API de Firma
- Name:
- Parameter Name:
- Baja hasta Custom Headers y agrega uno:
- Name:
Authorization - Value:
{!$Credential.Firma.ApiKey}
- Name:
- De vuelta en Named Credentials, haz clic en New:
- Label:
Firma API - Name:
Firma_API - URL:
https://api.firma.dev/functions/v1/signing-request-api - External Credential:
Firma - Allowed Namespaces: deja el valor predeterminado
- Label:
- Guarda
Camino 1: Flow con External Services
El camino sin código. Importas la especificación OpenAPI de Firma una vez y las acciones quedan disponibles como pasos invocables en cualquier Flow.Paso 1: Registrar Firma como un External Service
- En Setup, busca External Services y haz clic en Add an External Service
- Elige From API Specification y luego Save and Next
- Configura:
- External Service Name:
Firma - Select a Named Credential:
Firma_API - Service Schema:
Upload from Localo pega el JSON
- External Service Name:
- Pega la especificación OpenAPI de Firma desde
https://docs.firma.dev/api-reference/v01.26.00/openapi-v01.26.00.json - Haz clic en Save and Next
- Selecciona las operaciones que quieres disponibles en Flow. Opciones comunes:
POST /signing-requests/create-and-sendPOST /signing-requestsPOST /signing-requests/{id}/sendGET /signing-requests/{id}GET /templates
- Haz clic en Save and Next y luego en Finish
Consulta el changelog de la API de Firma para conocer la URL más reciente de la especificación. Salesforce guarda en caché la especificación en el momento del registro, así que vuelve a registrar el External Service cada vez que quieras nuevos endpoints.
Paso 2: Construir el Flow
- En Setup, abre Flows y crea un nuevo Flow (Record-Triggered es lo más común)
- Elige el objeto disparador (Opportunity, Contract, Quote o un objeto personalizado) y la condición que debe enviar una solicitud de firma (por ejemplo,
StageNamees igual aClosed Won) - Agrega un elemento Action
- Busca
Firmay eligeCreate and send signing request - Mapea las entradas:
template_id: un valor de Custom Metadata, un campo del registro o un ID de plantilla fijorecipients: construye una colección de registros de destinatarios. Los campos obligatorios sonfirst_nameyemail. Los campos opcionales incluyenlast_name,designation(por defectoSigner),order,company,title,phone_numbery campos de dirección. La forma más fácil es un elemento Assignment que construya la colección a partir de los campos de contacto del registro disparador
- Guarda y activa
Camino 2: Apex con Named Credentials
Para desarrolladores que quieren control total, llama a Firma directamente desde Apex. Usa la Named Credential como base del endpoint para que la clave API permanezca cifrada.callout:Firma_API le indica a Salesforce que use la Named Credential, la cual inyecta el header Authorization automáticamente. Ninguna clave API aparece en el código, en los logs ni en la inspección de solicitudes serializadas.
El endpoint
create-and-send crea la solicitud de firma y la envía por correo a los destinatarios en una sola llamada. Si necesitas un paso de revisión controlado por Apex, usa POST /signing-requests para crear un borrador y luego POST /signing-requests/{id}/send por separado.Camino 3: Acción de Agentforce
Para permitir que un agente de Agentforce envíe solicitudes de firma en respuesta a un prompt (“envía el NDA estándar a alice@example.com”), envuelve una de las opciones anteriores como una Agent Action.- En Setup, abre Agentforce Builder y elige el agente que quieres extender
- Abre el Topic correspondiente (por ejemplo,
Contract Lifecycle) - Haz clic en New Action y elige Flow o Apex
- Flow: elige un screen Flow o un Flow autolanzado que envuelva la acción
Firma.Create and send signing requestde External Services - Apex: elige el método
FirmaInvocable.send
- Flow: elige un screen Flow o un Flow autolanzado que envuelva la acción
- Define las entradas que el agente recopilará de la conversación: plantilla, nombre del firmante, correo del firmante
- Agrega la acción al Topic y publica
Integración de webhooks: reaccionar cuando se firman documentos
Recibe webhooks de Firma en Salesforce exponiendo un endpoint Apex REST, y luego actualiza el registro de origen (Opportunity, Contract, objeto personalizado) cuando la solicitud de firma se completa.Paso 1: Crear el endpoint Apex REST
Paso 2: Verificar la firma del webhook
Firma firma cada payload de webhook con HMAC-SHA256. Verifica siempre la firma en producción para rechazar payloads falsificados. Tu webhook secret está disponible en Configuración > Webhooks en el panel de Firma.receive() antes de procesar:
Paso 3: Exponer el endpoint públicamente
Las llamadas de webhook de Firma no están autenticadas como un usuario de Salesforce, así que expón el endpoint a través de un Experience Cloud Site. Crea un site (o usa uno existente) y luego otorga al perfil de guest user del site permiso para ejecutar la clase ApexFirmaWebhook. Consulta Salesforce: Allow Guest Users to Access Apex REST para conocer los pasos de configuración completos.
Paso 4: Registrar el webhook en Firma
- En el panel de Firma, ve a Configuración > Webhooks
- Agrega un nuevo webhook apuntando a
https://<your-site-domain>/services/apexrest/firma-webhook - Suscríbete a los eventos que te interesan (
signing_request.completed,signing_request.recipient.declined,signing_request.expired)
Firma incrustada en Lightning
Si quieres que los firmantes completen documentos dentro de una página Lightning, usa un Lightning Web Component que incruste la interfaz de firma de Firma. Después de una llamada create-and-send exitosa, lee el ID del firmante de la respuesta y pásalo al LWC:https://app.firma.dev a tus CSP Trusted Sites para que el iframe cargue. Consulta la guía de firma incrustada para conocer la configuración completa, incluidas las mejores prácticas de seguridad.
Para ISVs y partners de AppExchange: firma multi-org
Si estás construyendo una app de AppExchange que necesita firmas electrónicas para cada una de las orgs de tus clientes, usa Firma Customer Workspaces. Cada org de cliente obtiene su propio espacio de trabajo de Firma aislado con plantillas separadas, seguimiento de uso y registro de auditoría. Aprovisiona un espacio de trabajo por org en el momento de la instalación, guarda la clave API del espacio de trabajo en un Protected Custom Setting en esa org y referéncialo desde la Named Credential. Sin fuga de datos entre clientes.Conexión MCP para construcción asistida por IA
Firma ofrece un servidor Docs MCP enhttps://docs.firma.dev/mcp. Conéctalo a Claude, Cursor o cualquier herramienta de IA compatible con MCP mientras escribes Apex o construyes Flows, y el asistente podrá responder preguntas precisas sobre la API a partir de la documentación de Firma. Esto es para la experiencia de construcción y no afecta tu integración desplegada.
Próximos pasos
- Autenticación de la API - Claves API y alcance de espacios de trabajo
- Guía de webhooks - Tipos de eventos, payloads y verificación de firma
- Firma incrustada - Experiencia de firma dentro de la app
- Creación de espacios de trabajo - Configuraciones multi-tenant para apps SaaS
- Guía de configuración completa - Recorrido de integración de Firma de extremo a extremo
- Referencia de la API - Documentación completa de endpoints