Пікірлер
@DeanMorrison-r3u
@DeanMorrison-r3u 10 күн бұрын
Callum, thank you once again for another 1 of your informative videos for those of us who can't code!
@enlivenit
@enlivenit 10 күн бұрын
You're welcome :)
@lewerim
@lewerim 16 күн бұрын
I am very Junior to extending Knack. This is very promising. Could you sue the same methods you use to load Plasmic to Load a SharePoint report? (probably should have posted his on video 1)
@enlivenit
@enlivenit 16 күн бұрын
Hi @lewerim - the method I showed to load Plasmic is unique to Plasmic, unfortunately. There may be a way to embed a SharePoint report into Knack but I'm not familiar with it so am not sure.
@lewerim
@lewerim 16 күн бұрын
@@enlivenit I thought maybe it was. Thanks for the response.
@chprojectsupport
@chprojectsupport 16 күн бұрын
Perhaps I shouldn’t have watched it a 7am 🕖 😂 A lot to unpack but I think I got the gist of it 🙏
@enlivenit
@enlivenit 16 күн бұрын
Hah! Yes not light watching for 7am! Let me know if you try it out.
@shofixti
@shofixti Ай бұрын
Great video, thanks for putting it together and sharing it! I'm thinking this through, and a couple of things that come to top of mind are the implications on Make operation consumption, and also gracefully handling the dreaded Knack API failures/timeouts. Obviously it's sensible from a security perspective not to run a scenario unless you can positively validate a valid user and session, but there are operational considerations to ponder.
@enlivenit
@enlivenit Ай бұрын
@@shofixti thanks for the lovely words. I agree there's operational considerations especially Make operation consumption. In reality, I would normally do some sort of (usually informal) risk management process to decide whether I need to bother going to the extra effort of protecting the endpoint. In many cases, I decide it is worth doing, but sometimes I'm happy to accept the small risk of someone unauthorised triggering a scenario to save on make credits and to keep it simple.
@enlivenit
@enlivenit Ай бұрын
What do you usually do to gracefully handle API errors and timeouts?
@shofixti
@shofixti Ай бұрын
@@enlivenit "Graceful" is relative, but we've generally used Break (retry) modules plus error handlers attached to all Knack operations (be they Knack modules or HTTP modules that do Knack things) just because the Knack API occasionally goes out to lunch. It's gotten better in the last couple years, but the number of failed calls is far from zero. Unfortunately this creates a clunky UI when users are watching a spinner for 2, 3, 5, or more minutes while Knack is getting its API ducks in a row and Make scenarios are re-running. "Just reload" is something of a mantra. As far as saving Make operations, it's more complex than just keeping everything in Make, but with a little know-how, I'd imagine it wouldn't be too hard to write an AWS Lambda function that does the session and token validation, and just call that at the start of any Make scenario that does Knack Stuff.
@enlivenit
@enlivenit Ай бұрын
@@shofixti thanks - that's about what I would have expected within Make and what I've seen others do. What I do: I actually normally use Pipedream instead of Make for automation. I have written some pipedream components (a component is the equivalent of a Make "Knack" step) that are powered by my knack-api-helper package (www.npmjs.com/package/knack-api-helper plus see kzbin.info/www/bejne/hmSyg6FjpLKMba8). The advantage is that because these are powered by knack-api-helper they automatically retry failed API calls when sensible. This means that when those not-so-occasional Knack API glitches occur, a retry will happen almost immediately rather than relying on a delayed retry within Make or similar. I've found this to be very reliable due to the auto-retry, dramatically lowering error rates even when running 1000s of API calls. Because Pipeream allows defining custom components (workflow steps) I also have a component that validates a Knack session. This becomes just another step you can insert into a workflow and re-use wherever needed, avoiding the need to split into another Make workflow to run reusable logic. Certainly, you could write a Lambda function that can be called in place of the Make workflow to validate a Knack session and that would save some Make credits. I usually write Lambda functions within a Netlify project because it's so easy to write & deploy functions that way, rather than working directly with AWS, but whatever method you're comfortable with will work, of course. Once again, knack-api-helper can help if you were creating a lambda function - you could import knack-api-helper into the function then use the validateSession method to check the user is a logged in user of a particular role (github.com/CallumBoase/knack-api-helper?tab=readme-ov-file#validating-a-user-token---validatesession) which would save you writing the logic from scratch. If you'd like any more help or advice streamlining things further with AWS functions, or seeing how Pipedream looks as an alternative to Make, feel free to get in touch
@chprojectsupport
@chprojectsupport Ай бұрын
Thanks for sharing
@russellhutson1603
@russellhutson1603 2 ай бұрын
Can you attach event handlers using plain JS? jQuery is against our security policy.
@enlivenit
@enlivenit 2 ай бұрын
Do you mean in the knack app JavaScript area? It's probably possible but knack is built on jQuery (if you inspect the source code sent by knack it's used widely) so I doubt theres any actual security benefits from avoiding using it in the knack JavaScript area code that you write.
@lewerim
@lewerim 2 ай бұрын
Oh... Very good to know as I explore Make.
@enlivenit
@enlivenit 2 ай бұрын
Let us know how you get on and if you hit any roadblocks.
@chprojectsupport
@chprojectsupport 2 ай бұрын
Thanks for the amazing video! I really appreciate the effort you put into making complex topics so easy to understand 🚀
@enlivenit
@enlivenit 2 ай бұрын
Thanks for the kind words Carl :)
@deborahpattie4570
@deborahpattie4570 3 ай бұрын
I appreciate that your videos are directly to the point - and helpful. Thank you.
@enlivenit
@enlivenit 3 ай бұрын
Thanks! I'm glad you found it helpful. Do you have any other topics you'd like to see videos about?
@chprojectsupport
@chprojectsupport 3 ай бұрын
Hey Callum, thanks for the video, a really useful process clearly explained. I use the zero record table method too.👍
@enlivenit
@enlivenit 3 ай бұрын
Thanks Carl!
@lewerim
@lewerim 3 ай бұрын
Cool. I wouldn't have thought of using 0 as the limit of records displayed. Much simpler than hiding or removing the view with JS. As well, removing the parent page from the url... I definitely didn't know that would work. Thanks for sharing?
@enlivenit
@enlivenit 3 ай бұрын
Glad you found it helpful! The 0 record trick is actually much more secure too - because a view hidden with js is simply hiding it from view, but it's underlying data is still available via the API very easily. However if you actually set data source filters or 0-record settings like shown in the video, that data is completely unavailable even if someone tried to get it via the api
@lewerim
@lewerim 4 ай бұрын
That's pretty cool. I'll have to check that out. It would be cool to see if we can identity parent and child pages as well
@enlivenit
@enlivenit 4 ай бұрын
Let me know how you go! Can you tell me more about your use-case for identifying parent and child pages? Might make a video on that, but need a little more context on what you're trying achieve with that
@lewerim
@lewerim 4 ай бұрын
@@enlivenit I was thinking almost a site map, in tabular form. Not sure how useful that would be though, on second thought...
@lewerim
@lewerim 4 ай бұрын
@@enlivenit Now I'm thinking it would be useful to have a catalog of Views and what Scene they are hosted on. 🤔 It's always inspiring to see what other people are working on....
@enlivenit
@enlivenit 4 ай бұрын
@@lewerim Does find.knack.com/definitions#home/ serve that purpose for you of seeing a catalog of views and what scene they are hosted on? I have a video on how to use it here: kzbin.info/www/bejne/oXjbm6iFZbloq80 If not, I'm curious to know what else the catalog you're thinking of would do (and happy to make a video trying to address that need)
@lewerim
@lewerim 4 ай бұрын
@@enlivenit it does. I use it regularly. I was really just thinking of what are the possibilities.
@deborahpattie4570
@deborahpattie4570 4 ай бұрын
Another clarifying video- thanks!
@enlivenit
@enlivenit 4 ай бұрын
Glad you found it helpful! What are you working on in Knack @deborahpattie4570 ? Any other sticking points you'd like to see info about?
@deborahpattie4570
@deborahpattie4570 4 ай бұрын
Thanks for the great explanation!
@lewerim
@lewerim 6 ай бұрын
This is a great explanation of page behavior and data structure, that i don't think it's explained very well in the Knack documentation. I wish this had been available when i was starting with Knack. I'm my mind, when i think about child pages created by menus, i think of them as views I could have put on the parent page (so, anything available on the parent page) but I have "hidden" behind a menu button to save on screen real estate.
@enlivenit
@enlivenit 6 ай бұрын
Thanks @lewerim. I agree that Knack docs don't explain it super well - it's one of those things that you intuitively pick up once you've built a lot, but it's not so intuitive when you first build. I like that way of thinking about child pages. Thanks for sharing.
@ChrisSchraders-i2s
@ChrisSchraders-i2s 6 ай бұрын
Bravo! I hope I can find the time to try this out soon. Thanks a million, Callum!
@enlivenit
@enlivenit 6 ай бұрын
No worries. Let me know how you go!
@ChrisSchraders-i2s
@ChrisSchraders-i2s 7 ай бұрын
Cannot wait for video two! Thanks, Callum.
@Deannaburks
@Deannaburks 8 ай бұрын
Thank you!!
@martin13523
@martin13523 10 ай бұрын
Awesome video! I could really relate. Initially, I encountered issues with 'child user roles' and a required boolean data field. However, I resolved it by adding a field to 'Parent user Roles.' Keep up the great work with these videos!
@enlivenit
@enlivenit 10 ай бұрын
Thanks Martin for the feedback! Yes, I speak to lots of Knack users / clients who have set their app up with fields in child user roles and then later need to refactor. Much better to start that way first.
@automate-your-business
@automate-your-business 10 ай бұрын
I LOVE this! I also wasn't aware of programmatically searching Google. Great video!!
@CallumBoaseOptimi
@CallumBoaseOptimi 10 ай бұрын
Thanks!
@martin13523
@martin13523 10 ай бұрын
Excellent video and great explanation. Integrating APIs to Knack with Make is another world.
@CallumBoaseOptimi
@CallumBoaseOptimi 10 ай бұрын
Thanks Martin! Yes, it's very powerful integrating Knack with other services
@chprojectsupport
@chprojectsupport 10 ай бұрын
I wasn’t aware that you could create a Google query in Make. Great explanation. That is for sharing.
@CallumBoaseOptimi
@CallumBoaseOptimi 10 ай бұрын
Thanks Carl!
@DataTechniques
@DataTechniques 10 ай бұрын
I do need to start to get my head around this. I’ve used it before so will dive back in. Thanks for the video 👍
@enlivenit
@enlivenit 10 ай бұрын
Thanks @DataTechniques. I'm fascinated how you manage to jump into client's apps without it. Do you have some other magic methods for not breaking apps when you make changes?
@martin13523
@martin13523 11 ай бұрын
Great video, I'm recently start building apps with Knack. This is something I was looking for.
@DataTechniques
@DataTechniques Жыл бұрын
Excellent tip 👍
@lowcodedave
@lowcodedave Жыл бұрын
Nice. I do that all the time, especial for detail views.
@DataTechniques
@DataTechniques Жыл бұрын
Amazing, a little beyond my skill set but great to know this type of thing is possible.
@JonathanOuh
@JonathanOuh 3 жыл бұрын
Hi, I'm looking to do something similar for a website I'm helping with. Would you mind answering a few questions? Background: I want to create a user-friendly directory (in an already-built website that uses SquareSpace), where users can filter by price/location/service/etc. People who want to be on the directory can do so by filling out a form, which will automatically update the directory and show in SquareSpace. I've been thinking about a solution for a while, and stumbled upon Knack today. 1) Does it sound like this problem could be solved with Knack? 2) Can you point me to any useful resources to get this done? The only other KZbin video I've found that has made me more confident that Knack+Squarespace is a good solution is this (kzbin.info/www/bejne/oYS7fJqEd7mcj9E), but their front-end is further from what we want on our website. Maybe you could put together a video tutorial? I'd rather try to avoid swimming through a ton of noise to get to my desired solution, if possible. I think you could help a lot with that! Thank you so much!
@callumboase3021
@callumboase3021 3 жыл бұрын
Hi Jonathan, Thanks for your comment. 1) Yes, Knack could certainly be used in your scenario - to create the database of people for the directory with users being able to update their own profiles with login protected forms etc - it's exactly what Knack is designed for and would do it really well. 2) The integration is achieved via squarespace code blocks & header code injections combined and the Knack api. Some resources to get you started: docs.knack.com/docs/introduction-to-the-api support.squarespace.com/hc/en-us/articles/206543167-Code-Blocks It's a pretty involved little project, so I don't have any plans to make an extensive video tutorial on how to achieve the integration. Feel free to contact me through my business if you need more help - Enliven IT (enliven-it.com.au/). I offer coaching / training in Knack and the Knack API and also offer this integration as a product (the existing code library I've developed for the above video can adapted to other Knack apps and Squarespace websites, saving time and making it quite cost-effective for clients). If you were interested in working with me, I could create the whole integration for you - including building the Knack app, or we could work together and do the appropriate parts each, or I could just license the code library to you for a single app, if you want to adapt it yourself - I'm flexible about the exact arrangement, so feel free to get in touch. Kind Regards, Callum Boase
@JonathanOuh
@JonathanOuh 3 жыл бұрын
​@@callumboase3021 Thanks so much for your quick reply Callum! This is definitely helpful. The main question that I have now is whether or not you think the user would be able to filter on multiple levels. For example, if the Knack database includes a person's name, state, city, price, industry, and years of experience for each entry, could the user (in the website created by SquareSpace) filter for people who are in Texas, cost between $50-100, in the tech industry, and have 5-10 years of experience? That's definitely a key requirement for this project. If you know/think this could be implemented, I'd definitely be interested in working with you!