Curtis Cummings is a developer turned no-coder. He'll be on the stream to teach us how to use APIs!
[00:00:00] Aron: Hey Curtis, welcome to "Automate All the Things" I'm so excited to have you,
[00:00:07] Curtis: Hey Aaron, thanks for having me on really excited to get started.
[00:00:09] Aron: Yeah. So as, as always, hello to everyone in the chat, it's been a couple of weeks, uh, since I've been live. Uh, so really excited to be back behind, uh, uh, my own mic and really excited to have you Curtis, uh, here with us.
So, uh, we'll start as we always do with a quick introduction into yourself also, Curtis, tell us a little bit about you and what you do at on-deck and about.
[00:00:34] Curtis: Yeah. So, um, my background is as a software engineer, I've been doing that for close to 20 years. Uh, just a year and a half ago, I found no-code and kind of fell for it really hard, uh, gone to Twitter, gone to a bunch of communities and started, uh, interacting and, and helping people out.
Uh, I joined on-deck to run the no-code infrastructure team, and it's a really unique role and a unique team. Um, you probably don't have never heard of a no-code infrastructure team. Cause I think we're the first one to have one. Uh, but really what we do is we try to enable everyone at on-deck to be able to build no code solutions at scale and reliably, uh, which is really important when you're getting past the MVP stage.
And, um, yeah. Uh, cause I've got a background in software engineering. That means I, I know the ins and outs of things like API APIs and some of the custom scripting you can do. So it's, it's really a superpower when you compare code and code. Yeah, it's
[00:01:22] Aron: interesting. I think, you know, um, you're among one of the, I think the first developers to kind of cross over, if you will, I don't think that's the right word, because I think there's a, a gray area between code and no code, which is where a lot of the power of what we do lies.
So I'm curious, you know, what you, as a software developer kind of, when you saw this ability to create without code, uh, got you excited and so much so that I let you kind of we'll cross the chasm, if you will.
[00:01:51] Curtis: Yeah, I still do a lot of coding, uh, day in, day out. Uh, we build lots of tools for people to build on top of, for no no-code, but, uh, yeah, the first thing that attracted me was the automation stuff.
So Zapier and Integra mats, um, with those I can spin up APIs and do a bunch of things that would usually take me a solid day or a week to do, which was amazing. And then that got me into things like a dollar and builder and some of the, uh, like auto code. And now, instead of having to host all these things myself and taking maybe a week or two, to get an idea from my head to actually being able to interact with it, I can do that in hours or days.
And it's, uh, it's amazing. You can kind of capture your inspiration and not lose it. Uh, very frequently you start building something in code and then two weeks later, you're not quite as excited about that idea anymore, but with no coaching kind of ship it in and validate it almost immediately.
[00:02:39] Aron: Yeah, absolutely.
I think, you know, as someone who has a lot of ideas and not necessarily the motivation to, um, You know, stand up all of the infrastructure that it takes, you know, backend front end middleware. Uh, I I've said this on the stream before, but I started as studying to be a software engineer, but having to stand up anything took so much time that I was like, oh, it's not for me.
So similarly I got excited about, you know, the ability to have very tables, spin up a database, and then your front end is in Webflow and then, or whatever you mentioned, a dollar and others. So, um, yeah, I think I'm really excited about the stream. Cause I think we're kind of cut from the same cloth. So, um, but here we're not, we're here to talk about APIs.
So I do want to spend a moment before we dive into working with them. Maybe talk to us about what is an API, how should people think about API APIs when to use them? Uh, especially you as a software developer, you know, you use them constantly. So I think the word API gets thrown around. So what is enable.
[00:03:40] Curtis: Yeah. So, um, really where this whole a stream idea came from was I was trying to send a resource to a friend of mine who is a no-code or getting into some more advanced stuff. And I couldn't find any good resources that didn't have five or six pages of just fluff that you didn't need to know. You don't need to know what the acronym means or who invented it, or the history of all that stuff.
Um, so really I wanted a resource that you could dig right into and that's, uh, what I'd love to share today. So, uh, yeah, as a programmer, a software developer, you're using APIs, but even just as a non-technical user, you're using AP. Every single minute of every day. Um, and that's not an exaggeration. Your phone is using an API to check.
If you've got any messages, same with slack. My computer is using, uh, OBS ninja to send the feed to you. And you're sending it to YouTube, which is sending it to everyone. Who's watching, that's all through APIs. Um, and it's no different with all of the no-code tools you use, whether it's bubble builder, air, table, Zapier, Integra mat.
These are all very API heavy. And as a no coder, you can unlock all these advanced features of your existing tools and give yourself some amazing flexibility. If you can understand what these APIs are. So, um, at a high level, uh, it stands for application programming interface, which you can just throw that away right away.
You don't really need to know what it means. Um, basically it's a way for one computer to talk to another computer and that is it. Uh, There's there's a, when you're reading API docs, that's describing kind of the contract it's, it's like you and me conversing. I say, Hey, I only speak English. And these are the things I can do for you.
That's exactly what an API is doing, but their computer. So they talk a much more structured. It can't be as free form. So they basically say, Hey, these are the things I can do for you. These are the things I can provide to you as information. Here's how you have to talk to me. Here's the things I accept and here's the format they have to be in.
So once, once you've seen and understand kind of one API, you can apply that to all, all the other ones and you can kind of see, oh, this is just the contract. This is how I talked to this computer to get the information I need. And then you start, uh, wiring up all sorts of crazy things. Um, and then once you see kind of where APS are used, you, you start seeing everywhere, um, because no, no, no joke.
Everything that you do on your computer is technically being done via API APIs. So just parts of the computer or cert different servers talking to one another. Yeah,
[00:05:53] Aron: absolutely. And I think it's kind of crazy to think that. This is just a bunch of texts, right? Being, uh, essentially talk between computer that we stylize using, you know, CSS or whatever styling, but at its core, it's just one computer being like, hi, I am authenticating giving me the piece of information that I need gets stylized.
And that happens thousands of times per second. So last thing I kind of want to jump into and ask you is you mentioned contract, which I think is a really good way of thinking about, uh, how computers speak to each other via APIs. So what are some elements of that contract that folks need to think about as they're reading, maybe their first word, the big elements of the contract, uh, that they need to understand through reading the documentation before they could make an API call, which we'll explain what that is.
[00:06:46] Curtis: Yeah. So, uh, there's, there's just a few, um, obviously you can dive into the deep end on any one of these and, uh, we can do that in later streams or an extra credit, but, uh, really the first thing is a URL. So you're used to dealing with URLs every day, you visit websites, they have URLs, APS have the exact same thing.
Every API has a unique URL where you can access, uh, and talk to it. Um, it has to otherwise, um, you not know where to talk to it so same way you have a phone number, and I know how to reach you. You know how to reach different APIs because in the documentation, you'll say, Hey, this is the URL you use. Um, then there are these verbs and they seem intimidating, but they're actually pretty easy.
Um, you'll see them. There's four of them that are mainly used. A post is used to create things, uh, get, is to get information or a list of, uh, things patch is to update things and delete this delete. So what you'll see in these contracts is a. They're basically like how computers speak. So you'd never say, Hey, I want to post something or I want to patch something, but that's the way computers have to, like, everyone has to agree that these are the things we're going to do.
And these are the things that are going to support. So it sounds very computery, but that's just the nomenclature that they have. And then beyond that, uh, the other two things, uh, authorization is something you mentioned, we'll probably go lightly into it, but basically that's, uh, most, most of the APIs you're going to interact with are going to want an API key that uniquely identifies you as the user.
And that's so that if I'm looking up information, I don't get your information. I get the information in my account. Um, and then the other thing is just using Jason. So, uh, 99% of the APIs you're going to use are gonna use this, uh, Language called Jason. You've probably seen it if you've done any no-code stuff, but it's the curly braces and the square braces.
And we'll get into seeing actual examples of that when we do banner bear. But it's just, it's the way that you can pass information to the computer. So you're not passing just text. It's actually a little bit more structured and there's, there's different ways that people are. It guys are going to say, Hey, when you're creating an image, I want stuff in this format and you just follow that format and that's, that is called Jason.
[00:08:52] Aron: Okay. Okay. So what people need to remember, and I think this is where a lot of confusion or stress kind of arises is like, oh, like I've heard about this rusty API thing. What is a patch call? What is a put call, right? What is, uh, uh, uh, you know, uh, post. So what I want hope throughout this stream is forget everything, right?
We're going to go piece by piece. We're going to authenticate. We're going to find the URL. We're going to do that. And essentially this is the process that you have to go through for each API that you want to. Right. So we're going to use banner bear in this example, which is a very clean API, very simple API in a very useful one, which lets you create images automatically.
Right? And we're actually going to start with creating an API call in postman, which is just a way to just do API calls, test them out really. And it'll kind of abstract a lot of the infrastructure that you need. And then we're going to do the same API call in air table, which will make it much more functional and much more dynamic.
So with that, uh, I see we've got a bunch of folks in the chat. Uh, Corey Steven Connor. Oh wow. The regulars are here. Penny's here. So let us know in the chat. Uh, if you're excited, I'm going to go ahead and share my screen with everyone. There we go. Now everyone should see my screen and same thing
[00:10:11] Curtis: for you.
[00:10:14] Aron: Poop, poop, poop, poop. There we go. So Curtis, you should see my screen as well. And uh, so our agenda for today, Boom. So what is an API? We just cover that. So I think we can check that off our list. So I thought, Curtis, what do you think about doing an overview of the Bannerbear API? Kind of talking about all of the pieces that you just mentioned, right?
Authentication URL. Uh, uh, how do we, uh, understand that? So I'm here on Benner bear. Uh, the API documentation is where is there? Oh, they have it contextualized. So maybe first Curtis, give us an overview of what banner bear does and how does the API connect to banner bear?
[00:11:03] Curtis: Yeah. And while I do that, maybe there is an actual API reference that we might be able to go through and I can talk through the different, uh, four different pieces.
So banner bear is an image generation. Now it does video as well, but, uh, basically you can set up templates and Aaron's got one set up there and you can drag and drop different elements onto your template. Um, whether that's images or texts and even cooler stuff like graph a graph elements. Um, and then you use an API to.
Provided all the variables it needs. So if you, for example, in this one, if you want to change that text in the middle, you would actually provide that. And it would give you back an image that has the text that you provided it. So it's a really great way of generating images for like SEO, for blog articles, or if you're doing social media posts, you can use air table to wire up banner bear and generates images that you can share along with your text-based content.
So it's just a really fantastic API for generating images and videos, and it's very simple to use. And it's got a lot of great templates to get you started.
[00:12:03] Aron: So I'm just showing some examples here. I thought this one was really cool where you can dynamically insert an image. And this looks like a perfect, like, oh, I need a thumbnail for a blog post.
I also need a thumbnail for, uh, um, social media and all of that. I want to be created dynamically, but I want to spend time, you know, recreating each one of those. And this is a pain that I feel extremely deeply as someone who has to create thumbnails every week and streams every week. So I'm really actually excited about the often Curtis, I use the stream as like a personal way to create things that I would create anyway and have folks experts like you help me.
So what I'm hoping is that we are able to kind of create these for me in the future, but a bunch of really cool examples. So how does, right? How does the API kind of tie into this template where I've got some texts, I've got an image, like what does the API do and how should I think about it in the context of this.
[00:12:59] Curtis: Yeah. So if you scroll down just a little bit, um, into where it shows you kind of the Jason, uh, it kind of walks you through, it shows you at the top, you're going to be making a post-call, uh, it gives you the URL you're meant to post to. And, uh, you'll see how we wire that up and postman. And that gives you the, this giant blog and that's Jason right there.
Uh, so you see the curly braces and all the brackets, and essentially the couple of places that, uh, so you see where we have named message, and then you can change this text, whatever you changed that text to. And we can actually do this live if you just add some text into there, um, and then hit send API requests.
It'll actually, oh, uh, the name has to stay what it was. Oh, it does. Yeah. There. Yeah, because, so basically when you're looking at your template and message is the name of the thing it wants to change. And then you're just saying, Hey, here's the text I want. Um, and you can even do stuff like changing the color, but if you hit send API request, it'll give you back the image, um, that matches.
[00:13:57] Aron: Oh, he's got come. Oh, I already liked this tool. I already like it there though, as a tool for me. So how do I, so I sent, so let me just, I'm going to say back to you what you just said to me. So I made a post-call to banner bears, images, endpoint, that URL that you were talking about high authenticated because I'm in banner bear.
So it knows that I'm authenticated and this right here is the Jason, right? And essentially it says, okay, the modifications I want to make to this template are that I want to change the name. We're saying that this is a messages that I'm sending. And the text I want to show is Curtis. He is awesome. So I'm not changing the background.
I'm not changing any colors. And so how do, how, what is, what is a response? How should I interpret this? Right? Like I just, I guess this is like me sending the contract and this is them like returning what they promised, but how should I think about.
[00:14:54] Curtis: Right. So this is so when you're dealing with APIs, uh, it's not meant for humans, although humans do use it a lot now.
Uh, so when they're sending Jason back and forth, this is very much the computers talking to one another. So, uh, the contract is. Hey, you need to send me the information that was on the left. And then the contract works the other way too is saying, I'm going to send you this in response. So you, it's going to be details about like, uh, it might be echoing back some of the inputs you gave, so you can confirm, and then it's also going to give you a bunch of things like the URLs.
So there's some pings and JPEG URLs. And then, um, in a lot of APIs, especially when you're creating something using post you'll get back a unique ID. It's it's like having someone's name except we're dealing with computers here. So the names are usually a mixture of numbers and letters. They don't mean anything to us, but if you ever want to look something up by its ID, um, that's, that's useful to get back.
Uh, so just, just because of the way computers are talking to one another, they're like, Hey, you just created a thing. Here's its ID. If you ever want to use it in the future, that's, that's the ID you'd use. Um, and if you actually want to see this picture, if you scroll down just a little bit, um, in to images down below, it's different.
Um, it'll actually show you just a little bit further down further. So that's the Jason that gave it back. Yeah. Further down the page under images. It'll actually show you what image. Yeah. So this is so, so what we'll end up doing this in, in a postman, but, uh, what, what banner bear is hooked up here is like a light version of postman where it's basically say here's, here's the response you get back.
And then it's showing you the image and it'll actually show you the history of all the images you've ever generated through the API in this little, uh, UI here. Okay, great. So
[00:16:37] Aron: essentially what we're going to do is in postman, kind of recreate this API call and then two things are going to happen. We're going to have this text response that eventually an air table we're able to like interpret and put as an attachment in our air table field, but as well, postman is automatically going to like create a here so I can save that image manually.
Right. So those are the two things that are like in the contract, if you will. So our next step here is to, uh, recreate this call right here, but not from banner bear. Right? So we want to make this API call, right? So sign this contract, if you will, or implement this contract in another tool. So the tool we're going to use is postman.
So for folks who aren't familiar with postman, uh, Curtis, can you kind of give an overview of when to use postman? What's it good for, especially as a developer, as are no code? Or how should folks think about postman?
[00:17:40] Curtis: Yeah, so postman is, uh, it's a pretty advanced tool. I mean, it's got a lot of advanced stuff, but just on the face of it, the basic stuff is it lets you make all these API calls and you can change the verb you're using.
So post gets patch, you can basically explore, um, an API. So it's really great if you're jumping into an API and you want to test out like, oh, what's like, yeah, I could read the contract, but I could also just say, Hey, what happens when I get a list of images? And then you can see the Jason that comes back.
Um, there are some more advanced tools where you can actually share API, so you can actually create a big, uh, and document APIs and share those with people. So notion, for example, shares their API APIs as a postman collection that you can import. And then you can just plug in your API key and start using postman to, uh, really it's great for exploring.
So it's a really advanced tool for exploring an API. And then you can move this into say Zapier or Integra mat or into air table, like we're going to do today.
[00:18:35] Aron: Absolutely. So what I've done. Is I've created a collection called banner bear collections, or just like reusable API calls. Right. Uh, and just I'll do a quick overview of, of the, of the interface and Curtis, correct me if I'm missing anything here.
Right. So we're creating a collection and then you could have all of your API calls that relate to that collection in like a folder. Right? So you can have your authentication, which we'll talk about in a moment at the folder level, which will cascade into all of your API calls. This has two advantages.
One is not, you're not like showing your API all the time, second as a, as a streamer, it hides it, which is great. Uh, but I, I haven't done that for this specific moment. That's an example. And then the interface kind of lets you, um, How to, how to, should I say this Curtis like implement all of the different elements of that API call, right?
So the verb, the authentication, the different parameters you want to set the URL, right? So it's just an interface that is very useful. There's a hosted interface for testing and making API calls. So Curtis, walk me through, how do I replicate this call right in postman. And I think, ideally, do you want to use the API reference as it is right here?
Or do you want to use this right here?
[00:19:58] Curtis: Uh, it's probably great. Good to use both, but let's start with the API reference so we can walk through a couple things that people would want to see. So when you're looking at an API, the first thing, uh, that you'll probably see at the top is there's going to be some, some general high-level contract stuff about like what errors look like, um, how you want to authenticate.
And that's, that's a really important thing. And maybe what we can start with, it's going to tell you how, how do you tell me who you are so I can actually give you the information. So in this case, uh, and like I said before, the most common is through an API key. And so what you'll do in postman is, uh, if we go into postman, uh, in the authorization tab, you can just, uh, change that to bearer token, and then you just paste.
Yeah. You just paste the token. So where you get the token from is actually in the banner bear project,
[00:20:48] Aron: boom project.
[00:20:51] Curtis: So you'll have to go back to project home. And then at the top there's setting slash API key. Boom. And there is an API key you can use. Yep. All right.
[00:21:01] Aron: If for anyone trying to I'm on the free plan, so you can have fun.
Uh, so I just copy paste the, the, the, the token, there are a lot of these right. Different types of authentication. Uh, I met like where we're using a bearer token, because that is what they specify in their API docs. Right,
[00:21:23] Curtis: right. Yeah. So there's, there's a lot of them, like I said, most of them are going to use an API key, which is technically in technical terms, a bearer token, um, it's stuff like Google will use something called OAuth.
There's, there's a whole bunch of ways you can do these API requests, but for now we'll just use bare tokens. And that's what the vast majority of the stuff you're going to use. Uh we'll we'll accept. Okay.
[00:21:46] Aron: So first part of the contract, like I'm telling you, I'm Aaron. And then banner bear is like, yeah, but how do you, like we're saying the token and then they're like, oh, that's Erin.
Okay. Let's go like, look at their projects and see like, they're like, okay, it's cool. This is Erin. Keep going. So what is the next I'm authenticated now via by, uh, uh, postman? Is that a blank there? So what is the kind of next step as you're looking through this API of like, okay, what do I need? Verb URL.
[00:22:19] Curtis: Yeah. So all that is going to be, uh, in the core resources area. So if you click on images and every API is going to be a little different, but basically APS are talking about things. So usually in the API documentation, you can go look for the thing you're interested in. Whether that's like an email subscriber, a template in this case, it's an image.
So what it's going to show us here then on the right, it shows us we can post and we can get, so that means I can create an image and then I can get a particular image. Right? The hint there is that it's, it wants an ID. And then get, usually if it's just a like slash images, it's saying I want to get a list of images.
So give me all the images for this template, for example, I've got it. Okay.
[00:23:00] Aron: So we want to create an image. Should I imagine this right here is what we're going to kind of be using in Postmate as a first example?
[00:23:09] Curtis: Yeah. So if we go to the actual, uh, banner bear project, where we had that, uh, where we did our first request, So you click on the templates.
Yeah. So they kind of help you out here and they give you the full URL you need to use and they tell you it's a post-call. So if you could just copy that URL.
[00:23:28] Aron: Hmm. I'm going to copy this into the request, URL, remove that. And then I'm saying here is a post-call right? So now we have three elements. We have the verb, we have the URL and we're authenticated.
[00:23:42] Curtis: Right? So now with a post in particular, uh, so posting and updating, you need to pass it a whole bunch of information, usually in the form of adjacent blob. And so that's why those particular API calls you something called a body. And it's just because you can't possibly, so you may have seen API calls where there's a bunch of stuff in the URL.
Um, you can't possibly pass all that information in the URL. So there's, there's a concept of body. So if you go to your project section, we can just copy and paste that whole Jason blob and put it in the. Before we do
[00:24:13] Aron: that. How about we create let's let's actually, you know, what are the end points? Maybe just us showing it off as like we have get images.
Right? So before we create a post, how about we just do a get images? Right. So we're getting my understanding is that this should return all the images we've created so far. Is that, is that kind of understanding? Yeah. So let's give it a try. So here at the bottom, we have the response and that is essentially the kind of image we had just created.
So if I open this, I mean, oops, it opens it as a URL or we see that image that we had just created. So that's actually one of the easier verbs, if you're just getting used to an API, like a get call is usually no has no body. Right. You can just get emails or lists. Right. And it'll return all the lists. And that way, you know, that you're like authenticated properly.
You've got good from. Uh, now there we go. Well, let's move this back to posts. That was just an example. So now instead of pulling or getting the information from this end point, let's actually post to create a new image and those are great points let's go to here. Right. And we're copy pasting this whole Jason, but
[00:25:28] Curtis: yup.
Yup. That's that's good. Um, so lot of API ducks, there's a few big providers. Most of them will give you an example. Uh, so you can copy and paste that in, and then you just modify the stuff you need. Um, banner bear takes it a step further and is a lot more helpful. Um, so yeah, it's, it's fantastic that they generate this for you.
It's exactly tailored to your template. Where do
[00:25:47] Aron: I go into body? And then it seems like there's a, there's a couple of apps. Yeah. Type. So talk to me about that.
[00:25:54] Curtis: Yeah. So you can pretty much ignore all of this except for, uh, RA. And then you change it from text to Jason on the far, right. Okay. This is going to get you into 90% of the APIs for the other ones.
I'm happy to dive into those like, uh, Twitter, DMS or whatever, but mostly you don't, you don't have to do anything, but Jason, um, and this is very much a developer tool and that's why there's all these possibilities. You saw all the authorization, um, types and all these body types. Yeah. There are some really weird APIs out there, but you're probably never gonna deal with them in no-code land.
So you don't really have to deal with that. Yeah. So Curtis, this
[00:26:39] Aron: stream is a 90%. In that if you can get us 90% of the way there, we're really never going to talk about the other 10%, but if you ever hit it, uh, Curtis is, uh, is definitely a good resource on Twitter. Uh, so Colleen, if you can drop his, his Twitter handle the chat, I'll let everybody know where to go.
When you've got API questions, just make them public. Right. So make sure to not DMM, but tag him so we can all learn from that kind of your experience using an API. So here, what you're saying is make it raw, right? So we're just pasting texts and make it Jason. So it recognizes, you know, whether our Jason is properly structured.
So I'm just going to go ahead and copy paste what we had before. Right. And now let's go ahead and change the text here again to say, let me change that to say, uh, what should this say? This should say, know message Curtis on Twitter or any questions. There we go. And so I think we have everything. We have our verb, we have the URL we're authenticated.
And because this is a post call, it requires a body which we've inputted. And we see this little green that tells us you have a good Jason, right. It doesn't mean that it's correct. Right. But we know that it's, it is a Jason. So if I send this computer postman is going to talk to you, Ben, or bear and return, if all went well with status pending.
So now I imagined, where do I see the, like the image once
[00:28:17] Curtis: it's ready? Right. So, yeah. I want to dive into this, uh, after. So if you go back into the banner bear project, um, where we were before and you refresh that page, you should see that image pop up in the images section because it is one that we generated.
So now instead of one image there, the should be two boom. So if you, if you expand that, so there you go. But so there's, there's one other part of the banner bear API. Um, and this is just not all APIs have this, but banner bear is interesting where an image sometimes takes a long time to, to generate, uh, maybe 10 to 20 seconds.
So the way banner bear works is when you give it a request, it doesn't immediately give you back the image because it might take too long. So what you're supposed to do is give it a web hook URL to then post the image URL too. But if you go to the API reference, there's actually a newer feature in banner that we're going to use in the air table example.
Um, so if you go back up to the top where it says async. So banner bear now has a synchronous API. So, uh, async is its default. It's basically you fire you say, Hey, create me an image. And then later 10 seconds, 15 seconds later, it's gonna post to another URL and say, here's your image? The synchronous one is says, as soon as you give me the request, I'm going to like, I'm going to create it for you and then give you it right back.
But the caveat there is, it might take 10 to 20 seconds to generate it. So, um, in, in a case like this, where we're going to use an air table or an Zapier, totally fine to wait that 10 seconds, it actually makes things a lot simpler. Um, if you're doing this like from bubble and you want to immediately generate an image, probably better to do the async way.
Um, but the, the way to often to sync is you just put sync dot before, um, API. So if we do that in postman, we'll see what.
[00:30:07] Aron: So, let me just me understand this correctly. In most cases, you know, we could say, okay, do the image when you're ready. Here's a URL where you can tell that URL that the image is ready and you can send all that good information around the, you know, how to host that image.
But in this case, we're saying actually only respond with the image, so we'll get it right away. And I think in most cases, this is a really good way of like testing, I think, to like test, make sure that it works. And in some instances async doesn't work, right? So if you're a no quarter in the async part where you're sending a call and then waiting for the response, you might not be able to kind of interpret that response air table and zap your can.
And we're going to get into that in a moment, but let's go ahead and just do sync. And my understanding is that nothing changes about the API call. It's just that the response might take a little bit more time, but it'll come back with the actual. Right. Okay, cool. Let's give it a try. Boom. Okay. Boom. So we have the image URL right here.
Let's copy paste that. So you'll notice that it didn't return like a pending, it said completed. So if we go here, we have our image and I think it should be in here as well. Boom. Hello? Boom. We have our third image. So I think Curtis, I think folks, I think this is a confetti moment. We just did our first API call and then we can
give ourselves a nice little tap on the back. Right work, everyone. We've just kind of introduced a new tool, created our first API call. Created that image. Get confetti. Yes, Alex. I love it. Get confetti. Um, so I should, there we go. Uh, yeah, it's been awhile since we've done some confetti on the stream, so that felt really good.
Okay. So let me know in the chat, if there are any questions around how to, uh, uh, um, uh, post airhorns. Yeah. About postmen and the API. I think, you know, where I, you know, I want us to go from here is, well, okay, this is great. Right. But it doesn't really, you know, augment my workflow. Like I'm making an API call.
I still have to enter the text manually. I still have to go to banner bear. I have to save the image. I have to bring it back into my workflow. So, so far we're kind of disjointed in our workflow. So how do we bring this into a tool? Air table. Uh, and I know your Curtis, a huge air table fan, uh, that we're already using so that we can like quickly press a button, generate the image, get it back into the record and then just kind of continue our workflow.
[00:33:12] Curtis: Yeah. So, uh, for this, uh, using it in Airtable, we can hook up a button to a script, as I know you love to do on stream. And, uh, it'll be basically the same stuff you just took into postman, but we'll just, uh, restructure a little bit. So it runs as a script. Okay.
[00:33:28] Aron: So let's go back into air table. Let's go back.
It's our first time with 36 minutes and we haven't been inheritable. I think that's a record. Uh, so how, how, how should folk again? How should folks think about structuring their air table base? Right. And then from structuring their air table base, how should they think about like, okay, well, I need to haul the API from inside air table.
How do I do. So first let's just focus on the structure of the base. And I know like Curtis, you're an air table expert, so I'm gonna let you kind of take it away. How should I structure my base to be able to recreate this right here?
[00:34:09] Curtis: Yeah. So, so when you're doing this, uh, it's good to think about what you need to pass the API.
So in our case, it's just a single message. I think we'll just do it for that to keep it easy instead of passing the image as well. Um, so we can change that notes column too, or we can create a new single text field, which is going to be the message that we're going to pass.
[00:34:33] Aron: Yeah. So message single line, text, boom. Uh, then
[00:34:40] Curtis: we're going to want somewhere to store the image that we generate. So that will be an attachment field. So we can name it, image or graphic or, or whatever. Uh, you'd like, and, uh, for name, we don't really need anything. I mean, you can make an auto number, uh, or, uh, if this is part of a bigger, a base or a table, um, and you have other stuff there, you probably have a name already, but, uh, auto number works for us right now.
[00:35:06] Aron: Yeah. Now no one, no one, no one hate on me. I usually don't recommend doing this as an example, but don't quote me on the auto number as the primary field, but that's okay. Uh, informative and unique. It's halfway there. It's unique, but it's not informative, but that's okay. Uh, okay. So how, but what if you know how, if I'm looking at this, how should I think about mapping the fields to the different elements?
Could I, could I put more, how should folks think about that? Uh, Curtis, when they're structuring their air table based to go towards.
[00:35:40] Curtis: Yeah. So it tells you in that Jason stream, uh, exactly what stuff it's accepting. So it's going to accept two things from us. It's going to accept a message and it's going to accept the face.
Now, if we want to do the face, uh, yeah, we could do that. That'll just be another attachment field. Um, okay. So let's, let's
[00:35:55] Aron: start without it. And then if we have time, let's add it in, but let's just start with just changing the text and then we could kind of, so essentially you're right. Like we have one modification, right?
So that's the little array here. And then the first is just the message. And then the other is the face in the bottom. Right. But in matter bear, I can create as many as I want. Right. I could have one image on the right than another image on the left, a little graphs, as you mentioned. So really, uh, depends how you create your template, right?
So we're not going to go into editing that template, but that's really where you can add other variables or other modifications that you can create. Okay. So we have this, so our message is going to be Alex Wolf is. Great at most things, especially at air table. Here we go. Shout out to Alex Wolf. Uh, also the coolest name, I think Alex Wolf.
Okay. And then the image is when we're going to return that this right here with the texts from the record. Okay. So, so far I understand now, how do I connect this from air table to the banner Berry pie,
[00:37:07] Curtis: uh, using a feature of our kibble that I know you love, uh, we're going to use a button and we're going to run a script off that button.
[00:37:14] Aron: Okay. Let's do the button at the end. Let's do it without the button. And then we'll, we'll write a script. So I already started a script, uh, and it just has Curtis's was nice enough to write the script before in case we mess up, but I'm hiding it. Let's do it without boom. So what are the steps? What are the steps that this API.
Needs to do, let's do an outline. We're doing best practices here was the outline of the script.
[00:37:42] Curtis: Yeah. So, uh, first we're going to have to get the record that we're dealing with. Um, and when you do a button press, um, your records async call will get the record, um, that you are dealing with. And then from there, uh, we're going to make our API call.
So, uh, we're gonna make sure we pass the headers in. We're going to make sure we're using the right URL and then we're going to make sure we're passing. Right. Jason. And part of that, Jason is going to be getting, uh, some of the cell values from the record that we, we just got.
[00:38:17] Aron: Okay. So a few things. So we're going to get the record essentially. You'd be like, okay, this is the record we're dealing with. Let's actually delete the other two.
Boom. And then we're going to take the information from that. Make the API. And then in the Jason, this one right here, we're going to replace this right here with, I take the value from the record. Uh, I can zoom. I can totally zoom. Boom, boom. Does this better? I think that's better. It might be. This might be better.
There we go. Okay, cool. So how do we get the record we're dealing with essentially? How do we get an input into the script so that we can dynamically select the record we want to run with?
[00:39:07] Curtis: Yeah. So, uh, in air table, this is going to be a two-step, uh, first we've got to get the table that we're dealing with.
So, um, do something like let table equal,
[00:39:18] Aron: uh, let's get table is table reserved. I think our table is reserved. So let's
[00:39:22] Curtis: get, can be a lowercase one table.
[00:39:26] Aron: Yeah, let's go. Uh, I'm Tara, I'm sorry. I'm ashamed that there's a developer. That's going to be judging how I name all the variables, but, uh, yeah, I'm sorry.
I'm really bad at naming variables. So we're saying is going to be w what is the input
[00:39:43] Curtis: get recognized? Yeah. So for this, it will be based dot get table. Right, right, right, right. And then whatever the table was named, um, okay.
[00:39:54] Aron: One let's rename it. Let's give it
[00:39:57] Curtis: called us. And the fantastic thing about air table scripts is the auto-complete.
So it, yeah, it autocompletes like field names and table names and, uh, I kind of love that about it. Absolutely.
[00:40:07] Aron: It is. It is honestly as someone who doesn't write code for a living and is like a savior, I'm just like FYI, if you're ever like, oh, how do I do that? Like, table, it's going to tell you how to get table and get all that information.
So there's like a little useful API documentation right there. Okay, so I've got the table
[00:40:29] Curtis: it's next. And so, yeah, so this is where we're going to get the record that we clicked on, or that you could pick, um, when you're running the script. So call it whatever you want. Uh, I would call it record probably, but, uh, boom.
And that's going to be, uh, so you're going to await
and that's input dot record. Async
[00:40:53] Aron: boom. And then I have a man that's right?
[00:40:56] Curtis: Yeah. So usually it's something like pick a record. Um, when you run the script on its own, that'll be a prompt the user gets, but when you click a button, um, it skips that and just uses the record that the button, uh, was part of.
[00:41:12] Aron: Yeah, there we go. So let me just look at the documentation. So I have a label and that is the first parameter. So I'm saying, which record do you want to run on? And then source is the one table. Right.
[00:41:32] Curtis: And, uh, yeah, you're going to have to remove this space between record async and the first parentheses for this to be.
There we go.
[00:41:41] Aron: Okay. Let's just run it. Oh, I'm a fan of running.
[00:41:45] Curtis: Uh, if you console log it'll actually output it to the screen. That's a programmer trick console log, all the things,
[00:41:51] Aron: all the things. Absolutely. Boom. So it didn't let's run it again. We were saying, okay, go pick a record. And then it's going to console log everything about that record.
We're picking Alex Wolf. Boom. So it's saying, okay, I got the record ID and I've got the name, which is our primary field, which is one, both of those. Let us identify the record that was picked.
Folks are asking. So I'm going to do it. Let's just do, we should always console dot log. All the things, just as a reminder, we're going to keep that in the script or the future folks copying this, they're going to be reminded, always console log, all the things. And now we have the record. How do I think about running an API call in air table, which I imagine is going to be quite different than in banner bank in postman?
[00:42:46] Curtis: Yeah. So, uh, there's actually an API section on this. So if you look up fetch in the API with an air table, um, there are two different ways you can do it. And I can explain, uh, both one is going to be browser fetch and one is remote fetch async. So the differences, uh, fetch is going to make the request directly from your browser to that.
Most of the time that'll work just fine. Um, in cases where it doesn't, um, because sometimes some APIs don't like talking directly to the browser. You can use that remote fetch async, which actually does a little bit of, uh, air table magic. And it runs it from air table servers instead of directly from your browser.
It, everything else looks exactly the same, except, uh, you, you use your remote fetch async instead of fetch.
[00:43:31] Aron: Okay. Absolutely. So I personally, I don't know about you and is a good question for you. Like I always use remote fetch async there's like no reason for me not to, was that like a best practice you would recommend as well?
[00:43:44] Curtis: Yeah, you can do that. Uh, it's gonna avoid a class of API errors that is really difficult to debug even for the most experienced developers. So yeah, if you want to do that, it's, there is no difference except the API request is going to be made from air table servers instead of right from your browser.
[00:44:00] Aron: Okay, cool. So another thing that I always do is I copy paste. The example, and then go through the verbs that we just went through. So let me go ahead and do that. I'm copy pasting. Let me add the docs. And so now I have my API call, so let's go through each one of these one by one. So what should I change first, Curtis?
[00:44:25] Curtis: Yeah. So this is probably looking very familiar to what we had in postman. Uh, so first thing we can change is the URL. So if we take the URL, we hadn't postmen, we can, uh, copy and paste it right into there.
[00:44:36] Aron: Boom.
[00:44:39] Curtis: The next thing down the line is the method. So this is what we're calling verb. Uh, it's the post.
Um, that's what we're going to keep it as, but you can also do get and patch and delete and all those other wonderful verbs. But for now we're just going to keep it as post. Awesome. A body is going to be what we put in the body in our postman calls. So if you go and copy that,
[00:45:01] Aron: so I'm going to copy paste this whole Jason.
Boom. I'm going to, and then I'm replacing this hi there with,
[00:45:12] Curtis: yeah. So I can jump. Yeah, I can go. So, uh, including the quotes also has to get replaced. So, uh, you'll see this, this thing here called Jason , um, it's kind of self-documenting, but it's, it's going to take our big object. Um, and it's going to turn it into a string and that's, so it can be sent properly over, uh, the browser as an API request.
And on the other end, they'll actually turn it from a string back into Jason. It's just a, it's a more compact way of sending the request. You don't do that in postman because postman does it for you automatically. So this is us kind of doing everything manually ourselves. Um, so we've got to take that step into account.
So just so
[00:45:51] Aron: folks, like if you get the API call to work in postman, you can copy paste your body. Into the parentheses around string of fi and is going to take your Jason, turn it into a string, send it to a banner bear or whatever API you're calling, so that that API can understand what it is you're sending as a string.
And then it's going to like, and parse it and probably turn it into a Jaison so it can interpret it. But this is actually one of the common mistakes is that take Jace on those string of fi copy paste the body. Uh, and, and then, you know, that's the, the, that's a tip that's, that's a, that's a tip. Okay. Um, next, what is next?
Yeah. Curtis, where do we go from here?
[00:46:39] Curtis: So, uh, headers is, is next. Um, actually this example code is structured exactly how we should think about this. So headers gets very complicated, very quickly. There's probably only two you'll ever need to use content type just tells us. The server on the other end, what you are sending it.
Um, and so this is perfectly fine as it is right now. It's just saying, uh, Jason and the special keyword for telling another, uh, server that you're setting at Jason is application slash Jason. Um, you can send texts, you can send XML, you can send all sorts of stuff. Most of the time you're going to be sending Jason.
And so this can just stay as it is perfect. And there's one other header and a header is basically all the metadata you might want to share with that server. And some, in some cases it's required. So the other one that we need to pass along is our API key. And so that's through something called an authorization header.
So if you just start a quote and you do authorization, and then, uh, this was in the banner bear API reference, but you're going to start it with the keyword bearer with capital B.
[00:47:45] Aron: Let me just go back authentication, boom authorization, and then barrel. And I need quotation marks, right? This is going to be a string.
And then I'm running the word bearer, which is a kind of constant, if you will. And I go back into, okay, I have it here. This is the prototype. I think it's
[00:48:06] Curtis: going to, into postman and grab it.
[00:48:08] Aron: All right. I have it in postman. Yeah, there we go. Yup.
[00:48:13] Curtis: So you can see how postman kind of makes it a lot of this stuff easier because when you selected bearer token, it's automatically going to format things and add that header for you.
Um, so it kind of gets out of your way and gives you a lot of common tools that you'd be using. But when you're hooking it up through an air table script, like this, that's all the stuff you have to do manually. So you've, you've got to kind of do all the nice things that postman usually does for you.
[00:48:35] Aron: Okay. Uh, okay. So the only thing do so here, let let's w I'm going to propose something, Curtis, let's run this API call what? I let's change the text to be, we ran. This from air table. And what does this do? The console dot log await a response dot Jason.
[00:49:00] Curtis: Yeah. So a weight without getting too, too far into it.
Uh, when you await something, you're basically waiting for whatever the function call is to get done what it's doing. Um, so we use it up above in fetch. So it's basically saying, Hey, when you're done doing the fetch store, the results in this variable, the same way we're console logging there. We're saying, um, okay, now we've got the response.
It takes a little bit for us to, uh, turn that into Jason. So when you're done with that, uh, console log it.
[00:49:29] Aron: Okay. So let's go ahead and run this. So our expectations that we get a response here and I'm using the sync API, so we should instantly get a response with the URL of the image, right? So it's run that.
I'm going to pick Alex Wolf console log, all the things. So now it's running the API. And here I have the response of the API call. So if I come here on this URL, I should see boom, amazing. No confetti, not yet. We have one more step, right? So actually two more steps here. How do we make this text? We ran this from air table, come from the record.
So I select a record, but it's not actually inputting into the API call.
[00:50:22] Curtis: Right. So, uh, that's online. I think it's 18. So that texts that we've been, uh, modifying now, instead of having the quotes there, we're actually gonna use, uh, record dot get cell values string. Okay.
[00:50:37] Aron: Okay. So record is this record that was selected.
Right. But we don't want the, so if I go record dot, I could get the idea. Right. Or I can get the name, but that's not what I want. What I want from that record is the message. So actually I have to tell air table, like, okay, go to that record, get cell value, a string and the sell value. I want to get his message.
Right? So this is telling us, go to record, get the cell value a string. Is it called record?
[00:51:11] Curtis: Given media it's complaining because it could, it might not be found. Um, okay. We can ignore that for now. Right? Because
[00:51:17] Aron: we, it doesn't know if it's been picked, so none could be picked. Right. That makes sense. Okay. So if I run this, I should get the record and then it should say, Alex is the best boom.
Is that okay? Let's run this. This is where my heart starts beating a little bit. So run it. Record Alex Wolf.
Okay. See, this is what's wrong with API calls, they should put confetti in the API call. So when it works, boom. Okay. I get this boom. All right. Before last step. Right? So now it's actually returning the right text. G there's two more steps. There are two more steps. We're almost there folks with the confetti.
I promise how do I take this image and return it to here? Right. Cause right now I don't want to go to this URL every time and then save image. I want it to be returned to air table.
[00:52:22] Curtis: Right. So, uh, it's actually pretty easy. So right underneath where we did a console log for the response to Jason, um, we actually want to store that response that Jason, as another variable, so we can actually grab the URL from it.
[00:52:38] Aron: Okay. So we're creating a variable. And then I want to go to the response.
[00:52:45] Curtis: You'll still you'll stop to do an, a weight dot, uh, sorry. A weight response to Jason.
[00:52:50] Aron: So hold the whole, the whole response. Right. But
[00:52:54] Curtis: here. Yeah. 'cause the last time we did it, we just, we just printed to screen without saving it anywhere.
[00:53:00] Aron: banner bear, I'm going to call this banner bear response again, just really bad at naming things. Okay. Let's run that. And let's console log banner bear
until the log Ben or bear response. Actually this should return the same thing as this, right. Cause we're just, we'll be okay. So we don't need to do that. Let's just
[00:53:24] Curtis: so, so what you could console log is, uh, banner bear, response dot, uh, image, underscore URL.
[00:53:34] Aron: Boom.
[00:53:35] Curtis: And I know, I know it's called that because I can see the Jason there and we're just picking one of the fields from the Jason that came back.
[00:53:42] Aron: Boom, boom. Okay. That's the URL. So now we want to input that into this, the record, the one that we picked. So how do we update that record?
[00:53:57] Curtis: Yeah. So we're going to go back to the table API.
So it'll be tabled dot update record. Async
[00:54:03] Aron: I think I called it one. Oh, sorry.
[00:54:06] Curtis: One table.
[00:54:07] Aron: Okay. Yeah. Sorry about that. Uh, update. So I need to do an await, right?
[00:54:14] Curtis: Uh, yeah.
[00:54:16] Aron: And then I'm saying,
[00:54:19] Curtis: let me just should be record.id. It's the record IDs. The first thing you pass into it
[00:54:24] Aron: up the record.
So record or record ID. So we're going to go into record.id, right?
[00:54:37] Curtis: And then the second thing is going to be, um, all the fields that you want to update. So in our case, we're going to use like an open curly brace and we're going to pass it, um, an object, uh, so in quotes.
[00:54:50] Aron: So do I need a crown?
[00:54:51] Curtis: You can just put, oh, I can just, you can just directly, yeah.
You put the field name directly so that I think that will emit B image.
[00:55:00] Aron: Yup. I need that. There we go. And then
[00:55:08] Curtis: now this is something that's tricky about, uh, air table attachment fields. It's actually an array. So, uh, you need a square brace and then in there you're going to do another. Uh, URL is going to be the field name here, and then you're going to pass the, uh, banner bear response dot image URL there.
[00:55:30] Aron: Okay. So Alex, we're almost at confetti, we're like two seconds away from confetti. You can't leave now. Uh, boom. It was giving me some errors here. What does it like? It doesn't like this one, right? It's not closed essentially. So after this one, we're going to close that. I think I'm missing some, do we need curly brackets for the fields?
[00:55:57] Curtis: So after the last, so on line 48, just add a curly brace after the square race. I think we're good.
[00:56:05] Aron: Boom. So may this one, doesn't close anything though?
This is where is it? Let's go look at your script. Hurley want to make sure people leave. So let me just copy paste this whole thing. Actually. I want people to see the confetti when people come here for, uh, that boom.
Okay. And this is Ben or Behr response. Boom. And why do we have an empty curly bracket here?
[00:56:46] Curtis: Uh, we shouldn't, I think that's just leftover. Okay.
[00:56:49] Aron: And then this is called one table. There we go. It's still doesn't like it. Did you have curly brackets everywhere?
[00:56:58] Curtis: If you hover over it, uh, air table should be very helpful in telling you exactly what it doesn't like.
[00:57:04] Aron: Everything. It doesn't like anything. X
oh. Object is possibly. No, that's okay. We know that. Right. And so here. Expected a comma.
[00:57:24] Curtis: Oh, it's cause you have a
[00:57:26] Aron: space. Nope.
Let's check. Let's check.
All right, folks. So await update, record a sync record ID, comma image array. And this one you did have an empty curly bracket here.
[00:57:52] Curtis: Yeah. That shouldn't be
[00:57:54] Aron: record or record ID.
[00:57:58] Curtis: Oh, we're missing a beginning one after record ID on line 43.
[00:58:04] Aron: Oh
[00:58:05] Curtis: a comma.
[00:58:06] Aron: Yeah. And then we want one to end here as well. Oops. That's not the right title.
So let's map these curly brackets. We're going to get there folks, the open closes here. Right. So that's fine. And then we're saying image is an array. Oh, do I need this?
[00:58:38] Curtis: Uh, because it doesn't have any special characters. It shouldn't matter.
[00:58:45] Aron: Right. Fields. Whoops. Well, let's see what it's telling us. It's saying
[00:58:53] Curtis: is the field actually called image?
[00:58:55] Aron: Oh shit. Yeah, it is. It's right here.
Bear with us folks. We're going to get this fixed in two minutes. I promise we're going to cut this in post wreck. Could it be an arrow because it doesn't know that record ID is. And so it doesn't know, but how does it know which table to update? Oh, it's one table, right? So this works and then there's no concept of fields like this.
We need to put all of this in
[00:59:31] Curtis: when I coded it. It just accepted, uh, image as the field name. So maybe, maybe we can copy paste it or Hey, pays
[00:59:40] Aron: the whole thing and you give it a
[00:59:42] Curtis: fucking paste. Just that. Oh, well copy and paste. Just that, uh, the table to update, record sync and see. Okay. Cause now that you fix that weird curly brace issue, maybe we can get it working.
Okay. Let's try
[00:59:53] Aron: that. Boom. And we're saying this is one table,
right? The record, that ID images. Correct. And we're saying here it should be banner bear response.
This close is that.
And you did have a curly bracket here for some reason. So we have an extra curly
[01:00:21] Curtis: Bryce, it's just, just a coffee. That was just a copy paste issue, I think. Um, okay, so we chose image field, actually an attachment,
[01:00:30] Aron: those check. Yeah. That's right. This is running. Let's see what it, maybe it'll run it anyway.
Let's give it a test though. Let's just run it.
what dinner? Like one table. So it's probably Erin because of this.
[01:01:01] Curtis: If you go back down, I wonder if we've
[01:01:08] Aron: boop. Wait record ID that we have update record async await boom image, open the array URL, and then close it. And you had a curly bracket here,
[01:01:31] Curtis: but that's, that's, uh, just a copy-paste issue, I think. And they shouldn't shouldn't actually be there. Are we sure that the rest of the stuff we didn't make an error further up in the console logs?
So if we take the way, let's try this.
[01:01:48] Aron: Well, that seems to be working. So let's just rewrite it. Let's just restart. Oh, wait one table. And let's do, let's actually not make it dynamic first. We're saying record.id. Right? And then the fields that we want update. Is should be update, record a sync. I need to bright update, record a sink in here.
We're saying the fields, an object mapping, field names or IDs.
Okay. And so we do need a curly bracket at the beginning. Boom. And we're saying update image, and let's just give it the URL that we just created. Right. But you're saying that this should also be an object, right?
[01:02:52] Curtis: It's gotta be, it has to be an array with an object inside. Yeah.
[01:02:56] Aron: With an object inside that we're saying the URL, let's give it this right here.
Oop. That. Then like this and then let's do we close the curly bracket? Yeah, we did. So this is, we can actually not run the rest. This has become a learn air table scripting stream, which is totally fine.
[01:03:28] Curtis: It's going to be the silliest little error.
[01:03:31] Aron: Oh, I know. I know. I don't know. Oh, so it doesn't recognize one table. So let's just do this. Let's keep one table.
Boom. And I think it is auto number. Oh, it's a comma after. Does it expect a comma?
It does have one here, so it doesn't seem to change anything. Let's try this. Like a record image does not exist in table images. Yield image. We clearly does exist. Oh, there's a space. God dammit.
[01:04:13] Curtis: I knew it was going to be something stupid.
[01:04:17] Aron: Okay. Sorry folks. Now, you know what? The life of a developer in air table feels like.
[01:04:25] Curtis: Now imagine doing that, but spending like six hours and then realizing you misspelled something.
[01:04:31] Aron: Okay. Banner bear response dot image URL. Now let's
[01:04:40] Curtis: unhide. Uh, no, no, no. Uh, comma or no? Uh, you've got a misplaced punctuation.
[01:04:52] Aron: Well I do right here. Boom. Okay. Let's add the button as well. Let's try to do two things at once and we're going to a button field.
Generate image run script. It'd be a nice little green select an option dashboard, one scripting create field. Boom. So if this works and no promises that it does, we should generate the image, it's going to run it. And we've just created that image. Let's give it a second to load open that boom in Fetty.
All right. So that is how you run an API from postmen and then from air table. And, uh, thank you all for your patience. And you got a glimpse into what it feels like to write, I guess, code for, for living or, or so, uh, uh, yeah. Thank you so much, Curtis, uh, for showing us how to do this.
[01:05:56] Curtis: Yeah, thanks for having me on, um, this, this has been great.
And yeah, you got a little glimpse into why it takes us two weeks to spin up a website when you could do the same in a wet flow it's because of the spaces and punctuation and things like that. Oh
[01:06:09] Aron: my God. Uh, Kevin, we, we spent 10 minutes because of a space. Um, but what I hope people take away is, you know, that, that path that we did, where we look at the API documentation, we try to run it in postman.
We kind of get those big pieces out and then write the script in Airtable or in, even in zap your API calls or they call it the web hook module is the right way of, I think the best way of going about and getting your API calls running. Uh, so you can also run this in a, in an automation, right? So you can have a checkbox that runs an automation runs that script, all of that is available.
So, uh, Curtis, any parting words for folks, additional material that they should be aware of as they're diving into API. Uh, yeah.
[01:06:57] Curtis: Yeah. So, uh, actually me and Coleen are starting up. Uh, the essential resource for API, uh, re essential resource for API is for no coders. Uh, it's called API is for no coders.com.
So, uh, it's going to be a couple of free articles and then maybe some, some email, um, course type stuff. Uh, but if you sign up there, you'll hear all the updates. Um, also want to shout out on deck. We are always hiring. So if you are a no coder and you enjoy this type of stuff, we are always hiring, uh, no coders.
If you're more of an engineer, I also hire engineers to help us with the no-code stuff. So beyond deck.com/careers for all of that. And I also have to plug the fantastic ODN C, which is on deck no-code fellowship. The third cohort just got announced. It's a fantastic community. It's eight weeks working with some of the most talented, no coders out there.
And all you do is. Uh, Stephan iterate and become a far better, no coder. Then you came in with, and you get a giant community to cheer you on every step of the way. Amazing.
[01:07:58] Aron: Yeah. And we've got some folks from, uh, on deck Rory and others in the chat. So Curtis huge. Thanks for you for coming everyone. Uh, take a time to like subscribe, comment, do all that YouTube stuff.
Uh, really appreciate it. Really helps the stream. Keep going, hope to see you next week. Always, uh, uh, exciting to automate stuff with you all. So I'll be back next week. Have a great week. Y'all and Curtis huge. Thanks to you again for joining. Really appreciate you taking the time and teaching us how to use APIs as no cutters by run by Curtis.