Conceitos
Revisões e conflitos
Como o LiveTP impede que uma integração sobrescreva o trabalho feito em outro lugar.
O mesmo roteiro pode ser editado ao mesmo tempo na web, no app, por um agente e por uma automação. Para que ninguém perca texto, toda alteração usa controle de concorrência otimista.
Como funciona
- Cada roteiro tem um número
revision, que começa em1. - Toda gravação (edição, lixeira ou restauração) incrementa a revisão em uma unidade.
- Para alterar, você envia
expectedRevisioncom a revisão que leu. - Se o roteiro mudou desde a leitura, a API responde
409 conflicte não grava nada.
PUT /api/v1/scripts/67a92051-... HTTP/1.1
Authorization: Bearer ltp_api_...
Content-Type: application/json
{ "title": "...", "content": "...", "status": "ready", "expectedRevision": 3 }As respostas de leitura e de alteração trazem a revisão atual no corpo e no header ETag (por exemplo, "4").
Tratando um conflito
A resposta 409 traz a versão salva no servidor:
{
"error": {
"code": "conflict",
"message": "O roteiro mudou em outro lugar. Revise antes de substituir.",
"details": {
"current": {
"id": "67a92051-1245-4126-b9b4-2c532084ae16",
"title": "Lançamento do produto",
"content": "Texto editado no app...",
"status": "review",
"revision": 4,
"createdAt": "2026-10-30T15:00:00.000Z",
"updatedAt": "2026-10-30T15:44:02.118Z",
"deletedAt": null
}
}
}
}Nunca sobrescreva automaticamente
Não repita a gravação usando details.current.revision sem revisar o texto. Compare as versões, preserve as mudanças da pessoa e só então envie de novo. Agentes MCP recebem a mesma instrução do servidor.
Estratégias comuns:
- Mudança só de status: releia, aplique o novo status sobre o texto atual e grave com a nova revisão.
- Texto gerado por IA: crie um novo roteiro em vez de substituir um que a pessoa está editando.
- Interface própria: mostre as duas versões e deixe a pessoa escolher.
Operações que exigem revisão
| Operação | Campo |
|---|---|
| Atualizar | expectedRevision no corpo |
| Mover para a lixeira | expectedRevision no corpo |
| Restaurar | expectedRevision no corpo |
A criação não usa revisão. Para repetir uma criação com segurança, envie um id próprio: veja Como evitar roteiros duplicados.
Revisões e webhooks
Cada evento de webhook informa a revisão que o gerou. Uma gravação sem mudança real de título, texto ou status avança a revisão, mas não emite evento. Assim, a revisão do evento pode ser menor que a revisão atual do roteiro. Veja Eventos.