---
# System prepended metadata

title: Spike - Amazenar atendimentos da API SAC da B2W

---

# Spike - Amazenar atendimentos da API SAC da B2W

###### tags: https://jira-olist.atlassian.net/browse/SBX-149

[ToC]

## :dart: Objetivo?
- [ ] Ter um draft de como podemos armazenar as mensagens de pós vensas da olist-store B2W na [issues_api](https://github.com/olist/issues-api).
- [ ] Entender o fluxo de mensageria da B2W para determinar quais alterações necessárias em nossos sistemas.

## Arquitetura issues-api

A issues-api possui 4 Apps:
- issues
- ==sac==
- prefilled_answers
- claims

### SAC

![](https://i.imgur.com/mta8HQC.png)


## SAC Skyhub (B2W)

A Skyhub trabalha com o conceito de **ticket** e **mensagens**. Cada ticket pode conter uma ou mais mensagens(chats). 

É possível verificar todas as mensagens que ocorreram para um pedido informando o **{code}** (Código do pedido que identifica o ticket)

O ticket é identificado pelo seu **code** e possui um status que pode alternar entre **READ** ou **UNREAD**. O status deve ser visto sob o ponto de vista da olist e está atrelado ao fluxo de mensagens.


## Arquitetura

### Serviços necessários

- Alterar o [tapioca-skyhub](https://github.com/olist/tapioca-skyhub), incluindo os mapeamentos para os recursos de SAC Skyhub (b2w)
- **Scheduled job service** para buscar tickets no canal, traduzir para o formato interno e publicar em um tópico
- **Notification service** para receber as notificações de tickets e gravar na `issues-api` 


### Fluxo mensagens Skyhub --> Olist

```sequence
"skyhub-b2w-integration"->Skyhub: GET get_tickets
"skyhub-b2w-integration"->SNS: b2w_tickets__notification
SNS-->"b2w-sac-notification": b2w_sac_notification_service__b2w_ticket_notification
"b2w-sac-notification"-->SNS:message__notification
SNS-->"olist-broker":issues_api__message_notification
"olist-broker"-->"issues-api": POST v1/message
```

### Analises e Questionamentos API?

**Precisamos finalizar atendimentos/chats, se não fizermos acarreta em problema?**
Sim, informaram que sim precisamos finalizar os atendimentos, mas se não ocorrer irão verificar o fluxo.

**Faz sentido já trazer os anexos nessa v0?**
Skyhub informou como podemos fazer isso usando os sistema de mensagens, mas precisamos focar nas mensagens e depois nos anexos.

**Por que não vem dados de sac quando bato com acesso do olist?**
Buscando informações sobre...


---

:::warning
O [b2w-sheduled-jobs](https://github.com/olist/b2w-scheduled-jobs) e [b2w_sac_notification_service](https://github.com/olist/b2w-sac-notification-service) já existiram no passado mas foram arquivados em 25/06/2019 por não estarem em uso. Antes da integração de pedidos B2W com a skyhub, a api SAC B2W já não estava funcionando.
:::


### Referências

- [thread qdo repos foram arquivados](https://olist.slack.com/archives/C0JEWTR7B/p1561466211474500?thread_ts=1561464009.472700&cid=C0JEWTR7B)
- [Situação dos serviços relacionados com SAC - 10/2019](https://olist.slack.com/archives/C5XBZNKGS/p1570198878197700)
- https://olist.slack.com/archives/CPWRG9K3K/p1577472552026800
- [Swagger SkyHub SAC API](https://api-docs.skyhub.com.br/?urls.primaryName=SAC%20API#/)








