Update Google Sheet with Data when a pulse is made

I’ve only seen a couple of tutorials for this on here. They were all too complicated for our needs.

I need a way to auto-populate a google sheets document with the column data from a pulse when a form is filled out.

All the workarounds are difficult for us to set up and our accounting systems are set up via google sheets and we have no plans to integrate our freelance accountant to Monday.com.

Can we get an easier way to populate a google sheets doc that mirrors a board when a pulse is made? That would make our lives easier. Right now we have to put data into two places and it takes up a lot of time.

Hey @MelissaFox

I feel that you are asking for an integration between monday.com and Google Sheets?

1 Like

Yes! A google sheet that mirrors a board and updates a row with data whenever a new pulse is created would be amazing. We don’t need the google sheet to talk back, just something that automatically updates when something is added.

1 Like

Hey @MelissaFox

Have you tried Zapier for the time being?

https://zapier.com/app-directory/monday/integrations/google-sheets

I have, it doesn’t mirror a board structure and the data comes through with coding in one lump (see below) and in one column. I’ve reached out to them and watched all the tutorials and FAQs on how to set that up and we’ve had no success.

There is no way to have the column data update and mirror.

Which is why I am reaching out here - a plugin directly from Monday that mirrors the column structure and updates the rows with data when a new pulse is created would make our lives easier.

We aren’t developers, we don’t write code. All the work arounds are complicated and one of the main positives of Monday.com is that it’s user friendly for people who aren’t coders and integrating google sheets I am sure would make lots of your users happy.

2 Likes

Sheets would be amazing. It’s been my #1 request for months.

9 Likes

+1

Would love a really simple “mirror” into Google Sheets for selected columns. We’re moving everything into Monday but there are some items where keeping a mirrored version of a board in a sheet is important for other people without giving them access to the board.

3 Likes

Same! This is exactly what we need.

1 Like

For your people requiring limited access to the board (specific columns), you can share the board and restrict their viewing of specific columns. We do this and it works very well.

That doesn’t address our issue. We’d like the ability to have a google sheet that updates automatically and mirrors the data for:

  • system back-up with Monday.com goes down, we need a place that we can access data right away.
  • accounting systems that already sync with google sheets but will not with monday.com
1 Like

This is our issue as well. We are attempting to create a simple end-of-month timetracking export. Monday’s built in timetracking is woefully lacking (and the timetracking spreadsheet export is laughable) so I’m attempting to piece something together by syncing our Monday data to a Google sheet, and then connecting it (by task name) to the timetracking data from a third-party.

But because the Monday>Zapier>Google Sheets integration is so incredibly limited, this doesn’t work.

I’m nearly out-of-my-mind frustrated with this. All I need to do is export timetracking data, by technician and task—with data from several of the boards columns—into a nice clean spreadsheet that can be filtered and manipulated.

THIS SHOULD BE EASY. Instead, it’s IMPOSSIBLE.

1 Like

I am not an expert but I finally found a way that sort of works for us. I was equally getting frustrated that Zapier’s ability to push Monday data efficiently to Sheets was not there. More so the other way around but there was another post here about that and I was able to get Sheets to speak to Monday in a blast vs one column change at a time through Zapier.

The challenge with my solution is that it does not trigger from Monday. I have mine triggering once a day over night. What I have attached is a sample of my code that I have in my script editor in my Google sheets set on a time based trigger. I have three functions.

Function 1 is the API call. This will be the function that reaches out to Monday and gets the information back to sheets.

Function 2 gets all my boards and their ids from my Monday account and puts them into a sheet. It sets up the query details and tells function 1 what the call for then parses the data into the columns in my sheet.

Function 3 is a little more advanced. It gets all items (or pulses) from my Monday account and puts them into a sheet. It sets the query, sends to function 1 for the call and then parses the data and nested object to put the item name, item id, the board name, and board id from that item.

From these you can do a lot more. Hypothetically you could create a complete mirror of your entire Monday account by using multiple functions where you search your boards and get their ids and column names. Then for each board create a sheet with the necessary column headers. Then for each board call all the items, their ids, and their column values, and fill them into the sheets.

Hope this helps! If you need support feel free to reach out. I am not an expert and this is my first time every posting on a forum… CLICK HERE TO CHECK OUT THE CODE.

6 Likes

I am also working on Monday to Google Sheets integration. I was using Integromat to do this which actually did all 3 functions (Add rows, delete rows, update rows). However the delete row functionality uses a lot of operations so I was not able to use the free tier usage for this. If you don’t mind paying $50-$100 a month then Integromat may be the way to go.

However since my company is small and I am a junior developer I decided to go the route of using the API. I’m currently writing out the add/delete/update functionalities with Google App Script. If I can’t get the update to work though I might just delete and then rewrite the table every time.

Mine literally just writes over what already exists. I didn’t even bother putting in a clear data step as our items and boards always go up.

A main reason for needing this flow is so I can then ‘search’ my Monday pulses which you can’t do in Zapier yet.

I had an automation that every time a board or item was created Zapier added the details to my sheet but it was sucking a lot of my monthly tasks and put me to my limit 3 months in a row with a few days left.

Removing some of the steps between Zapier and Monday by using the API has allowed me to keep my Zapier account as is and not upgrade.

Thanks for the input! I think I’m going to go the route of rewriting over the sheet. I have a column for item ID in Sheets to verify data that already exists, but if I delete & rewrite everything then I don’t need to keep track of the ID. I was more interested in the update just to provide on my GitHub for other users that run into the same dilemma.

Y’all this is far too complicated for those of who are not programers. Monday.com sells itself as being the easy solution for workflows - this seems like a slam dunk feature they could provide and I’ll keep lobbying for it.

5 Likes

This is perfect, exactly what I was looking for! I made the account just to say thanks!.

Also if you could help me a bit further, I am trying to obtain more information for each of the items, I have tried changing this query on your code:

query{items(limit:30000){id,name,board{id,name}}}

to this

query{boards(limit:30, ids:xxxxxx879){items{name,id,x,y,z}}}

but I guess it wont work like that, I am not a programmer but understand, the bare basics.

could you provide your assistance?

Hi Enrique,

I would suggest to plug your query into the Monday API directly to make sure it makes sense. You can do that here: https://monday.com/developers/v2/try-it-yourself

Try removing the limit in your query since you identify the board id you don’t need it. You may want to put it in on the items though.

So:
query{board(ids:xxxxx879){items(limit:30){name,id,column_values{value}}}}

I think this should get you want you want. You may want to add id in the column_values so you can make sure to match the right value in the right column in your spreadsheet.

I agree, this ought to be an integration. Until then this works.

I would be happy to help you out in creating your link for you. Reach out privately to me if you want to discuss what that can look like.