How to add Zoom recording info to a Guru card automatically with Zapier

  • 28 January 2022
  • 1 reply

Userlevel 1

We do a biweekly demo days meeting where our engineering team shows off what they have been working on. You might do something similar at your company.

The engineering manager in charge of the meeting keeps all the Zoom recordings on one Guru card so that anyone who missed a meeting, or wants to review a previous one, can see them together.

Over time, this manager found that he didn’t enjoy being nudged by coworkers when he forgot to upload the recording link right away, and he asked for my help. So I made this Zap! Hope it helps you, too.

Guru does have a connector for Zapier, but it can’t update an existing card. You need to get a little fancy with Guru’s API for that. That’s why I’m making this post instead of a Zap template.

You’ll need:

  • A Guru API user token (if you’re not a Guru admin, your manager can request one)
  • The ID of the card you want to update (which you can find with a different API call)
  • A Zapier connection to Gmail
  • To be the person who receives the recording from Zoom notifying you of the recording once the meeting ends
  • Not to be afraid of a little Python, JSON, and HTML

Ready? Let’s go!

Start out by selecting "New Email Matching Search in Gmail" as your trigger


Make the search string the subject of the email you get from Zoom when the recording is available.


Next, we're going to reformat the date of the email to go into the Guru card. Select "Date / Time" as the first action.



Select the input as the date of the email, and change it to the format you want to show up in the card.



Next, we're going to select Code by Zapier and Run Python as the next action.



In order for our code to run, we need to get the email's body and the date as we set in the formatter as our input data. Input this exactly as it is shown in the below screenshot or else it won't work.


Put this into the code block:

import requests

user = ""

token = ""

card_id = ""

email_list = input_data["email"].splitlines()

rec_url = email_list[16]

rec_pw = email_list[18]

rec_date = input_data["date"]

url = "" + card_id + "/extended"

patch_url = ""+ card_id + "?keepVerificationState=true"

headers = {"Accept": "application/json"}

response = requests.request("GET", url, headers=headers, auth=(user,token))

request_json = response.json()['content']

new_content = "<p class='ghq-card-content__paragraph' data-ghq-card-content-type='paragraph'>" + rec_date + "<br>Recording URL: <a href=" + rec_url + " class='ghq-card-content__link' data-ghq-card-content-type='LINK'>Recording</a><br>" + rec_pw + "</p><br>" + request_json

payload = {"content" : new_content}

new_response = requests.request("PATCH", patch_url, json=payload, headers=headers, auth=(user,token))



What I’ve done here is:

  • Split the email you received into a list, where each line is a different part of that list
  • Grabbed the parts of that list that were the recording link and the email
  • Used a little HTML to format them in a Guru-friendly way.

You’ll need to add in:

  • Your username (likely your email address)
  • Your API token
  • The ID of the card you want to update

You can also modify this if:

  • The email you get from Zoom is formatted differently for some reason
  • Your recordings are not password-protected
  • You’d prefer a different format

If you do try this, or think of another way that you can add recordings to Guru cards, let me know in the comments! 

This post has been closed for comments. Please create a new post if you need help or have a question about this topic.

1 reply

Userlevel 7
Badge +11

This is awesome, @yaelmccue! Thanks so much for sharing this with the Community! :)