Communication Channels
Unified hub bridging external chat/email channels (Slack, WhatsApp, Email) to the Messages module. Adapter contract, channel-native payload storage, reactions, and per-channel threading.
Found by static analysis of the 0.8.0 source. Links that only appear at runtime are not visible here.
3 of the 3 modules outside the starter set that communication_channels needs in code are missing from its requires.
A newer release exists: communication_channels in 0.9.0.
Before you enable communication_channels in 0.8.0
5 modules its code requires
✓ 0 declared⚠ 3 not declared, outside the starter set2 not declared, in every app
Enable these yourself, they are not in every starter app
Already enabled in every starter app: 2 modules.
3 more are optional: the module loses a feature without them.
4 calls could not be resolved. See Couldn't resolve.
Before you disable communication_channels in 0.8.0
10 modules require it in code
Declared in requires by
Not declared by
channel_apns⚠ Gapchannel_discord⚠ Gapchannel_expo⚠ Gapchannel_fcm⚠ Gapchannel_gmail⚠ Gapchannel_imap⚠ Gapcustomers⚠ Gap1 more uses it optionally or for collaboration.
requires ⚠ Gap into a module every starter app has (lower risk) Optional Collaboration In requires only, not seen in code In every starter appA dot takes its module's area colour. Each side lists the areas in the order of the map.Reads left to right: what uses it → communication_channels → what it needs. Select a module to go to its row.Needs
| Module | In code | requires | package.json |
|---|---|---|---|
Module: integrations | In code: Required · api, lib | requires: ⚠ Gap | package.json: Same package |
18 places
and 8 more in | |||
Module: messages | In code: Required · command, data, subscriber | requires: ⚠ Gap | package.json: Same package |
8 places
| |||
Module: progress | In code: Required · command, worker | requires: ⚠ GapDeclared from 0.9.0 | package.json: Same package |
2 places
| |||
Module: scheduler | In code: Optional · setup | requires: Not declared | package.json: ⚠ Not in package.json |
1 place
| |||
In every app (4)
| Module | In code | requires | package.json |
|---|---|---|---|
Module: directory | In code: Required · api | requires: ⚠ Gap in every app | package.json: Same package |
6 places
| |||
Module: notifications | In code: Required · subscriber | requires: ⚠ Gap in every app | package.json: Same package |
2 places
| |||
Module: auth | In code: Optional · api | requires: Not declared | package.json: Same package |
10 places
| |||
Module: query_index | In code: Optional · lib | requires: Not declared | package.json: Same package |
1 place
| |||
Used by
| Module | In code | requires | package.json |
|---|---|---|---|
Module: channel_apns | In code: Required · di, lib, setup, ui | requires: ⚠ Gap | package.json: ✓ Declared |
8 places
| |||
Module: channel_discord | In code: Required · api, command, di, lib, setup, subscriber, worker | requires: ⚠ Gap | package.json: ✓ Declared |
20 places
and 10 more in | |||
Module: channel_expo | In code: Required · di, lib, setup, ui | requires: ⚠ Gap | package.json: ✓ Declared |
6 places
| |||
Module: channel_fcm | In code: Required · di, lib, setup, ui | requires: ⚠ Gap | package.json: ✓ Declared |
8 places
| |||
Module: channel_gmail | In code: Required · di, lib, setup, ui | requires: ⚠ Gap | package.json: ✓ Declared |
10 places
| |||
Module: channel_imap | In code: Required · di, lib, setup | requires: ⚠ Gap | package.json: ✓ Declared |
7 places
| |||
Module: customers | In code: Required · api | requires: ⚠ Gap | package.json: Same package |
3 places
| |||
Module: channel_resend | In code: Required · di, lib, module-config, setup | requires: ✓ Declared | package.json: ✓ Declared |
7 places
| |||
Module: channel_ses | In code: Required · di, lib, module-config, setup | requires: ✓ Declared | package.json: ✓ Declared |
7 places
| |||
Module: push_notifications | In code: Required · lib | requires: ✓ Declared | package.json: Same package |
6 places
| |||
Module: messages | In code: Optional · lib | requires: Not declared | package.json: Same package |
1 place
| |||
Couldn't resolve (4)
These calls pick a service by a variable, so static analysis can't tell which module they need. Check them in the code.
packages/core/src/modules/communication_channels/subscribers/channel-requires-reauth-notification.ts:57·ctx.resolve<T>(name)packages/core/src/modules/communication_channels/subscribers/channel-requires-reauth-notification.ts:59·ctx.container.resolve<T>(name)packages/core/src/modules/communication_channels/subscribers/outbound-bridge.ts:53·ctx.resolve<T>(name)packages/core/src/modules/communication_channels/subscribers/outbound-bridge.ts:55·ctx.container.resolve<T>(name)
Facts
Registers in DI (10)
CommunicationChannel·packages/core/src/modules/communication_channels/di.ts:32ExternalConversation·packages/core/src/modules/communication_channels/di.ts:33ExternalMessage·packages/core/src/modules/communication_channels/di.ts:34MessageChannelLink·packages/core/src/modules/communication_channels/di.ts:35ChannelThreadMapping·packages/core/src/modules/communication_channels/di.ts:36MessageReaction·packages/core/src/modules/communication_channels/di.ts:37channelAdapterRegistry·packages/core/src/modules/communication_channels/di.ts:42communicationChannelsSendAsUser·packages/core/src/modules/communication_channels/di.ts:46communicationChannelsSendSystemEmail·packages/core/src/modules/communication_channels/di.ts:47communicationChannelsResolveChannelType·packages/core/src/modules/communication_channels/di.ts:53
Emits events (21)
communication_channels.message.received·packages/core/src/modules/communication_channels/api/post/test-seed/route.ts:596communication_channels.channel.deleted·packages/core/src/modules/communication_channels/commands/admin-delete-channel.ts:128communication_channels.channel.deleted·packages/core/src/modules/communication_channels/commands/delete-channel.ts:117communication_channels.message.sent·packages/core/src/modules/communication_channels/commands/deliver-outbound-message.ts:522communication_channels.channel.requires_reauth·packages/core/src/modules/communication_channels/commands/deliver-outbound-message.ts:584communication_channels.message.delivery_failed·packages/core/src/modules/communication_channels/commands/deliver-outbound-message.ts:598communication_channels.channel.disconnected·packages/core/src/modules/communication_channels/commands/disconnect-channel.ts:145communication_channels.conversation.created·packages/core/src/modules/communication_channels/commands/ingest-inbound-message.ts:526communication_channels.contact.resolved·packages/core/src/modules/communication_channels/commands/ingest-inbound-message.ts:541communication_channels.message.received·packages/core/src/modules/communication_channels/commands/ingest-inbound-message.ts:553communication_channels.reaction.added·packages/core/src/modules/communication_channels/commands/process-inbound-reaction.ts:186communication_channels.reaction.removed·packages/core/src/modules/communication_channels/commands/process-inbound-reaction.ts:236communication_channels.push.registered·packages/core/src/modules/communication_channels/commands/push-register.ts:179communication_channels.push.failed·packages/core/src/modules/communication_channels/commands/push-register.ts:190communication_channels.push.deactivated·packages/core/src/modules/communication_channels/commands/push-unregister.ts:167communication_channels.conversation.reassigned·packages/core/src/modules/communication_channels/commands/reassign-conversation.ts:155communication_channels.channel.primary_changed·packages/core/src/modules/communication_channels/commands/set-primary-channel.ts:133communication_channels.reaction.added·packages/core/src/modules/communication_channels/commands/toggle-outbound-reaction.ts:240communication_channels.reaction.removed·packages/core/src/modules/communication_channels/commands/toggle-outbound-reaction.ts:318communication_channels.push.renewed·packages/core/src/modules/communication_channels/workers/gmail-renew-watch.ts:102communication_channels.channel.requires_reauth·packages/core/src/modules/communication_channels/workers/poll-channel.ts:354
Subscribes to events (3)
communication_channels.channel.requires_reauth·packages/core/src/modules/communication_channels/subscribers/channel-requires-reauth-notification.ts:34messages.message.sent·packages/core/src/modules/communication_channels/subscribers/outbound-bridge.ts:30auth.user.deleted·packages/core/src/modules/communication_channels/subscribers/user-deleted-cascade.ts:35
Hosts widget spots (3)
data-table:communication_channels.channels·packages/core/src/modules/communication_channels/extension-points.ts:6profile:communication-channels:connect·packages/core/src/modules/communication_channels/extension-points.ts:7data-table:communication_channels.profile.channels·packages/core/src/modules/communication_channels/extension-points.ts:13
Fills widget spots (4)
data-table:messages:columns·packages/core/src/modules/communication_channels/widgets/injection-table.ts:15detail:messages:message:body:after·packages/core/src/modules/communication_channels/widgets/injection-table.ts:21detail:messages:message:sidebar·packages/core/src/modules/communication_channels/widgets/injection-table.ts:31menu:topbar:profile-dropdown·packages/core/src/modules/communication_channels/widgets/injection-table.ts:39
Entities (8)
CommunicationChannel·packages/core/src/modules/communication_channels/data/entities.ts:76ExternalConversation·packages/core/src/modules/communication_channels/data/entities.ts:192ExternalMessage·packages/core/src/modules/communication_channels/data/entities.ts:235MessageChannelLink·packages/core/src/modules/communication_channels/data/entities.ts:279ChannelThreadMapping·packages/core/src/modules/communication_channels/data/entities.ts:336MessageReaction·packages/core/src/modules/communication_channels/data/entities.ts:394ChannelThreadToken·packages/core/src/modules/communication_channels/data/entities.ts:461ChannelIngestDeadLetter·packages/core/src/modules/communication_channels/data/entities.ts:514