All Articles
Reintroducing Streak and Zapier Part 2: Examples

Reintroducing Streak and Zapier Part 2: Examples

min read

Let’s get our hands dirty and practice building with Zapier + Streak! If needed, an introduction can be found here. In this post, we’ll walk through building 4 example uses for Zapier in Very! Specific! Detail! If the integration or automation you’re looking for isn’t already available here, by the end of this post you’ll be an expert at creating your own!


Example 1: Streak Stage change creates a Streak task(s). Practice using a filter to specify which stage creates the task(s).

Example 2: New Gmail thread creates a new Streak box. Used at Streak HQ to power our support queue! Practice using a filter so that only received threads create a box.

Example 3: Update an existing Streak box from a Google Sheet update. Used at by our Customer Success team to update Streak usage statistics! Practice using search to find and then update a matching box.

Example 4: Completed Streak tasks are posted to a Slack channel. Practice using an advanced search sequence.

Bonus Example! Advanced search option: If a box is not found, create a new box — if a box is found, update the existing box.


For any and all Zaps, you’ll need to begin by finding your Streak API key (a way for us to connect you to other services securely):

Example 1: Streak Stage Change Creates a New Streak Task

In this example, we’ll walk through creating a zap with both a Streak trigger and a Streak action. We’ll also practice using a filter so that we can specify which stage creates the new task(s).

The first choice we need to make is easy! We want to use Streak:

We want this Zap to trigger when a box changes Stage:

Pro tip: Use ‘show less common’ to see all possible triggers:

Once a trigger is selected, we’ll make use of the API key we found at the top of this blog:

Your API Key will allow you to connect to any pipeline your email address can access. For this example, we’ll use our Sales CRM pipeline:

… and we’ve now reached a critical junction. If we wanted this Zap to run when ANY stage change happened, we’d immediately proceed to adding an action. However, because we only want to trigger on a specific stage, our 2nd step is to add a filter:

The Zap will now only trigger if the box changes stage to “Demo”. Always complete all test steps in Zapier! (Spoiler: Our filter works)

Let’s move on to the Action and tell Streak to create a task when a box moves to the “Demo” stage. Note that we’ve entered the text ‘task’ so that Zapier shows only task related actions:

We entered our API key in the first step so we can now select a linked account:

Pro tip: Box key! Our final set-up piece is configuring how the task itself will be created. The very first field, ‘Box Name or Key’ (screenshot below) is very important. When we specify “Box Key” from Step 1, we’re telling Streak to grab the unique ID of the box from Step 1 and then create the task inside that exact box. Box Key is the most precise (best) way to indicate to the system where to create the task (or any other action).

The remaining fields will be familiar to anyone who has made a Streak task:

Pro tip: Setting a due date? Zapier understands plain English like “+7 days”. Full date and time documentation here.

… save (test) and we’re ready to turn the Zap on! Now, any box that changes to “Demo” will have a task added:

(Using Multi step zaps, we could continue building additional actions into this Zap and create a second task or push an announcement to Slack… and more!)

Example 2: New Gmail Thread (received) Creates a New Streak Box

Used at Streak HQ to power our Support queue! The trigger for this Zap is a new Gmail thread. In this example, we’ll practice a different filter setup in the second step.

First, note there are two similar Gmail Triggers, “New Thread” and “New Email.” In the support use case, 1 thread represents 1 ticket. Although a new ticket deserves a new box. a reply within that thread does not. For our use case, that means we want build our Zap using the “New Thread” trigger:

If we were to create a new Gmail Thread to send an internal message about a feature request (we use Streak for everything!) we wouldn’t want the thread we start to create a Support box. The filter below prevents our own Threads from creating boxes:

This ensures we’re only creating Support boxes when someone outside of Streak writes us a message. (Always remember to test!)

We’ll then begin building our action of creating a new box:

For the name of the box we’re creating, we can reference the subject of the email (or other Gmail data, like sender’s email address) from Step 1:

Pro tip: So far,we’ve only created the box. In order to make sure the thread is added to the box, use the “Thread ID” from Step 1, as shown here:

Because Zapier is creating Support boxes even if we’re sleeping, our data about how long a Support box is in the ‘incoming’ stage (for example) is always accurate.

… let’s move on to using Search with example 3!

Example 3: Update Existing Streak Boxes from Google Sheet Updates

Used at Streak HQ to push usage and payment data to Streak for our Customer Success team. Zapier allows us to pull data from our internal database into Google Sheets and then update Streak — all without using engineering resources.

We’ll start with our Google Sheets trigger, Updated Spreadsheet Row:

We’ll then need to either select an existing Google Sheets account or Connect a new one. In this case, we’re going to use Andrew’s Google Sheets account:

Although we can optionally set the trigger to run only if a specific field is updated, for this example we’ll opt to have any field update trigger the zap:

(… always test! Our test was successful).

Pro tip: Time to have flex our Zapier muscle and have some automation fun! In this next step, we’re going to use “Box Search” to look for an existing Streak box:

… select which Streak account to use:

We now offer powerful search and update via Zapier. In the example below, I’m searching in the “Accounts” pipeline to match a field from Google Sheets (‘admin’ as shown) in order to find my existing box:

We’ve searched for the box, but now we need to update it. The update is done as a 3rd step in our automation using the ‘Edit Box’ action:

Pro tip: Search will always be a separate step from edit (or other actions we might want to take after finding a matching box).

Pro tip: When we’re setting the edit action, the most accurate way to tell Zapier which box to edit is to the unique ‘box key’ of the box we located before. This is shown below with: “Step 2 Box Key”:

We’re updating payment information, so we’ll input the Monthly Recurring Revenue (MRR) from Google Sheets into the ‘MRR’ field in our pipeline:

If an existing row receives updated data, or an entirely new row is added to Google Sheets, our boxes will receive the updates!

Example 4: Completed Tasks are Posted to a Slack Channel

Keep your whole team in the loop as you work through your tasks! We’ve got the perfect Streak trigger built in:

And then we’ll select a pipeline to monitor for new comments:

Before we can start working with Slack, we’re going to use an advanced Search function. In the previous search example, we used a field from Google Sheets to look for matching Streak boxes. In this example, we’re going use Search to find the Box Key (unique ID) of the box from Step 1.

Using this advanced search feature will allow us to use all possible Streak details when we’re working with Slack:

For this kind of search, always use the ‘box key’ as shown below:

Almost there! Your advanced search work is about to pay off. For our example, we’ll have Slack send a channel message instead of a direct message:

Time to put everything together! Our Slack message is going to use the results of our both of our search steps. Because of our work with search in Step 2, we can input the name of the box, shown below as ‘Step 2 Name’ — and then input the task details, shown below as ‘Step 1 Assigned To’ and ‘Step 1 Text’:

Pro Tip: To insert the name of the box in Slack (and similar services), you’ll always want to use the additional ‘Get box by key’ search.

Bonus Example: a Note on Advanced Search Options

In this final example, we’ll use the “Create Streak Box if it doesn’t exist yet?” option:

Pro tip: To use the “create if it doesn’t exist” option, searching using the Box Name only.

What other examples should we support with detailed examples? Write us!

We're hiring

Come build something great with us.