> ## Documentation Index
> Fetch the complete documentation index at: https://docs.evomarketing.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Client notifications

> All notifications sent to brand clients

Clients access brand performance data through the Client Hub and receive notifications via email and their connected Slack workspace.

## Email notifications

<AccordionGroup>
  <Accordion title="Client hub access">
    **Trigger:** Admin shares client hub link

    **Recipients:** Client email addresses

    **Content:** Link to client hub with optional passcode

    **Notes:** Passcode is optional per-brand setting
  </Accordion>

  <Accordion title="Ad code milestone alert">
    **Mailer:** `AdCodeAlertMailer`

    **Trigger:** Video hits configured view threshold

    **Recipients:** Subscribed client contacts

    **Content:** Alert about milestone reached, link to video
  </Accordion>

  <Accordion title="Ad code delivered">
    **Mailer:** `AdCodeMailer`

    **Trigger:** Creator provides requested ad code

    **Recipients:** Client who requested the code

    **Content:** Ad code details and download link
  </Accordion>

  <Accordion title="Content export ready">
    **Mailer:** `BrandContentExportMailer`

    **Trigger:** Content export job completes

    **Recipients:** Client who requested export

    **Content:** Download link for exported content
  </Accordion>

  <Accordion title="Weekly/monthly report">
    **Trigger:** Scheduled report generation (if configured)

    **Recipients:** Client stakeholders on distribution list

    **Content:** Performance summary with key metrics, report link
  </Accordion>
</AccordionGroup>

## Slack notifications (connected workspace)

For brands with connected Slack workspace via OAuth.

<AccordionGroup>
  <Accordion title="Strategy published">
    **Trigger:** Strategy published or updated for the brand

    **Channel:** Configured client Slack channel

    **Content:** Strategy summary with key points

    **Code:** `Brands::StrategySlackUpdate`
  </Accordion>

  <Accordion title="Weekly strategy update">
    **Trigger:** Weekly strategy update cycle

    **Channel:** Configured client Slack channel

    **Content:** Strategy content for the week

    **Code:** `Campaigns::StrategySlack`
  </Accordion>

  <Accordion title="Weekly report">
    **Trigger:** Weekly report published

    **Channel:** Configured client Slack channel

    **Content:** Report link and summary stats

    **Code:** `WeeklyReports::Sender`
  </Accordion>
</AccordionGroup>

## Client hub inline notifications

The client hub displays status updates inline rather than through push notifications.

<AccordionGroup>
  <Accordion title="Request status update">
    **Display:** In the Requests tab of client hub

    **Trigger:** Admin responds to client request (approve/decline)

    **Content:** Request status change with any notes from admin

    **Notes:** "Declined" status is internal-only; delete removes from hub
  </Accordion>

  <Accordion title="Announcement banner">
    **Display:** Top of client hub when active

    **Trigger:** Admin publishes client-targeted announcement

    **Content:** Announcement text with optional CTA button
  </Accordion>
</AccordionGroup>

## Passcode protection

When a brand has passcode protection enabled:

* All client hub links require the 4-digit passcode
* Passcode is rate-limited to prevent brute force attempts
* Admin can reset passcode from brand settings
* Opt-in per brand via "Client Hub" tab on brand detail

## Slack integration setup

To connect a client's Slack workspace:

1. Navigate to brand detail → Integrations tab
2. Click "Connect Slack"
3. Client authorizes EVO app in their workspace
4. Select target channel for notifications
5. Strategy and report notifications flow automatically

<Note>
  Bidirectional chat sync is also available through `Slack::ChannelLink` for brands that want integrated chat between EVO and their Slack workspace.
</Note>

## Code references

| Component             | File                                                                   |
| --------------------- | ---------------------------------------------------------------------- |
| Ad code mailers       | `app/mailers/ad_code_mailer.rb`, `app/mailers/ad_code_alert_mailer.rb` |
| Content export mailer | `app/mailers/brand_content_export_mailer.rb`                           |
| Strategy Slack        | `app/services/brands/strategy_slack_update.rb`                         |
| Weekly reports        | `app/services/weekly_reports/sender.rb`                                |
| Slack client          | `app/services/integrations/slack_client.rb`                            |
| Client hub            | `app/controllers/api/public/client_hubs_controller.rb`                 |
