# Integrations and Developer API

## Connect apps

**Desktop:** Sidebar > **Integrations** (`/dashboard/integrations`), or Settings > Integrations.

**Mobile:** profile avatar (top-left) > **Profile** > **Integrations** (`/m/profile/integrations`).

Available connections include **Google Calendar** (auto-join upcoming meetings) and **Slack** (send action items and summaries to channels or people).

## Calendar routing (team workspaces)

If you belong to a team workspace, each connected calendar can route its meetings to either your **Personal Space** or the team workspace, decided two ways:

- **Per-connection default:** click the routing icon on a connected calendar (Integrations page) to set its default workspace.
- **Attendee auto-detection:** if a meeting invite includes attendees from your team workspace, that meeting is automatically routed to the team workspace even if the calendar's default is Personal.

When a meeting is auto-routed to the team workspace, you get an in-app notification explaining why, so it never looks like the meeting just disappeared from Personal.

## API keys

**Desktop:** Settings > **Developer** (`/dashboard/settings/developer`) > **Create API Key**. The full key is shown once; copy it immediately. Keys use a prefix like `md_sk_...`. Revoke a key anytime.

**Mobile:** Settings (gear) > **Developer Settings** (opens the desktop page).

```bash
# Example: send the note taker to a meeting using your API key
curl -X POST https://memordesk.com/api/recall/bot \
  -H "Authorization: Bearer md_sk_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "meetingUrl": "https://meet.google.com/abc-defg-hij" }'
```

## Webhooks

Register a URL in Developer settings to receive POST events:

- Meeting Started, Meeting Ended
- Transcript Ready, Summary Ready
- Action Item Created, Decision Recorded

Use the **Test** button to send a sample payload and confirm your endpoint works.