Ir al contenido

Salesforce - Actualizar registro

↩ Parte de la integración Salesforce.

Actualiza un registro existente (PATCH /sobjects/{sobject}/{id}).

La llamada es una actualización parcial: solo se escriben los campos que enviás y el resto conserva su valor. Salesforce responde 204 No Content, así que el nodo arma él mismo el objeto de confirmación.

CampoTipoObligatorioDescripción
credentials_idcredentialsSíCredencial de Salesforce
sobjecttextSíNombre de API del objeto: Account, Contact, Lead…
record_idtextSíId del registro a actualizar
fieldsjsonSíCampos a actualizar, ej. {"Phone":"555"}

Todos los parámetros aceptan variables dinámicas; el texto de fields se resuelve antes de parsearse como JSON.

Este módulo necesita una credencial de Salesforce:

CampoDescripción
login_urlhttps://login.salesforce.com o https://test.salesforce.com para una sandbox
client_id / client_secretConsumer Key y Secret de la Connected App
usernameUsuario de Salesforce
passwordContraseña más el security token, concatenados

Salesforce no devuelve cuerpo, así que data es la confirmación que arma el nodo:

{
"id": "0065g00000AbCdEFGH",
"updated": true
}

Junto con él, _meta:

{ "moduleVersion": "1.0.0", "success": true, "id": "0065g00000AbCdEFGH", "totalMs": 290 }

Si necesitás los valores tal como quedaron guardados, releé el registro después con Leer registro.

{
"credentials_id": "salesforce_prod",
"sobject": "Opportunity",
"record_id": "{{data.opportunityId}}",
"fields": { "StageName": "Closed Won", "Amount": 15000 }
}
{
"credentials_id": "salesforce_prod",
"sobject": "Contact",
"record_id": "{{data.contactId}}",
"fields": { "Phone": "{{data.telefono}}", "MailingCity": "{{data.ciudad}}" }
}
{
"credentials_id": "salesforce_prod",
"sobject": "Case",
"record_id": "{{data.caseId}}",
"fields": { "Status": "Closed", "Description": "Resuelto automáticamente por el flujo." }
}
  • Solo se escriben los campos que enviás; los demás quedan intactos.
  • No incluyas Id dentro de fields: el id viaja en la URL y mandarlo también en el cuerpo devuelve un 400.
  • Para vaciar un campo, mandá null. La cadena vacía funciona en campos de texto, pero no en lookups ni en fechas.
  • Los campos de fórmula, los de resumen y los del sistema (CreatedDate, LastModifiedDate) son de solo lectura y devuelven 400 INVALID_FIELD_FOR_INSERT_UPDATE.
  • Acá se disparan las reglas de validación, los campos obligatorios y los triggers. Su mensaje vuelve en el error.message del nodo, y esos errores no se reintentan.
  • Si fields no es un objeto JSON, o record_id está vacío, el nodo se detiene antes de llamar a Salesforce.