← Back to all apps

Streak

by Rewardly, Inc.
Launched Sep 10, 2026 on ChatGPT

Streak is a CRM built directly into Gmail, so you can track deals, contacts, and workflows from your inbox.

Emails are logged automatically, pipelines update as conversations move forward, and notes and tasks stay attached to the work they belong to—without copying data into another tool.

Designed for teams and individuals who manage sales, partnerships, or customer relationships primarily over email and want a clear, up-to-date view of their work.

26ChatGPT Tools
Rewardly, Inc.Developer

Available Tools

Add Call Log

add_call_log
Full Description

Add a call log entry to a box with notes and duration. Use this when: logging a phone call or recording call notes. Do not use for: viewing call history.

Parameters (2 required, 2 optional)
Required
boxKeystring

The key of the box to add call log to

notesstring

Call log notes/description

Optional
durationinteger

Call duration in seconds (optional)

timestampstring

Call start timestamp (ISO-8601 datetime in UTC, e.g., '2025-01-15T10:30:00Z') (optional; defaults to the current time)

Add Call Log or Meeting Notes

add_call_log_or_meeting_notes
Full Description

Create a call log or meeting notes entry on a Streak box. Use this when: logging a phone call, recording a meeting, or adding meeting notes to a box in a pipeline. Set meetingType to CALL_LOG for calls or MEETING_NOTES for meetings. Both support notes, duration, and a start timestamp. If the user names a box or pipeline, find the box first and pass its boxKey. This creates an activity entry; it does not change the box's Notes field or schedule a calendar event. Do not use for: viewing call or meeting history.

Parameters (2 required, 3 optional)
Required
boxKeystring

The key of the box to add the call log or meeting notes to

notesstring

Notes or description of the call or meeting

Optional
durationinteger

Call or meeting duration in seconds (optional; defaults to 0)

meetingTypestring

Type of entry: CALL_LOG for phone calls, MEETING_NOTES for meetings or meeting notes. Defaults to CALL_LOG; set MEETING_NOTES when the user asks to create meeting notes.

Options:CALL_LOGMEETING_NOTES
timestampstring

Call or meeting start timestamp (ISO-8601 datetime in UTC, e.g., '2025-01-15T10:30:00Z') (optional; defaults to the current time)

Add Thread To Box

add_thread_to_box
Full Description

Add a Gmail thread to a box.

PREREQUISITE: You need a box key and a Gmail thread id. Use search, filter_boxes, get_recent_boxes, or get_box to find a box key first.

Use this when: associating an existing Gmail conversation with a specific Streak box.

Parameters (2 required, 1 optional)
Required
boxKeystring

Box key to add the Gmail thread to

gmailThreadIdstring

Gmail thread id to add to the box. Must be the hex Gmail thread id.

Optional
trimmedGmailThreadIdstring

Assign Box

assign_box
Full Description

Assign a box to users by email address, or unassign all users by passing an empty string. Use this when: assigning, reassigning, or unassigning a box. Do not use for: viewing box details (use get_box).

Parameters (2 required)
Required
assignedTostring

Email address(es) to assign (comma or space-separated), or empty string to unassign all

boxKeystring

The key of the box to assign

Create Box

create_box
Full Description

Create a new box in a pipeline with optional stage and assignment.

Use this when: creating a new deal, lead, case, project, ticket, or other pipeline row in Streak.

PREREQUISITE: Use list_pipelines to discover pipeline keys. If setting a stage or assigning teammates, call get_pipeline first to discover stage keys and users with access.

The box name and pipeline key are required. The stage defaults to the first stage in the pipeline. Use stage keys, not stage names. The assignee defaults to the current user. Use comma separated email addresses for multiple assignees.

Do not use for: updating existing boxes (use update_box_stage or assign_box) or searching boxes (use search or filter_boxes).

Parameters (2 required, 2 optional)
Required
namestring

Box name

pipelineKeystring

Pipeline key where the box should be created

Optional
assignedTostring

Email address(es) to assign comma separated (optional; defaults to the current user)

stageKeystring

Stage key for the new box (optional; defaults to the first stage in the pipeline)

Create Comment

create_comment
Full Description

Create a new top-level comment on a box. Supports @mentions for users who already have access to the box.

PREREQUISITE: You need a box key. Use search, filter_boxes, get_recent_boxes, or get_box to find one first.

To mention someone, include @name, @email, or @email-local-part in the message.

Do not use for: replying to an existing comment. Replies are not supported by this tool because the current MCP surface does not provide a way to select an existing comment as a reply target.

Parameters (2 required)
Required
boxKeystring

The key of the box to add a top-level comment to

messagestring

Comment message. To mention users who have access to the box, include @name, @email, or @email-local-part in the message.

Create Contact

create_contact
Full Description

Create a team contact and link it to a box, or update/return the matching existing contact when one already matches by email or name.

Use this when: adding a person to a specific Streak box.

Provide boxKey and at least one of givenName, familyName, or emailAddresses for the contact.

Set include_all_emails to true to automatically pull in on all the emails with this contact into the box.

Parameters (1 required, 7 optional)
Required
boxKeystring

Box key. The contact is created in the team that owns this box and then linked to the box.

Optional
emailAddressesarray

Email addresses for the contact

familyNamestring

Contact family/last name

givenNamestring

Contact given/first name

include_all_emailsboolean

Whether all team emails with this contact should be included in the box. Optional, worth asking the user their preference.

notesstring

Freeform notes for the contact

phoneNumbersarray

Phone numbers for the contact

titlestring

Contact title or role

Create Organization

create_organization
Full Description

Create a team organization and link it to a box, or return the matching existing organization when getIfExisting is true and a domain already exists.

Use this when: adding a company/account to a specific Streak box.

The box determines which team owns the organization. Provide boxKey and at least one of name or domains.

Set include_all_emails to true to include all team emails with that organization in the box.

Parameters (1 required, 7 optional)
Required
boxKeystring

Box key. The organization is created in the team that owns this box and then linked to the box.

Optional
domainsarray

Organization domains, such as example.com

getIfExistingboolean

Return an existing matching organization by domain instead of creating a duplicate

include_all_emailsboolean

Whether all team emails with this organization should be included in the box. Omit to preserve an existing link setting.

industrystring

Organization industry

namestring

Organization name

notesstring

Freeform notes or other identifying text for the organization

phoneNumbersarray

Phone numbers for the organization

Create Task

create_task
Full Description

Create a new task in a box with optional due date and assignment. Useful for setting reminders and tracking follow-ups. Use this when: adding a task, setting a reminder, or tracking something to do for a box. Do not use for: viewing existing tasks.

Parameters (2 required, 2 optional)
Required
boxKeystring

The key of the box to add task to

textstring

Task text/description

Optional
assignedTostring

Email address(es) to assign (comma or space-separated) (optional)

dueDatestring

Due date (ISO-8601 datetime in UTC, e.g., '2025-01-15T10:30:00Z') (optional)

Send Feedback

feedback
Full Description

Send feedback to Streak when you wanted to do something through the Streak MCP or API, but no available tool supports it.

Use this whenever a Streak MCP/API capability is missing. Provide the desired tool or capability and the high-level user goal. This feedback is very valuable because it helps Streak add the right MCP tools soon.

Do not include sensitive or personal information, customer data, email addresses, names, message contents, or Streak record keys. Summarize the missing capability instead.

Parameters (2 required)
Required
desiredToolstring

The Streak MCP/API tool or capability you wished existed. Do not include sensitive or personal information, customer data, email addresses, names, message contents, or Streak record keys.

userGoalstring

The high-level user goal you were trying to accomplish. Do not include sensitive or personal information, customer data, email addresses, names, message contents, or Streak record keys.

Fetch Streak Data

fetch
Full Description

Get complete details for an item found via search. Required for Deep Research mode. Takes a search result ID returned by search and returns full content. Use this when: you performed a search and need detailed information. To get boxes from a saved view result, use get_saved_view_boxes. Do not use for: direct lookups by key (use get_box, get_contact, or get_pipeline).

Parameters (1 required)
Required
idstring

Content ID from search results, such as a box, contact, organization, pipeline, or saved view key. This is also called a key in other tools.

Filter Boxes

filter_boxes
Full Description

Filter boxes in a pipeline with structured filters and sorting.

PREREQUISITE: Call get_pipeline first to discover stage keys, field names, dropdown/tag options, and users.

IMPORTANT: Most queries need 2+ filters. Identify ALL criteria in the query. Example: "my active deals" needs: [{ field: "assignedTo", operator: "equals", value: "me" }, { field: "stageKey", operator: "equals", value: "Active" }] Example: "boxes in Scheduled stage for Cooldown sprint" needs: stageKey filter + Sprint filter

SYSTEM FIELDS (primary filters - check these first): stageKey (workflow stage), assignedTo (owner), createdBy, creationTimestamp, lastUpdatedTimestamp, lastStageChangeTimestamp, name, notes

OPERATORS BY FIELD TYPE:

TEXT (name, notes, custom text fields):

  • 'contains'/'not_contains': substring search
  • 'equals'/'not_equals': exact match
  • 'is_set'/'is_not_set': check if has value

Example: { field: "name", operator: "contains", value: "Acme" }

DATE (creationTimestamp, lastUpdatedTimestamp, custom date fields):

  • 'greater_than'/'less_than': compare dates (ISO-8601 UTC)
  • 'equals': exact date match
  • 'is_set'/'is_not_set': check if date is set

Example: { field: "creationTimestamp", operator: "greater_than", value: "2025-01-15T10:30:00Z" }

NUMBER (taskTotal, totalNumberOfEmails):

  • 'greater_than'/'less_than': numeric comparison
  • 'equals'/'not_equals': exact value

Example: { field: "taskTotal", operator: "greater_than", value: "5" }

DROPDOWN (stageKey, custom dropdown fields):

  • 'equals'/'not_equals': match by name or key
  • 'is_set'/'is_not_set': check if selected

Example: { field: "stageKey", operator: "equals", value: "5001" }

TAG (custom tag fields):

  • 'includes': has ANY of specified tags (use 'values', not 'value')
  • 'excludes': has NONE of specified tags
  • 'is_set'/'is_not_set': check if any tags

Example: { field: "Tags", operator: "includes", values: ["9001", "9002"] }

USER (assignedTo, createdBy, followers, taskAssignees, incompleteTaskAssignees, overdueTaskAssignees, custom person fields):

  • 'includes': specific user(s) by email (use 'values')
  • 'excludes': exclude specific user(s)
  • 'contains': partial name/email text search (use 'value')
  • 'equals': single user match or "me" for current user
  • 'is_set'/'is_not_set': check if assigned

Example (by email): { field: "assignedTo", operator: "includes", values: ["user@example.com"] } Example (custom person): { field: "Account Manager", operator: "includes", values: ["manager@example.com"] }

CHECKBOX (custom checkbox fields):

  • 'is_set': checkbox is checked (true)
  • 'is_not_set': checkbox is unchecked (false)

Example: { field: "Approved", operator: "is_set" }

SORTING: sorts: [{ field: "lastUpdatedTimestamp", direction: "desc" }]

All filters combined with AND. Do not use for: an existing saved view (use get_saved_view_boxes), keyword search (use search), or a single box lookup (use get_box).

Parameters (1 required, 4 optional)
Required
pipelineKeystring

Pipeline key

Optional
cursorstring

Cursor for pagination (omit for first page)

filtersarray

List of filters to apply (all combined with AND)

limitinteger

Number of boxes to return (1-100). Use 10-20 for most queries; high limits can overwhelm context. Use cursor for large datasets.

sortsarray

List of fields to sort by (in priority order)

Get Box

get_box
Full Description

Get detailed information about a box by its key.

Use this when: you have a box key and need detailed information such as custom field values, notes, magic columns, or linked contacts/organizations.

Do not use for: searching boxes (use search or filter_boxes).

Parameters (1 required)
Required
boxKeystring

The key of the box to retrieve

Get Box Summary

get_box_summary
Full Description

Return the latest stored AI summary for a box by its key.

Use this when: the user asks for the existing full AI summary, next steps, or concise digest of a specific box.

This does not generate a new summary or consume AI summary credits. To create or refresh a summary, use regenerate_box_summary.

Parameters (1 required)
Required
boxKeystring

The key of the box to summarize

Get Box Tasks

get_box_tasks
Full Description

Get all tasks on a specific box by box key. Returned taskKey values can be passed to update_task.

Use this when: the user asks for tasks/reminders/followups on a specific box, or you need a task key before updating a task in a known box.

PREREQUISITE: Use a box key returned by search, filter_boxes, get_recent_boxes, create_box, get_box, or fetch.

Do not use for: creating tasks (use create_task), updating tasks (use update_task), or listing upcoming tasks across boxes (use get_upcoming_tasks).

Parameters (1 required)
Required
boxKeystring

The key of the box whose tasks should be returned

Get Contact

get_contact
Full Description

Get detailed information about a contact by its key. Use this when: you have a specific contact key. Do not use for: searching contacts (use search).

Parameters (1 required)
Required
contactKeystring

The key of the contact to retrieve

Get authenticated user details

get_current_user
Full Description

Get information about the authenticated user including name, email, time zone, and current date/time. Use this when: personalizing responses or needing user context. Do not use for: finding other users.

Get Pipeline

get_pipeline
Full Description

Use this when you need detailed information about a specific pipeline, including its stages, custom fields/columns, saved views, and users with access. Saved view keys can be passed to get_saved_view_boxes. Do not use for: listing all pipelines (use list_pipelines) or searching by name (use search).

Parameters (1 required)
Required
pipelineKeystring

The key of the pipeline to retrieve

Get Recent Boxes

get_recent_boxes
Full Description

PRIORITY TOOL: Check this first when users mention boxes without specific criteria. Get boxes recently viewed by the current user.

Use this when: user asks about recent boxes, 'what was I working on', or refers to a box without specifying its name.

Missing (call get_box for): custom field values, notes, email/task counts, linked contacts/organizations.

Do not use for: searching by name (use search) or filtering by criteria (use filter_boxes).

Parameters (0 required, 2 optional)
Optional
limitinteger

Number of boxes to return (1-20)

sortBystring

Sort criteria (only 'viewed' is supported)

Get Saved View Boxes

get_saved_view_boxes
Full Description

Get boxes from an existing saved view using its saved view key. Applies the saved view's persisted filters, sorts, and grouping.

PREREQUISITE: Use get_pipeline or search to find a saved view key.

Use this when: the user asks for boxes in a named saved view or provides a saved view key.

Do not use for: ad hoc filtering criteria (use filter_boxes) or a single box lookup (use get_box).

Parameters (1 required, 2 optional)
Required
savedViewKeystring

Saved view key returned by get_pipeline, search, or fetch

Optional
cursorstring

Cursor for pagination (omit for first page)

limitinteger

Number of boxes to return (1-100). Use cursor to fetch additional pages.

Get Upcoming Tasks

get_upcoming_tasks
Full Description

Gets upcoming and overdue tasks assigned to the current user, including overdue tasks and tasks without a due date. Returns up to 50 tasks, with undated tasks first and dated tasks ordered by due date, oldest first. Optionally limit results to a single pipeline.

Use this when: the user asks what tasks are coming up, what reminders they have, or what they need to work on next.

Do not use for: creating tasks (use create_task) or looking up all tasks on a specific box (use get_box_tasks).

Parameters (0 required, 1 optional)
Optional
pipelineKeystring

Optional pipeline key to limit tasks to a single pipeline

List Pipelines

list_pipelines
Full Description

List all pipelines the current user has access to.

Use this when: discovering available pipelines or when the user asks to see their pipelines/CRMs.

IMPORTANT: This returns stage/field COUNTS only, NOT actual names/keys. If you need stage keys, field names, or user list, you must call get_pipeline first.

Do not use for: getting pipeline details (use get_pipeline) or finding boxes (use filter_boxes).

Regenerate Box Summary

regenerate_box_summary
Full Description

Generate and return a fresh AI summary for a box by its key.

Use this when: the user explicitly asks to generate, regenerate, refresh, or update a box summary.

This persists the new summary to the box and consumes AI summary credits. To read the existing full summary without generating a new one, use get_box_summary. For existing generated short summaries, use get_box, fetch, filter_boxes, or get_recent_boxes.

Parameters (1 required)
Required
boxKeystring

The key of the box to summarize

Search Streak Data

search
Full Description

Search across Streak boxes, contacts, organizations, pipelines and saved views by keyword. Use this when: finding items by name or text content. Do not use for: filtering by criteria (use filter_boxes) or getting recent boxes (use get_recent_boxes).

Parameters (1 required)
Required
querystring

Search query to find boxes, contacts, organizations, pipelines and saved views

Update Box

update_box
Full Description

Update a box's name, notes, stage, assignees, and/or custom field values in a single call.

Use this when: editing a box's title, changing its notes, moving it to a different stage, assigning or reassigning users, or setting custom field values such as a dropdown, tag, checkbox, date, text, or contact/organization field.

PREREQUISITE: Call get_pipeline to discover stage keys, custom field keys and types, dropdown/tag option keys (use the 'key' property), and users with access for assignment. Stage and dropdown/tag values may be passed as the key or the display name.

Provide at least one of name, notes, stageKey, assignedTo, or fields. Pass an empty string for notes to clear them, or for assignedTo to unassign all users.

For dropdown/tag fields, prefer an existing option key or name from get_pipeline. Passing an unknown value silently creates a new option on the pipeline field, so avoid typos and casing variants. When that happens the returned field value is a new option key you have not seen — re-fetch get_pipeline to refresh your cached option list and tell the user a new option was created.

Do not use for: creating boxes (use create_box) or reading box details (use get_box). For a single focused change, assign_box and update_box_stage are alternatives.

Parameters (1 required, 5 optional)
Required
boxKeystring

The key of the box to update

Optional
assignedTostring

Email address(es) to assign (comma or space-separated); pass an empty string to unassign all users (optional; omit to leave unchanged)

fieldsobject

Custom field updates as fieldKey -> value. Call get_pipeline for field keys, types, and dropdown/tag option keys. Dropdown/tag accept the option key or display name (tags comma-separated for multiple); dates are ISO-8601 (e.g. 2025-01-15T10:30:00Z); checkboxes are true/false. Contact/organization fields accept one or more contact:<id> / org:<id> keys (comma-separated for multiple) from get_box/get_contact/create_contact/create_organization/search; the supplied list fully replaces the field's current value, and each contact/org must belong to the pipeline's team. Pass an empty string to clear a field. Omit to leave fields unchanged. For dropdown/tag fields, prefer an existing option key or name from get_pipeline. An unknown name silently creates a new option on the field (avoid typos and casing variants). When that happens the returned field value is a new option key you have not seen — re-fetch get_pipeline to refresh your option list, and tell the user a new option was created.

namestring

New box name (optional; omit to leave unchanged)

notesstring

New notes (optional; omit to leave unchanged; pass an empty string to clear notes)

stageKeystring

New stage — key or stage name. Call get_pipeline for stage keys (optional; omit to leave unchanged)

Update Box Stage

update_box_stage
Full Description

Move a box to a different stage in its pipeline. PREREQUISITE: Call get_pipeline first to discover available stage keys (use 'key' property, not 'name'). Use this when: updating deal status, moving to next stage, or changing workflow state. Do not use for: getting box details (use get_box) or other box modifications.

Parameters (2 required)
Required
boxKeystring

The key of the box to update

stageKeystring

The key of the new stage

Update Task

update_task
Full Description

Update a task's text, due date, completion status, and/or assignees in a single call.

Use this when: editing a task/reminder/followup, marking a task done or not done, changing its due date, clearing its due date, assigning it to users, or unassigning all users.

PREREQUISITE: Use task keys returned by create_task, get_upcoming_tasks, or get_box_tasks. Assigned users must be provided as email addresses with access to the task's pipeline.

Provide at least one of text, dueDate, status, or assignedTo. Pass an empty string for dueDate to clear it, or for assignedTo to unassign all users.

Do not use for: creating tasks (use create_task) or reading upcoming tasks (use get_upcoming_tasks).

Parameters (1 required, 4 optional)
Required
taskKeystring

The key of the task to update

Optional
assignedTostring

Email address(es) to assign (comma or space-separated); pass an empty string to unassign all users (optional; omit to leave unchanged)

dueDatestring

New due date (ISO-8601 datetime in UTC, e.g., '2025-01-15T10:30:00Z'); pass an empty string to clear due date (optional; omit to leave unchanged)

statusstring

Completion status. Use DONE to mark complete or NOT_DONE to mark incomplete (optional; omit to leave unchanged)

Options:NOT_DONEDONE
textstring

New task text/description (optional; omit to leave unchanged)