Skip to content

CRM · Beta

Streak
API integration

Ship CRM features without building the integration. Full Streak API access via Proxy, normalized data through Unified APIs, and 20+ MCP-ready tools for AI agents — all extensible to your exact use case.

Built for specific customer use cases. Issues are resolved quickly.

Talk to us
Streak

Use Cases

Why integrate with Streak

Common scenarios for SaaS companies building Streak integrations for their customers.

01

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.

02

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.

03

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.

04

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.

05

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

Ship these features with Truto + Streak

Concrete product features your team can ship faster by leveraging Truto’s Streak integration instead of building from scratch.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

SuperAI

Streak AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

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.

Why Truto

Why use Truto’s MCP server for Streak

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 650+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

Unified APIs

Unified APIs for Streak

Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.

Unified User Directory API

Groups

Groups are a collection of users in the source application. In some applications, they might also be called Teams.

View Docs

Roles

The Role object represents a role of a User.

View Docs

Users

The User object represents a User.

View Docs

How It Works

From zero to integrated

Go live with Streak in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Streak account

Use Truto’s frontend SDK to connect your customer’s Streak account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Streak

Truto’s Proxy API is a 1-to-1 mapping of the Streak API. You call us, we call Streak, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Streak’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Streak on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

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?

undefined

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.

Streak

Get Streak integrated into your app

Our team understands what it takes to make a Streak integration successful. A short, crisp 30 minute call with folks who understand the problem.

Talk to us