Timed trigger via integromat

Hi, I have a custom event whereby a user can say “do this thing x days in a row or x hours in a row”. Right now, I have passive enforcement – I have not gotten to the hours yet – every morning, it shows the action on top of their screen, and they can dismiss it when done.

I’d like to send an SMS to push notify instead of passive notify. Easy enough to send, but I want to send the series to Integromat. What module do I pick in my scenario to process the trigger??? I looked at “EverHour”, which I think would handle it, but they want $50 a month! For an API service? There’s no tier for usage (this will be a low-usage app). For comparison, I just plopped down $$$ for Twilio SMS service, but the point is the usage is per SMS, not per MONTH. That gives me time to develop, test and maybe even start making some money off the app.

The reason I am asking is to cut down on my research time if someone has found a module that can take a trigger and “wait” until a specified date or time to process that trigger.

Surely with “millions of apps” published someone has done something like this. Perhaps instead of triggering Integromat, I could just add them to a queue in Google Sheet, and then set up a scenario in Integromat to ping through the queue. But I don’t know enough about Google Sheets or how they work to set it up.

Hola,

Try with it and let me know if it was useful

1 Like

I guess what you could do is use an Integromat Data Store as temporary storage, and set up a workflow something like the following:

  • Incoming Webhook from Glide is processed and a record created in the data store. This record should include a timestamp that indicates when the rest of the process should be triggered.
  • Create a second scenario that runs on a regular schedule. This scenario would iterate through the records in the data store and check the timestamps. For any that are due, it could send the SMS and do whatever other actions are necessary.

One downside with the above is that it could be quite expensive (and wasteful) in terms of your operations count. There is probably a better way, maybe someone else will jump in with another suggestion.

3 Likes

Without knowing how he structured his data, I think we can do the same thing with Google Script, triggers it to run every minute or 15-30 minutes should be also fine. We take that heavy work off Integromat/Make to lower the cost.

Every time the script is triggered, we can send payload(s) to Integromat/Make, then process it from there, I assume.

2 Likes

Thanks @gvalero, this will certainly be useful to me, but not in this application. If I am not mistaken, someone has to be actually running the app for this trigger to process. What I need is a background process, which is why I am looking at Make(Integromat).

2 Likes

Thanks, Darren. As you said. Cost is certainly a factor for me.

Thanks ThinhDinh, that does sound like a solution that would work. I’ll have to research how to do Google scripts. When I embarked on this Glide endeavor, I had no idea how many other technologies I’d be having to learn. As a coder, I typically pride myself on using my own home-grown utilities for everything!

You can read more about triggers here. What I described above is a time-driven trigger.

1 Like

Thank you,

I am thinking this could work. It will be dependant on whether I can set a trigger to run ONCE at a specified date/time. Then I can create the trigger programmatically 9 times, or perhaps the time-driven trigger has a counter (every hour for 9 hours).

function createTimeDrivenTriggers() {
// Trigger every 1 hours.

See, that would work, but has to have a limit. Perhaps the limit can be based on the existence of a row to process, which can be deleted after processing. I’ve been researching writing scripts today. There are a lot of examples in this forum. The challenge is that I have found none that are complete, as in “installed and working in a template” which would make my life a little easier.

A knowledge base or notion page with a bunch of use case-based onClick and onChange trigger examples for those of us who don’t know how to write them would probably be quite helpful haha :wink::nerd_face:

2 Likes

I’ve seen lots of examples today in the forums, but nothing tied to code (in a template) that shows how to tie it into an app. Once I see that I can probably muddle through writing one by piecing together examples until I know what I’m doing. That’s what I did today with Make and Twilio and Google Sheet modules. I just kept trial and error until I got what I wanted. But in the end I found that in Glide you cannot delete or rename or re-assign webhooks. I find many loose ends like that in Glide where they could tighten things up. Now I’m forever saddled with a webhook in my list called “test 1” and “my first webhook” and two named “Send Phone Number” (and no way to tell which one is which)…

Here is one such that I could start with for testing if I could figure out how to link it into my app.

function test_deleteRowByDate() {
  var howMany = deleteRowByDate("Sheet1", 2, new Date());
}
function deleteRowByDate(sheetName, dateColumnNum, dateRemoveIfOlderThan) {
  var sheet = SpreadsheetApp.getActive().getSheetByName(sheetName);
  var lastRow = sheet.getLastRow()-1;
  var data = sheet.getRange(2, dateColumnNum, lastRow, 1).getValues();
  var count = 0;

  // walk the dates but from the bottom up
  // the trick here is that as you delete a row the row numbers move up
  // if you went the other way, top to bottom the positions would change

  for (var i = data.length-1; i > -1; i--) {
    if (data[i][0] < dateRemoveIfOlderThan){
      sheet.deleteRow(i+2);
      count++
    }
  }
}

To get apps script to work together with a Glide app, you have a few options.

  • Timed Trigger
    – A timed trigger is fairly obvious. Your script runs at scheduled intervals, and any changes it makes in the sheet are reflected in the app once it syncs.
  • OnChange Trigger
    – With an OnChange trigger you just need to initiate a change in the Google Sheet from the app. ie. with an Add Row or Set Columns action. Once the change hits the sheet, the script fires and does its work. Note: OnEdit triggers do not work with Glide.
  • Webhook
    – A third option is to create a webservice with apps script and send a webhook from Glide. This is not an option I’ve personally used, but I know that others have.

Side note: when posting large chunks of code you can get them to render correctly by starting with 4 backticks on a single line, and ending with the same.

3 Likes

Thanks –

Since I’m a coder I expect I’ll explore this first! I cleaned up the code above by manually removing the line feeds. The \\\\ didn’t seem to do the trick (at least not visibly)…

1 Like

Backticks, not backslashes :slight_smile:

1 Like

I actually had to Google that. 30 years as a coder, but obviously not in JS.

“So that’s the ‘any key’ I’ve heard about!”

hey @gvalero I came across this on another post and it is exactly what I need for somthing og mine too! :smile:
However, I am not sure what math is going into your SECTIME column,
could you let me know the logic behind this as I cannot get a num value for the current time that updates in the same way as yours :thinking:

Hola Tom!

Do you mean this trick? https://community.glideapps.com/t/automatic-toggle-trigger

Yeah that’s the one, I’m not 100% on what would be inside the SECTIME column when it comes to the maths.

Also, your Delta (number column) appears to have text in is as well? Which does not seem to be possible now (not that this should matter, but I have attempted to re-create this process today and it does not work.)

Is it possible to make your example app copy-able so that people could inspect the background info and columns directly?

1 Like

The APP was copiable time ago but Glide changed their policies regarding Classic APPs and it isn’t possible now.

Here some screenshots to help you:

I hope it helps you @Tom_Down !

@gvalero perfect! thanks a ton :+1: