Eliminar un tema

DELETE /api/v1/topics/{topicId} Elimina un tema. Solo se puede eliminar uno que nada lleve.
Eliminar un tema tira los rechazos que expresaron las personas. Todos los que lo rechazaron vuelven a recibir esa temática, y no hay forma de deshacerlo. Lee optOutCount en Obtener un tema antes de hacer esta llamada.

Autorización

Rol en la organizaciónEste endpoint
OWNERPermitido
ADMINPermitido
MEMBERRechazado — 403
Una clave lleva el rol que su creador tiene en esta organización, nunca un rol sobre AgentsMail en sí. Consulta Claves de API.

Parámetros de ruta

ParámetroTipoDescripción
topicIdstringObligatorio. El tema que se va a eliminar

Ejemplo

bash
curl -X DELETE -H "x-api-key: $AGENTMAIL_API_KEY" \
  "https://www.agentsmail.io/api/v1/topics/$TOPIC_ID"

Respuesta

  • 200 OK: el id de lo que se eliminó.
  • 401 Unauthorized: clave ausente o no válida, o su propietario salió de la organización.
  • 403 Forbidden: el propietario de la clave es member de la organización, no admin.
  • 404 Not Found: no existe ese tema, o pertenece a otra organización. La API nunca confirma que un id existe a un llamante que no tiene derecho sobre él.
  • 409 Conflict: una campaña o una secuencia todavía lleva el tema. El mensaje las nombra. Reintentar no servirá: desasígnalas primero, o conserva el tema.
  • 429 Too Many Requests: más de 120 solicitudes en un minuto para esta clave.

Campos de la respuesta

CampoTipoDescripción
successbooleanIndica si la operación se realizó correctamente
data.idstringIdentificador de lo que se eliminó

Ejemplo de respuesta

json
{
  "success": true,
  "data": {
    "id": "7c2e4b19"
  }
}

Receta para agentes

Desasigna y después elimina, y lee el mensaje del 409 en lugar de reintentar:
js
const usage = (await get(`/api/v1/topics/${topicId}`)).data

for (const campaign of usage.campaigns) {
  await patch(`/api/v1/campaigns/${campaign.id}`, {topicId: null})
}

const response = await del(`/api/v1/topics/${topicId}`)
if (response.status === 409) {
  // Something was attached in the meantime — the error names it
}
Una campaña que ya salió no se puede editar, así que su tema no se puede desasignar: ese tema se queda, y es deliberado: lo que se envió sigue siendo trazable.

Notas

  • El rechazo se vuelve a calcular en el momento de la eliminación, no se toma de lo que leíste la última vez. Una campaña creada entre tus dos llamadas bloquea la eliminación.
  • Desasignar un tema de una secuencia publicada cuyos pasos llevan {{topicOptOutUrl}} también se rechaza. Abre un borrador, quita el shortcode y publica, o conserva el tema.

Relacionado