> For the complete documentation index, see [llms.txt](https://codemash.gitbook.io/codemash/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://codemash.gitbook.io/codemash/cloud/membership/settings/communication.md).

# Communication

Change the topics your users can subscribe to or block — groups and tags per channel.

**Where:** Membership → Settings → **Communication** · `/projects/<project>/membership/settings#communication`

## Before you start

* You need the `membership:manage` permission.
* Each project starts with ready groups and tags (for example *Newsletters & Updates* with *Newsletter* and *Event Invitations*).

## Steps

1. Open **Settings → Communication**. **Communication Preferences** has two tabs, **Marketing** and **Transactional**. Each tab lists groups; each group has **Edit**, its tags (× removes one) and **+ Add New**. **Orphaned tags** holds tags that are in no group; the end-user portal shows them as *Other options*.

   <figure><img src="https://712692422-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHy372bqsaex2cqS3ikhL%2Fuploads%2Fgit-blob-d9254eb7b9e09ee71502cc9d8d5ef8cc1463193b%2Fsettings-communication-1.png?alt=media" alt="Communication Preferences, Marketing tab: + Add New Group, Newsletters &#x26; Updates (Newsletter, Event Invitations), Promotions &#x26; Offers (Promotions), Product Highlights"><figcaption><p>The Communication tab.</p></figcaption></figure>
2. To add a topic, press **+ Add New** in a group. The form **Add New Tag** opens with the channel and the group already set. Fill it and press **Create**:

   | Field                | Required | What it does                                                                         | Example                                      |
   | -------------------- | -------- | ------------------------------------------------------------------------------------ | -------------------------------------------- |
   | Channel              | —        | Marketing or Transactional, from the tab you were on.                                | `Marketing`                                  |
   | Select Group         | yes      | The group the tag joins.                                                             | `Newsletters & Updates`                      |
   | Tag \*               | yes      | The unique name of the topic.                                                        | `product-tips`                               |
   | Tag friendly name \* | yes      | The name users see, per language.                                                    | `Product tips`                               |
   | Tag description      | no       | One line users see, per language.                                                    | `Short tips on how to get more out of Acme.` |
   | Delivery Options     | no       | The channels on by default for this tag: **Email**, **Push Notifications**, **SMS**. | Email, Push Notifications                    |

   <figure><img src="https://712692422-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHy372bqsaex2cqS3ikhL%2Fuploads%2Fgit-blob-a5884af47471f4ddfa1153771827e3e2dc606192%2Fsettings-communication-4.png?alt=media" alt="Add New Tag: Channel Marketing, Select Group Newsletters &#x26; Updates, Tag product-tips, EN Tag friendly name Product tips, Tag description, Delivery Options Email and Push Notifications ticked, Cancel and Create"><figcaption><p>The filled tag form.</p></figcaption></figure>

{% hint style="warning" %}
**+ Add New Group** cannot be used today: its form has no friendly name or description fields under **Translations**, and **Create** fails with *CM-ERRORS-PROPERTY-002: Property GroupDefinition creation failed*. Add tags to the existing groups, or save a group from code (below).
{% endhint %}

<figure><img src="https://712692422-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHy372bqsaex2cqS3ikhL%2Fuploads%2Fgit-blob-d095be64f43e5e2646fd2d17db73df1c1da0fc82%2Fsettings-communication-2.png?alt=media" alt="Add New Group form: Channel Marketing, Tag product-news, Translations with only the EN (default) tab and no fields, Cancel and Create"><figcaption><p>The group form, without translation fields.</p></figcaption></figure>

<figure><img src="https://712692422-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHy372bqsaex2cqS3ikhL%2Fuploads%2Fgit-blob-5e1a3046ca4fe803034854ba3164c9311fca455f%2Fsettings-communication-3.png?alt=media" alt="The error toast CM-ERRORS-PROPERTY-002: Property GroupDefinition creation failed"><figcaption><p>The error after <strong>Create</strong>.</p></figcaption></figure>

## Result

The tag appears in its group. Every user now has it on their [Marketing preferences](/codemash/cloud/membership/users/edit.md) tab, with a switch per delivery channel, and the end-user portal offers it.

<figure><img src="https://712692422-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHy372bqsaex2cqS3ikhL%2Fuploads%2Fgit-blob-bbf546e20fe8ae4d7ba3f5682e44ac5cfeed933e%2Fsettings-communication-5.png?alt=media" alt="Newsletters &#x26; Updates group with Newsletter, Event Invitations and Product tips"><figcaption><p>The new tag <strong>Product tips</strong> in its group.</p></figcaption></figure>

## Change or remove it later

* **Edit** a group, or click a tag, to change it.
* **×** on a tag deletes it after a confirmation. Deleting a group moves its tags to **Orphaned tags**.

## Do it from code

```ts
await norbix.hub.account.saveNotificationsTag({
  projectId,
  channel: 'Marketing',
  groupTag: 'marketing-newsletters', // the group the tag goes into
  tagDefinition: {
    tag: 'webinars',
    translations: [{ language: 'en', content: { title: 'Webinars', description: 'Invitations to live Acme webinars.' } }],
    defaultDelivery: { Email: true },
  },
});
```

```sh
norbix hub account notifications tag save --projectId "$NORBIX_PROJECT_ID" --channel Marketing --groupTag marketing-newsletters --tagDefinition:json '{"tag":"case-studies","translations":[{"language":"en","content":{"title":"Case studies","description":"Stories from Acme customers."}}],"defaultDelivery":{"Email":true}}'
```

The client setup is on the [Membership page](/codemash/cloud/membership.md#use-it-from-code). API: [Save Notifications Tag](/codemash/api-reference/account/projects/save-notifications-tag.md) · [Save Notifications Group](/codemash/api-reference/account/projects/save-notifications-group.md) · [Delete Notifications Tag](/codemash/api-reference/account/projects/delete-notifications-tag.md)
