# Integração MMS — Sipolatti > Fluxo improdutivo, reencaminhamento, cancelamento automático, checklist e finalização · Sprint 25 · 2026-07-22 --- ## O que é a MMS A **MMS (TempoAssist)** é o ERP da Sipolatti. Toda OS da Sipolatti é enviada para a MMS quando encaminhada para um profissional. A MMS devolve eventos (ocorrências) via webhook quando algo acontece em campo. --- ## Fluxo Improdutivo Uma montagem **improdutiva** ocorre quando o profissional foi até o cliente mas não conseguiu executar o serviço (volume faltante, produto avariado, cliente ausente, etc.). ### Como chega no Donc 1. MMS detecta a ocorrência e envia webhook `POST /api/integracoes/mms/ocorrencia` 2. Donc processa automaticamente: - **Registra na timeline da OS** com mensagem HTML contendo certificado, filial, data, SKU, código e data da ocorrência - **Seta status ProblemaGeral (2000)** — OS aparece com status *"Problema Geral"* no Admin - **Cria registro de JobProblema** — vinculado ao TipoProblema correspondente ### O que o usuário vê Em **Admin → Pedidos → Ver**: - **Status atual:** Problema Geral (2000) - **Timeline:** entrada com os dados completos da ocorrência MMS - **Aba Problemas:** registro do tipo de problema identificado --- ## Tabela de Para — Códigos MMS × Donc | Código MMS | Descrição MMS | TipoProblema Donc | |-----------|--------------|------------------| | 15 | CLIENTE AUSENTE | Cliente Ausente | | 112 | FALTA DE VOLUME | Volume faltante | | 120 | PEÇA DANIFICADA IMPEDIU A MONTAGEM | PRODUTO AVARIADO | | 139 | MONTAGEM COM PROBLEMA TÉCNICO | ASSISTENCIA TECNICA | | 163 | NÃO EXECUTADA POR PROBLEMAS NO IMÓVEL | Cliente reagendou | | 171 | VOLUME(S) DANIFICADO(S) | PRODUTO AVARIADO | | 180 | FALTA DE VOLUME(S) + DANIFICADO(S) | Volume faltante | | 198 | MERCADORIA NÃO CABE NO LOCAL | PRODUTO NÃO CABE NO LOCAL | | 201 | COR ERRADA (NF = MERCADORIA) | Produto divergente da compra | | 210 | COR ERRADA (NF ≠ MERCADORIA) | PRODUTO DIFERENTE DA NOTA | | 244 | CLIENTE EM VIAGEM | Cliente Ausente | | 252 | FALTA DE VOLUME + CÔMODO ERRADO | Volume faltante | | 260 | QUEBRADO + CÔMODO ERRADO | PRODUTO AVARIADO | | 279 | QUEBRADO + FALTANTE + CÔMODO ERRADO | Volume faltante | | 287 | MERCADORIA EM CÔMODO ERRADO | PRODUTO FORA DO LOCAL | | 2 | CANCELAMENTO COMPRA CORPORATIVO | Cliente irá cancelar/trocar | | 7 | ALTERAÇÃO DA DATA DE ATENDIMENTO | NÃO DEU TEMPO | | 31, 40 | RUA NÃO LOCALIZADA | ENDEREÇO NÃO LOCALIZADO | | 90 | PLATAFORMA SOLICITOU REAGENDAMENTO | NÃO DEU TEMPO | | 104 | REAGENDAMENTO CONFIRMADO | Cliente reagendou | | 155 | CLIENTE CANCELARÁ A COMPRA/TROCA | Cliente irá cancelar/trocar | | 597 | AGUARDANDO AGENDAMENTO PELO CLIENTE | Cliente reagendou | > Códigos sem mapeamento (317, 23, 58, 66, 236, 350): logados e ignorados até serem criados no Donc. --- ## Reencaminhar OS Improdutiva Quando o usuário reencaminha uma OS com **status Problema Geral (2000)** para um profissional MMS, o sistema detecta automaticamente e envia o payload correto de retorno improdutivo para a MMS — sem nenhuma ação extra do usuário. **Fluxo:** 1. Usuário reencaminha OS no Admin 2. Sistema detecta `Saida.StatusId == 2000` 3. Envia retorno improdutivo para a MMS (`tpmtg=I`, `retornoImprodutivo=V`) 4. MMS agenda novo atendimento O reencaminhamento pelo Admin funciona normalmente — o sistema decide sozinho se deve enviar adesão normal ou retorno improdutivo. --- ## Cancelamento Automático Quando uma OS da Sipolatti é **cancelada no Donc**, o cancelamento é propagado automaticamente para a MMS. **Fluxo:** 1. OS cancelada no Donc (`StatusCalculadoId = 1700`) 2. Sistema verifica se profissional da OS é `mms@sipolatti.com.br` 3. Se sim, chama `DELETE /api/erp/cancelar-mms` 4. Timeline da OS recebe nova entrada: - ✅ Sucesso: `"Cancelamento confirmado na MMS"` - ❌ Erro: `"Erro ao confirmar cancelamento na MMS — {detalhes}"` > **Condição:** o cancelamento só é propagado para a MMS se o profissional da OS for `mms@sipolatti.com.br`. OS da Sipolatti com outro profissional não são afetadas. --- ## Checklist do Profissional Quando o profissional preenche o checklist na MMS após a visita, a MMS envia os dados para o Donc automaticamente via `POST /api/integracoes/mms/checklist`. **Fluxo:** 1. Profissional preenche checklist na MMS 2. MMS envia webhook `/mms/checklist` 3. Donc registra na timeline da OS com todos os dados (respostas, peças solicitadas, volumes) 4. Status seta **Em Rota (850)** **O que aparece na timeline da OS:** ``` Checklist MMS recebido Certificado: 022399600 Filial: 0167 Data checklist: 22/07/2026 09:45 SKU: 55464 Respostas: • O produto estava completo?: Sim • Houve dano na embalagem?: Não Peças solicitadas: • Código: 1313132 — Qtd: 2 Volumes solicitados: • Id: 1 — Tipo: Caixa ``` O status da OS passa automaticamente para **Em Rota (850)** ao receber o checklist — sem ação manual do usuário. --- ## Finalização do Serviço Quando o profissional conclui o serviço na MMS, a MMS envia a ocorrência de código **990** via `POST /api/integracoes/mms/ocorrencia`. O Donc finaliza a OS automaticamente. **Fluxo:** 1. Profissional conclui serviço na MMS 2. MMS envia webhook `/mms/ocorrencia` com código 990 3. Donc processa: - Insere entrada na timeline com status **1500** - Atualiza `Pedido.StatusCalculadoId = 1500` e `Saida.StatusId = 1500` - Seta `Pedido.DataFimExecucao` com a data da ocorrência recebida da MMS - Dispara `WebHooks.StatusChanged` — gatilhos configurados para mudança de status são acionados **O que aparece na timeline da OS:** ``` Serviço concluído via MMS Certificado: 022399600 Filial: 0167 Data ocorrência: 22/07/2026 10:12 ``` A OS é finalizada automaticamente — o status passa para **Finalizado (1500)** e a data de execução é registrada com o horário exato recebido da MMS. --- ## Profissional de Sistema MMS O profissional com e-mail `mms@sipolatti.com.br` é um usuário de sistema cadastrado exclusivamente para registrar as ocorrências MMS nos problemas da OS. **Não é um profissional real em campo.**