Salesforce - Actualizar registro
↩ Parte de la integración Salesforce.
Descripción
Sección titulada «Descripción»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.
Configuración
Sección titulada «Configuración»| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
credentials_id | credentials | Sí | Credencial de Salesforce |
sobject | text | Sí | Nombre de API del objeto: Account, Contact, Lead… |
record_id | text | Sí | Id del registro a actualizar |
fields | json | Sí | 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.
Credenciales
Sección titulada «Credenciales»Este módulo necesita una credencial de Salesforce:
| Campo | Descripción |
|---|---|
login_url | https://login.salesforce.com o https://test.salesforce.com para una sandbox |
client_id / client_secret | Consumer Key y Secret de la Connected App |
username | Usuario de Salesforce |
password | Contraseñ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.
Ejemplo de uso
Sección titulada «Ejemplo de uso»Avanzar una oportunidad
Sección titulada «Avanzar una oportunidad»{ "credentials_id": "salesforce_prod", "sobject": "Opportunity", "record_id": "{{data.opportunityId}}", "fields": { "StageName": "Closed Won", "Amount": 15000 }}Actualizar el teléfono de un contacto
Sección titulada «Actualizar el teléfono de un contacto»{ "credentials_id": "salesforce_prod", "sobject": "Contact", "record_id": "{{data.contactId}}", "fields": { "Phone": "{{data.telefono}}", "MailingCity": "{{data.ciudad}}" }}Cerrar un caso
Sección titulada «Cerrar un caso»{ "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
Iddentro defields: el id viaja en la URL y mandarlo también en el cuerpo devuelve un400. - 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 devuelven400 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.messagedel nodo, y esos errores no se reintentan. - Si
fieldsno es un objeto JSON, orecord_idestá vacío, el nodo se detiene antes de llamar a Salesforce.
Nodos relacionados
Sección titulada «Nodos relacionados»- Salesforce: Leer registro — mirá los valores actuales antes de decidir qué cambiar.
- Salesforce: Upsert registro — actualizá si el registro existe y crealo si no.
- Salesforce: Consulta SOQL — conseguí los ids de los registros a actualizar.