Open multiple external links via a button, based on state/stage

Hey, newbie here who has tried his best to find a solution…!

I have table which contains:

  1. Names of people (Name), pulled from a central list/database
  2. Their LinkedIn profiles (LI), embedded in buttons (which executes fine individually via OpenWindow(thisRow.Name.[Linked in])
  3. The ‘stage’ they are at in an interview process (Stage), pulled from a list in a separate page/table

I want to be able to bulk-open multiple LinkedIn profiles via a single Button, depending on their stage. For example:

Button Stage 1: Open all LI profile for people at Stage 1 (e.g. Jeff, Jenny and John)
Button Stage 2: Open all LI profile for people at Stage 2 (e.g. Colin, Carrie and Cassandra)
Etc…

I suppose the challenge comes when those people change stages - for example, when Jenny moves to stage 2, her profile should no longer open via the Stage 1 button, instead opening via Stage 2 button. Obviously I’m looking to avoid manually updating a formula each time somebody changes stage, as that will change often.

Is there a way to automatically assign?

Thanks in advance

Hi @0xGoose and Welcome to the Community :partying_face: !

I’m not entirely sure this is the kind of setup you actually have (:innocent:) … But, is this what you were trying to do ? (look at the buttons on the canvas :blush: )

The formula I used in the canvas button Stage 1 (for example) is :

[People & Stages].Filter(Stages = [Stage 1]).ForEach(
  OpenWindow(People.URL)
)

And what it does is :

  1. [People & Stages].Filter(Stages = [Stage 1])

It takes the table named [People & Stages] and look for rows where Stages = [Stage 1].
This returns a list of rows from my [People & Stages] table and more specifically, a list of people (coming from a People table where I’ve stored their “name” and some URL coming from my opened tabs :relaxed: ).

  1. [ ... ].ForEach( OpenWindow(People.URL) )

And now that we have the appropriate list of rows, this kind of says: ForEach() row in the list of rows returned by the Filter() (each individual row being represented as CurrentValue in the list, so People here is in fact CurrentValue.People :blush: ), open the url tied to that specific person :blush:

Another possibility, following a similar principle would be to have canvas buttons pushing the appropriate and individual OpenWindow() button you might already have in your table :blush: , using something like :

[People & Stages].Filter(Stages = [Stage 1]).ForEach(
  Button
)

(Button being in fact CurrentValue.Button)

See the sample just below :blush:

Without a sanitised/anonymised sample of your current setup (or even just a screenshot), it’s a bit hard to be more precise :blush:
But I still hope this will help you a little :innocent: !

Don’t hesitate if you have questions :blush:

4 Likes

So helpful thank you! I ended up with the following:

[Table].Filter(Stage=Stage 1).ForEach(LinkedIn)

One last thing - how would I go about excluding people from this if another condition was met? Specifically, I have an ‘Archive’ checkbox which, when checked, crosses out a people but leaves them in the list (for visibility, and sorted to the bottom) which retains the ‘Stage’ they reached before they were Archived. Obviously I wouldn’t want to open these LinkedIn profiles as they are no longer a consideration.

Tried a couple of things but didn’t work and don’t want to screw this up now :joy: Thank you in advance @Pch !

Glad to know this helped you to move forward :grin: !

As for your follow-up question, same principle as before :blush: : Get the appropriate list of rows from your table with Filter() and then, ForEach() row in the list push the button…

In other words, something like :

[Table].Filter(Stage = Stage 1 AND Archive = false).ForEach(LinkedIn)

… should do the work :blush:
(See the canvas button Stage 1 in the sample doc below :blush:)

The Filter() formula will return, in this case, a list of rows from your table where the value in your field Stage is Stage 1 AND also, where the value in your column Archive is false (so, not checked).

Both conditions needs to be true here for Filter() to keep a row in the list of rows it returns.
Then, ForEach() will do the rest :blush: .

Another way to write the same formula and get the same result would be :
(See the button Stage 2 in the sample doc below)

[Table].Filter(Stage=Stage 1 AND Archive.Not()).ForEach(LinkedIn)

The Filter() formula returns here a list of rows from your table where the value in your column Stage is once again Stage 1 AND where the value in your column Archive is Archive.Not() (I.e.: where the checkbox Archive is Not() true (not checked), so false :sweat_smile: ).

Once again, I hope this helps :innocent: !

1 Like

Thanks so much! All worked out well :star2: :heart:

No problem @0xGoose :grin: !

I’m really happy to know it worked :raised_hands: !!!

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.