Best answer

How to use time based triggers to pull data from one app to another?

  • 28 July 2020
  • 8 replies
  • 356 views

Userlevel 1
Badge

Hello,

 

I am ok with basic Zaps but getting a little stuck on time based zaps. What I am trying to do is at 11pm daily pull data from App A to App B. Can you please help me understand how to set it up. It seems if I make time the trigger then it will only input time related things into App B not the data from App A

 

Additional info, not sure if pertinent:

App A and B are actually both the same Google Sheets work book but a different sheet. The reason I am not just doing this all within Sheets is the sheet in question is for “Today’s Orders”. I have a script that deletes the data at midnight every day so that we have a blank sheet for new orders each day. I want to have another sheet that has a back up of all that data. I can’t do that within Sheets itself because the formulas are iterative so it would just delete the backup sheet when the source sheet gets deleted. 

So using Zapier, I want to Say at 11pm copy trigger the data from “Today’s Order” sheet to be copied to Backup sheet. Back up sheet will then become like a database of all past Today’s order sheets.

icon

Best answer by PaulKortman 28 July 2020, 02:00

View original

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

8 replies

Userlevel 7
Badge +10

@Shawn_L I think I understand what you are trying to do and the additional information really helps!

Option 1

So that’s not really how Zapier works, sure we can trigger off of a specific time to start a zap, but then it would need to find an unknown number of rows (the current limits are either 10 or 20 depending on which function you choose) and then write those to the other sheet. Doable, but the limit of 10 or 20 is kinda messy. 

 

Option 2

A better solution would be to update the “database” sheet every time a new order comes in, so you could set up a zap that triggers on a new row in the today sheet and have that write the same row to the database sheet. 

 

This will get messy too, because once that zap is turned on if you delete rows (say 2-25) the zap will only trigger when the row greater (in this case row 26) is written to. There is a workaround to pause the zap (automatically) before the script clears the contents) and then re-enable the zap afterward (automatically)  You would do this with Zapier Manager

 

Option 3

The best way to do this is very similar to Option 2, but just backward. Whatever is creating the rows for new orders have it create those rows in your “database” sheet. Then have a zap trigger off of a new row in that sheet and create the row in today’s sheet. -- This Zap is not dependent upon the script clearing the data and wouldn’t need to be turned off and back on again like in option #2. 

 

So yeah, while option 1 is what you were thinking to do hopefully I’ve convinced you to do option 3 💪

Userlevel 1
Badge

Of course Option 3! I can’t believe I didn’t think of that! Thank you very much, I appreciate the time you took to explain!

Userlevel 1
Badge

The only draw back to option 3 is it is causing you to run many zaps (tasks?) since it is triggering for every order instead of once per day. 
 

I wonder if I can create a new trigger row that fills a Trigger cell every x number of orders so it’s not triggering with each order.  You’d still have an issue of  dealing with the remainder orders but I suppose that’s a Google Sheets problem to work out.  
Eg

cell A1 fills with “X” every 10 new orders

trigger zap when A1=x

There were 96 orders today, how do you trigger the last 6?

 

Userlevel 7
Badge +10

in this case simple is the best way to do it.

if you have a two step zap, trigger on a new row and the action is creating a row you will be charged 96 tasks for today's orders. (Trigger steps never count as a task)

If you needed to trigger every 10 rows, then you have an initial three step zap.</p>

  1. Trigger when A1=x
  2. get the last 10 rows
  3. write a row for each line item

so this would be 2 tasks instead of 10, (for those ten rows, so assume you’ve taken 90 of those 96 tasks down to 18)

then you would need a zap that runs at the end of the day and finds the last x number of (rows up to 10) that do not have A1=x

  1. Trigger at 11:30pm
  2. get the last 10 rows where a1 does not = x
  3. write a row for each line item

so this would again be 2 tasks for each line, so 12 instead of 6 and you’d end up with a total of 30 tasks for today instead of 96… sounds great right?

Here’s the catch, how are you going to get your system to only put an x on the tenth line?  There are ways to have Zapier do this, but it will double the task usage from 96 to at least 200. 

Userlevel 1
Badge

OK so maybe that’s not the way to go! I think my best bet is to bite the bullet and go with option 3 as you suggested. 

 

Frustrating that there’s not a way in Google Sheets to say run this formula only once as that would eliminate the issue of data being deleted but I guess I can’t blame Zapier for that!

Userlevel 1
Badge

And it looks like one other intermediate step is required. I want to trigger it when the order is marked as fulfilled which is on “Todays Order sheet”.  However it looks like the Zap can’t be triggered by a value in a cell, it has to be the creation of a new row. So I think I will have to have another helper sheet that just creates a row when the ‘Fulfilled’ cell on Today’s order is filled in so that the helper page can trigger it.

Userlevel 7
Badge +10

@Shawn_L or you can trigger on an updated row, and add a filter for the “Fulfilled” column has to = fulfilled. 

Userlevel 1
Badge

Oh I didn’t realize you could do this! Thanks a million, Paul!