 final instance of the form of awesome flex course with Tom Woodward, who has been our gracious and truly supportive host over these last four weeks, Tom. Thank you for joining us and doing this. My pleasure. As you can see, Tom has multiplied. We have cloned him. Looks a little different than the other squares, but we've renamed his clones Taylor and Taylor and Onika Tom Woodward clones. Welcome to this instance of form of awesome week four. Let me hold on. Don't go anywhere. Anyone form of awesome. This one's called building a form while flying. Will we do it? You find out. Wait and see. This one is we're going to do a little show and tell because the last four weeks have not been without labor and toil around playing with gravity forms. I'm going to be more simple or stupid like mine, simple like Taylor's and more complex like Onika's going into Tom's, which may be ludicrous speed. I don't know. We will have to see. But that's basically how we're going to get this started. So Taylor, do you want to, you arguably have the simplest, although that may not be case. Do you want to start? We'll see. I think. Yeah, I can start. Absolutely. Super simple, but I think sometimes those are the best, right? So yeah, let me just move my stuff over. So what I have is the working on a form on the reclaim ed.tech site on a form that lets people sign up for email updates on community chats. And we use MailChimp to do email list type stuff at reclaim. And so I was just going to use MailChimp has forms built in where you can just say like, hey, have this prebuilt form and when people fill it out, it'll put them on whatever list, right? And in this case, the community chat list. And I embedded that on the page. It's just like an iframe thing, but I was having issues with it not working in certain browsers like basically because it was an iframe and there was some JavaScript, like it wouldn't work in certain cases if you were like using an ad blocker or something like that. So I just switched it over and I was like, well, I'll do it in gravity forms. And the form is really, really simple. The form is literally just email address and then first in that last name. And so that took literally zero time to put together. And then I went in and noticed that they had a MailChimp add-on for gravity forms. So that itself was pretty simple too. So once I got the add-on from the little add-ons panel thing, I made a new feed for it. So I did that in there. And that was really simple too. We literally just log in with the MailChimp account and then it goes, okay, which form field do you want to use for email address? Which one do you want to use first name and last name? I don't care about address and phone number. The cool thing here is that this is all configurable here, including some MailChimp settings. Like, hey, do you want folks to get a confirmation email that they then have to click the link on? And in our case, I do want that. So turned that on. I gave it a test and that was it. So it was really, really nice. And besides the fact that it works was simple to set up. It also has some benefits in terms of just style because of the way gravity forms works. This isn't an iframe in bed. So it actually inherits the right font and stuff from the theme we're using, which is nice. And on top of that, I could do more stuff with it. That's one add-on. Maybe I want to also get email notifications when people sign up for it. I could do that in gravity forms or I could have them go to Slack using the Slack add-on or something like that. So while I don't need a lot from it right now, that flexibility is there. So that's pretty cool. Know that I love the idea of you actually taking some of the stuff we did in gravity forms and immediately solving an internal issue we had, which was basically like, you know, we would catch this catch cam with our community sites and people were coming, but we weren't regularly communicating to folks about when they aren't a subscription form like this solves that so easily. People could opt out. They're no longer going to hear. But then they're reminded, hey, community chat, here's a topic you want to come. So I love that simple, but like solves a real problem, which I think is what's cool about gravity forms. I'm going to go the opposite direction. I'm not really solving a problem at all. In fact, I'm creating problems. And this one is a site that's been really fun. It's kind of kind of got me back into playing with WordPress, which I kind of just was using pretty much as a blog. I was not really playing extensively with any of the other stuff. So let me see if I can go full screen here and I am going to. And then there we go. So this and then give me one second. I don't know. I can't do one of these sessions without my special. God, it's so good. So this is actually a library. This is a media library that I'm creating using gravity forms. And one of the things you'll notice here is that I now using full site editor after Ed Beck showed off some of the simple features. I actually turned the whole page into a title, some quick director links, which is a tag categories, which I'll talk about in a second and then featured image and that was pretty easy to do. The real kind of fun piece was the horrible looking single post. As you can see, I still need to do stuff with this single post template. But the idea is to create a series of fields where I input metadata around a particular piece of media. In this case, it's a VHS tape from 1986 called Heavy Metal Parking Lot. And I'm going to show you the actual form and how I created some of the stuff I was doing it. But I'm at the point where I just have a couple of things to figure out is how to best use categories and tags to actually list stuff and filter stuff. But the actual form in its very weak state is working. So let me go into the actual gravity form and show you a couple of things I'm thinking through is this is the actual title in year. And one of the things I figured out over the course of the month is I originally had just format types. And I was doing like VHS, Betamax, blah, blah, blah. And I realized that I could do media type. And once I clicked the media type, I could contextualize for conditional logic which things showed up following and which didn't. Which really helped me start understanding the value of conditional logic and gravity forms. And actually, even if I have all these fields, it doesn't mean all of these fields show up for everyone based on what they choose. Simple for a lot of people, a big deal for me to figure out and kind of feel comfortable. One of the things I'm working on right now is I realized the third film I put in had two directors. And I was like, I only have a single field for director. So we'll talk about that a little bit, but I need to figure out an elegant way to add several directors and then show them up as whether it's categories or not. We can look at that. But then also just kind of different languages, subtitles. And this is where I did this week's homework, where I was able to hide using conditional logic within gravity form tags within the advanced post-creation. Do I sound like the gravity forms guy or what, this is good stuff. I have done my homework. So I can actually use conditional logic to hide certain fields that don't need to show up. Because if I say, hey, there's no subtitles, you don't need to see the subtitle language. And if I say there's no extras on this DVD or this VHS, you don't need to see this. So that really helped me exercise the conditional logic not only within the form building, but also within the advanced post-creation area, which is actually here. And so this is really taking me through my whole project. So now this is actually advanced post-creation, which is where you create posts based on the forms, which this was a whole new connection. It took me a while to make, but now that I made it, it's really cemented the logic and elegance of gravity forms. But here I have a series of very simple things. But then you start to see these are these gravity form short codes that allow me to insert conditional logic. Thank you, Tom, very much for this. And actually get this stuff to show only if it's relevant. And so that was pretty easy to do. And you saw my beautiful CSS with the VHS noise at the back. So I don't think that needs much explanation. Although I will note on that point, and let me see if I can find this here. I am using 2022. That's the new WordPress full-site editing theme. And Ed Beck did a really good job of taking us through full-site editing and some of the potential there. So here is the homepage that I am using kind of this site builder to just add categories, directors, featured images. Pretty, it's actually quite easy. Now, this is where I get confused by full-site editor because I'm going to try and find the different templates. And I can hear Ed through the web yelling at me, it's over here, but I can't find. I'm not very good at finding this stuff here. I would check that those lines that are descending in a hierarchy in the top left. Here? For these? Yeah, that guy. Got it. Pull that out. Should be out by default. That's the query. That's the footer. This is that. And then I want to find actually the templates. Oh, you mean the different. At the very top, if you click on default small. Oh, there you go. There it is. So this is where I had no idea how to add custom CSS because in these new full-site editors, the custom CSS is hidden. Tom found it via a link. But I just said, you know what? I'm going to go into single post. And I'm going to go into the, I'm going to look at the actual code. So let me go here and go to the code editor. Oh my god, I'm figuring out. And this little block of style here, I just added, which adds my beautiful background and that white fields for all my different things. It's terrible CSS granted. But it's CSS modified on the site, which for me is better than nothing. And then once I have the custom CSS editor or I have more comfort with full-site editor, some of that stuff will be more elegant. But the combination of both doing CSS in the theme template as well as playing a little bit with the full-site editor for that front page has brought my beautiful Bava library to the healthy, happy state it finds itself right now. My final challenge, and there's three VHS states to show you where I'm starting, but my final challenge, and I guess I'm going to throw this back to all of you, is trying to get these categories. So let me show you quickly what's happening here. And this is actually a good demonstration of the full-site editor I want to believe, but maybe I'm wrong. So if I go here to Gravity Forms, and I'm going to edit this, and I'm going to edit the form post creator from my form Bava library catalog. So I'm going to go to this post creation one. If you look here, one of the things I'm doing is I am adding three things as categories. I'm adding media type. So whatever the media type is going to be a category. In this case, I think it's movies. The field value format, whatever that is going to be added as a category, that's VHS. And finally the film genre, which is horror. So three fields that immediately become categories for this post based on the input in the form. So that hopefully makes sense to everyone. So my challenge is how do I get it on this front page and in general in the actual single post so that I can say, hey, the director using a tag that's solved, I have to figure out the two directors now. But the other one is I don't want this really to say categories, I want it to say genre horror. I want it to say a media type movie. I want it to say format VHS. But because the categories and the way full site editor works, I can only pull in categories like it was a bottom of a post. I can't parse them and add information in front of them. So I'm not sure how clear that was, but that's actually the challenge I'm facing right now. And I think after that, I'm probably going to become a gravity form expert. I'll be giving, you know, paid talks on it. You know, that's the way the world with this stuff, isn't it? So any help from the cheap seats would be greatly appreciated. Like I call it cheap seats. Yeah, I can appreciate that. I can say like, you're going to like this. I see three options. Damn it, Tom. I want one option, me and the people. All right. So, I mean, one is you can merge those things into the post body as individual pieces. Since they're coming in through the form as individual things and there's not going to be more than one, you're not going to run into the same problems that you're going to run into with the director's thing where you have multiple pieces. So you could merge them into the form body and then decide what of the body you're showing right there. You know, that's a little bit messy in certain ways, but I'm sure you have the ability to show the content and determining what the content is and whether like that will work for you or not. I don't know. You know, you could hide or show things on the front page via CSS by the ID of the page or whatever to, but maybe that's ugly. But it is a possibility. I think your other route maybe is to do what you were talking about earlier with parent categories and children and then doing something a little bit custom where it essentially labels per post with the parent and then displays the child, the single child of that parent on that display. And your third option, which I think is probably the most straightforward in terms of like making it make sense is to go to custom taxonomy route. So I know that there are various plugins to make custom taxonomy structures, but I mean, that's kind of what you want there. You want genre, you want media type, you want, I don't know what the other thing is, but sometimes that's, yeah, format is easier. It's just an easier mapping and then you just get into how to display it. There's probably six or seven other ways you could do it, but those are the three that come to mind right now. I love that. And so that's my homework. I still have homework from Gravity Forms. And this class isn't over for me. It's really just beginning, but I am gonna try the custom taxonomies and I'll be talking with you about that and chatting because you've been really helpful getting I think this that far, but even the way you're customizing your responses and going back to your 2017 posts where you worked out some of this stuff with like short codes and how you do that was really like, you know, I feel like, again, I'm rereading your blog now with a new lens of understanding for the past five years. Was it, wasn't entirely drivel in the past, but I'm living like 98%. Well, and I think what you're saying there though is true, you can do all this stuff with programming, but often you can do all of it with a combination of the full side editor and some plugins with some short codes. You can certainly display custom taxonomies that way. Nothing to stop you from writing your own stuff if you'd like to, but I mean, there's just a million ways to get at this through a million different patterns, which is intimidating in some ways, but I think, I think freeing as well, you just start to get an opinion about it. It's like food, there's a million choices in food. Just decide what you like and eat that, occasionally try something else. Like don't make this crazy. You don't have to try all the food in the world. Certainly not all in one meal. So like, I mean, that's the way I look at it. Just like take it easy. It's cool that there's a million different types of food. Try some stuff. I think like raw food would be equivalent to like coding. Yeah, not that, what's not the liver king. The guy who eats for all liver all the time runs around. I don't know if he's popular or not, but he is where I live. The sweet issue. Paleo Wordpress is just coding it yourself, right? Is that what you're saying? Yeah, maybe, maybe that's what it is. All you wanna cut. Awesome. All right. So this is what I've been working on. So what we initially had, I guess I'll pull up that site. So for undergraduate research forum, we now moved to having an online version of it as well as the in-person big posters. So what this has become is they are each posts. So like this was this year and it's funny because the second half or the, so these initial posters like down here were submitted through Ninja Forms and then like halfway through I switched it to gravity forms, but it just is sort of has information, a picture for the featured image, a link to the PDF and then the abstract. And that's really what that is. So what I wanted to do is I wanted to take the form and sort of like look at it, analyze it and sort of build it out a little bit better. So it was a little bit more intuitive. So here's what I sort of got. So I have originally it was three separate pages where it was like poster information, student information and then mentor information. And then I have added a little conditional logic and hiding and stuff like that. So initially there were two separate forms, one for a video and one for a poster. Well, there's just one now because I just have this stuff down here change based on what you select. Right now the upload of your poster is in the live talk because I was testing something else. Oh, and so that's why it's here but normally it would be under the poster one because I was also testing putting these on the events plugin. So that's what this extra stuff down here is but typically they would choose, you know what session they'd have. And then next they're able to put in the student authors and what I did here was I did conditional logic. So, you know, if it's three authors then you have information for all three. If it's only two, you're only gonna see the two. And that same goes for the mentors as well. And how I did that sort of on the back end is I put conditional logic on the section instead of the individual parts. Cause when I first did this in March I put it on the individual parts and then I had to like edit each one. But, you know, the viewing one is for, well, the first author is always gonna be there so that doesn't have conditional logic but like the section is where the conditional logic went. So Monica, can I ask you a question there? One of the things I'm working through and so this is cool that you're doing it like this is one of the things I'm working through is multiple directors, right? And so here it's similar as you're doing with multiple authors. So when you did one author you were able to select how many authors there are and then it just came up with those, the data you wanted to put in for each of those authors which is more than just a name. It's actually department, et cetera, right? I like that. So I did the logic of like, so this one would be, you know, you will, two authors to show up if it's not, if one author isn't selected. So the conditional logic is a little bit different for each one, just because of the nature of, you know, I don't know, logic. It's an elegant solution to that though, to having multiple authors. Yeah, and that and doing it on the section instead of each of these parts because that's what I did before. It was rough, but yeah, I did that. And then of course I used the post creation as well. This first one, I don't name any of them. I'd leave the default name, so, you know, that's that. But I take it, we keep them as drafts before we publish them. I think on our actual site I switched this to being scheduled to post. So then I didn't have to worry about posting them. And the schedule to post was like the date of the posters talk that we had in our library. But then I just have the basic names. And I think going forward, I probably could add some conditional logic here because, you know, it'll come out like, oh, you don't have author two, author three, author four. This is just gonna be blank space. So just sort of cleaning that up, moving forward. But yeah. Oh, and then I would assign the category of, I don't have any on this one because this is my testing site, but assigning the category of the year so that we go back here and we can look back at all of the presentations and continue to look on for that. And on this site we would, I would be using the, I believe these are tags. Yeah, the tag of whether it's a poster or like a live talk. Yeah. I have to say I'm also liking for the purposes of media like I like the idea of the poster image and then the little description beneath. How did you set, is that just a particular theme you're using that works particularly with tiles because it's nice. This right here, yeah, this was set up by Taylor. I don't know. I don't remember what theme this is. I spent a long time finding a theme that would look just like that. And I think I may have done a little bit of CSS to like eliminate the post. Yes. Like the preview text. I forget what that's called in WordPress. Yes, there's. Excerpt. Yeah, very little is spend on. Yeah, I have a tool called full site editor that's going to help you get there. Yeah. And to be fair, like, I think this was, this site's like a year and a half old now. Yeah. So yeah, it was, you had it up and running for 2021 and site editor wasn't a thing then and no. I like it. This is a great example. Yeah. And you can see with all of my tests, all of my draft posts when I was testing it that they did indeed make posts. So like if I go here, actually, I don't know if the, yeah, the picture is here. I don't know if the featured image, it took me, yeah, the featured images here and everything. So if we preview this, here was the thing. Has no body because I didn't fill out any of those things when I was testing it. I only did things, but yeah. Tell you one of the best tips from the workshop was when you fill out a form, just go back. So you can fill it out again. Yeah. Cause I did that a million times trying to figure out my mistakes. I really, I like the idea too that because of what you're working with here, you know, it's just, it's creating posts and WordPress that you can rip the old form out, put a new one and it's a totally different tool and it to the end user is seamless, right? Like it doesn't matter at all. That is kind of the flip side of one of the things that came up once or twice, probably in this series already, which was like, well, you know, like when you make a post, it's made and it's done. And sorry, the content of the post, right? You can style it, right? But in this case, that's a huge benefit, right? So it's nice that you can work on a new form without having to worry about it affecting the 2021 version of the site, you know? Yes, yeah, that was really nice that all of that was preserved. And I was able to export all of the entries as a CSV. If I ever needed that, I just, I have it just in case and you can do that with gravity forms as well if you, you know, switch off of it. But yeah, you can see up here, we had a submit poster, there was a submit video and then they created an event registration this year when we first, you know, when they were reevaluating, okay, now what do we do this year? Probably didn't need the event registration different submit poster, but now it's going to be, I'll be able to say here is one form that you will need and it should be a lot easier. The only issue I had was sometimes submitting with uploading a PDF was kind of finicky. If it aired while it was submitting, I would get the form entry itself, but it would not create, it would create a post but it would have nothing in it. So that was a little frustrated and I don't know if that's a bug. I'm assuming it's a bug, I think Taylor mentioned it. That's something I had last year with it. It was an issue with Ninja Forms too, so I don't know. Yeah, I think it's actually, because we're kind of asking a lot from WordPress here because students are submitting a PDF and then WordPress of course stores a PDF but it also has to convert it to an image. And so I think it's probably a bug in whatever underlying program it's using to do that, like image magic or something, you know? And I tracked it down when I was doing this to like a literal specific version of PowerPoint that those particular students were using and those weren't, I don't have a lot of love for PowerPoint but it turns out that particular version doesn't generate valid PDF files in some cases. So it's really cool. Yeah, I still haven't been able to figure out directly what the bug is, at least for Gravity Forms pinpointing on the PDF because how I have this one is it doesn't also make an image because I was just having issues with that. So I just asked them to submit two different versions of it with Bioformats because I was like, if you're creating this work, creating a poster, you should be able to export it both ways. And if not, they could come to me for help, so. Also a good demonstration on that side, how you're using it for not only poster submissions but registration events, like you can add people to the site, like we saw a bunch of different options, like with the site registration and bringing people into a WordPress site, if that's gonna be like, you know, events site or some place where you have a conference and then, you know, it's an online conference. So next to that person's profile is a link to their site. Like, you know, you could start to get, you know, you could see where these forms could start to build an entire ecosystem for an event site pretty easily based on that. It's pretty cool. All right, Tom, this is like parallel form creations. Like, is this like, I don't know, were we going into parallel worlds here? What's happening? Something like that. All right, so I think this is- And you wanna come by the way. Yeah. I think this is kind of interesting in that it's gonna do things with three different forms. It's gonna show you how you can update, both get gravity forms entries and use them like as post content without actually creating the post itself with the data inside it and a couple other things. So I don't know, this is kind of weird, but maybe it'll be cool in terms of sketching out like some possibilities. So first I'll just show you real quick the registration thing. So what we've got going on, yeah, is no matter where you go on this site, if you're not logged in, it's gonna kick you through to this page where we'll say like, are you, I haven't added the do you already exist button, but it'll be there. And if not, it lets you register and it lets you focus on this idea of like, the whole basis of this is that students in this translation program are gonna choose something like juggling or yoga or running that they're gonna do in parallel with the translation stuff they're practicing and then kind of compare how they're learning in two different spheres, which is kind of a cool idea, right? And so what this thing does is there's a registration one. It's got that data in our settings. We got user registration and it's making the names and doing all that stuff. And it's assigning them to a certain role, which is one I created called parallel practice student and all they can do is see their own page and it's also creating a post and setting this user as a post author. So what it does is it makes one of these. See, we got monkey, deluca. When we look in here, it's empty, right? But when we look on the front end, it has stuff and these things are the practice logs. So what I can do here is say, I'm gonna add some practice. I'm gonna add 12 minutes and 24 minutes, practice logging. Good, blah, blah, blah, blah, all right. I lose my patience. This I just added yesterday based on some conversation so it's not fully integrated, but you'll get the idea. So I hit submit, yay. Oh, that's right. I'm not monkey, deluca. One quick, quick thing. Because it knows who I am when I submit and so it logs that user as the person. Sometimes I hate myself. You're using like user registration. So whenever someone logs in and logs, you'll know who it's for. And when they're on this page, it knows who the author of the page is and it knows who is submitting the content. So when I add the practice stuff, this is the danger of showing stuff that's live, right? Like I mess around there. And then it's charting it, right? And as I enter more things, it builds this accordion layout of everything I've entered. And this is referencing the data in gravity forms rather than content in the actual post. Because remember, there is nothing here, which is kind of cool. And then that get into the idea of like, all right, well, if they make a typo or something and want to edit it, how do they do it? And if you click the edit button, it brings the form back up. It fills it in with the information that's already there. Let's make this 22. And then when I submit it, there we go, it changed it. So that is actually updating the gravity forms entry for this particular submission. And each one, the little button here, it knows where it is in the entry and fills in the right stuff. So, you know, that's, yeah. It's editing the entry. And when you're talking about parallel entries like you are, that's recording in that entry, both the skill that is translation and the skill that's maybe yoga or juggling, is that right? Yes. So the idea is the, what I tried to do in the entry is like, see how this is dark blue and this is gray. So when you add a practice item, the dark blue one's your translation practice and the gray one is your other practice. And these are the things that the instructor wants you to reflect on. How many minutes did you spend? What skill in translation did you practice? What went well? What made you question things? And then she just added this yesterday, which is this idea of reflection patterns for various things, which is why they're not displaying right now. But you decide what you wanna reflect on, you write those things. And when you hit submit, it'll be part of this display. But, you know, it's kind of fun in that, like in this field, in this form for practice, there's a hidden field for comments. And so what this comment button does is, it triggers the comment form, right? And the comment form only has two fields. It has this comment one, it has a hidden one that knows the ID of the entry that I'm commenting on. That is awesome actually. You know what I'm thinking of, Tom, can I see this two things? One of them is I'm thinking of, wow, like that's kind of like what Apple does when they track your steps, right? Like they have that graph where like, they're showing you the data over time. So like people can now link that to their study. So it's really relevant in that regard. But the other thing that's crazy is, one of the things we wanna wrap our head around in there, really expensive tools is change management, right? At the point of doing that for like, things we do to serve is whatever. And we have a way of doing it, but I don't think it's as detailed, not only with the particular entries, like when to do it, but the ability to edit it and then comment on it is super interesting as a kind of a more sophisticated way and it not being dependent on anyone post and all that being in a CSV and being exportable is super interesting. So anyway, it's giving me ideas just seeing it, not only the charting of stuff, like when did we make major changes, right? Like that whole visual of like when time was spent and how much and then what changes were made, when is super interesting as a way of visualizing it. So anyway, it'll be cool. I love the like idea. So it wasn't my idea to do this, but she said she wanted to do it in this random conversation and we built the first version in Google Forms with spreadsheets and doing the charting there. And that was cool, but we couldn't really control the process and like make it prettier in certain ways, cause there's only so nice you can make a Google Sheet look. And we couldn't kind of build some of these interaction patterns in, but that's what this is. This is the Google Chart API, accessing the data and displaying the stuff. I think the reflective nature of it and trying to get people to think about how they learn to do things is like super awesome, conceptually. And then what I thought y'all would like here is like this idea of gravity forms as an API, which you can use to display or interact with the data. And that's what I'm doing, bouncing it back and forth. And even like, I think we're at a stage where maybe we'll care about this, but if I'm wrong, I'm wrong. Notice that I made a comment entry just then, right? But there are no entries here cause I don't really need that. I could just, I just mapped this forms entry into parallel practice to update the form and then delete it the entry as if it never happened. So in that way, you can like make forms that do just the little tiny bit you need when you need it. And then they don't actually clutter things up with extra data, which I thought was kind of cool. It's like middleware forms. Yeah, yeah. Yeah. And like originally I did this in a harder way. Like I had two of these parallel practice forms, one for editing and I was like, wait a minute, I don't need to do this. And, you know, I wrote a blog post about it, but conceptually I think it's kind of fun. And you just get into these ideas about like, how do you control the experience for people? So like, if I come here as a student, let's go, I think it'll let me log in. Yeah, so. All right, see how it automatically redirected me? It took me to the right place. It doesn't show the menu bar. It didn't bring me into the back end to show me a dashboard that I'm not really gonna use. You know, like, so that's part of this is like just starting to control the experience in lots of ways, not in a like I'm controlling you, but in a like, hey, let's how pleasant can we make this? And that's the kind of stuff you can do with a little bit of customization, a little bit of learning how the pieces work and fit together and having the desire to do something. So can I ask you with the experience of kicking someone directly to their data page based on their registration user, I imagine, are you using something like redirect this user, like don't show dashboard as a separate plugin or are you doing actually something within the gravity forms to push them as soon as they come in? Like maybe we're getting deep in the weeds, but I'm interested in like, is that just a suite of plugins or is that something you're doing basically via code or through gravity forms? Yeah, I think that one is just this. It just says like, who are you now that you've logged in or I send you to the right place? Yeah, so you're just putting a filter in there and redirecting them. Yeah, yeah. So I mean, that's like broader than gravity forms because gravity forms is really just for the practice logging and to get them registered the first time. And after that, they're gonna interact with WordPress in a more normal way, like through logins and stuff. And so we need to have it at a base or level to make sure that they never end up in weird places. You know, this is like a new tool, right? This is like splotta. It's not splot, it's not just a site, it's data. It's small data application collection, splotta. Well, I think, I mean, like to me, this is the cool thing. Like whatever pattern of collection you want, whatever experience you want, you can do it and you can do it without having to build forms from scratch, which is what I like. It's like writing HTML forms would totally suck. And instead, I can do this pretty quickly. I can glob it together with pieces and I can treat my splotta problems without too much pay. You have a splotta problem. I have a splotta problem. It's splotta. It's not splot now. It's splotta. It's a new form of splot. But yeah, and then I mean, like that's one way you could do it, but like whatever you put in there is available. And I think that is something that we don't normally see. We see it when we push it all the way into a post as content. We might see it if we go to entries, but that same data is available to you just like a WordPress query block and you can ask for stuff and display that stuff in whatever way. And then it's nice for her too. This faculty member is going to be doing research and she was like, can I get just this data? Can I get just that data? And I was like, look, we can export the CSV of any of the stuff with or without context that you want because she didn't want the names associated. So that's another thing that's just built in there that you don't have to build from scratch. That is really awesome and inspiring. Like I was, I mean, we had talked to this at the beginning, but as we get more complex, I think it's right to suggest these are the things that are possible. And I think this really goes a long way towards suggesting, it's not just another form tool, right? Depending upon possibilities with the API and bringing in visualization and entries and this middleware form content, like it does become an application framework. I think that is really what's powerful. I mean, that's the idea of splot a joke, but that's the idea. And then this is almost free form application building through gravity form. Yeah. And it's all, all the stuff is kind of built into it, like this, the GF API thing. So once you know certain things exist, then you can kind of start to use them in different ways. And I've never, I hadn't ever done update entry before this site. You know what I mean? I keep trying to say this, but like I am not a programmer, you know what I mean? Like I think you believe me, like I can write stuff now, but like, I mean, mainly I just like mess around until it works. And I've gotten better at that over time and faster. And now I've got at least some memory of the stuff, but like I'm nothing special here. Like anybody who feels like messing around with this and has the time can learn to do this, no problem. It's a creative approach, which is what I like. But I also, what I've always liked about WordPress and, you know, blah, but it's the idea of building, working within somewhat of a structure, but then doing all these wild things and figuring what's possible without it. But I do think, you know, you've tapped into a whole series of tools that's strung together, you know, making that distinction between programmer and non-programmer starts to get us into a little bit of borderlands, which I like. Which I think, because, you know, many people who are in that situation, Alan and others like Alan Levine, who was I'm referring to, like, I'm not really a programmer, but at a certain point when you're building full applications that faculty are using to get data for their students, there's a point at which you gotta be like, well then what is programming? Yeah, man, I guess so. Well, and I'm just trying to convince people like, if you wanna do this, you can. Yeah. Because it seems scary and it is intimidating. But, you know, there are nice people out here who help you. There are nice things that exist that you can then use and it just happens over time. All of a sudden you know how to do stuff and you're like, this is kinda weird. I'm really surprised I wrote all this gibberish and it doesn't set the world on fire. It actually does something positive, so. That's awesome. Well, speaking of scary and getting into new worlds, one of the last things we wanted to touch on, and like this could even spin out to its own thing eventually, but it's nice to touch on, because one of the things that came up last week and maybe if, I think Taylor, I don't know if you all know this, but like I'm getting so good at gravity forms that I used the conditional logic that was Taylor and Anika had enough to say that I hide them. But at the point, so this is all, I'm actually using the gravity forms API in StreamYard to hide them. That's not where I'm at. That's my expert. I am a programmer, I'm sorry. I just want to be clear, but if they ever want to remove that conditional logic and rejoin us, feel free. Cause I keep my code open, that's completely open source. But I do want to say that one of the things we wanted to touch on and we talked about last week was this idea of web books. And that's came up because one of the things that gravity forms in addition to many things, and I think we saw it when we looked at your example, either Anika or Tom, is there was a whole bunch of applications that it was like, you know, Mailchimp, you talked about that Taylor or Slack. And these are built-in integrations, essentially built-in web books. Can we take a second here to talk a little bit about what we understand? What we mean when we say web book and then what are some good examples of that and why are we talking about that in relationship to gravity forms? What's the link? Why? Sure. Yeah. How do we want to do this? I can kind of talk about the hard way of web books because I think gravity forms is kind of an easy on ramp in some ways, or maybe easier. But I think web books are essentially, in my opinion, just like a very tiny subset, one type of like an API, what you can do in an API. So usually it's just, hey, we're gonna send text to this thing that's listening and waiting for us to send some text. And then it knows how to process that and do something with it. So I've done a couple things with web hooks in like Zendesk because Zendesk can send a web hook and then other services can listen for that web hook and do stuff with it. So the common one for us at Reclaim is we want to have like a ticket notification in a very specific way in a very specific place in Slack. And so we can have Zendesk send a web hook out and we can configure it in Zendesk and then Slack is listening. And then it receives that message from Zendesk and displays it as a message in Slack. So I put an example, you'd have to scroll up, but I can show just really quick kind of like what that looks like. But basically, in the Zendesk end, we have to configure it and tell it like, all right, when am I sending a web hook? And then the meat of it is, you have to write out the JSON, which is just a way to format text essentially. And obviously you have to know how to do this. So then anything that can receive a web hook should have some documentation on what it expects to receive. So Slack's documentation is pretty good on this. So it says, hey, how do I send a message using an incoming web hook, right? It's outgoing from Zendesk incoming into Slack. So they have a whole documentation on how you enable that functionality. And then they have a basic like, all right, and your thing that's sending a web hook should look like this. And the reason I'm even showing this is just to say that if you're looking to start with this, what you're probably looking is something that will take text that happens inside of curly braces in a lot of cases, a lot of curly braces, an obscene amount of curly braces. And then you, and that's JSON. Just the fact that there's curly braces doesn't necessarily make a JSON. But for our purposes, that often is all you kind of need to know. And then so Zendesk is sending that and Slack's picking it up. So here's like an example of a really simple one that's just a single message that says, hello world. And then they have some more examples of something more complicated. In my case, in the Zendesk one, we wanted to say, hey, a ticket in this queue has been updated. So I wanted it to be formatted a certain way to stand out. So I have a little bit of information in there. And then this is all just formatted texts from Zendesk. So the trick with this though is like Zendesk is a expensive tool. I don't know what levels, I don't know if every Zendesk can do web hooks. I know ours at Reclaim can. And the other way that a lot of folks end up doing web hooks is like you can write a script yourself to send a web hook, like a Python thing. And I've done that too, but that requires some fiddling. So the fact that Gravity Forms has built in is really kind of cool. So that's kind of my example of the non-Gravity Forms way, but I'm kind of curious to see how Gravity Forms handles it. Yeah, that's interesting too, because one of the things on that point, I figured this out, well, I didn't really figure anything out. I kind of stumbled upon this. We run a radio station. You may have heard of it. It's called DS106 Radio for life. And one of the things it's run on an open source software called Azurecast, which has web hooks. And I noticed that, and then I realized that what their web hooks do to your point, Taylor, and it kind of makes sense for me is, it actually only sends information to wherever you want it. So for example, we send it to Twitter. Anytime someone breaks in live, it will create a little like message, like ex user is live playing song and title. And that's what we'll go. And whenever that song and title change, that's the other message it sends. And Tim wrote some basic PHP, basically a homemade web hook, because the one that they were using in Azurecast with the WordPress, I mean, the Twitter API keys and stuff wasn't really working for some reason. So he customized wrote a small web hook that did all of that. Is what his code is doing? I believe so. It actually has the URL. So rather than going to Twitter directly, it's going to his PHP code, which is then doing that. And that's where it's integrating with the API of Twitter. So it's sending that message. So it's actually... I actually think it's probably, his code is receiving the web hook and then posting the Twitter based on that potentially. Maybe, yeah. That makes sense. That would be interesting to see because if Azurecast has that, we've like, there's all kinds of things you could do that, right? Like we could put, if Azurecast web hooks are configurable, we could have it post right to like in our Slack. Exactly. Jim is on DS 106 radio right now. Like that could be kind of cool or Discord or I don't know, anything that works with web hooks, right? But it is important to know what can receive and send. That's kind of the thing that always catches me up is I'll go, Zendesk supports web hooks. And so sometimes I get mixed up with, can I submit a ticket that way? And the answer is no, you want to use the full Zendesk API to do that. And I could go down that route, but that's a little bit more work. And so that's always the thing that I have trouble until I start digging into this stuff. I think Zendesk can only send out that, I mean, I'm sorry. I think Azurecast could only send out that information. It doesn't receive any that I know of. And that makes sense, right? Cause what would it be receiving? I guess you could maybe update the player metadata. A song request, which is what I was going to do through the form. Here's a form to request a song, but I don't see where the web hook would integrate into Azurecast, only it pushes out. But that's something for us to look at. But that helped me wrap my head around web hooks. As to the question you posed around gravity forms, that's where it seems like a lot of stuff's done for us. Is that fair, Tom? Like a lot of the web hooks stuff, like gravity forms, like don't even worry about it. Here's the integration. Before, and Tom, is it Jason or Jason? I've never known how to pronounce it, do you know? I've heard both. I actually saw a video of it being said like 15 different ways somehow, like, so I don't worry about it. Okay, so that's not the right way, cool. I don't think so. I think it's like gif, gif, jif. I always say jisun. Gifah. Jisun, you mean jisun? I like to stay formal. I just call it a graphics interchange format because, I mean, once you start abbreviating things, I mean, you get, that's just overly familiar. And I think this is the deal, right? Like there are like all these nice pre-built integrations where you don't really have to figure out most of this stuff and they tend to be a little bit fancier than just web hooks. They tend to be API level integrations or closer to those. There's a lot more sophistication in the messaging and a lot more customization. Like I was like, oh, maybe I'll do something with Trello. And then I was like, gravity forms has a Trello thing. I was like, and I know they already have a, you know, a Slack integration that's pretty nice, you know? And then I kept going down the list and I was like, I'm running out of things I have. And that was when I asked Taylor if he would make me a web hook for Discord because I don't have my own Discord, but y'all do. And that's kind of where we ended up with our example. But I don't know if we wanna get into that yet. Do we have any other pieces we wanna look at prior to this? No? You're muted, Jim. That's my long way of saying no. Okay. Well, let me show you a couple of things here real quick. So one, prior to starting to mess around with any of this, what I encourage you to do is go to your Gravity Forms setting, look down here. This is actually a good thing to look at in general. So I'm assuming you already have the web hooks extension turned on and activate it. But under logging, notice you can log stuff for all of these different things. And if you have different plugins for Gravity Forms turned on, it gives you access to different logging information. You can view the log, you can delete the log. This is all on my development thing, so I'm not really worried about it. But if you were doing some weird stuff where you're worried about privacy, you wanna be aware that in some world, somebody could maybe get to that logging. And that's why Gravity Forms is kinda freaking out warning me about that here. But I never ask anyone for any interesting information like credit cards or stuff, so I'm probably pretty good. No personal stories, no compromising images. Just like translation practices. In any case, what this will help you do is not go insane. One of the best ways to go insane is to do stuff and not be able to tell anything about what is happening. So whenever possible, look at logs, look at error stuff. Have that stuff turned on, even if you're confident with what's happening. That is something that I relearn every so often when I'm like, well, one plus one equals two. I'm confident of that. And then I'll realize like I need to check because it turned out it was writing that as 11. It was just mashing the two ones together because I did something stupid. So whenever possible, check your stuff and part of that is enabling logging. And even with regular Gravity Forms, might help you figure out that PDF upload issue. Might not, but I flip it on. If I'm ever having issues with a thing and I look back at the logs and say like, was anything there? Does it mean anything I can understand? Maybe, maybe not. Maybe it just gives me something to cut and paste in Google, which I do all the time. Or it gives me some stuff I could throw on Stack Overflow or the Gravity Help stuff and request some assistance. But it gives details, which is the way away from madness. When I first learned how to do this stuff, I was just like, I like blindly put some stuff out there and then like an idiot spend like an hour like adjusting things without having error logging or anything turned on. So I can never tell what was happening and I spent a lot of terrible time that way. So, that's my... I take real personal offense because I've only used Gravity Forms that way. Well, in most cases, I didn't know that was there. So I'm really glad to know that that is there. Like Gravity Forms usually works, you know, most of the time. And so you don't need logging so much. But if you're doing programming or stuff in WordPress, I'm happy to show people some other ways to make sure you're seeing your errors. Like that's the reason I had an error on the other page when I was doing the demo because I had errors turned on so that I won't be like mysteriously having things happen that I don't understand. But in any case, now we got a log. You can see like when I go to my webhooks thing, I have a bunch of stuff here. We won't get into it at the moment, but like stuff is happening. I can kind of see how stuff is written, you know, there are things in here. And that's good, that's information. So those logs, you definitely want when you're experimenting with things. And like I said, depending on which external extra plugins you have turned on will determine what information you have here once they're activated. And you can of course uncheck or check them if you don't need the logs of the other stuff. So nice, handy, highly recommended. I'm with you and logging is turned on. Awesome. So I'm gonna share this video in one second. So first, I'll show you one place that is in part because Postman is a thing that lets you test is a thing that lets you test like APIs and stuff like this, webhooks, things like that. You don't need to do it. It's kind of nice in that it limits the amount of variables involved, you know what I mean? Cause if we put it in gravity forms, we have whatever's going on in gravity forms when it processes data, there's kind of trying to figure out how gravity forms works. And it's often nice to have like the pure vanilla, no intermediary did this thing work type of process. And Postman lets you do that in a pretty easy way. It's free, Ken Lane works for it. So we like Ken Lane as Audrey Waters partner prior to her getting out of ed tech like a sensible individual. The API evangelist. That's right, the API evangelist. So what I did just to make it super simple, I'll just show you what this example looks like. So this is the URL that Taylor gave me. I just cut and pasted it in. That's the URL that it's sending the message to. That's where Discord is listening. So if we're gonna stick with that. So this is, if you know that URL, you can send messages to it, which is why it's, we'll obscure it in the publish thing or you can turn off the API or whatever just to keep whatever. But if I gave this to miscreants, they could send evil messages to this location assuming they knew how. The nice thing is we don't have any query parameters to fill out. We just have a body. So this is the fancy body. I'm gonna get rid of it. And then I'll just write a simple one. I think I can do it just like this if I'm remembering correctly. And this is where you get into like, I can say whatever I want to the thing that's listening, but if I don't say it in the right way, the ear will not hear me and thus no things will happen. I think if I remember correctly, this is what I can do. I'm gonna hit send and see if it happens. Okay, so I know that works, right? And it's- Nice. Yeah, that's not super exciting, right? But there are fancier things I could do. Like I'll send a more complex message. And you see, this is what Taylor's saying. You're looking at all these curly brackets, curly braces I think they call, we got some square braces. We got all the braces you could ever want in here, colons, all sorts of exciting punctuation. Then I send this along and hey, that works too. And look, I stole Jim Groom's identity, sort of. And could I do this? I don't know. I'll send another message. Oh wow. So now the bot's name is Jim Groom, you know, so you can mess around with this stuff. And I'm kind of surprised what it lets me do actually, which is kind of cool. But- Wait a second. Wait, hold on a second. I was like, what? I can do this? This is kind of cool. And it's cool. Which is why you don't want to give this to someone. It's cool, like I think this kind of thing is a good example of like that foundational, like you're like messing with this shows how APIs work, right? Or if you've ever used ifIFTT or Zapier, most of what that's doing is webhooks and other API calls, right? So like it's the same thing. We have the Discord integration for pulling in Twitter with the hashtag reclaimed edtech and that will change the username based on the name of the tweet. It's doing this, exactly. Like it's really cool. So let's, so now like what that helps me see though is like that it works, right? So I'm not insane. I can do a thing. I have the right permissions. Like, you know what I mean? I can feel confident as I move to another thing with a little bit more space and complexity in between my thing and the thing I want to happen. And I can be like, all right, if it starts to fail and I'm doing the same stuff, I can probably figure out why. So that's why I do little checks like that. It's like sanity checks. And I recommend it with everything. Webhooks, programming, talking to humans, do little sanity checks every once in a while. So with the webhooks piece, I've got one. I've got one that's named. You name it whatever you want. In this case, I'll share the URL here if you want to play along with me. So the URL is this one. All right. And we can put that in our request URL. It means I can get on postman and do that or just build a form and try it there. Yeah, either one. Let's do it with the form since I'm already here. Because I've given you the sanity check ahead of time. But if people want to, we can break down some of the postman stuff afterwards. I think postman would be an awesome follow-up talking about some basic APIs that we could talk about that. But that would be amazing, frankly. Yeah. And that's what I like. This little webhook thing, you're just dipping your toes into this idea of sending formatted JSON or JSON or JSON right at stuff. And what we're doing is we're making a post. So there are other things you can do here. But we're posting, and we're doing it with JSON. All right. And right now, we don't have to have any headers or anything. So that's cool. It's dead simple so far, right? We've only really done one thing, which is the URL and made sure that says Post and that says JSON. Because sometimes, and this is where it gets a little bit awkward in terms of describing like, this is how you do webhooks. It depends on the webhook. Like here, we might have to put in like in the request headers. Like sometimes they're like, you need to prove, you need to say like you're a particular type of browser or you need to include this API key and this password type of thing and like this other thing and your blood type. You have to put those in as header elements or whatever. In this case, we don't have to do any of that, which is awesome. And then, if you'll recall, like my simple version here, I think I just did this. I did content in the midst of some curly brackets. That was the simple version. That was the simple one. And then here, I got a key. I wrote it as content and let's start off with. So in this case, I'm just saving it and I'm setting the value to I'm a form. All right, now this isn't particularly exciting. I put some gibberish in here because we're not even referencing it and when I hit submit, there we go. Said I'm a form. Now, look over here. What did you enter the content as? Content, the value is just custom value or you just put it on? Yeah. Yeah, I just wrote in. Yeah, it's a custom value. I'm a form. I'm sorry. Gotcha. Okay. Because it does by default kind of guide you to do something more sensible, which is like use some of this form stuff. Dummy. That's what this is all about. And so I will take this form data and then do nothing with it every time. Just totally ignore it. It doesn't matter. But we could do something like this. We got a question. It could be one thing. I don't really like that. But we could stack things that way. I'm going to do it this way. I'm going to do custom value and I'm going to use the merge tags. So I could do question and then I'm going to use a little bit of the markdown stuff to do a question with a hidden answer. So if you put two pipes on either side of a thing in Discord, it will hide it until you click on it. I didn't know that till now. All right. So there we got a little tribe called quest lyric. All right. And you see what it did. Is it updated? I forgot y'all weren't looking at this and it made it hidden. There we go. We got something else coming in. But that's kind of the base pieces of it. And you can start then to get more complex. Now, what I haven't quite figured out here is here's what I thought I could do. And this is a good time to look at logging. All right. So I found this great tutorial on this. Let me throw that in there too. Like I love this guy. He did an amazing job. And I'll put it in both places. So this is the amazing tutorial. Right. And it made it easy. Like I just cut and pasted this really complex thing. You know, so I didn't have to come up with all the pieces and go through it. Because the way that Discord writes its development stuff is not for like a basic webhook integration. Like this is for a full-on app. All right. And so it makes it hard to piece out like different pieces sometimes. Certainly not the friendliest way to do it for people just getting into this. So like there's all sorts of crap in here, including a game SDK, which is wild. It does make me kind of want to build an app. But maybe some other day. Let's build Zork inside of Gravity Forms and Discord. I mean, maybe. And this is where I reference some of the markdown stuff. Because I certainly don't have it memorized. And you can do some other wild stuff. But this is like, you can learn about webhooks. And then you have to learn about like the thing that you're webhooking to. So webhooks is like a general idea. And then there's whatever this thing is. Kind of like I can learn about cooking, but each kitchen is going to have different food, different tools and stuff like that. And I have to kind of adjust my general knowledge about cooking each time I go to a different kitchen. I know my metaphors are jumping all over the place. But, you know, that's how it is. So in any case, what I thought I could do was a little bit different than what I can do. So I can send content, you know. So we see this is the raw JSON. I made a thing called content, and I wrote some stuff in it. Right? Content's my key. The value is this. So if I looked at this, I can try another thing. Like, let's see if I can set a username. All right. We'll see if this works. So I can add another key. And I'm going to go with a custom value. Let's see if I can become Jim again. All right. I'm going to save that. And I'll say, am I Jim? And I will indicate who knows. Who knows. I do. I can attest to this. You're not Jim. Not Jim Groome. Ah, that worked. Okay. All right. So disturbing. I have to go try this. All right. Shannon, I'm going to be you just, you know. So that's a step forward. I can look back at this. And now I can go like, huh, what else can I do here? I could probably do this avatar URL. That's probably going to work. You know, we'll just try one more just for fun. So you do want to make sure always. I almost always cut and paste it. Because the minute I don't, I misspell something or get dyslexic or something. And then when I paste it and it's the same thing, I'm like, see, I knew I was right. You know, let's, let's do this. We'll get the actual reverend image here. We'll put that in there as a thing. Let's see how that works. So I'm going to save it again. Right. Now I'm a little more confident. Okay. So like this is identity theft one on one. Yeah. Yeah. All right. So that's pretty awesome. So you see how I'm like slowly breaking down this chunk of J song. And I'm kind of mapping the keys to the data sources that it expects and, and making some progress here. But I'll show you where I ended up having trouble. And actually let's look to before we go too far. Let's look at our log and see what it's been telling us. You look down here at the bottom. All right. Successful, successful stuff. Cool. Well, since it's all good stuff, I'm going to go ahead and delete it. So now when I mess this up, we'll have some nice fresh stuff to look at. All right. So this is when things get a little bit more complex, right? So if I go to embeds, if we followed my pattern, right, that's another key. Cool. But we notice a couple of things here. One, it's a square bracket. And then we have our curly score. Races. So, huh, let's try it. See what happens. So I'm only going to take a port. Well, why don't I do this? I'll take the whole thing just because why the hell not. And I know that's the end of the thing because it started with a square bracket and it ends with a square bracket. And the starting curly braces are up there. And there's only one more here, which is the ending curly brace. So I can be pretty confident that this is the right stuff. And I got it. So if I go in here and I say add a custom value, whoops, paste all that in there, I'm going to save it. And I'll submit. And that looked pretty good. And nothing happened. So let's take a look at our, let's take a look at our log here and see what it tells us. Notice what happened here. So up to this point, like we're pretty clean. But once we hit here, it kind of goes crazy trying to escape out all this stuff and make sure it's not a problem. And so I could, what we need to do is like make it not do that. And I haven't quite figured out how yet. Like, at least not in an easy way. I can't do it here. I can do it with like a, I could set that variable in the PHP. No problem. Behaves exactly as you would expect. But what I can tell from the way that this, this log is doing this is that it's, it's messing up the pattern of the JSON and making it invalid as it comes in. And I need it to treat it in a different way. And I just haven't figured out how yet. At least through the gooey interface. And some of this is like, like I don't spend a ton of time in the web hooks interface because I can do it in a different way. And so like this is that part where you're like, oh, I'm like, oh, okay. Well, how do I figure out here in this thing? Because I could do the same thing with an after submission hook and not pay any attention to this web thing at all. And just do it all in PHP land with programming. So this is what I'm talking about by like, there's the purity of postman. There's the purity of code sometimes. And then there's like what the different tools will allow you to do in an easier way. And you're always just working like, what's the fastest? What's the easiest? What do I want to do? Is it going to work for me? Is it even possible within this? And the short answer for this one is I don't know. I don't know if I can clean this up in the right way. You know, can I nest things like I just don't know and I haven't figured it out yet. And that's part of it. You're just kind of like messing around and saying like, oh, do I really want to do this thing? Do I need it? And it's harder to like, because I don't have a goal here. Like no one's on the other end going like, why isn't this working? I'm just kind of messing around. So it's hard to spend like, you know, hours trying to parse out this thing that I could do in a, in a different way. But that's, that's the start of it. And if I wanted to make this work again, I'm just going to delete that thing, save the settings and realize like it looks like for anything that ends up getting nested, I would have to just go in a different, different path. But that's, you know, the start of a webhook going into Discord and it's super cool and it's fun to play around with. And you can mess with all the top level things, which there are three, but you can mess with them. And that's, that's the start of things. I don't know if we have questions. I got a question. Yeah. What? Okay. So, so given that, so there's three top level things. What do you, are they child object? Like, is there a name for that in Jason? That, or Jason? That I, you know what I'm saying? Like, what would you call those nested? You mean Jason? I think, I think you would call them nested elements. And depending on what they are would depend, you know, on, on what? Um, so embeds has an array of nested objects. Okay. Cause sometimes that's like, Oh yeah. Not the hardest part, but that sometimes as part of it is identifying what the thing is. Now I can Google it, right? Yeah. Without question. Like if, yeah. For the longest time, I didn't know what faceted searching was called. And I would be like, well, you know, I spent a long time like trying to figure out what faceted searching was called. Um, This would have been in the early 2000s, dawn of time. Yeah. We, we don't have those, um, you know, read my thoughts search engines yet and thank God. Frankly. But, um, yeah. frankly but yeah sometimes that's the problem yeah but I absolutely as you start to vocabulary is the key to find the help and sometimes even to know how to think about the thing so I am totally on your same page with you there but yeah I thought this was kind of fun and I've never messed with discord stuff before at all you know so this guy too amazing thing and he goes through as well how to use it with postman to test it and then they list some other things that I haven't used like insomnia I don't know what insomnia is but this guy's her gal or human seems super cool and did an amazing job with this tutorial so I highly recommend checking it out and it looks like insomnia is just a postman alternative which I will not use out of loyalty to Ken Lee good job what what is the avatar URL like how do you get the avatar in there I saw that you both did it and I'm looking at mine and I'm trying to get the avatar it didn't show up I used a URL hold on I'm going let me just go back to my form I'm going into settings I'm gonna look at webhooks and I put in avatar underscore URL and then the URL is that right yeah that should be right you want to share your screen so we can see it sure also we can look at your error log and see see if it says anything yeah I should go to my error log hold on I gotta I gotta do something here quickly you can't do only I can do it that's it's it's it's it knows me it knows the real Jim crew I guess we gotta we gotta get your streaming set up not so reliant on the clapper as the core technology I think I see the problem what's that is that is that an image URL yes no it's a flicker it's a flicker URL what I think you yeah okay yeah it looks you have a space after avatar URL here we go I'm I'm probably I mean it looks good looks good yeah so watch I I'm following along this has been awesome by the way I am following along and then I'm gonna go here to my little players my phone they go up here and I did this form which is a very simple form just a text and saying will my avatar please avatar honey what would you say like come you know what I mean up here up here up here there we go and then there it is it's gonna go into discord oh there you go yeah I'm a programmer exactly you're a JavaScript programmer let's look at the arrow log like you said though just to see what happened hold on ready hold on one second oh oh and I didn't even I upgraded my system while I was talking so I didn't have to do that see that's turned off now okay so let me go into let me think here for a second I'm gonna go into systems I'm just gonna go to settings yep and then I'm gonna go to logging yep knowing is half the battle and I'm gonna go to view log then I'm gonna say okay what happened here marking entry let me just disappear myself executed success everything was a success except maybe will my avatar appear yes that did because I'm following Tom bot this is the one I tried to do here but it didn't work but it's not showing an error maybe it was just not caught up yet I don't know yeah I don't know either there's nothing obvious there I'm glad I had the logs though to check right yeah I mean that's the thing yeah absolutely it literally just helped me out like I was having an issue where so what I was trying to do is make I have my form has three fields now one is what's the username what's the icon you want to use and what's the message and then I set in gravity forms you can do a default you can fill the text in and then let the user change it so I put Taylor bot and an icon in there and that was working fine and then I realized that username wasn't updating properly and it was because I just forgot to flip that field over to look at the field and not be hard coded in with the custom thing I didn't notice until I looked at the logs like oh it's sending the wrong username every time yeah I'm exactly what I told it to do yes almost always what computers do in my experience yeah I had the same thing with I had done something to manually make the fancy post in PHP and then I was messing with the the gooey side of it and going like what the hell is going on here but I know overriding the whole thing in another area so this I have to say though this was a good way to end the flex course because it actually almost opens a door for like stuff that we can look at with postman more web books what that means but the integrations like I really love playing with this and it was fun but also the fact that you can you know basically hijacked someone identity at this court is really eye-opening oh my god username thing it puts bot yeah that's true now that's pretty awesome but I think we will reconvene and we'll talk about API's and postman but this web this web hooks thing might be worth revisiting and then as a larger context for discussion around API's it's linked to a lot of the stuff we've been discussing with domains API's and how that stuff works and looking at this and this kind of integrations it is another direction I think the field is going and there's uneven development around understanding around it because it doesn't get more programmatic so it might be good to lay it there just like we did grabbing from so I love that because we're ending with the beginning in many ways and that's cool so Tom thank you for everything this month I had a blast I learned a ton it was super fun to play around with gravity forms it kind of feel like I'm back in the ITEC game that's what reclaiming tech has been about in the selfish mission so pretty cool I want to thank you for playing along and then I'll still have questions and I think we'll leave this channel and discord up and again I do want to return to the gravity forms even if it's another intro or more advanced depending upon need I would be interested if you would so yeah awesome well I've had fun hopefully it has been useful for some people and if you know y'all end up with questions happy to answer or at least talk about 17 solutions yeah I can do it but which failure you're gonna you're gonna want me to swallow Shannon just posted in discord this this is Shannon's first session and I I didn't think of the fact that yeah we just was just brought Shannon just came on board for reclaim edtech as a subscriber so that makes sense but it didn't occur to me and brings up a good point she's gonna go back and watch all the things yes definitely do that yeah we will be moving this content soon but we'll post about it before we do and it will be in the same format of you know the same they'll be available in exactly the same format so I totally recommend that and you know we'll all be hanging out in the discord still too so you have questions about something that happened three weeks ago just ask yeah and dig in Shannon with the gravity forms it's worth it and there are a lot of faculty at UMW and beyond who could really get some inspiration from some of the ideas and even just the stuff showed here by Annika today by Taylor obviously by Tom there's a lot there to dig into so I'll let us know we'll keep the channel open I want to keep going with gravity form so if you want to partner in crime as you go through learning it obviously Tom's the one that will help you I'll be more like the moral support I'll be the therapist along with the coach the life coach if you will the ed tech life coach have a new identity all right that's awesome well I think we could go on forever but let's let's say goodbye all right on three goodbye we'll see you