# Email Notification

Enable and set up the email recipients to receive notification events from Suger service

---

## Overview

Email notifications let you configure per-scope routing rules so that each notification event type has its own enable/disable toggle, recipient lists (TO, CC, BCC), and optional custom template. When an event from Suger matches an enabled scope, an email is automatically sent to the designated recipients.

## Configuration
### Enable Email Notification

Go to the [settings page](https://console.suger.io/settings?tab=notification) and open the **Notification** tab. Toggle the **Enable Email Notification** switch to activate email routing.

### Email Routing Catalog

Once email notification is enabled, the **Email Routing Configuration** table displays all available notification scopes organized by category (Offers, Entitlements, Co-Sell, Workflows, etc.). Each category can be expanded or collapsed.

Every scope row provides the following columns:

| Column | Description |
|--------|-------------|
| **Trigger** | Toggle to enable or disable the notification scope. The scope name and its raw identifier are displayed. |
| **TO Recipients** | Email addresses that receive the notification. Type an address and press Enter or comma to add. |
| **CC Recipients** | Email addresses to CC on the notification. |
| **BCC Recipients** | Email addresses to BCC on the notification. |
| **Template** | Select a custom email template from the dropdown, or choose **+ New Template** to create one inline. When a template is assigned, icons appear to edit, view details, or delete it. |
| **Diagnostics** | Click **Test** to send a test email using the assigned template (requires a template to be selected). |

Click **Save** after making changes to persist your configuration.

> <img src="/img/notification/notification_email_configuration.png" alt="Email Routing Configuration table in Notification settings" style="max-width:880px;width:100%;display:inline;margin:0 auto;box-shadow: 5px 5px 5px #eee" />

:::info
Some scopes are **always on** and are sent regardless of your notification settings — they cannot be disabled: **Create Co-Sell**, **New Contact Added to Co-Sell**, and **Commission Terms Updated**. In addition, **all commission scopes are enabled by default** — you can configure custom recipients and templates for them, but you cannot turn them off. See [Notification Scope Reference](#notification-scope-reference) for the full list.
:::

### Additional Settings

Below the routing catalog, two additional toggles are available:

- **Disable Email Notification on Offer Ready** — Prevents sending email notifications when an offer is ready to accept.
- **Enable Expire Soon Offer Workflow Notification** — Enables workflow notifications for offers that are about to expire. When enabled, you can configure the number of days before expiration to trigger the notification (default: 7 days).

### Update History

The **Update History** table at the bottom of the Notification tab shows an audit log of configuration changes. You can search across all fields and click a row's detail icon to inspect the full JSON payload of the change.

## Custom Templates

Custom email templates allow you to personalize your notification emails with dynamic content and professional layouts. You can create templates that automatically incorporate data from your notification events, making your emails more informative and engaging.

Any scope can have a custom email template assigned to it, replacing the default content. Templates support dynamic variables (for example, buyer name, deal name, and product).

### Create New Template

In the routing catalog, find the **Template** column for any scope row and select **+ New Template** from the dropdown. The template creation dialog opens, and once saved the new template is automatically assigned to that scope.

> <img src="/img/notification/create_new_email_template_entrance.png" alt="New Template option in the Template column dropdown" style="max-width:361px;width:100%;display:inline;margin:0 auto;box-shadow: 5px 5px 5px #eee" />

In the template creation dialog:
   - Enter a descriptive name for your template
   - Select the evaluator type (currently, only Golang Template is supported)
   - Use the email builder to design your template
   - Click **Create** to save your template

> <img src="/img/notification/create_new_email_template.png" alt="Template creation dialog with the email builder" style="max-width:880px;width:100%;display:inline;margin:0 auto;box-shadow: 5px 5px 5px #eee" />

### Use Email Builder

The email builder provides a comprehensive set of [tools](https://docs.unlayer.com/builder/email-builder#tools-for-email) to create professional-looking emails:

- **Columns**: It allows your users to add columns to your design in order to have a better design arrangement.
- **Button**: Add any type of button in your email. You can change colors and styles.
- **Divider**: It gives your users appropriate spacing at any point they want in their design.
- **Heading**: Add headings (from level 1-6) to the design.
- **Text**: Text is a built-in tool so users can add text to their designs.
- **Image**: To make your emails attractive, you can add images using this tool.
- **Social**: It is a built-in tool that lets users add their social media icons to your design.
- **Menu**: Menu is a built-in tool used to create navigation menus.
- **HTML**: This tool will give your users room to add custom HTML to the design.

#### Working with Dynamic Data

##### Using Single Variables

1. Select a notification event type to make its variables available in the builder. By default, use the `BaseNotificationEvent`.

2. In the text or heading tool, click the `Merge Tags` button and select the variable you want to insert
    > <img src="https://imagedelivery.net/pNNvR2_tZYczcQ3leBU_1A/6de514cf-176e-4b66-5798-ec698f250200/square" alt="Merge Tags button with variable selection list" style="max-width:655px;width:100%;display:inline;margin:0 auto;box-shadow: 5px 5px 5px #eee" />

##### Looping Over Lists

To display multiple items from a list:

1. Add a Columns tool to your template
2. Click the tag symbol on the Columns tool
    > <img src="https://imagedelivery.net/pNNvR2_tZYczcQ3leBU_1A/e4ba93d9-04d6-4938-5c72-6ef2fc76c700/square" alt="Tag icon button on the Columns tool" style="max-width:664px;width:100%;display:inline;margin:0 auto;box-shadow: 5px 5px 5px #eee" />
3. Select the list you want to iterate over
    > <img src="https://imagedelivery.net/pNNvR2_tZYczcQ3leBU_1A/7a9ba035-d339-4b88-8b35-8e82a3777100/square" alt="List selection dropdown for the Columns tool" style="max-width:559px;width:100%;display:inline;margin:0 auto;box-shadow: 5px 5px 5px #eee" />
4. For complex objects in the list:
   - All variables from the list items become available within the Columns block
   - Use them in text tools just like single variables
   > <img src="https://imagedelivery.net/pNNvR2_tZYczcQ3leBU_1A/87f52121-7b72-4296-a327-cfb5f907eb00/square" alt="List item variables available inside the Columns block" style="max-width:685px;width:100%;display:inline;margin:0 auto;box-shadow: 5px 5px 5px #eee" />
5. For simple values (strings or numbers):
   - Use the `this` merge tag to access the current item within the Columns block
   > <img src="https://imagedelivery.net/pNNvR2_tZYczcQ3leBU_1A/c6b47eff-6d1d-4f57-1628-0c620e9f9d00/square" alt="This merge tag for the current list item" style="max-width:620px;width:100%;display:inline;margin:0 auto;box-shadow: 5px 5px 5px #eee" />

### Assign Templates to Notification Scopes

Templates are assigned directly in the Email Routing Catalog:

1. Go to the [settings page](https://console.suger.io/settings) and open the **Notification** tab
2. Find the scope you want to customize in the routing catalog
3. In the **Template** column, select an existing template from the dropdown or choose **+ New Template** to create one
4. When a template is assigned, use the inline icons to:
   - **Edit** the template in the email builder
   - **View details** as a JSON payload
   - **Delete** the template (removes it from all scopes that reference it)
5. Click **Save** to persist your changes

## Test Custom Templates

Before using a template in production, you can test it to ensure it works as expected:

1. In the routing catalog, find the scope row with the template you want to test
2. Click the **Test** button in the **Diagnostics** column
3. In the test dialog, provide the following information:
   - **To Email**: The recipient email address for the test
   - **CC Emails**: Optional comma-separated list of email addresses to CC
   - **One event json data**: Choose (and modify as you want) between:
- Mock JSON data files
- Last recorded events for your organization

> <img src="/img/notification/test_email_template_with_notification_event.png" alt="Test dialog with recipient email and event JSON data" style="max-width:578px;width:100%;display:inline;margin:0 auto;box-shadow: 5px 5px 5px #eee" />

You can also edit the template directly from the test dialog by clicking the `Edit Template` button, which will open the [email builder](#use-email-builder).

## Notification Scope Reference

Each notification scope has its own trigger, its own TO/CC/BCC recipient lists, and an optional custom template that replaces the default content. Use the tables below to understand when each scope fires and what its default email contains.

Keep in mind:

- **Always-on scopes** — **Create Co-Sell**, **New Contact Added to Co-Sell**, and **Commission Terms Updated** are always sent and cannot be disabled, so critical collaboration events always reach the right people.
- **Commission scopes** — All commission scopes are enabled by default. You can configure custom recipients and templates for them, but they cannot be turned off.

### Offers

| Scope | When it fires | Default email content |
|---|---|---|
| Create Offer<br>`CREATE.OFFER` | A new private offer is created in your organization | Offer name, buyer, product, pricing, expiry date, link to the offer |
| Offer Creation Failed<br>`CREATE_FAILED.OFFER` | A private offer fails to be created on the cloud marketplace | Failure reason (the offer's error details) and a link to the offer in the Suger console so your team can fix and resubmit |
| Accept Offer<br>`ACCEPT.OFFER` | A buyer accepts a private offer | Offer name, buyer details, acceptance timestamp |
| Expire Offer<br>`EXPIRE.OFFER` | A private offer has passed its expiration date without being accepted | Offer name, buyer, expiry date |
| Update Offer<br>`UPDATE.OFFER` | An existing offer is modified (e.g. pricing, expiry, terms) | Offer name, summary of what changed |
| Delete Offer<br>`DELETE.OFFER` | A private offer is deleted | Offer name, deletion timestamp |
| Cancel Offer<br>`CANCEL.OFFER` | A private offer is cancelled | Offer name, cancellation details |
| Submit Approval Request<br>`SUBMIT_APPROVAL_REQUEST.OFFER` | A team member submits an offer for internal approval review | Offer details, submitter name, link for the approver to act |
| Review Approval Request<br>`REVIEW_APPROVAL_REQUEST.OFFER` | An offer approval request is ready for a reviewer to act on | Offer details, approve/reject CTA |
| Pending Acceptance<br>`PENDING_ACCEPTANCE.OFFER` | An offer has been sent to the buyer and is awaiting their acceptance | Marketplace-specific template (AWS/Azure/GCP/Snowflake) with offer details and a direct acceptance link |
| Pending Partner Action<br>`PENDING_PARTNER_ACTION.OFFER` | An offer requires action from a channel partner (e.g. a CPPO step) | Offer name, required action, link |

### Entitlements

| Scope | When it fires | Default email content |
|---|---|---|
| Create Entitlement<br>`CREATE.ENTITLEMENT` | A buyer subscribes and a new entitlement is created | Buyer, product, subscription start date, pricing |
| Reinstate Entitlement<br>`REINSTATE.ENTITLEMENT` | A previously suspended or cancelled entitlement is reinstated | Entitlement name, buyer, reinstatement date |
| Suspend Entitlement<br>`SUSPEND.ENTITLEMENT` | An entitlement is suspended (typically due to a payment failure) | Entitlement name, buyer, suspension reason, recommended next step |
| Pending Cancel Entitlement<br>`PENDING_CANCEL.ENTITLEMENT` | An entitlement has been scheduled for cancellation | Entitlement name, buyer, scheduled cancellation date |
| Cancel Entitlement<br>`CANCEL.ENTITLEMENT` | An entitlement is fully cancelled | Entitlement name, buyer, cancellation timestamp |
| Update Entitlement<br>`UPDATE.ENTITLEMENT` | An entitlement's attributes are updated (e.g. seat count, pricing tier) | Entitlement name, buyer, summary of changes |
| Meter Entitlement<br>`METER.ENTITLEMENT` | A usage metering record is submitted against an entitlement | Entitlement name, buyer, metered dimension, reported usage amount |
| End Soon Entitlement<br>`END_SOON.ENTITLEMENT` | An entitlement is approaching its end date | Entitlement name, buyer, days until end date |
| Terminate Entitlement<br>`TERMINATE.ENTITLEMENT` | An entitlement is terminated (hard stop, distinct from cancellation) | Entitlement name, buyer, termination date |

### Co-Sell

These scopes cover activity on co-sell referrals shared via cloud marketplace co-sell programs (AWS ACE, GCP, etc.).

| Scope | When it fires | Default email content |
|---|---|---|
| Archive Referral<br>`ARCHIVE.REFERRAL` | A co-sell referral is archived | Referral name, cloud partner, archival timestamp |
| Reject Referral<br>`REJECT.REFERRAL` | A co-sell referral is rejected by the cloud partner | Referral name, cloud partner, rejection reason |
| Accept Referral<br>`ACCEPT.REFERRAL` | A co-sell referral is accepted by the cloud partner | Referral name, cloud partner, acceptance timestamp |
| Create Referral<br>`CREATE.REFERRAL` | A new co-sell referral is created | Referral name, cloud partner, deal details |
| Approve Referral<br>`APPROVE.REFERRAL` | A co-sell referral is approved internally before submission to the cloud partner | Referral name, approver, timestamp |
| Update Referral<br>`UPDATE.REFERRAL` | A co-sell referral is updated (e.g. deal value, stage, customer info) | Referral name, summary of what changed |
| Pending Acceptance Referral<br>`PENDING_ACCEPTANCE.REFERRAL` | A co-sell referral has been submitted and is awaiting cloud partner acceptance | Referral name, cloud partner, submission timestamp |
| Inbound Referral<br>`INBOUND.REFERRAL` | A new inbound co-sell referral is received from the cloud partner | Referral name, cloud partner, customer details |

### Product

| Scope | When it fires | Default email content |
|---|---|---|
| Create Product<br>`CREATE.PRODUCT` | A new product is created in your organization | Product name, marketplace, creator |
| Update Product<br>`UPDATE.PRODUCT` | An existing product is updated | Product name, summary of changes |
| Delete Product<br>`DELETE.PRODUCT` | A product is deleted | Product name, deletion timestamp |

### Partners

These scopes cover activity in Suger's Partner Relationship Management (PRM) module, including partnership invitations, Suger co-sells, and commission lifecycle events.

| Scope | When it fires | Default email subject |
|---|---|---|
| Accept Partnership<br>`ACCEPT.PARTNERSHIP` | A partner accepts your partnership invitation | \[Partner Company\] accepted your partnership invitation |
| Decline Partnership<br>`DECLINE.PARTNERSHIP` | A partner declines your partnership invitation | \[Partner Company\] declined your partnership invitation |
| Accept Sugercosell<br>`ACCEPT.SUGERCOSELL` | A partner accepts a seller-initiated Suger co-sell | \[Partner Company\] accepted your co-sell: \[Deal Name\] |
| Decline Sugercosell<br>`DECLINE.SUGERCOSELL` | A partner declines a seller-initiated Suger co-sell | \[Partner Company\] declined your co-sell: \[Deal Name\] |
| Close Won Reminder Sugercosell<br>`CLOSE_WON_REMINDER.SUGERCOSELL` | A party marks its co-sell copy Closed Won. A seller close-won notifies every partner; a referrer close-won notifies only the seller.<br><br>Always sent; cannot be disabled | Co-sell closed won: \[Deal Name\] |
| Pending Commission<br>`PENDING.COMMISSION` | A commission is created and awaiting seller approval<br><br>Enabled by default; cannot be disabled | Commission pending approval: \[Deal Name\] |
| Approve Commission<br>`APPROVE.COMMISSION` | A seller approves a commission payout<br><br>Enabled by default; cannot be disabled | Your commission for \[Deal Name\] has been approved |
| Payment Sent Commission<br>`PAYMENT_SENT.COMMISSION` | A seller marks a commission payment as sent to the partner<br><br>Enabled by default; cannot be disabled | Payment sent for \[Deal Name\] |
| Payment Confirmed Commission<br>`PAYMENT_CONFIRMED.COMMISSION` | A partner confirms receipt of a commission payment<br><br>Enabled by default; cannot be disabled | \[Partner Company\] confirmed receipt of payment — \[Deal Name\] |
| Auto Confirmed Commission<br>`AUTO_CONFIRMED.COMMISSION` | A commission is auto-confirmed after the confirmation window passes without action<br><br>Enabled by default; cannot be disabled | Commission auto-confirmed for \[Deal Name\] |
| Clawback Commission<br>`CLAWBACK.COMMISSION` | A commission is reversed<br><br>Enabled by default; cannot be disabled | Commission reversed for \[Deal Name\] |

### Auto-Share Report

| Scope | When it fires | Default email content |
|---|---|---|
| Complete Auto Share Task<br>`COMPLETE.AUTO_SHARE_TASK` | An automated data-sharing task completes successfully | Task name, completion time, report summary and link |
| Fail Auto Share Task<br>`FAIL.AUTO_SHARE_TASK` | An automated data-sharing task fails | Task name, failure reason, recommended remediation steps |

### Headless Entitlements

| Scope | When it fires | Default email content |
|---|---|---|
| Notify Headless Entitlements<br>`NOTIFY.HEADLESS_ENTITLEMENTS` | A headless entitlement (one without a buyer-facing signup flow) is created or requires attention | Entitlement name, marketplace, buyer info, link to the entitlement detail |

### Revenue

| Scope | When it fires | Default email content |
|---|---|---|
| Disburse Revenue Record<br>`DISBURSE.REVENUE_RECORD` | A revenue record disbursement is processed by Suger | Disbursement amount, billing period, product, buyer |

### Suger Co-Sell

| Scope | When it fires | Default email subject | Notes |
|---|---|---|---|
| New Contact Added Sugercosell<br>`NEW_CONTACT_ADDED.SUGERCOSELL` | A new contact is added to an existing Suger co-sell | You've been added to a co-sell: \[Deal Name\] | Always sent to the newly added contact — cannot be disabled |

### Usage Metering Alerts

| Scope | When it fires | Default email content |
|---|---|---|
| Abnormal Alert Usage Record Group<br>`ABNORMAL_ALERT.USAGE_RECORD_GROUP` | An abnormal usage pattern is detected in a usage record group | Subject: \[Suger Alert\] Abnormal Usage Record Groups Detected — includes the affected entitlement, metric name, anomalous values, and a link to your usage metering dashboard |
