---
title: Streak API Integration on Truto
slug: streak
category: CRM
canonical: "https://truto.one/integrations/detail/streak/"
---

# Streak API Integration on Truto



**Category:** CRM  
**Status:** Beta

## Unified APIs

### Unified User Directory API

- **Groups** — Groups are a collection of users in the source application. In some applications, they might also be called Teams.
- **Roles** — The Role object represents a role of a User.
- **Users** — The User object represents a User.

## MCP-ready AI tools

Truto exposes 24 tools for Streak that AI agents can call directly.

- **list_all_streak_me** — Get the current user in Streak. Returns email, lowercaseEmail, lastSeenTimestamp, isOauthComplete, and displayName fields that describe the authenticated user's account details.
- **list_all_streak_teams** — List teams the current user belongs to in Streak. Returns fields such as name, creationDate, members (with role, email, fullName, and image), sharingRestrictedToTeam, and key.
- **get_single_streak_team_by_id** — Get a specific team in Streak by id. Requires id. Returns fields such as creationDate, creator, members (with role, displayName, email), name, and sharingRestrictedToTeam.
- **list_all_streak_pipelines** — List all pipelines in Streak. Returns an array of pipeline objects including key fields such as creatorKey, name, fields (schema for boxes), stages (stages of process), stageOrder (stage display order), aclEntries (access control list), owner, and timestamps.
- **get_single_streak_pipeline_by_id** — Get a specific pipeline in Streak using id. Returns fields such as creatorKey, name, teamWide, fields, stages, stageOrder, creationTimestamp, lastUpdatedTimestamp, aclEntries, and owner.
- **create_a_streak_pipeline** — Create a pipeline in Streak. Requires name and teamKey. Returns pipelineKey, name, teamWide, fields, stages, stageOrder, creationTimestamp, lastUpdatedTimestamp, owner, and aclEntries.
- **update_a_streak_pipeline_by_id** — Update a pipeline in Streak. Requires id. Returns fields such as creatorKey, name, description, orgWide, stageOrder, creationTimestamp, lastUpdatedTimestamp, aclEntries, owner, and pipelineKey.
- **delete_a_streak_pipeline_by_id** — Delete a pipeline in Streak. Requires id. You can only delete pipelines that are empty and have no boxes in them. Returns a success boolean indicating whether the deletion succeeded.
- **list_all_streak_stages** — List all stages in a pipeline in Streak. Requires pipeline_key. Returns stage objects with fields name (the stage name) and key (the unique stage identifier).
- **get_single_streak_stage_by_id** — Get a specific stage in Streak using pipeline_key and id. Returns the stage name and key fields.
- **create_a_streak_stage** — Create a new stage in a specific pipeline in Streak. Requires pipeline_key and stage name. Returns the created stage’s name and key in the response.
- **update_a_streak_stage_by_id** — Update a stage in Streak using pipeline_key and id. Returns name (the updated stage name) and key (the stage identifier) in the response.
- **delete_a_streak_stage_by_id** — Delete a specific stage in Streak using pipeline_key and id. The operation succeeds only if no boxes are tagged with this stage. Returns success status in the response.
- **list_all_streak_box_tasks** — Get all tasks in a specific box in Streak. Requires box_key. Returns fields including text (task text), status (DONE or NOT_DONE), assignedToSharingEntries (assignees), and dueDate (optional reminder date).
- **get_single_streak_box_task_by_id** — Get a specific box-task in Streak using id. Returns fields like boxKey, pipelineKey, creatorKey, creationDate, text, status, and assignedToSharingEntries for the requested task.
- **create_a_streak_box_task** — Create a task in Streak for a specific box identified by box_key. Returns task details including boxKey, pipelineKey, text, status (automatically set to NOT_DONE), assignedToSharingEntries, and timestamps.
- **update_a_streak_box_task_by_id** — Update a specific task in Streak using id. Returns key fields such as boxKey, pipelineKey, text, status, assignedToSharingEntries, and lastSavedTimestamp in the response.
- **delete_a_streak_box_task_by_id** — Delete a specific task in Streak. Requires id. Returns a 'success' field indicating whether the deletion was successful.
- **list_all_streak_boxes** — List all boxes in a specific pipeline in Streak. Requires pipeline_key. Returns box details such as name, notes, stageKey, creationTimestamp, lastUpdatedTimestamp, followerCount, and key for each box.
- **get_single_streak_box_by_id** — Get a specific box in Streak using id (boxKey). Returns details including pipelineKey, creatorKey, creationTimestamp, lastUpdatedTimestamp, name, stageKey, followerCount, commentCount, and related metadata.
- **create_a_streak_box** — Create a box in Streak using the provided pipeline_key. Returns box details including key, name, stageKey, creatorKey, creationTimestamp, and followerCount.
- **update_a_streak_box_by_id** — Update a box in Streak using id. Returns key fields including pipelineKey, creatorKey, creationTimestamp, lastUpdatedTimestamp, name, stageKey, followerKeys, followerCount, commentCount, taskTotal, gmailThreadCount, fileCount, boxKey, and key.
- **delete_a_streak_box_by_id** — Delete a specific box in Streak using id. This also deletes related files, emails, and tasks. Returns success field indicating if deletion was successful.
- **get_single_streak_user_by_id** — Get public details about a specific user in Streak identified by id. Returns email, lowercaseEmail, displayName, creationTimestamp, lastUpdatedTimestamp, lastSeenTimestamp, isOauthComplete, userKey, and key.

## How it works

1. **Link your customer's Streak account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Streak.** The Proxy API is a 1-to-1 mapping of the Streak API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Automatically create Streak deals from form submissions or bookings** — Form builders and scheduling tools can push new leads directly into a user's Streak pipeline as Boxes, eliminating manual data entry and ensuring every prospect is tracked inside Gmail from the moment they engage.
- **Move deals through pipeline stages based on external events** — E-signature, proposal, or demo platforms can update a Streak Box's stage when a prospect takes a high-intent action — like signing a contract or completing a product tour — keeping the rep's Gmail pipeline perfectly in sync without any manual intervention.
- **Generate follow-up tasks in Gmail from engagement signals** — Video platforms, content analytics tools, or intent-data providers can create prioritized Box Tasks inside Streak when a prospect hits an engagement threshold, ensuring reps act on the hottest signals without leaving their inbox.
- **Sync assessment or support outcomes back into a lightweight ATS or CRM** — Technical assessment platforms and helpdesk tools can write scores, ticket statuses, and results into Streak Box notes and stage updates, giving recruiters or account managers a single-pane-of-glass view inside Gmail.
- **Route leads to the right team member automatically** — Lead capture and distribution tools can fetch Streak teams and users to implement round-robin or rule-based assignment when creating Boxes, so every new opportunity lands with the right rep instantly.

## What you can build

- **Pipeline & stage mapping UI** — Let your end users select which Streak pipeline and stage incoming records should land in by fetching their pipelines and stages via list_all_streak_pipelines and list_all_streak_stages.
- **Automated Box creation from external triggers** — Create Streak Boxes with prospect details, notes, and assigned stages whenever a form is submitted, a meeting is booked, or a lead qualifies in your platform.
- **Event-driven stage progression** — Automatically move a Streak Box to a new stage when an external event fires — such as a document being signed, a demo completed, or a payment received — using update_a_streak_box_by_id.
- **Inbox task generation from intent signals** — Drop prioritized follow-up tasks into a rep's Streak workflow by calling create_a_streak_box_task when your platform detects high-intent behavior like a pricing page visit or a full video watch.
- **Team-aware lead routing** — Fetch Streak teams and individual users to assign new Boxes or tasks to the correct rep based on territory, round-robin, or custom routing rules configured in your product.
- **Two-way status sync between your app and Streak** — Keep external statuses (support tickets, project phases, deal stages) in lockstep with Streak by reading and writing Box stage keys and task statuses through Truto's unified layer.

## FAQs

### What authentication method does the Streak integration use?

Streak supports API key-based authentication. Truto handles the credential storage and injection so your app never manages raw keys directly.

### What objects can I read and write through Truto's Streak integration?

You can list, get, create, update, and delete Pipelines, Stages, Boxes, and Box Tasks. You can also list and read Teams, the authenticated user (Me), and individual Users by ID.

### Does Truto handle pagination for Streak API responses?

Yes. Truto abstracts away Streak's pagination logic so you receive complete result sets through a consistent interface without implementing cursor or offset management yourself.

### Can I map to custom pipelines and stages my end users have already created in Streak?



### Is there a Unified API available for Streak?

Yes. Streak is mapped to Truto's Unified User Directory API, which provides standardized access to Groups, Roles, and Users across multiple integrations, so you can write one integration that works across CRMs.

### Can I assign a newly created Box or Task to a specific Streak user?

Yes. You can fetch team members with list_all_streak_teams and resolve individual users via get_single_streak_user_by_id, then pass the appropriate user identifier when creating or updating Boxes and Box Tasks.
