Way to copy Custom Action to other components?

Is there a way to copy a custom action to another button without having to recreate it from scratch? I sometimes see “Copy of” prepended to the names of custom actions, which makes me think there is a way of duplicating an action but I can’t see where.

1 Like

Not yet, but I believe this is something that’s on the radar.

1 Like

You may be seeing the “Copy of” when you duplicate a component that has a custom action already set on it. But right now, you can’t assign an existing compound action to a new component

1 Like

I really can’t get one thing in glide: there is practically no way to reuse elements of an app! Only two copying possibilities exist: to copy whole app or to copy a component within one tab. Wherever on Earth we go, we can copy every element, or even better, we can reference the element we developed somewhere else. In Custom Actions we have sad situation that we have to replicate the content from screenshot or 2nd window: if we delete the component with Custom Action, we lose complete complex logic for good. Why is it so? In addtion, replicationg the tabs within an app, or between two apps would be of great benefit and costs virtualy nothing in glide development!
I think many users resigned for developing with glide because of such chortcomings!

1 Like

I hear you, and I agree. I also often find myself taking screen shots of component and action configurations to use as references for rebuilding them. It can be a little frustrating at times. But Glide is a relatively new product, and it’s constantly evolving and improving. I’m sure that things like this will be addressed in time. For now, I can live with these minor annoyances, because on balance Glide is still an incredibly awesome product. :slightly_smiling_face:


Promising answer, thanks! One “smaller” question: I am using glide app for integrating GoogleForms quizzes. There I have result in the form “12 / 28” (correct answers out of 28 answers in total). How can I get two Glide columns with valuse “12” and “28” in that particular row? Neither split nor math helps!

How does the data from the form appear in the spreadsheet?
Can you tell from the values in the spreadsheet which responses are correct?
If you can, then you should be able to summarise using Glide computed columns.
Can you show a screen shot of the Google Sheet column headers?

Result is standard from GoodleForms quiz (here in the column B).

In the 1st answer the result is 3/9. This means nothing in Glide, I can just display it like that:
, no problem.
But I want to have the ranking of quiz participants. In spreadsheet of course I can calculate it, but I want to have it in Glide!
Your second question concerning correct answers will come afterwards! :slight_smile:
Actually this is not the problem, but I have to master it within glide!

Btw, there are substantial obstacles in grading of googleforms spreadsheet in glide: analyzing questions with multiple answers is the rocket science in glide. Secondly, correct answers can be stated as 1st data row in the spreadsheet, but then also the points for each correct answer have to be manually entered in separate table and than the relation set up within glide, too complex and no automation/integration! :frowning:

Actually now I need not more than 5 minutes to include the new quiz in my app. If I would need half an hour, with huge possibility of mistake due to the manual data entry, forget it!

hmm, I can’t see an obvious way to do that. It would be trivial if we had some string manipulation functions in Glide, but unfortunately we don’t (yet).
It might be possible with some funky combination of split text and template columns, but I just had a fiddle with it for a few minutes with no luck. I’ll think about it a bit more and let you know if I can come up with a method. @Jeff_Hager might be up for this challenge…

Found a way to do that. I have scaled it up to 3-digit number of questions so you can go with that idea.

Firstly I converted the original string to a number.


Then I used an ITE to find the right mod number to use.

If the number is less than 100 then I use 10, because I want to take only 1 digit from the right of the raw number.

Let’s say the result is 0/9 then the result number is 9, I only want to take 9 to get the question number. Same for 1/8, the result number is 18, I only want to take 8.

Going with it, if the raw number is less than 10000 (for cases like: 9/20 => 920, 12/20 => 1220), I take the 2 numbers from the right, hence mod by 100.

If the number is less than or equal to 100100 (edit: supporting up to 100/100), then we take the 3 numbers from the right, hence mod by 1000.

Questions: Mod(Raw number, Mod number).

For example 9/20 => Mod(920,100) is 20.

Correct answers: (Raw - Questions)/Mod number

For example 9/20 => (920 - 20)/100 = 9.


Nice job!
I actually started down that route at one point, but I guess I didn’t persist long enough with it :crazy_face:

1 Like

Aagain, very good, answer, thanks! Just think about: why isnt it possible to insert the formula from spreadsheet into glide, e.g. this one:

Because Glide doesn’t yet support string manipulation functions in math columns :slightly_smiling_face:
But lots of people have been asking for them, so hopefully we’ll get them in the not too distant future.

1 Like

My idea was different I can enter the formula in fist data row I spreadsheet. Is it possible that glide replicates this cell in new row? Not the value, but complete cell? In that case that wouldn’t be necessary to develop complex string manipulation in glide!

That’s an interesting idea, but I’m not so sure it would be a good one.

Assuming that Glide won’t be supporting the full range of Google Spreadsheet functions, then they’d need to be making external calls to Google API’s. I can imagine this would be a huge resource drain and would also potentially have quite severe performance impacts. And then you’d start having a situation where people would be ignoring Glide computed columns and go back to writing spreadsheet formulas, which would just exacerbate the situation.

So hmm, no I don’t think I’d support this idea.

1 Like

I am completely with you, we can’t go through the wall. But maybe there is the way for going around the wall, I will check it today afternoon.

I am innovation expert guy, so I am teaching students how to think outside the box, so I will try to do it that way!

Btw, back to replicating custom actions, other components and tabs. This is trivial, when it is planned to be implemented?

In addition, for future better quality of architecture/design of glide, did someone ask glide architects, how did it happen that they forgot such important and “low hanging fruit” feature to design from scratch?

I’m not associated with Glide in any way, so I can’t answer those questions. Although it has been made known that the ability to re-use saved custom actions is coming soon.

I am apologizing if my wording could be understood as a complaint directed to your person. I do hope that glide development crew reads this discussion and gets advantage of our suggestions.

I am NOT happy with the idea of replicating JUST custom actions. Also the components should be prone to reusing, not merely in one tab, but also between tabs and apps. Same applies to replication of whole tabs. I can imagine the complexity of simulating string manipulation, but I can’t figure that replication could be any kind of problem.

My general impression is that in glide development 1st and last word have programmers and not architects/designers. :slight_smile:

1 Like

I’m sure it sounds easy on paper to have the ability to copy something, but as a programmer myself, I can imagine the technical underpinnings of such a feature. It’s not like copying text from one place to another. I would have to imagine that components, actions, and tabs all have very deep underlying connections to different parts of the app. On the surface, yeah, you could probably copy something, but it also has to work when you copy it, and every one of those tentacle like connections to everything else has to work as one would expect it to.

Copying a tab might be reasonable, so long as it refers to the same sheet/table, since every component within that tab is dependent on the sheet it’s attached to. Then on top of that, every single component, action, etc. within that tab would probably need to be assigned new internal id’s so they can become independent objects that can be modified independently from the tab they were copied from.

Copying a component within a tab is already possible and pretty straight forward because other than creating a new object id, all the settings can remain the same because they are part of the same sheet and same columns. I would have to imagine that the ability to copy a component from one tab to another could potentially mean trying to copy a component to a tab with a different underlying sheet. That would most certainly mean that the component that’s copied is fundamentally broken, because the new tab/sheet would not have the same sheet id or the same column id for those components to attach to, so you could have a component with potentially the same design, but with none of the correct column values selected. But that probably depends on a variety of circumstances…which type of component is being copied…is it able to stand alone, or is it dependent on the existing screen’s details?

Actions would probably suffer the same complexities. Currently, if you duplicate a component with an action, the action is copied with it, but at the same time, it’s also attached to the same sheet. If you were able to reuse actions in other tabs, then you run the same risk as components, where they could become broke, because the underlying data doesn’t match. You would still have to go through everything to make sure it’s set up correctly and linked to the correct columns. It sounds like glide is working on something for actions to allow for saving and reuse, so I’m curious how it will work between different tabs or sheets, if that’s allowed.

I’m sure a lot of it is possible (nothing is ever impossible as far as I’m concerned), but from a technical standpoint, this would probably take a lot of fore thought and planning to work out how something like this should work, not only now, but also when glide scales with new features in the future. I would love some form of copy functionality as well, but as a programmer, I can understand the technical aspects of what would be involved to offer such a feature and the hundreds of scenarios that have to be accounted for programmatically without causing more confusion and complaints in the end. I feel there is way more to it than simply copying something from Point A to Point B.

  • Just like moving to a new address. The move is easy, but it’s all the forms to fill, address updates to service providers, address updates to personal contacts. Getting a new ID. Does the car fit in the new garage. I think you get the idea. Easy on the surface, but a lot of work in the back end…

I think if we waited for glide to have every feature that every user thought was the most important thing to them, then we would still be waiting for version 1 of glide and they would have ran out of funding to be in business. Instead, they are growing organically from the ground up with core functionality and they are adding features that they feel are the most financially conducive to their business model at the moment.

This particular feature has never stopped me from accomplishing any goal. I’m more concerned about some of the core functionality that I cannot work around in glide and I’d love to see more focus on stuff like that. Just like any of the apps I have developed…they are very simple and not feature rich at the beginning, but as the design layout, the data layout and the core functionality is finalized and settles down, only then do I move on to the bonus features that make it easier to use. I always start with the absolutely necessary core functionality to make an app usable before moving on to the niceties.

If you’ve been with Glide long enough, you’ll realize that they are still young and they kick out new feature like no other. For a while it would be almost weekly that some new feature would appear. It’s been a little while now, but they are working on a huge rewrite and redesign of the builder. When I started using glide, there was no data editor, absolutely every data manipulation and format, and every relation had to be created in a google sheet, I think the ability to add or edit data was new, the components list was very limited.

Personally I still feel there is some core functionality missing that actually is preventing me from doing certain things, but I’m confident it will get there eventually. While duplicating tabs, components, or actions currently can be tedious, it doesn’t stop me from getting the job done. A lot of times it gives me a chance to reevaluate design and processes and in the scope of the entire build process, is a very small portion of my time.

If you want to explore out of the box thinking, try to build a working calculator with Glide. I’ve spent hours upon hours between testing and trying to work out some IF Then logic to prevent users from entering bad info. I get about 98% there, then I find a loophole and when I try to fix that, it breaks the rest of the IF Then logic. I’ve rebuilt the logic over and over. More robust IF Then logic would have made this a simple 10 minute IF statement, but I’ll probably end up having to break it into 10 to 15 IF Then columns to handle the logic that ultimately determines if an action should even run. Then the custom action is a whole other mess of IF Then logic. Now that’s core functionality that I feel needs a lot of improvement. I’ll probably figure out my problem eventually, but so far I’ve hit hard roadblocks that are preventing me from moving forward. That’s the stuff I personally would like to see prioritized. I’ll spend the few minutes to an hour duplicating a tab, component, or action, but what bothers me is the hours I’ve spent trying to design and build logic flows to work around limitations that prevent me from doing trivial logic that I could achieve in a matter of minutes with actual code.

Here’s the link to the thread regarding the calculator. It’s evolved over the past couple of weeks and it still has some bugs that I hope I can have worked out by the end of the month, but this has probably been one of the most technically challenging projects I’ve ever worked on within Glide.