Saltearse al contenido

Actualizar contacto

Actualiza parcialmente la información de un contacto existente.

ParámetroTipoRequeridoDescripción
idstringID único del contacto a actualizar

Todos los campos son opcionales. Solo se actualizarán los campos enviados.

{
"name": "Juan Carlos",
"lastName": "Pérez García",
"email": "[email protected]",
"phone": "3001234567",
"countryCode": "57",
"status": "INACTIVE",
"birthDate": "1990-01-15T00:00:00.000Z",
"tagIds": ["tag1-uuid", "tag2-uuid"],
"customValues": [
{
"id": "existing-value-uuid",
"value": "Nuevo valor",
"customFieldId": "field-uuid"
}
]
}
CampoTipoDescripción
namestringNombre del contacto
lastNamestringApellido del contacto
emailstringCorreo electrónico
phonestringNúmero de teléfono
countryCodestringCódigo de país
statusenumEstado: ACTIVE, INACTIVE, BLOCKED
birthDatedatetimeFecha de nacimiento
tagIdsarrayIDs de etiquetas a asociar
customValuesarrayValores de campos personalizados
{
"id": "contact-uuid-123",
"name": "Juan Carlos",
"lastName": "Pérez García",
"email": "[email protected]",
"phone": "3001234567",
"countryCode": "57",
"status": "INACTIVE",
"birthDate": "1990-01-15T00:00:00.000Z",
"origin": "API",
"organizationId": "org-uuid",
"customValues": [
{
"id": "existing-value-uuid",
"value": "Nuevo valor",
"customFieldId": "field-uuid",
"contactId": "contact-uuid-123",
"createdAt": "2024-01-01T10:00:00.000Z",
"updatedAt": "2024-01-01T11:00:00.000Z"
}
],
"tags": [
{
"id": "tag1-uuid",
"name": "Cliente VIP",
"description": "Clientes importantes",
"color": "#FF5722",
"organizationId": "org-uuid",
"createdAt": "2024-01-01T00:00:00.000Z",
"updatedAt": "2024-01-01T00:00:00.000Z"
}
],
"createdAt": "2024-01-01T10:00:00.000Z",
"updatedAt": "2024-01-01T11:00:00.000Z"
}
CódigoDescripción
400Datos de entrada inválidos
401API Key faltante o inválida
404Contacto no encontrado
409Conflicto (email o teléfono ya existe)
500Error interno del servidor
Ventana de terminal
curl -X PATCH "https://app.sendme123.com/api/contacts/contact-uuid-123" \
-H "api-key: tu-api-key-aqui" \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"status": "INACTIVE"
}'
const desactivarContacto = async (contactId) => {
try {
const response = await axios.patch(`https://app.sendme123.com/api/contacts/${contactId}`,
{ status: 'INACTIVE' },
{
headers: {
'api-key': 'tu-api-key-aqui',
'Content-Type': 'application/json'
}
}
);
console.log('Contacto desactivado:', response.data);
return response.data;
} catch (error) {
console.error('Error desactivando contacto:', error.response?.data || error.message);
throw error;
}
};
const actualizarEmail = async (contactId, nuevoEmail) => {
try {
const response = await axios.patch(`https://app.sendme123.com/api/contacts/${contactId}`,
{ email: nuevoEmail },
{
headers: {
'api-key': 'tu-api-key-aqui',
'Content-Type': 'application/json'
}
}
);
console.log('Email actualizado:', response.data);
return response.data;
} catch (error) {
if (error.response?.status === 409) {
throw new Error('Email ya existe en otro contacto');
}
console.error('Error al actualizar email:', error.response?.data || error.message);
throw error;
}
};
const agregarEtiquetas = async (contactId, tagIds) => {
try {
// Primero obtener el contacto actual
const contacto = await axios.get(`https://app.sendme123.com/api/contacts/${contactId}`, {
headers: { 'api-key': 'tu-api-key-aqui' }
});
// Combinar etiquetas existentes con nuevas (sin duplicados)
const etiquetasExistentes = contacto.data.tags.map(tag => tag.id);
const todasLasEtiquetas = [...new Set([...etiquetasExistentes, ...tagIds])];
// Actualizar con todas las etiquetas
const response = await axios.patch(`https://app.sendme123.com/api/contacts/${contactId}`,
{ tagIds: todasLasEtiquetas },
{
headers: {
'api-key': 'tu-api-key-aqui',
'Content-Type': 'application/json'
}
}
);
console.log('Etiquetas agregadas:', response.data);
return response.data;
} catch (error) {
console.error('Error agregando etiquetas:', error.response?.data || error.message);
throw error;
}
};