# Circleback

> Automate Circleback: read meeting notes, transcripts and action items, import meetings, and tag them with a Circleback API key.

App · Meeting Notes · 20 actions. Web page: https://docs.lodol.com/docs/integrations/circleback

## Actions

### Create a Circleback tag

Create a tag to file meetings under. Circleback rejects a name that is already in use.

**Inputs**

- Tag name (`name`, text, required): What the tag is called. Must be unique.
- Description (`description`, text): What the tag is for.

**Outputs**

- `description` (text)
- `id` (number)
- `name` (text)

**Example output**

```json
{
  "description": "External customer calls",
  "id": 812,
  "name": "Customer"
}
```

### Delete a Circleback meeting

Permanently delete a meeting, along with its notes, transcript and action items. Only the meeting's owner can delete it, and it cannot be undone.

**Inputs**

- Meeting (`meeting_id`, text, required): Circleback meeting ID, or the address of the meeting in Circleback.

**Outputs**

- `deleted` (true/false)
- `meeting` (object)
- `meeting_id` (text)

**Example output**

```json
{
  "deleted": true,
  "meeting": {
    "actionItems": [
      {
        "assignee": {
          "companyName": "Lodol",
          "email": "tom@example.com",
          "name": "Tom Alvarez",
          "profileId": 40119,
          "title": "Account Executive"
        },
        "description": "Priya asked for SOC 2 and the pen-test summary.",
        "id": 55231,
        "status": "PENDING",
        "title": "Send the security review packet"
      }
    ],
    "attendees": [
      {
        "companyName": "Northwind Retail",
        "email": "priya@northwind-retail.example",
        "isCalendarEventOrganizer": true,
        "isCalendarInvitee": true,
        "name": "Priya Raman",
        "profileId": 40118,
        "title": "Head of Support"
      },
      {
        "companyName": "Lodol",
        "email": "tom@example.com",
        "isCalendarEventOrganizer": false,
        "isCalendarInvitee": true,
        "name": "Tom Alvarez",
        "profileId": 40119,
        "title": "Account Executive"
      }
    ],
    "calendarEvent": {
      "description": "Quarterly business review",
      "icalUid": "040000008200E00074C5B7101A82E0080000000",
      "id": 90144,
      "platform": "GoogleCalendar",
      "platformId": "3k1p9c5m8v"
    },
    "createdAt": "2026-09-02T15:00:00.000Z",
    "duration": 3240,
    "icalUid": "040000008200E00074C5B7101A82E0080000000",
    "id": "mtg_9fQ2xK7d",
    "insights": {},
    "linkAccess": "Viewer",
    "name": "Northwind quarterly review",
    "notes": "Northwind is happy with response times. They want SSO before renewing, and asked for a security review packet.",
    "privateNotes": "Renewal is worth 42k; SSO is the only blocker.",
    "recordingUrl": null,
    "tags": [
      {
        "description": "External customer calls",
        "id": 812,
        "name": "Customer"
      }
    ],
    "updatedAt": "2026-09-02T16:04:11.000Z",
    "url": "https://app.circleback.ai/meetings/mtg_9fQ2xK7d"
  },
  "meeting_id": "mtg_9fQ2xK7d"
}
```

### Delete a Circleback tag

Permanently delete a tag and remove it from every meeting it was applied to. The meetings themselves are untouched.

**Inputs**

- Tag (`tag_id`, text, required): Circleback tag. Pick one, or pass a tag ID from an earlier step.

**Outputs**

- `deleted` (true/false)
- `tag` (object)
- `tag_id` (number)

**Example output**

```json
{
  "deleted": true,
  "tag": {
    "description": "External customer calls",
    "id": 812,
    "name": "Customer"
  },
  "tag_id": 812
}
```

### Get a Circleback company

Read one company by its domain, with the people from it who have been in meetings and links out to a connected CRM.

**Inputs**

- Company domain (`domain`, text, required): The company's domain, such as 'example.com'. A full web address or an email address works too.

**Outputs**

- `avatarUrl` (text)
- `domain` (text)
- `externalLinks` (list)
- `name` (text)
- `people` (list)

**Example output**

```json
{
  "avatarUrl": "https://logo.circleback.ai/northwind.png",
  "domain": "northwind-retail.example",
  "externalLinks": [
    {
      "objectType": "company",
      "type": "website",
      "url": "https://northwind-retail.example"
    }
  ],
  "name": "Northwind Retail",
  "people": [
    {
      "companyId": 7731,
      "companyName": "Northwind Retail",
      "email": "priya@northwind-retail.example",
      "firstName": "Priya",
      "id": 40118,
      "lastName": "Raman",
      "title": "Head of Support"
    }
  ]
}
```

### Get a Circleback meeting

Read one meeting: its notes, private notes, attendees, tags and the action items generated from it.

**Inputs**

- Meeting (`meeting_id`, text, required): Circleback meeting ID, or the address of the meeting in Circleback.

**Outputs**

- `actionItems` (list)
- `attendees` (list)
- `calendarEvent` (object)
- `createdAt` (text)
- `duration` (number)
- `icalUid` (text)
- `id` (text)
- `insights` (object)
- `linkAccess` (text)
- `name` (text)
- `notes` (text)
- `privateNotes` (text)
- `recordingUrl` (text)
- `tags` (list)
- `updatedAt` (text)
- `url` (text)

**Example output**

```json
{
  "actionItems": [
    {
      "assignee": {
        "companyName": "Lodol",
        "email": "tom@example.com",
        "name": "Tom Alvarez",
        "profileId": 40119,
        "title": "Account Executive"
      },
      "description": "Priya asked for SOC 2 and the pen-test summary.",
      "id": 55231,
      "status": "PENDING",
      "title": "Send the security review packet"
    }
  ],
  "attendees": [
    {
      "companyName": "Northwind Retail",
      "email": "priya@northwind-retail.example",
      "isCalendarEventOrganizer": true,
      "isCalendarInvitee": true,
      "name": "Priya Raman",
      "profileId": 40118,
      "title": "Head of Support"
    },
    {
      "companyName": "Lodol",
      "email": "tom@example.com",
      "isCalendarEventOrganizer": false,
      "isCalendarInvitee": true,
      "name": "Tom Alvarez",
      "profileId": 40119,
      "title": "Account Executive"
    }
  ],
  "calendarEvent": {
    "description": "Quarterly business review",
    "icalUid": "040000008200E00074C5B7101A82E0080000000",
    "id": 90144,
    "platform": "GoogleCalendar",
    "platformId": "3k1p9c5m8v"
  },
  "createdAt": "2026-09-02T15:00:00.000Z",
  "duration": 3240,
  "icalUid": "040000008200E00074C5B7101A82E0080000000",
  "id": "mtg_9fQ2xK7d",
  "insights": {},
  "linkAccess": "Viewer",
  "name": "Northwind quarterly review",
  "notes": "Northwind is happy with response times. They want SSO before renewing, and asked for a security review packet.",
  "privateNotes": "Renewal is worth 42k; SSO is the only blocker.",
  "recordingUrl": null,
  "tags": [
    {
      "description": "External customer calls",
      "id": 812,
      "name": "Customer"
    }
  ],
  "updatedAt": "2026-09-02T16:04:11.000Z",
  "url": "https://app.circleback.ai/meetings/mtg_9fQ2xK7d"
}
```

### Get a Circleback person

Read one person by profile ID, with their job title, company and links out to LinkedIn or a connected CRM.

**Inputs**

- Profile ID (`profile_id`, text, required): Circleback profile ID, from 'List Circleback people' or a meeting's attendee list.

**Outputs**

- `companyId` (number)
- `companyName` (text)
- `email` (text)
- `externalLinks` (list)
- `firstName` (text)
- `id` (number)
- `lastName` (text)
- `title` (text)

**Example output**

```json
{
  "companyId": 7731,
  "companyName": "Northwind Retail",
  "email": "priya@northwind-retail.example",
  "externalLinks": [
    {
      "objectType": "person",
      "type": "linkedin",
      "url": "https://www.linkedin.com/in/priya-raman"
    }
  ],
  "firstName": "Priya",
  "id": 40118,
  "lastName": "Raman",
  "title": "Head of Support"
}
```

### Get a Circleback transcript

Read the full speaker-labelled transcript of a meeting, one line per utterance with the seconds it happened at.

**Inputs**

- Meeting (`meeting_id`, text, required): Circleback meeting ID, or the address of the meeting in Circleback.

**Outputs**

- `count` (number)
- `meeting_id` (text)
- `transcript` (list)

**Example output**

```json
{
  "count": 2,
  "meeting_id": "mtg_9fQ2xK7d",
  "transcript": [
    {
      "speaker": "Priya Raman",
      "text": "Response times have been good this quarter.",
      "timestamp": 12.4
    },
    {
      "speaker": "Tom Alvarez",
      "text": "Glad to hear it. Let's talk about SSO.",
      "timestamp": 18.9
    }
  ]
}
```

### Import a meeting into Circleback

Add a meeting that happened somewhere else, with its notes, attendees and transcript. The meeting becomes searchable and taggable like any other. Imported meetings do not come back with generated action items, so add any you need by hand.

**Inputs**

- Meeting name (`name`, text, required): What the meeting is called in Circleback.
- Notes (`notes`, text, required): The meeting notes. Circleback reads these to generate action items, so write them as you would a summary.
- Meeting date and time (`created_at`, date and time): When the meeting took place. Defaults to now if left empty.
- Attendees (`attendees`, list): Who was there. Give an email address per person, or objects with a name and email.
- Transcript (`transcript`, list): What was said, one line per utterance. Each line needs a speaker and the text; the start and end seconds are optional.
- Tag names (`tags`, list): Tags to file the meeting under, by name. Circleback creates any that do not exist yet.
- Share with (`shared_with`, list): People to share the meeting with, each an email address and an access level of Editor, Viewer or LimitedViewer.

**Outputs**

- `actionItems` (list)
- `attendees` (list)
- `calendarEvent` (object)
- `createdAt` (text)
- `duration` (number)
- `icalUid` (text)
- `id` (text)
- `insights` (object)
- `linkAccess` (text)
- `name` (text)
- `notes` (text)
- `privateNotes` (text)
- `recordingUrl` (text)
- `tags` (list)
- `updatedAt` (text)
- `url` (text)

**Example output**

```json
{
  "actionItems": [
    {
      "assignee": {
        "companyName": "Lodol",
        "email": "tom@example.com",
        "name": "Tom Alvarez",
        "profileId": 40119,
        "title": "Account Executive"
      },
      "description": "Priya asked for SOC 2 and the pen-test summary.",
      "id": 55231,
      "status": "PENDING",
      "title": "Send the security review packet"
    }
  ],
  "attendees": [
    {
      "companyName": "Northwind Retail",
      "email": "priya@northwind-retail.example",
      "isCalendarEventOrganizer": true,
      "isCalendarInvitee": true,
      "name": "Priya Raman",
      "profileId": 40118,
      "title": "Head of Support"
    },
    {
      "companyName": "Lodol",
      "email": "tom@example.com",
      "isCalendarEventOrganizer": false,
      "isCalendarInvitee": true,
      "name": "Tom Alvarez",
      "profileId": 40119,
      "title": "Account Executive"
    }
  ],
  "calendarEvent": {
    "description": "Quarterly business review",
    "icalUid": "040000008200E00074C5B7101A82E0080000000",
    "id": 90144,
    "platform": "GoogleCalendar",
    "platformId": "3k1p9c5m8v"
  },
  "createdAt": "2026-09-02T15:00:00.000Z",
  "duration": 3240,
  "icalUid": "040000008200E00074C5B7101A82E0080000000",
  "id": "mtg_9fQ2xK7d",
  "insights": {},
  "linkAccess": "Viewer",
  "name": "Northwind quarterly review",
  "notes": "Northwind is happy with response times. They want SSO before renewing, and asked for a security review packet.",
  "privateNotes": "Renewal is worth 42k; SSO is the only blocker.",
  "recordingUrl": null,
  "tags": [
    {
      "description": "External customer calls",
      "id": 812,
      "name": "Customer"
    }
  ],
  "updatedAt": "2026-09-02T16:04:11.000Z",
  "url": "https://app.circleback.ai/meetings/mtg_9fQ2xK7d"
}
```

### List Circleback action items

List action items across the account's meetings. Circleback defaults to your own open items; set the assignee and status filters to widen that.

**Inputs**

- Assigned to (`assignee_type`, text): Whose action items to include. One of: `Me` (Assigned to me), `NotMe` (Assigned to anyone but me), `Profile` (Assigned to a specific person), `MyWorkspace` (Assigned to someone in my workspace), `OutsideMyWorkspace` (Assigned to someone outside my workspace), `Unassigned`, `Anyone`.
- Assignee profile ID (`assignee_profile_id`, text): The specific person's profile ID, used when 'Assigned to' is set to a specific person.
- Status (`status`, text): Only items in this state. One of: `PENDING` (Open), `DONE`.
- Tags (`tag_ids`, text): Only items from meetings carrying these tags.
- Attendee profile IDs (`attendee_profile_ids`, list): Only items from meetings these people attended.
- Maximum action items (`limit`, number): How many action items to return. From 1 to 200. Default: `25`.

**Outputs**

- `action_items` (list)
- `count` (number)

**Example output**

```json
{
  "action_items": [
    {
      "assignee": {
        "companyName": "Lodol",
        "email": "tom@example.com",
        "name": "Tom Alvarez",
        "profileId": 40119,
        "title": "Account Executive"
      },
      "canEditActionItem": true,
      "completedAt": null,
      "description": "Priya asked for SOC 2 and the pen-test summary.",
      "id": 55231,
      "meetingId": "mtg_9fQ2xK7d",
      "meetings": [
        {
          "createdAt": "2026-09-02T15:00:00.000Z",
          "id": "mtg_9fQ2xK7d",
          "name": "Northwind quarterly review"
        }
      ],
      "status": "PENDING",
      "title": "Send the security review packet"
    }
  ],
  "count": 1
}
```

### List Circleback calendar events

List events from the calendars connected to Circleback. Each one reports whether Circleback intends to record it and why, so a workflow can act before the meeting starts.

**Inputs**

- Hours ahead (`lookahead_hours`, number): How far into the future to look. At least 0.
- Hours back (`lookback_hours`, number): How far into the past to look. At least 0.
- Order (`sort_direction`, text): How to order events by start time. One of: `ascending` (Soonest first), `descending` (Latest first).
- Include solo offline events (`include_offline_single_attendee`, true/false): Include calendar entries with no meeting link and only one attendee, such as focus blocks.
- Maximum events (`limit`, number): How many events to return. From 1 to 200. Default: `25`.

**Outputs**

- `count` (number)
- `events` (list)

**Example output**

```json
{
  "count": 1,
  "events": [
    {
      "attendees": [
        {
          "email": "priya@northwind-retail.example",
          "isOrganizer": true,
          "name": "Priya Raman",
          "status": "accepted"
        }
      ],
      "calendarDescription": "Quarterly business review",
      "calendarPlatform": "GoogleCalendar",
      "endTime": "2026-09-10T16:00:00.000Z",
      "icalUid": "040000008200E00074C5B7101A82E0080000000",
      "id": "evt_3k1p9c5m8v",
      "isExternal": true,
      "isHostedByMe": false,
      "location": "Google Meet",
      "meetingId": null,
      "meetingPlatform": "GoogleMeet",
      "organizerEmail": "priya@northwind-retail.example",
      "overrideShouldRecord": null,
      "platform": "GoogleCalendar",
      "recurringEventId": "rec_8812",
      "startTime": "2026-09-10T15:00:00.000Z",
      "title": "Northwind quarterly review",
      "willRecord": true,
      "willRecordReason": "External meeting with a meeting link"
    }
  ]
}
```

### List Circleback companies

List the companies whose people attend the account's meetings, optionally narrowed to a tag.

**Inputs**

- Tags (`tag_ids`, text): Only companies seen in meetings with these tags.
- Maximum companies (`limit`, number): How many companies to return. From 1 to 200. Default: `25`.

**Outputs**

- `companies` (list)
- `count` (number)

**Example output**

```json
{
  "companies": [
    {
      "avatarUrl": "https://logo.circleback.ai/northwind.png",
      "domain": "northwind-retail.example",
      "id": 7731,
      "name": "Northwind Retail"
    }
  ],
  "count": 1
}
```

### List Circleback meetings

List the account's meetings, most recent first, optionally narrowed to a tag, an attendee, or only the meetings you own.

**Inputs**

- Which meetings (`ownership`, text): Whose meetings to include. One of: `All` (All meetings I can see), `Mine` (Only meetings I own), `Shared` (Only meetings shared with me).
- Tags (`tag_ids`, text): Only meetings carrying these tags.
- Attendee profile IDs (`attendee_profile_ids`, list): Only meetings these people attended, by profile ID from 'List Circleback people'.
- Maximum meetings (`limit`, number): How many meetings to return. From 1 to 200. Default: `25`.

**Outputs**

- `count` (number)
- `meetings` (list)

**Example output**

```json
{
  "count": 1,
  "meetings": [
    {
      "actionItems": [
        {
          "assignee": {
            "companyName": "Lodol",
            "email": "tom@example.com",
            "name": "Tom Alvarez",
            "profileId": 40119,
            "title": "Account Executive"
          },
          "description": "Priya asked for SOC 2 and the pen-test summary.",
          "id": 55231,
          "status": "PENDING",
          "title": "Send the security review packet"
        }
      ],
      "attendees": [
        {
          "companyName": "Northwind Retail",
          "email": "priya@northwind-retail.example",
          "isCalendarEventOrganizer": true,
          "isCalendarInvitee": true,
          "name": "Priya Raman",
          "profileId": 40118,
          "title": "Head of Support"
        },
        {
          "companyName": "Lodol",
          "email": "tom@example.com",
          "isCalendarEventOrganizer": false,
          "isCalendarInvitee": true,
          "name": "Tom Alvarez",
          "profileId": 40119,
          "title": "Account Executive"
        }
      ],
      "calendarEvent": {
        "description": "Quarterly business review",
        "icalUid": "040000008200E00074C5B7101A82E0080000000",
        "id": 90144,
        "platform": "GoogleCalendar",
        "platformId": "3k1p9c5m8v"
      },
      "createdAt": "2026-09-02T15:00:00.000Z",
      "duration": 3240,
      "icalUid": "040000008200E00074C5B7101A82E0080000000",
      "id": "mtg_9fQ2xK7d",
      "insights": {},
      "linkAccess": "Viewer",
      "name": "Northwind quarterly review",
      "notes": "Northwind is happy with response times. They want SSO before renewing, and asked for a security review packet.",
      "privateNotes": "Renewal is worth 42k; SSO is the only blocker.",
      "recordingUrl": null,
      "tags": [
        {
          "description": "External customer calls",
          "id": 812,
          "name": "Customer"
        }
      ],
      "updatedAt": "2026-09-02T16:04:11.000Z",
      "url": "https://app.circleback.ai/meetings/mtg_9fQ2xK7d"
    }
  ]
}
```

### List Circleback people

List the people who attend the account's meetings, most recently met first. Their profile IDs are what the meeting and action-item filters take.

**Inputs**

- Company domains (`domains`, list): Only people at these companies, by domain such as 'example.com'.
- Tags (`tag_ids`, text): Only people who attended meetings with these tags.
- Maximum people (`limit`, number): How many people to return. From 1 to 200. Default: `25`.

**Outputs**

- `count` (number)
- `people` (list)

**Example output**

```json
{
  "count": 1,
  "people": [
    {
      "companyId": 7731,
      "companyName": "Northwind Retail",
      "email": "priya@northwind-retail.example",
      "firstName": "Priya",
      "id": 40118,
      "lastName": "Raman",
      "title": "Head of Support"
    }
  ]
}
```

### List Circleback tags

List every tag on the account, with the ID each of the tag filters takes.

**Inputs**: None.

**Outputs**

- `count` (number)
- `tags` (list)

**Example output**

```json
{
  "count": 1,
  "tags": [
    {
      "description": "External customer calls",
      "id": 812,
      "name": "Customer"
    }
  ]
}
```

### Search Circleback meetings

Search meeting names and content for a phrase, optionally narrowed to particular tags, people or meetings.

**Inputs**

- Search for (`search_term`, text): Text to look for across meeting names and content.
- Tags (`tag_ids`, text): Only search meetings carrying these tags.
- Meeting IDs (`meeting_ids`, list): Only search these meetings.
- Attendee profile IDs (`attendee_profile_ids`, list): Only search meetings these people attended.
- Maximum meetings (`limit`, number): How many matches to return. From 1 to 200. Default: `25`.

**Outputs**

- `count` (number)
- `meetings` (list)

**Example output**

```json
{
  "count": 1,
  "meetings": [
    {
      "actionItems": [
        {
          "assignee": {
            "companyName": "Lodol",
            "email": "tom@example.com",
            "name": "Tom Alvarez",
            "profileId": 40119,
            "title": "Account Executive"
          },
          "description": "Priya asked for SOC 2 and the pen-test summary.",
          "id": 55231,
          "status": "PENDING",
          "title": "Send the security review packet"
        }
      ],
      "attendees": [
        {
          "companyName": "Northwind Retail",
          "email": "priya@northwind-retail.example",
          "isCalendarEventOrganizer": true,
          "isCalendarInvitee": true,
          "name": "Priya Raman",
          "profileId": 40118,
          "title": "Head of Support"
        },
        {
          "companyName": "Lodol",
          "email": "tom@example.com",
          "isCalendarEventOrganizer": false,
          "isCalendarInvitee": true,
          "name": "Tom Alvarez",
          "profileId": 40119,
          "title": "Account Executive"
        }
      ],
      "calendarEvent": {
        "description": "Quarterly business review",
        "icalUid": "040000008200E00074C5B7101A82E0080000000",
        "id": 90144,
        "platform": "GoogleCalendar",
        "platformId": "3k1p9c5m8v"
      },
      "createdAt": "2026-09-02T15:00:00.000Z",
      "duration": 3240,
      "icalUid": "040000008200E00074C5B7101A82E0080000000",
      "id": "mtg_9fQ2xK7d",
      "insights": {},
      "linkAccess": "Viewer",
      "name": "Northwind quarterly review",
      "notes": "Northwind is happy with response times. They want SSO before renewing, and asked for a security review packet.",
      "privateNotes": "Renewal is worth 42k; SSO is the only blocker.",
      "recordingUrl": null,
      "tags": [
        {
          "description": "External customer calls",
          "id": 812,
          "name": "Customer"
        }
      ],
      "updatedAt": "2026-09-02T16:04:11.000Z",
      "url": "https://app.circleback.ai/meetings/mtg_9fQ2xK7d"
    }
  ]
}
```

### Tag Circleback meetings

Apply an existing tag to one or more meetings and get the updated meetings back.

**Inputs**

- Tag (`tag_id`, text, required): Circleback tag. Pick one, or pass a tag ID from an earlier step.
- Meetings (`meeting_ids`, list, required): The meetings to tag, by meeting ID.

**Outputs**

- `count` (number)
- `meetings` (list)
- `tag_id` (number)

**Example output**

```json
{
  "count": 1,
  "meetings": [
    {
      "actionItems": [
        {
          "assignee": {
            "companyName": "Lodol",
            "email": "tom@example.com",
            "name": "Tom Alvarez",
            "profileId": 40119,
            "title": "Account Executive"
          },
          "description": "Priya asked for SOC 2 and the pen-test summary.",
          "id": 55231,
          "status": "PENDING",
          "title": "Send the security review packet"
        }
      ],
      "attendees": [
        {
          "companyName": "Northwind Retail",
          "email": "priya@northwind-retail.example",
          "isCalendarEventOrganizer": true,
          "isCalendarInvitee": true,
          "name": "Priya Raman",
          "profileId": 40118,
          "title": "Head of Support"
        },
        {
          "companyName": "Lodol",
          "email": "tom@example.com",
          "isCalendarEventOrganizer": false,
          "isCalendarInvitee": true,
          "name": "Tom Alvarez",
          "profileId": 40119,
          "title": "Account Executive"
        }
      ],
      "calendarEvent": {
        "description": "Quarterly business review",
        "icalUid": "040000008200E00074C5B7101A82E0080000000",
        "id": 90144,
        "platform": "GoogleCalendar",
        "platformId": "3k1p9c5m8v"
      },
      "createdAt": "2026-09-02T15:00:00.000Z",
      "duration": 3240,
      "icalUid": "040000008200E00074C5B7101A82E0080000000",
      "id": "mtg_9fQ2xK7d",
      "insights": {},
      "linkAccess": "Viewer",
      "name": "Northwind quarterly review",
      "notes": "Northwind is happy with response times. They want SSO before renewing, and asked for a security review packet.",
      "privateNotes": "Renewal is worth 42k; SSO is the only blocker.",
      "recordingUrl": null,
      "tags": [
        {
          "description": "External customer calls",
          "id": 812,
          "name": "Customer"
        }
      ],
      "updatedAt": "2026-09-02T16:04:11.000Z",
      "url": "https://app.circleback.ai/meetings/mtg_9fQ2xK7d"
    }
  ],
  "tag_id": 812
}
```

### Untag Circleback meetings

Take a tag off one or more meetings without deleting the tag itself, so other meetings keep it.

**Inputs**

- Tag (`tag_id`, text, required): Circleback tag. Pick one, or pass a tag ID from an earlier step.
- Meetings (`meeting_ids`, list, required): The meetings to untag, by meeting ID.

**Outputs**

- `count` (number)
- `meetings` (list)
- `tag_id` (number)

**Example output**

```json
{
  "count": 1,
  "meetings": [
    {
      "actionItems": [
        {
          "assignee": {
            "companyName": "Lodol",
            "email": "tom@example.com",
            "name": "Tom Alvarez",
            "profileId": 40119,
            "title": "Account Executive"
          },
          "description": "Priya asked for SOC 2 and the pen-test summary.",
          "id": 55231,
          "status": "PENDING",
          "title": "Send the security review packet"
        }
      ],
      "attendees": [
        {
          "companyName": "Northwind Retail",
          "email": "priya@northwind-retail.example",
          "isCalendarEventOrganizer": true,
          "isCalendarInvitee": true,
          "name": "Priya Raman",
          "profileId": 40118,
          "title": "Head of Support"
        },
        {
          "companyName": "Lodol",
          "email": "tom@example.com",
          "isCalendarEventOrganizer": false,
          "isCalendarInvitee": true,
          "name": "Tom Alvarez",
          "profileId": 40119,
          "title": "Account Executive"
        }
      ],
      "calendarEvent": {
        "description": "Quarterly business review",
        "icalUid": "040000008200E00074C5B7101A82E0080000000",
        "id": 90144,
        "platform": "GoogleCalendar",
        "platformId": "3k1p9c5m8v"
      },
      "createdAt": "2026-09-02T15:00:00.000Z",
      "duration": 3240,
      "icalUid": "040000008200E00074C5B7101A82E0080000000",
      "id": "mtg_9fQ2xK7d",
      "insights": {},
      "linkAccess": "Viewer",
      "name": "Northwind quarterly review",
      "notes": "Northwind is happy with response times. They want SSO before renewing, and asked for a security review packet.",
      "privateNotes": "Renewal is worth 42k; SSO is the only blocker.",
      "recordingUrl": null,
      "tags": [],
      "updatedAt": "2026-09-02T16:04:11.000Z",
      "url": "https://app.circleback.ai/meetings/mtg_9fQ2xK7d"
    }
  ],
  "tag_id": 812
}
```

### Update a Circleback action item

Change an action item's title, description, assignee, or mark it done.

**Inputs**

- Action item ID (`action_item_id`, text, required): Circleback action item ID, from 'List Circleback action items' or from a meeting's action items.
- Title (`title`, text): Leave empty to keep the current title.
- Description (`description`, text): Replaces the current description.
- Status (`status`, text): Mark the item open or done. One of: `PENDING` (Open), `DONE`.
- Assignee profile ID (`assignee_profile_id`, text): Profile ID of the person to assign it to, from 'List Circleback people'.

**Outputs**

- `assignee` (object)
- `canEditActionItem` (true/false)
- `completedAt` (text)
- `description` (text)
- `id` (number)
- `meetingId` (text)
- `meetings` (list)
- `status` (text)
- `title` (text)

**Example output**

```json
{
  "assignee": {
    "companyName": "Lodol",
    "email": "tom@example.com",
    "name": "Tom Alvarez",
    "profileId": 40119,
    "title": "Account Executive"
  },
  "canEditActionItem": true,
  "completedAt": null,
  "description": "Priya asked for SOC 2 and the pen-test summary.",
  "id": 55231,
  "meetingId": "mtg_9fQ2xK7d",
  "meetings": [
    {
      "createdAt": "2026-09-02T15:00:00.000Z",
      "id": "mtg_9fQ2xK7d",
      "name": "Northwind quarterly review"
    }
  ],
  "status": "DONE",
  "title": "Send the security review packet"
}
```

### Update a Circleback meeting

Rename a meeting or rewrite its notes. Circleback returns only the fields that changed.

**Inputs**

- Meeting (`meeting_id`, text, required): Circleback meeting ID, or the address of the meeting in Circleback.
- New name (`name`, text): Leave empty to keep the current name.
- Notes (`notes`, text): Replaces the meeting's notes. Leave empty to keep them as they are.
- Private notes (`private_notes`, text): Notes only you can see. Replaces what is there now.

**Outputs**

- `actionItems` (list)
- `attendees` (list)
- `calendarEvent` (object)
- `createdAt` (text)
- `duration` (number)
- `icalUid` (text)
- `id` (text)
- `insights` (object)
- `linkAccess` (text)
- `name` (text)
- `notes` (text)
- `privateNotes` (text)
- `recordingUrl` (text)
- `tags` (list)
- `updatedAt` (text)
- `url` (text)

**Example output**

```json
{
  "id": "mtg_9fQ2xK7d",
  "name": "Northwind quarterly review (revised)",
  "notes": "Northwind is happy with response times. SSO is the only blocker to renewal.",
  "privateNotes": "Renewal is worth 42k; SSO is the only blocker."
}
```

### Update a Circleback tag

Rename a tag or change what its description says.

**Inputs**

- Tag (`tag_id`, text, required): Circleback tag. Pick one, or pass a tag ID from an earlier step.
- New name (`name`, text): Leave empty to keep the current name.
- Description (`description`, text): Replaces the current description.

**Outputs**

- `description` (text)
- `id` (number)
- `name` (text)

**Example output**

```json
{
  "description": "External customer calls",
  "id": 812,
  "name": "Customer calls"
}
```
