Ir al contenido

Salesforce

Los nodos Salesforce conectan tus workflows con Salesforce a través de su API REST. Con ellos podés automatizar tu CRM: crear un Lead cuando entra un formulario, actualizar una Oportunidad al avanzar un proceso, consultar cuentas con SOQL, o sincronizar registros por un id externo (upsert).

Hay seis nodos, uno por operación:

NodoOperaciónMétodo HTTP
Salesforce: Crear registro (salesforceCreateRecord)Crea un registroPOST /sobjects/{sobject}
Salesforce: Leer registro (salesforceGetRecord)Lee un registro por idGET /sobjects/{sobject}/{id}
Salesforce: Actualizar registro (salesforceUpdateRecord)Actualiza camposPATCH /sobjects/{sobject}/{id}
Salesforce: Borrar registro (salesforceDeleteRecord)Borra un registroDELETE /sobjects/{sobject}/{id}
Salesforce: Consulta SOQL (salesforceQuery)Consulta con SOQLGET /query?q=...
Salesforce: Upsert registro (salesforceUpsertRecord)Crea o actualiza por external idPATCH /sobjects/{sobject}/{extField}/{extValue}

Los nodos usan una credencial de tipo Salesforce. Creala en Credenciales → Agregar → Salesforce con estos campos:

CampoDescripción
login_urlhttps://login.salesforce.com (producción) o https://test.salesforce.com (sandbox).
client_idEl Consumer Key de tu Connected App.
client_secretEl Consumer Secret de tu Connected App.
usernameEl usuario de Salesforce.
passwordLa contraseña concatenada con el security token (ej. MiPass + AbCd1234...).
  • La autenticación usa el OAuth2 password flow: el motor pide un token a POST {login_url}/services/oauth2/token y llama a la API con Authorization: Bearer {access_token}. El token se cachea en memoria (~2h) y se renueva automáticamente si expira (401).
  • El password es la contraseña + el security token concatenados, sin separador. El security token te llega por email desde Setup → Reset My Security Token.
  • Para una sandbox usá login_url = https://test.salesforce.com.
  • PATCH (actualizar/upsert) y DELETE devuelven 204 sin cuerpo: el nodo lo trata como éxito.
  • Las consultas se hacen en SOQL (ej. SELECT Id, Name FROM Account LIMIT 10).
  • El upsert usa un campo external id (un campo marcado como External ID en Salesforce): si existe un registro con ese valor lo actualiza, si no lo crea.

Podés probar la credencial con el botón Test, que obtiene el token OAuth2 y muestra el instance_url.

Salesforce: Crear registro (salesforceCreateRecord)

Sección titulada «Salesforce: Crear registro (salesforceCreateRecord)»
ParámetroTipoRequeridoDescripción
credentials_idcredencialSíCredencial de Salesforce
sobjecttextoSíObjeto (ej. Account, Contact, Lead, Opportunity, Case)
fieldsJSONSíCampos del registro, ej. {"Name":"ACME"}

Salida: { "id": "...", "success": true }.

Salesforce: Leer registro (salesforceGetRecord)

Sección titulada «Salesforce: Leer registro (salesforceGetRecord)»
ParámetroTipoRequeridoDescripción
credentials_idcredencialSíCredencial de Salesforce
sobjecttextoSíObjeto (ej. Account)
record_idtextoSíid del registro
fieldstextoNoCampos a devolver, separados por coma (ej. Name,Email). Vacío = todos

Salesforce: Actualizar registro (salesforceUpdateRecord)

Sección titulada «Salesforce: Actualizar registro (salesforceUpdateRecord)»
ParámetroTipoRequeridoDescripción
credentials_idcredencialSíCredencial de Salesforce
sobjecttextoSíObjeto (ej. Account)
record_idtextoSíid del registro a actualizar
fieldsJSONSíCampos a actualizar, ej. {"Phone":"555"}

Salida: { "id": "...", "updated": true } (Salesforce responde 204).

Salesforce: Borrar registro (salesforceDeleteRecord)

Sección titulada «Salesforce: Borrar registro (salesforceDeleteRecord)»
ParámetroTipoRequeridoDescripción
credentials_idcredencialSíCredencial de Salesforce
sobjecttextoSíObjeto (ej. Account)
record_idtextoSíid del registro a borrar

Salida: { "id": "...", "deleted": true } (Salesforce responde 204).

ParámetroTipoRequeridoDescripción
credentials_idcredencialSíCredencial de Salesforce
soqltexto largoSíConsulta SOQL, ej. SELECT Id, Name FROM Account LIMIT 10

Salida: el array de registros (records).

Salesforce: Upsert registro (salesforceUpsertRecord)

Sección titulada «Salesforce: Upsert registro (salesforceUpsertRecord)»
ParámetroTipoRequeridoDescripción
credentials_idcredencialSíCredencial de Salesforce
sobjecttextoSíObjeto (ej. Account)
external_id_fieldtextoSíCampo external id (ej. ExternalId__c)
external_id_valuetextoSíValor del external id
fieldsJSONSíCampos del registro

Salida: { "id": "...", "success": true, "created": true|false }.

Crear un Lead a partir de un formulario:

  • Nodo: Salesforce: Crear registro
  • sobject: Lead
  • fields:
{
"LastName": "{{data.apellido}}",
"Company": "{{data.empresa}}",
"Email": "{{data.email}}"
}

Salida:

{
"id": "00Q5g00000AbCdEFGH",
"success": true
}

Cada nodo clasifica los errores para que el motor sepa si tiene sentido reintentar:

SituaciónReintentableQué hacer
Validación (400)NoSalesforce devuelve el motivo ([{message, errorCode}], ej. campo requerido faltante). Corregí los datos.
No encontrado (404)NoEl registro o el objeto no existen. Revisá el id y el sobject.
Autenticación (401/403)NoTras un reintento automático re-obteniendo el token, sigue fallando: revisá la Connected App, el usuario, la contraseña+security token, o los permisos.
Servidor (5xx)SíError temporal de Salesforce; se reintenta automáticamente.
Límite de tasa (429/503)SíSe respeta el Retry-After y se reintenta.
Red / TimeoutSíProblema pasajero; se reintenta automáticamente.