SHEETS_UPDATE - Atualizar Células do Google Sheets
O que é este Node?
O SHEETS_UPDATE é o node responsável por atualizar células específicas no Google Sheets. Similar ao SHEETS_WRITE, mas com foco em atualizações pontuais.
Por que este Node existe?
Atualizar células específicas é comum em manutenção de dados. O SHEETS_UPDATE existe para:
- Correção de Dados: Ajustar valores específicos sem afetar outros
- Atualização de Status: Modificar campo de status em registro
- Incrementos: Atualizar contadores ou métricas
- Sincronização: Manter dados atualizados com outras fontes
Como funciona internamente?
SHEETS_UPDATE usa a mesma implementação de SHEETS_WRITE com spreadsheets.values.update(). A diferença é semântica - update indica modificação de existente, write indica escrita nova.
Código interno (google-executors.service.ts:768-782):
case 'update':
case 'write':
const updateResult = await sheets.spreadsheets.values.update({
spreadsheetId: data.spreadsheetId,
range: data.range,
valueInputOption: 'USER_ENTERED',
requestBody: {
values: data.values,
},
});
return {
success: true,
updatedCells: updateResult.data.updatedCells,
updatedRows: updateResult.data.updatedRows,
};
Quando você DEVE usar este Node?
Use SHEETS_UPDATE quando precisar modificar células existentes específicas:
Casos de uso
- Atualizar Status: "Mudar status de 'Pendente' para 'Concluído'"
- Correção: "Ajustar preço de produto específico"
- Contador: "Incrementar número de visualizações"
- Timestamp: "Atualizar data de última modificação"
Quando NÃO usar SHEETS_UPDATE
- Adicionar linhas novas: Use NODE SHEETS_APPEND
- Limpar dados: Use NODE SHEETS_CLEAR
Parâmetros
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| operation | string | Sim | Deve ser "update" |
| spreadsheetId | string | Sim | ID da planilha |
| range | string | Sim | Range das células a atualizar |
| values | array | Sim | Novos valores |
| accessToken | string | Sim | Token OAuth2 |
| refreshToken | string | Sim | Token OAuth2 refresh |
Exemplo 1: Atualizar Status de Pedido
Objetivo: Marcar pedido como enviado
JSON para Importar
{
"name": "Atualizar Status Pedido",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "input_1",
"type": "input",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Número Pedido",
"parameters": {
"prompt": "Número do pedido enviado:",
"variableName": "pedido_num"
}
}
},
{
"id": "sheets_1",
"type": "google_sheets",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Atualizar Status",
"parameters": {
"operation": "update",
"spreadsheetId": "1Pedidos_XYZ",
"range": "Pedidos!E{{pedido_num}}",
"values": [["Enviado"]],
"accessToken": "{{google_access_token}}",
"refreshToken": "{{google_refresh_token}}"
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Confirmar",
"parameters": {
"message": "✅ Pedido {{pedido_num}} marcado como Enviado"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 900, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "input_1" },
{ "source": "input_1", "target": "sheets_1" },
{ "source": "sheets_1", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Saída esperada:
Sistema: Número do pedido enviado:
Usuário: 1234
Sistema: ✅ Pedido 1234 marcado como Enviado
Resposta do Node
{
"success": true,
"updatedCells": 1,
"updatedRows": 1
}
Boas Práticas
✅ SIM: - Use range preciso para atualizar apenas o necessário - Valide dados antes de atualizar - Mantenha log de atualizações importantes
❌ NÃO: - Não atualize ranges grandes sem necessidade - Não esqueça de verificar se célula existe
Dicas
💡 Dica 1: UPDATE e WRITE são tecnicamente idênticos. Use UPDATE semanticamente para indicar modificação de existente.
💡 Dica 2: Combine com SHEETS_READ para verificar valor atual antes de atualizar.
Próximo Node
→ SHEETS_WRITE - Escrever dados → SHEETS_READ - Ler antes de atualizar