# Update scheduled Notetaker

> **PATCH** `https://api.us.nylas.com/v3/grants/{grant_id}/notetakers/{notetaker_id}`

Source: https://developer.nylas.com/docs/reference/api/notetaker/update-notetaker/

Updates the specified scheduled Notetaker bot.

**Authentication:** NYLAS_API_KEY

## Parameters

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `grant_id` | string | Yes | ID of the grant to access. You can also use the email address associated with the grant, or use `/me/` to refer to the grant associated with an access token. |
| `notetaker_id` | string | Yes | ID of the Notetaker bot to access. |

## Request body

Content-Type: application/json

- `join_time` (integer) - When Notetaker should join the meeting, in seconds using the Unix timestamp format. If empty, Notetaker joins the
meeting immediately.

If you provide a time that's in the past, Nylas returns an error.
- `meeting_settings` (object) - A collection of settings for the Notetaker bot.
  - `action_items` (boolean) - When `true`, Notetaker generates a list of action items from the meeting. If `action_items` is
`true`, `video_recording`, `audio_recording`, and `transcription` must also be `true`.
  - `action_items_settings` (object)
    - `custom_instructions` (string) - A custom prompt to pass to Nylas' AI model and specify settings for the list of action items
it generates. `action_items` must be `true` to use this field.
  - `audio_recording` (boolean) - When `true`, Notetaker records the meeting's audio.
  - `leave_after_silence_seconds` (integer) - The number of seconds of silence after which the Notetaker bot automatically leaves
the meeting. This helps end recordings when meetings have concluded but participants
haven't disconnected the call. Must be between 10 and 3600 seconds (1 hour).
  - `summary` (boolean) - When `true`, Notetaker generates a summary of the meeting. If `summary` is `true`,
`video_recording`, `audio_recording`, and `transcription` must also be `true`.
  - `summary_settings` (object)
    - `custom_instructions` (string) - A custom prompt to pass to Nylas' AI model and specify settings for the summary it generates.
`summary` must be `true` to use this field.
  - `transcription` (boolean) - When `true`, Notetaker transcribes the meeting's audio. If `transcription` is `true`,
`video_recording` and `audio_recording` must also be `true`.
  - `video_recording` (boolean) - When `true`, Notetaker records the meeting's video.
  - `transcription_settings` (object) - Optional settings that tune how Notetaker transcribes audio. `transcription` must be
`true` for these settings to take effect. Provide any combination of the fields below.

The fields fall into two independent groups:

- **Language hints** (`expected_languages`, `fallback_language`) constrain automatic
  language detection. This declares the languages you expect; it does not translate
  transcripts or force the recording into a specific language.
- **Keyword hints** (`keywords`, `use_speaker_names_as_keywords`) bias recognition toward
  domain-specific terms such as names, acronyms, and product names.

Set on individual Notetakers, on calendar sync, or on event sync. When set on a calendar,
events inherit the value unless the event's own request overrides it. Send `null` or `{}`
to clear inherited settings and return to default transcription behavior.

See [Set transcription languages](/docs/v3/notetaker/#set-transcription-languages) for
supported language codes and validation rules.
    - `expected_languages` (array) - Language codes the audio is expected to contain. Optional. When provided, it must
contain at least one supported code and cannot be `null` or empty. When omitted,
transcription considers all supported languages.
    - `fallback_language` (string) - Language to use if Notetaker does not detect one of the `expected_languages`. Optional.
When `expected_languages` is set, the fallback must be one of those codes. When
`expected_languages` is omitted, transcription considers all supported languages and
the fallback may be any supported code. When `fallback_language` is omitted, the
transcriber auto-detects the language. The field is not stored, so responses do not
return it.
    - `keywords` (array) - Domain-specific terms that bias transcription toward recognizing them correctly, such
as names, acronyms, and product names. Optional. Up to 200 terms; each term must be
1 to 200 characters and cannot contain control characters. Cannot be `null`.
    - `use_speaker_names_as_keywords` (boolean) - When `true`, Notetaker adds known speaker names to the keyword set so they are
transcribed accurately. Optional. Cannot be `null`.
- `name` (string) - The display name for the Notetaker bot.

## Responses

### 200 - Success. Returns Notetaker bot.

- `request_id` (string) - The request ID.
- `data` (object)
  - `grant_id` (string) - The ID of the grant associated with this Notetaker bot.
  - `id` (string) - The Notetaker ID.
  - `join_time` (integer) - When Notetaker joined the meeting, in seconds using the Unix timestamp format.
  - `meeting_link` (string) - The meeting link.
  - `meeting_provider` (string) - The meeting provider.
  - `meeting_settings` (object) - A collection of settings for the Notetaker bot.
    - `action_items` (boolean) - When `true`, Notetaker generates a list of action items from the meeting. If `action_items` is
`true`, `video_recording`, `audio_recording`, and `transcription` must also be `true`.
    - `action_items_settings` (object)
      - `custom_instructions` (string) - A custom prompt to pass to Nylas' AI model and specify settings for the list of action items
it generates. `action_items` must be `true` to use this field.
    - `audio_recording` (boolean) - When `true`, Notetaker records the meeting's audio.
    - `leave_after_silence_seconds` (integer) - The number of seconds of silence after which the Notetaker bot automatically leaves
the meeting. This helps end recordings when meetings have concluded but participants
haven't disconnected the call. Must be between 10 and 3600 seconds (1 hour).
    - `summary` (boolean) - When `true`, Notetaker generates a summary of the meeting. If `summary` is `true`,
`video_recording`, `audio_recording`, and `transcription` must also be `true`.
    - `summary_settings` (object)
      - `custom_instructions` (string) - A custom prompt to pass to Nylas' AI model and specify settings for the summary it generates.
`summary` must be `true` to use this field.
    - `transcription` (boolean) - When `true`, Notetaker transcribes the meeting's audio. If `transcription` is `true`,
`video_recording` and `audio_recording` must also be `true`.
    - `video_recording` (boolean) - When `true`, Notetaker records the meeting's video.
    - `transcription_settings` (object) - Optional settings that tune how Notetaker transcribes audio. `transcription` must be
`true` for these settings to take effect. Provide any combination of the fields below.

The fields fall into two independent groups:

- **Language hints** (`expected_languages`, `fallback_language`) constrain automatic
  language detection. This declares the languages you expect; it does not translate
  transcripts or force the recording into a specific language.
- **Keyword hints** (`keywords`, `use_speaker_names_as_keywords`) bias recognition toward
  domain-specific terms such as names, acronyms, and product names.

Set on individual Notetakers, on calendar sync, or on event sync. When set on a calendar,
events inherit the value unless the event's own request overrides it. Send `null` or `{}`
to clear inherited settings and return to default transcription behavior.

See [Set transcription languages](/docs/v3/notetaker/#set-transcription-languages) for
supported language codes and validation rules.
      - `expected_languages` (array) - Language codes the audio is expected to contain. Optional. When provided, it must
contain at least one supported code and cannot be `null` or empty. When omitted,
transcription considers all supported languages.
      - `fallback_language` (string) - Language to use if Notetaker does not detect one of the `expected_languages`. Optional.
When `expected_languages` is set, the fallback must be one of those codes. When
`expected_languages` is omitted, transcription considers all supported languages and
the fallback may be any supported code. When `fallback_language` is omitted, the
transcriber auto-detects the language. The field is not stored, so responses do not
return it.
      - `keywords` (array) - Domain-specific terms that bias transcription toward recognizing them correctly, such
as names, acronyms, and product names. Optional. Up to 200 terms; each term must be
1 to 200 characters and cannot contain control characters. Cannot be `null`.
      - `use_speaker_names_as_keywords` (boolean) - When `true`, Notetaker adds known speaker names to the keyword set so they are
transcribed accurately. Optional. Cannot be `null`.
  - `name` (string) - The display name for the Notetaker bot.
  - `object` (string) - The type of object.
  - `state` (string) - The current state of the Notetaker bot.
  - `status` (string) - The current status of the Notetaker bot.

### 401 - Unauthorized

- `request_id` (string) - The request ID.
- `error` (object) - The response error object.
  - `type` (string) - The error type.
  - `message` (string) - The error message.
  - `provider_error` (object) - The error from the provider.

### 404 - Not Found

- `request_id` (string) - The request ID.
- `error` (object) - The response error object.
  - `type` (string) - The error type.
  - `message` (string) - The error message.
  - `provider_error` (object) - The raw error from the provider, if available
    - `code` (string)
    - `message` (string)

### 429 - Rate Limit

- `request_id` (string) - The request ID.
- `error` (object) - The response error object.
  - `type` (string) - The error type.
  - `message` (string) - The error message.

## Code samples

### cURL

```bash
curl --request PATCH \
  --url "https://api.us.nylas.com/v3/grants/<NYLAS_GRANT_ID>/notetakers/<NOTETAKER_ID>" \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer <NYLAS_API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '{
    "join_time": 1732657774,
    "meeting_settings": {
      "action_items": true,
      "action_items_settings": {
        "custom_instructions": "Only return the 5 most important action items."
      },
      "audio_recording": true,
      "summary": true,
      "summary_settings": {
        "custom_instructions": "Return this summary in the MEDPIC sales methodology."
      },
      "transcription": true,
      "transcription_settings": {
        "expected_languages": ["en", "es"],
        "fallback_language": "en"
      },
      "video_recording": true
    },
    "name": "Nylas Notetaker",
  }'
```

### Node.js SDK

```javascript
import Nylas from "nylas";

const nylas = new Nylas({
  apiKey: "<NYLAS_API_KEY>",
  apiUri: "<NYLAS_API_URI>",
});

async function updateNotetaker() {
  try {
    const notetaker = await nylas.notetakers.update({
      identifier: "<NYLAS_GRANT_ID>",
      notetakerId: "<NOTETAKER_ID>",
      requestBody: {
        name: "Updated Notetaker name",
        meetingSettings: {
          transcription: false,
        },
      },
    });

    console.log("Updated notetaker:", notetaker);
  } catch (error) {
    console.error("Error updating notetaker:", error);
  }
}

updateNotetaker();

```

### Java SDK

```java
import com.nylas.NylasClient;
import com.nylas.models.Notetaker;
import com.nylas.models.NylasApiError;
import com.nylas.models.NylasSdkTimeoutError;
import com.nylas.models.Response;
import com.nylas.models.UpdateNotetakerRequest;

public class UpdateNotetaker {
  public static void main(String[] args) throws NylasSdkTimeoutError, NylasApiError {
    NylasClient nylas = new NylasClient.Builder("<NYLAS_API_KEY>").build();

    UpdateNotetakerRequest.MeetingSettings meetingSettings =
        new UpdateNotetakerRequest.MeetingSettings.Builder()
            .transcription(false)
            .build();

    UpdateNotetakerRequest requestBody = new UpdateNotetakerRequest.Builder()
        .name("Updated Notetaker name")
        .meetingSettings(meetingSettings)
        .build();

    Response<Notetaker> notetaker = nylas.notetakers().update(
        "<NOTETAKER_ID>", requestBody, "<NYLAS_GRANT_ID>");

    System.out.println("Updated notetaker: " + notetaker.getData());
  }
}

```

### Kotlin SDK

```kotlin
import com.nylas.NylasClient
import com.nylas.models.UpdateNotetakerRequest

fun main() {
  val nylas = NylasClient.Builder("<NYLAS_API_KEY>").build()

  val meetingSettings = UpdateNotetakerRequest.MeetingSettings.Builder()
      .transcription(false)
      .build()

  val requestBody = UpdateNotetakerRequest.Builder()
      .name("Updated Notetaker name")
      .meetingSettings(meetingSettings)
      .build()

  val notetaker = nylas.notetakers().update(
      "<NOTETAKER_ID>", requestBody, "<NYLAS_GRANT_ID>")

  println("Updated notetaker: ${notetaker.data}")
}

```
