Without deduplication, every POST /v3/notetakers request, calendar sync, and event sync schedules its own bot. If three users on the same team are invited to a meeting, three bots join. With deduplication turned on, Nylas sends one bot to the meeting instead. Each user still receives their own webhook notifications and their own copy of the recording, transcript, summary, and action items.
Deduplication applies only to scheduled Notetakers, meaning those with a future join_time. Immediate joins don’t participate.
You enable deduplication by setting deduplication_policy on a Notetaker configuration. You can set it at four levels, from broadest to most specific. Like other configuration values, Nylas reads the policy when the bot is about to join, so changing it later affects Notetakers that are already scheduled. Legacy requests that use the deprecated top-level name or meeting_settings fields can’t set it; see Migrate to notetaker_settings.
Your options for turning on deduplication
Section titled “Your options for turning on deduplication”Application-level
Section titled “Application-level”Set "deduplication_policy": "active" on your application configuration. This turns deduplication on for every Notetaker in the application, unless you override it at a more specific level. An application can have only 1 application configuration, so this is a single request.
Create the configuration with POST /v3/notetakers/configs:
curl --request POST \ --url 'https://api.us.nylas.com/v3/notetakers/configs' \ --header 'Authorization: Bearer <NYLAS_API_KEY>' \ --header 'Content-Type: application/json' \ --data '{ "display_name": "Company defaults", "notetaker_settings": { "name": "Acme Notetaker", "recording_type": "audio_video", "transcription": true }, "deduplication_policy": "active" }'If you already have an application configuration, update it in place with PATCH /v3/notetakers/configs/<CONFIG_ID>. To turn application-level dedup off later, set the policy to "inactive" on the same configuration.
Workspace-level
Section titled “Workspace-level”A workspace is a grouping of grants (authenticated user accounts) inside a Nylas application, usually one per customer domain. For creating one and assigning grants to it, see Set defaults for one workspace.
A workspace configuration gives every grant in the workspace two things: the same default Notetaker settings, and membership in the same deduplication group. Because workspaces typically group grants by company domain, all of a company’s users share their Notetaker defaults and dedupe against each other. If five Acme employees are invited to the same meeting, one Acme bot joins for all of them.
Create the workspace configuration the same way you create an application one, passing a workspace_id:
curl --request POST \ --url 'https://api.us.nylas.com/v3/notetakers/configs' \ --header 'Authorization: Bearer <NYLAS_API_KEY>' \ --header 'Content-Type: application/json' \ --data '{ "workspace_id": "<WORKSPACE_ID>", "display_name": "Acme Sales defaults", "deduplication_policy": "active" }'Override at a calendar level
Section titled “Override at a calendar level”If most of your application uses deduplication but a specific calendar needs its own dedicated bot, such as an executive or a compliance-sensitive account, set deduplication_policy to "disable" on an Update Calendar request. Every Notetaker created by that calendar’s sync rules then joins independently, even when 2 or more other users in the workspace are on the same meeting:
curl --request PUT \ --url 'https://api.us.nylas.com/v3/grants/<NYLAS_GRANT_ID>/calendars/<CALENDAR_ID>' \ --header 'Authorization: Bearer <NYLAS_API_KEY>' \ --header 'Content-Type: application/json' \ --data '{ "notetaker": { "notetaker_settings": { "name": "Executive Calendar Bot" }, "deduplication_policy": "disable", "rules": { "event_selection": ["all"] } } }'deduplication_policy sits alongside notetaker_settings and rules inside the notetaker object, not inside notetaker_settings.
Override at an event level
Section titled “Override at an event level”For a single meeting that needs its own bot, such as a board meeting or a high-stakes interview, set deduplication_policy to "disable" on an Update Event request. Only that one Notetaker is exempt; every other Notetaker on the same meeting continues to deduplicate normally:
curl --request PUT \ --url 'https://api.us.nylas.com/v3/grants/<NYLAS_GRANT_ID>/events/<EVENT_ID>?calendar_id=<CALENDAR_ID>' \ --header 'Authorization: Bearer <NYLAS_API_KEY>' \ --header 'Content-Type: application/json' \ --data '{ "notetaker": { "notetaker_settings": { "name": "Board Meeting Bot" }, "deduplication_policy": "disable" } }'How the levels interact
Section titled “How the levels interact”deduplication_policy follows the standard inheritance chain, with one twist: calendar, event, and per-Notetaker layers can only inherit or opt out, never turn dedup on. If nothing along the chain sets an explicit policy, deduplication is off. The 4 valid values and where each applies:
| Value | Valid at | Meaning |
|---|---|---|
active | Application, workspace | Dedup is on. |
inactive | Application, workspace | Dedup is off. This is the default. |
inherit | Calendar, event, per-Notetaker | Use the parent’s policy. This is the default. |
disable | Calendar, event, per-Notetaker | Opt out, regardless of parent. |
Related topics
Section titled “Related topics”- Notetaker configurations for creating application and workspace configurations.
- Pause Notetaker dispatch for how a shared bot behaves when some of its users are paused.
- Notetaker calendar sync for the sync rules that schedule the Notetakers being deduplicated.