# Create a program

Create a RandomCoffee program from scratch, choose its channel (email, Slack or Microsoft Teams), its audience and its matching settings.

import { Steps, TabItem, Tabs } from '@prosefly/astro-components';
import Callout from '@components/Callout.astro';
import UseCasesLibrary from '@components/app-screens/screens/UseCasesLibrary.astro';
import MicrosoftTeamSetting from '@components/app-screens/screens/MicrosoftTeamSetting.astro';

This article shows how to create a program from scratch, instead of starting from a template of the "Use Cases Library". Most steps are the same for every channel. When the procedure depends on the channel your program uses (email, Slack or Microsoft Teams), pick yours in the tabs.

<Callout type="note">
  On the Free plan, your workspace can have one program. Paused programs count, deleted programs do not. To create more programs, upgrade to Pro.
</Callout>

## Before you start

- **Slack or Microsoft Teams**: the RandomCoffee app must be installed in your workspace. See the [Slack integration](/documentation/integrations/slack/) or the [Microsoft Teams integration](/documentation/integrations/microsoft-teams/).
- **Matching rules**: if you want to match people on their department, skills or interests, create the [categories](/admin/categories-and-audiences/categories/) or [audiences](/admin/categories-and-audiences/audiences/) you need first.

## Step 1: Start a new program

<Steps>

1. In the "Programs" menu, open "All programs" and click "Create New Program".

2. A window tells you that you will be redirected to the Use Cases Library. Click "Continue". Tick "Don't show this again" if you do not want to see this window anymore.

3. In the Use Cases Library, click "Create from scratch".

   <UseCasesLibrary highlight="create" alt="The Use Cases Library, with the Create from scratch button circled at the top right and program templates below" />

   To start from a template instead, click "Preview" on the template, then "Setup this program".

4. If your workspace has the mentoring add-on, RandomCoffee asks "What type of program do you want to create?". Choose "RandomCoffee" for coffee meetups, then click "Continue". To create a mentoring program, see [Create a mentoring program](/admin/mentoring/create-a-mentoring-program/).

</Steps>

The new program opens, named "My Own Program". Its settings are grouped in sections, listed on the left: "General", "Registration", "Matchmaking", "Communication" and "Booking".

## Step 2: Set up the program

### Name and goal

In the "General" section, fill in:

- "Program's name": the name your members see;
- "Program's goal": a short description of the purpose of the program.

Both are required to create the program. Members see the goal on the program page of their [Member Portal](/members/getting-started/member-portal/), and it is the default meeting description on the booking page.

### Communication channel

In the "Communication" section, choose the "Communication Channel", the way members receive the program's invitations and matches: "Email", "Slack" or "Microsoft Teams".

<Tabs syncKey="channel">
<TabItem label="Email" value="email" icon="lucide:mail">

Select "Email". Your members receive the opt-in and match emails in their inbox.

</TabItem>
<TabItem label="Slack" value="slack" icon="simple-icons:slack">

Select "Slack". The opt-in and match messages are sent in Slack by the RandomCoffee app: each member receives the opt-in message as a direct message, and each group receives its match in a group conversation.

If the RandomCoffee app is not installed in your Slack workspace yet, a window "Install RandomCoffee on your Slack Workspace" opens instead: click "Install integration", then come back to the program.

</TabItem>
<TabItem label="Microsoft Teams" value="teams" icon="simple-icons:microsoftteams">

Select "Microsoft Teams". The opt-in and match cards are sent in Microsoft Teams by the RandomCoffee app, to each member.

If the RandomCoffee app is not installed in Microsoft Teams yet, a window "Install RandomCoffee on your Microsoft Teams workspace" opens instead: click "Install integration", then come back to the program.

</TabItem>
</Tabs>

### Audience

In the "Registration" section, choose who takes part in the program.

Select the people of the program. This depends on the channel you chose.

<Tabs syncKey="channel">
<TabItem label="Email" value="email" icon="lucide:mail">

In "Audience", select one or several [audiences](/admin/categories-and-audiences/audiences/). Everyone in these audiences is part of the program. See [Create an audience](/admin/categories-and-audiences/create-an-audience/) to build one.

Some older programs still select people with category filters. To move such a program to audiences, click "Switch to audiences".

</TabItem>
<TabItem label="Slack" value="slack" icon="simple-icons:slack">

In "Channel", select the Slack channel from which RandomCoffee selects the people to match.

If a private channel is missing from the list, go to that channel in Slack, type `/invite @randomcoffee`, and the channel appears in the list.

By default, the audience of the program is everyone in the channel:

- everyone in the channel receives the invitations;
- people who join the channel are added to the next sessions;
- people who leave the channel stop receiving invitations.

RandomCoffee only gets their first name, last name and email address. To add data such as their department, see [Sync members from Slack or Microsoft Teams](/admin/members/sync-from-slack-or-teams/).

</TabItem>
<TabItem label="Microsoft Teams" value="teams" icon="simple-icons:microsoftteams">

In "Microsoft Team", select the team or teams from which RandomCoffee selects the people to match. You can select several teams: the members of all of them take part in the program.

<MicrosoftTeamSetting alt="The Microsoft Team setting of a program, with two teams selected: Acme London and Customer Success" />

If a team is missing from the list, install the RandomCoffee app on that team and follow the steps in the welcome card.

By default, the audience of the program is everyone in the selected teams:

- everyone in the teams receives the invitations;
- people who join one of the teams are added to the next sessions;
- people who leave the teams stop receiving invitations.

<Callout type="warning">
  People with a guest status in your teams are not included: Microsoft does not consider them as members of your organization.
</Callout>

RandomCoffee only gets their first name, last name and email address. To add data such as their department, see [Sync members from Slack or Microsoft Teams](/admin/members/sync-from-slack-or-teams/).

</TabItem>
</Tabs>

<Callout type="note">
  On the Free plan, a program only includes the same first 20 people of its audience. Upgrade to Pro to match everyone.
</Callout>

If you do not want admins to be matched, turn on "Exclude Admins from Intros".

<Callout type="tip">
  Want members to join by themselves with a shareable link? "Open enrollment" comes with mentoring programs: see [Create a mentoring program](/admin/mentoring/create-a-mentoring-program/).
</Callout>

### Matching settings

In the "Matchmaking" section, set how groups are formed.

- **"Group size"**: the number of people in each group.
- **"People distribution from group size"**: for groups of more than 2 people, with some algorithms, how to spread people when groups are incomplete.
- **"Type of participation"**: how members take part in each session (see below).
- **"Matching algorithm"**: how groups are generated. See [Matching algorithms](/admin/matching/matching-algorithms/). With an algorithm that uses rules, you can add rules based on categories, audiences or members: see [Matching rules](/admin/matching/matching-rules/).
- **"Matching priority"** (mentoring programs): "Optimize people participation" (everyone gets the best possible match, even if some rules are not perfectly met) or "Optimize matching quality" (only matches that perfectly fit your rules). This setting only changes the result with "Group composer" and in mentoring programs: see [Matching priority](/admin/matching/matching-rules/#matching-priority).
- **"Matching process"** (Enterprise plan and mentoring programs): "Automatic" (matches are generated and sent on the scheduled dates) or "Admin-led" (you review and adjust the matches before they are sent).

#### Type of participation

Choose one of three options:

| Option | What happens at each session |
| --- | --- |
| "Automatic participation" | Everyone in the program receives a match directly, without being asked first. |
| "Ask for participation" | Everyone first receives an opt-in message. Only the members who opted in receive a match. |
| "Ask for participation - specific people only" | Only the members you select (with category values) receive an opt-in message. All the others are matched automatically, and counted as participants. |

For example, in a mentoring program run as a classic program, you can send opt-ins to mentees only: mentors do not receive an opt-in and always take part.

<Callout type="tip">
  Not sure which option to choose? See [6 reasons why you should activate opt-ins](https://slides.random-coffee.com/v/6-reasons-why-you-should-activate-opt-ins-mpz66j).
</Callout>

<Callout type="warning">
  If sessions are already planned, changing the type of participation changes them. Switching to "Automatic participation" removes the planned opt-in messages and keeps the planned matches. Switching to "Ask for participation" removes all the planned matches.
</Callout>

### Create the program

Click "Create" at the top right of the page.

The program is created and opens on its page, with three tabs: "Sessions", "Settings" and "Results". Its settings are now in the "Settings" tab.

## Step 3: Customize the messages

Once the program is created, the "Communication" section of the "Settings" tab also lets you customize the messages. Click "Save" when you are done.

<Tabs syncKey="channel">
<TabItem label="Email" value="email" icon="lucide:mail">

In "Program emails", you find the "Opt-in" email (only when you ask for participation) and the "Match email". Use "Customize" to edit them and "Send test email" to receive a preview. See [Personalize opt-in and match messages](/admin/programs/personalize-messages/).

To let participants book their meeting, set up the "Booking" section and add the booking link to your match email. See [Meeting scheduling](/admin/programs/meeting-scheduling/).

</TabItem>
<TabItem label="Slack" value="slack" icon="simple-icons:slack">

Customize the "Opt-in Card" (only when you ask for participation) and the "Match Card", with a real-time preview. See [Personalize opt-in and match messages](/admin/programs/personalize-messages/).

To let participants book their meeting, set up the "Booking" section and add the booking link to your match message. See [Meeting scheduling](/admin/programs/meeting-scheduling/).

</TabItem>
<TabItem label="Microsoft Teams" value="teams" icon="simple-icons:microsoftteams">

Customize the "Opt-in Card" (only when you ask for participation) and the "Match Card", with a real-time preview. See [Personalize opt-in and match messages](/admin/programs/personalize-messages/).

In Microsoft Teams, the match card already includes buttons to chat with or schedule a meetup with the people matched. See [Meeting scheduling](/admin/programs/meeting-scheduling/) for the options.

</TabItem>
</Tabs>

## Step 4: Schedule your sessions

Your program is ready, but nothing is sent until you plan its sessions. In the "Sessions" tab, click "Schedule a new session". See [Schedule sessions](/admin/programs/schedule-sessions/).

Once a session is open, follow the opt-ins in real time: see [Follow an open session](/admin/programs/open-sessions/).
