Receive message from zoom or slack
graph TD
Z[Zoom] --> R[Recall]
S[Slack] --> A[Incoming Message]
R --> A[Incoming Message]
A --> B["Webhook and Handlers -> (requires ngrok tunnel when run locally)"]
B --> C{Determine Adapter}
C --> WS[Webhook Service]
WS --> WR["webhookService.receiveMessage()"]
WR --> D[Adapter]
D --> E["Adapter.receiveMessage()"]
E --> F[Create Message Object]
F --> G[Add Configured Channels]
G --> H[Audio Channel]
G --> I[Chat Channel]
G --> J[DM Channels...]
H --> WS2[Webhook Service]
I --> WS2
J --> WS2
WS2 -.->|"if new user: (see New User Flow)"| NU[Additional Steps]
NU -.-> K["MessageService.newMessageHandler()"]
WS2 --> K
style S fill:#ffd54f,stroke:#333,stroke-width:2px,color:#000
style Z fill:#ffd54f,stroke:#333,stroke-width:2px,color:#000
style R fill:#ffab91,stroke:#333,stroke-width:2px,color:#000
style B fill:#81d4fa,stroke:#333,stroke-width:2px,color:#000
style WS fill:#b39ddb,stroke:#333,stroke-width:2px,color:#000
style WS2 fill:#b39ddb,stroke:#333,stroke-width:2px,color:#000
style D fill:#ce93d8,stroke:#333,stroke-width:2px,color:#000
style K fill:#a5d6a7,stroke:#333,stroke-width:2px,color:#000