Users want a PAUSE button in a time tracking app

The functionality needed is that when hitting PAUSE (action) the timer will STOP (action),
and the PAUSE button is replaced with a RESUME button (action).

When the user taps RESUME, the app needs to create a new record and populate the Job number with the job number from the previous record - stored in a variable.

Your ideas and recommendations are most welcome!

At this moment you would need to use Webhook & Appsheet API combination if this needs to happen automatically without pressing “Save”. Were are launching a new “Add a record” feature soon and then you can automatically create that new record directly with the app.


You may want to consider a way where you don’t need to create a new row.

1 Like

To do that, I would need to stop the timer on PAUSE and start it again on RESUME. Any ideas if this is possible?

@Aleksi thanks for this. Is the coming-soon “Add a new record” feature a new Action? And do you have any rough idea of when this feature will be added: I won’t hold you to it :slight_smile:

Then I could set the RESUME button to “Add a new record” then “set the value of a column” (action) - if I can copy the job number from the previous record, which you have offered some help with in my other post: Can I populate a field with variable

I’m afraid I don’t have any exact timeline for this feature.

No I totally understand that @Aleksi - I am only after a “rough idea” - 1 week, 1 month, 6 months, 1 year, 2 years?

Not 6 months or years :slight_smile:

1 Like

Thanks @Aleksi I’ve had a look into MAXROW and Initial Values
One approach I see goes something like this:

MAXROW can find the row in the table with the latest appsheet record in it.

  • Given there are many different users, will I need to use some slice of the data to get the relevant users latest row?

Then I need to find the data from the JobNr column of that row.

  • How will I find this?

Then I need to apply the result of this as the Initial Value of the Job Nr field

  • Can this be done?

THE OTHER APPROACH - ‘perhaps’ simpler goes like this:

The user stops a timer and remains on the detail view for the jobNr 22167. At this point she has the usual edit button.

If I add a RESUME action button here, can I have it run these multiple actions to:

  • Copy this row and edit the copy
  • Set the value of a column: Start Time = Current time
  • Set the value of a column: Stop time = blank
  • Go to another view within this app: The main screen (as below)


MAXROW() can ignore rows you don’t want considered. So long as the rows of the table contain sufficient information to determine which rows are relevant to the user, no slice should be needed and MAXROW() should be sufficient.

There are two common approaches:

  1. Create a virtual column with an app formula that uses MAXROW() to find the desired row, then dereference that column to get access to its JobNr column value. For instance, if this virtual column is named MyColumn, you could dereference it with [MyColumn].[JobNr] to get the JobNr column value from the row it references. This approach is especially good if you have use for other column values from the same row.

  2. Alternatively, combine MAXROW() and LOOKUP() to get the value in a single operation. This is an advanced approach I wouldn’t recommend in your case.

As noted above, you can dereference the Ref value found in the virtual column. Simply make the initial value expression: [MyColumn].[JobNr].

Yes, yes, yes, no. Whenever a new row is added, the user must interact with the row, even if just to hit Save. They’d also have the opportunity to click Cancel, which would likely be undesirable.

1 Like

You beauty! Thanks @Steve

The trouble with the second approach is that while I can create a new (copy) record and set the Start Time = Current time and the Stop time = blank, after hitting save, the user is left with hitting the back button to cycle back through the previous record and again to get back to the main screen. So I’ll have to disregard that option and go with option one.

I’ll let you know how I get on :slight_smile:

1 Like

Hi @Aleksi, is this the new “Add a record” feature we were waiting for?


No, it’s the same old one.

As you said @Aleksi I can do 1, 2, 3 but not 4 in this list.

However, after creating a Grouped execution of the first 3 actions, it creates the copy and puts me in edit mode. But the next steps 2 and 3 don’t execute. If I save the record (with the other two actions visible), i can manually activate them.


You’ll need to attach an action to the Form Saved event for the form used to submit the copied row.

Thanks @Steve - let me see if I can unpack that.

  • I’ll need to attach the Grouped action (to reset Start Time and Stop time)
  • to the Form Saved event - in Workflows? No place to attach an Action I’ve created there
  • for the form used to submit the copied row

Given this is the same form used for all new entries (time logs) - once I figure out how to do this, then I’m concerned it will run everytime a user saves a new entry.

I’m thinking I need to find someone who is consistently developing in AppSheet, as this is getting rather time-consuming, and it might be better to give the specs to someone who can do it in a fraction of the time. Is there a directory of AppSheet developer anywhere?

1 Like

1 Like

Despite having ample custom Event Actions to choose from, when the BEHAVIOUR sub-menu for Event Actions it looks like this?


There’s no “New” or “Options”), but a dead end.

I might be a novice with AppSheet, but having made good use of dozens of software packages over the last 35 years, I can’t help feeling the UX needs a bit of help. It could really open up the market for a tool that gives more people the potential to create awesome tools of their own !

1 Like

You aren’t in a form view configuration.