logo

NJP

LinkedIn Integration - Live Coding Happy Hour for 2020-12-11

Import · Dec 12, 2020 · video

[Music] hello and welcome to live coding happy hour on this awesome december 11th 2020. i'm super excited to be here today with you uh we have a full house um and uh delighted to introduce our full cast today of santa hat wares let's start with brad hello everybody my name is brad tilton and i am a developer advocate with a developer program here at servicenow i've been developing on servicenow for about 12 years and excited to be here today awesome thanks brad and chuck hi chuck tomasze senior developer advocate at servicenow been with the company for about 10 and a half years customer for a couple before that specializing in the platform custom apps integrations and having all kinds of fun wearing a santa hat and second time guest the witch doctor himself hello my name is goran niquez i work i i don't even remember my title i think it's not like senior programmer or something okay which doctor serves now do all kinds of stuff yeah that's about it there's there's what's in work day and then there's what we say so yeah those are those are two different things yeah it's friday at 8pm man come on and i'm andrew barnes developer advocate here at servicenow and the platform business unit and i love building on this platform and i've been doing it for over six years and i just love sharing and helping other servicenow developers build on our platform and be excited about it which is why i do this job um so now let us go around in the same order and introduce our beverages of choice all right it's a little earlier than normal but that doesn't bother me i'm going uh kentucky coffee barrel stout [Music] uh and chuck uh it's even earlier for me but that won't stop me either my wife made me some brats for lunch so i'm going to wash them down with i think it's the last bottle of my varsity uncle oh nice so yeah brats and beer what can be better well maybe pizza and beer that's dinner yeah and i got some kind how can you pronounce it gambrian boss something from checks uh well what's called in english czech republic some lag or beer nice oh i should also mention this week i did get my hacktoberfest shirt oh nice oh nice you guys i got mine last week i did i thought you were wearing it earlier today now today today i've got my it's not a bug it's a feature shirt on today oh and uh brad's got new york i saw that you're wearing anything special nice always a christmas tradition [Laughter] and so my beer today is a uh db vienna lager uh which is a devil's backbone and it is one of my favorite beers uh it's a it's a staple when i can get it and i like it uh so awesome so we're here today doing live servicenow development and uh we just decided what we were doing like a few minutes ago and surprisingly it's still the same as the title in youtube which is uh what wasn't a sure thing um so uh what we're gonna do today is hopefully fingers crossed we are going to connect with uh some linkedin apis and we're going to pull down some data for our users so if you caught the show last week we did that for twitter um and now we're going to do the same for linkedin and i'm going to be driving doing that today but if it doesn't work we are quickly going to pivot to doing some other housekeeping things that we have to do here at the end of the year like fixing our calendar calendar integration um so i've got our credentials set up but that's as far as i've gotten uh for getting this going and we will see if those credentials work for this api that i'm about to hit and i'm not sure they will uh so we'll we'll figure that out uh relatively quickly um other things to note uh is this may potentially be our last show we might have another one next week but we'll definitely as our santa hats imply there will be some holiday break here for the show and uh uh new stuff that's come out recently um chuck has just been a monster beast of generating content left and right look at look look at those guns um so he's been releasing uh podcasts left and right uh which you can uh get to uh we post those on the developer blog as well as the integration series i know we've talked about that um which is hosted on this channel it's got its own playlist so it'll be really easy for you to find that because you're already here and what else is something that we need to mention brad we did a github actions blog post last week in conjunction with github universe so we've published some actions for github and we've also got some stuff for azure and in jenkins uh so you know ways that you can automate your service now ci cd pipeline uh you know using the tools that you're already using to automate your dev your devops pipelines uh so check that out check out those tools um and uh yeah tuesday we've got a tech now coming up on instance data replication craig steps could be walking us through that tuesday 8 a.m pacific time bitly tn 8 2 reg tn 82 reg is where you can find that nice awesome thanks chuck do you have anything fancy that you've generated content for or you you're still uh hiding and not generating videos recently i've been watching his channel he's had a couple of videos i don't remember i did something make sure we have the link to your channel yeah in the description here and so people can go find your content um so with that i'll go ahead and start uh screen sharing and we'll start building uh so let's find a screen share let's share a screen this nope that's not what i want to share let's share a screen uh desktop let's do that there we go you should be seeing my desktop now yes sir we can awesome and it's so let us on youtube we'll let you know when it's on youtube as well here comes here comes looks good let us go and fire up so um the steps i've done so far is uh get credentials to linkedin so i've got a valid oauth token right now to linkedin the next step is let's go create an action so we are going to uh get uh linked uh get content because this is going to be in the linkedin spoke and i have to say i'm getting linkedin content right right is it just me or is it getting easier to create spokes especially the rest api spokes i in like 20 minutes i built two of them this morning for bitly because i wanted a url shortener and then a url customizer all right well that was ridiculously easy what's next there are definitely some api providers and our tools are making it easier but there are still places where i uh smash my head into walls repeatedly and am sad but yes i think in general we're moving in that direction it's even easier with the data stream if you want pagination and stuff like that oh yeah yeah so um speaking of i i need to don't i need to create this action as a data streaming action is it a paginated thing it is so you definitely do uh-oh let's hope you didn't burn up that name get contents [Laughter] oh that's one and i'll just delete the other one all right so uh good call there uh so we are going to create a data stream action here because we expect to get um you know quite a bit of results and we need to paginate through those results and so we will go with that method um so i'm going to uh you know go right into inputs um and the things that i'm going to input here are the users that i want to get so here is linkedin's api that we're going to try and use which is this find shares by owner and so we're going to uh you know access this linkedin v2 shares uh is the uh the place we're targeting and the thing we're going to send it is a owner which is yeah find shares by owner and we're going to send it the person's id so this is this is what we're going to try and send to linkedin to get that user's content so we're going gonna need to send this um some ids and so let's say uh users id um in fact i'll be specific linked is it easy to find ids i have no idea yeah that's the the next question i had is how do you get where where are we tracking these magical numbers so i'm not sure if their ids are uh something that i can get uh easily that that's a good question so we've got different users and we know their linkedin user uh like their path to get to there um but i don't know if linkedin considers that the id or not no i have no idea it is because that's just like a almost like a short link where you go to linked link linkedin tomasi i think is what mine is but i can't remember so it's actually true chuck the id aspect of linkedin is really your personal profile url oh it is yeah i us according to google well then so i have the thing i need then sweet we'll give it a try um so i don't think i'm gonna have to do very much pre-processing um [Music] so in fact i might want to go [Music] i'm trying to think if i need to break this up into yeah we'll do one id at a time um we'll say we're doing a pre-processing i'm not sure what we're going to put in here yet but we're going to say yes we'll do some um and how we'll do a rest step we'll enable pagination have you looked into the schema of pagination like is it is it a token in the payload is it a start end count kind of thing or well we have an expert here and yes i have looked at it and it is uh they include that in their payload is how many results there are and what the next page is if i recall okay so we will have to write a little bit of stuff around that yeah that's where you may need a pre-processing script well i think i'm going to need this one yes i'm sorry that's what you want but but maybe not i'm not sure yet okay um i've done like five things so i'm gonna hit save to make brad happy thank you [Laughter] uh so let's go ahead and get our rest up just loaded in here uh so we've got a yeah josh saxton says it's like youtube facebook pinterest where the id is in the slash we've got a linkedin v2 uh we are going to build the request manually our resource path is going to be share i believe shares we're going to do a get here yep sweet and let's start adding some parameters here and then we'll need to backfill whatever content that we're putting into these query parameters that we don't have easily accessible so i'm starting from my rest step and i'm going to work backwards for the things it needs all right so let's see what it says it needs um so let's take a look at sample response where is we've got interesting documentation i'm not sure here's an example for those owners owners so we want something like this yep and there's some looks like i can do some ordering of the data and how many okay well let's uh let's give it that then doesn't really give you a good breakdown of what those parameters are for and what the limits are does it no it does not uh it does not all right let's go let's go do it seriously alexa's not on board with doing this order me a toaster well uh let's let's definitely at least get it uh on the content type we want and we're going to want uh application json and then do you recall um did you have to do a a a bearer token in your header or or or not i didn't do that but then again i don't know if this is the same since i did a lot linkedin learning stuff i wonder if it's really the same i didn't we'll see what it says when we try and connect i mean since since it's a what you normally don't need to do that but if it's a normal api key you normally need to throw it in all right so we're gonna need to send it i i'm not what is this what's this hard code one in there let's just say you are in li person whatever your hand and then uh let's put in uh let's go through the name put me in there is that the name because it doesn't come into an equals i think that needs to go on the right-hand side oh you yeah okay it's owners equals that stuff yeah good call and you probably need that q equals owners as well right i'm going to guess that as well so q is query yeah so different parameters yeah that's a queue you owners owners and then up here we're gonna yank this put it over here and then we're gonna put owners i don't know if it's my ocd or if it really matters but the case on your content type capital c lowercase t i have had headers somebody's engine is just really persnickety where it says no you can't do that it's a lowercase c uh yeah but i believe isn't this the standard correct format the standard correct is capital c lower t really yep i have a capital both c and t okay then maybe it doesn't matter and i'm just ocd all right well we'll see um and let's go get mine all right it shouldn't if it's going to get one getting mine is probably the one you know to get was it owners or owner owners owners have multiple oh yeah owners and owners i'm not sure what you separate them by if you have more than one but that's okay and i don't think we need the rest of that stuff uh well we'll we'll go ahead and give it the uh we'll limit the shape you want to bet they want the curly braces in there i don't want to bet that it's not real clear whether they belong or not yeah i i don't want to take that bet i mean i'm prepared to fix it that way if uh but i don't want to bet on it okay all right uh that looks like it might maybe work let's hit save so this should just go and get one page and return to the payload and we'll be able to tell what we need out of that or we get an error who says what we were missing i guess yeah that usually comes first you don't need anything here you don't need to send anything so i didn't use it take that input box internal error wow nice welcome to live coding happier i think that's because you haven't defined the parsing steps if you click on i didn't give it enough to be happy yeah oh yeah you got some missing required fields here all right kind of where you can save it though without filling this one again yeah don't let me save it if it's not well no actually please let me save it yeah i retract my statement entirely um let's take a look at the path here uh so it looks like the example says it content content content entities down here so content content entities is the same thing about pagination nope so content i think it's dollar dollar content dollar dot content yeah thank you chuck because i i am not uh i'm not the kind of person who'll store that i just i just don't store that guy well you get burned by that parser and splitter enough you get oh i just go open an example of what i've done before that's what i do until it hurts too much i well i yeah i would agree with that except for it rarely ever gets to that point i think this should get far enough to give me output even without doing anything i think this is far enough go run test go oh cursors okay error no error i like that error in the lower right that's nice uh i don't think i should have to define anything oh we shouldn't need to do that but let's see um what uh i need to do maybe i need to give an output to the whole thing yeah that might be the thing you might need to have the object at least yeah at least have an object down here like content or something you could always just make a string and then the script parser would just say hello world hello world hello world there we go now it should work now it's worth such faith every time i say that i haven't made anything so just hit test i need to test let's say test again we're gonna keep hitting smash and test until tess does something for us definition of insanity right here people live cody happy hour [Music] that's understandable that that's perfectly possible we got one let's see let's open kit here i wonder if it complains about uh did we get yeah not enough permissions on the response buddy no 403 all right well that means that our the key our token doesn't do this so uh as i as i established the rules at the beginning if we if we run into an error with our authentication uh credentials uh we abort this so thanks for playing gorin we'll talk to you next time sit back and drink beer now so we're going to go to dev program [Music] dev we don't spend feel like spending the next 30 minutes debugging credentials no well and i don't think that will help at all like the credentials are valid they just don't have access to that ah okay so we we need different credentials which was my concern uh and uh so that's why we're uh you know someone's gonna put in the youtube comments the real content starts at 26 after uh so i was gonna go take a look at the email templates um actually let's go take a look at a male outbound male object itself um and see what is getting generated because all outlook will tell me is that it's not a valid one and i'm gonna have to do this in production to see a valid one or rather see a generated one stop mail uh outbound and it says um why does it say it doesn't even have an email attachment it should have an attachment dude the calendar involved hmm these have this this this it doesn't have enough stuff in it it looks just stop those are the headers normally the body is the one that has the start date end date all that stuff but it doesn't have any well that has a watermark that's the only thing it has let's try another one because you said this was broke it is hey brad can you go find the date of the last one that worked it's at least two months ago the date of the last one that worked how does the notification look like yeah so the notification um is that's true we can look for one that has something in the body that we put in the body templates system i think it was a wednesday i think it was wednesday october 14th wednesday october 14th there that's what i would expect to see in the body yeah this is what we want to see in that message area in the body and we're not getting that so you said uh when the october something yeah wednesday october 14th that's the last one i have on my calendar that looks like it came from the instance before you haven't switched the content type on the notifications.html or something like that because then it breaks now and sorted by yeah all right and so here this should be the record that's a valid one there we go it's got something in there and you don't have the body here though so we want to compare this to the broken ones well where is the broken one doesn't have a where's the stuff is it just missing from the form layout yeah it looks like it's not even on the form layout at all who's been screwing with the form layout there we go there there's that okay all right and so we can also just go look at the most recent one and we'll switch to default view so we can actually see the and oh okay body nothing just as the watermark how is it that the body text one's got body one's got body text yeah two different things why are these different i mean from an incoming message the body is the html body text is the text representation of that but i've not seen that on outbound like why do we have can we upgrade to paris between then and now maybe i think we would already have upgraded but i thought we are upgraded pretty early but yeah i thought the dev program and the dev program dev were later like i think i did that in like august or september we're pretty brave with those instances yeah well oh it was the recent clone that i was thinking about you told us to back everything up hey you have a buddy there you go on the top as well when all else fails show xml yeah so this is that's the same okay yeah so both why watermark why is this one getting stuff in it and the other one is well there's nothing in the box but yeah exactly it feels like the notification is feels like the notification might have changed like yeah like you pointed out that it might be uh so let's go take a look at the notification uh it's just using a template so really shouldn't have changed because i'm messing with that content type html only oh oh what should it be plain plain text okay so let's go look at uh notifications i'll be troubleshooting notification too long that's not the most fun area it is not the most fun area you know you're in trouble when you got to get into the cmn notif device all right i had one of those earlier this week please don't say updated by brad [Laughter] here this is the out of the box one that says and so let's go take a look to see who messed with it who messed with it me in in february oh no it's just delayed that's weird can't beat that so it's worked since this was last adjusted hatch three killed us well let's see if we just assign that and save you don't have you don't use any templates either right here's the template it's not using a template now i thought you said you were oh wait there should be a template on that shouldn't that would help too yeah yeah it was yeah because i'm referencing a template yeah yeah perhaps that's t-shirt how how is the template not attached but it worked previously since the last time this has been updated someone has been trying to cover the steps really i mean you can do it going in and modifying cis updated by to blame andrew right brad fixed it up yeah i picked a really obscure uh it's like let's not do anything big how about just a calendar invite that will annoy us i always impersonate other people when i do admin stuff so i don't get that just impersonate someone else on the team you can't hide from the log files hey you got impersonated yeah but those will go away all right uh so that means i should be able to then uh you know go to a a live stream event and oh schedule one for next week okay look uh we'll just take this one and insert it and stay for next week and we'll take that [Music] rip that out and you there and you there insert and state nope insertion stay and then work in progress should generate this ah i was so bad i made that adjustment in prod just now yeah i know you're pretty brave bad me is that because putting a template back where it should belong in a notification uh it shouldn't be the riskiest thing i've ever done in production uh so you should i got it oh do you already get it and it worked did it mindsets not supported calendar attachment not uh and the data is for today calendar message no we're not out of the woods yet so it it did not work brad did not work same thing i got yesterday there's an attachment of nothing right yeah something weird happened oh no i was looking at the wrong thing it worked more it worked more but not all the way hey it's got body text in there now that's nice uh and hey it sent it to me yeah i got something as well but not with the data all right what did we do wrong then oh yeah that's uh the start is wrong but the end is right uh that's that's why it looks weird oh yeah it's supposed to go for about a week it's a marathon show it that's a really long show all right is that just right out of the record though oh so i i got a valid calendar and invite us just the wrong day yeah so the primary attendees are working fine but the secondaries are not because jordan and i are the optionals we got that's a separate notification you fixed one you didn't care about mine and shocked and i suspect attendees never show up i wonder why [Laughter] so in the record um there is another field uh that i'm not showing on the forum that must not have auto gotten updated properly where is 12 uh 11. hold up 12-11 in here create it up no no so why did it it's not calculated start wrong is it coming from a field or is it coming from it should be coming from a field i don't um there was a u n time but i didn't see any sort of u start time on that xml it's a here in this guy that's using the dollar curly brace thing yeah and those are defined somewhere these are defined uh in that uh weird side that weird place yeah that weird place that who thought this was a good idea what's the name of that freaking table i'm trying to remember the name of that the table where those are stored i'm gonna have to leave a video last ones i think with slusher anybody anybody got that off the top of your head oh they're gonna make me look all right um i'm gonna go through the service now uh the tech now archives calendar i thought we did calendar invite somewhere service now i actually think it's in the docs yeah i think it's in the doors you'll find it easier there what to do next that's not it uh calendar integration i think it's called x import export map is this this is the right this is the right spot that's right scroll down import export maps going for the wind oh all right let's go to that table and see why you're angry there's something to put on the notification team's backlog clean this stuff up oh old old guy haven't messed with in a long time why are you why are you why are you being angry over here condition table description nothing in the script in time tell them your calendar you calendar start okay there is no oh there it is 12 18 18 45. um i wonder if it's um race condition that because i calculate that and it may not have been calculated but still you need to fix another notification right as well yeah but that's easy i'll just go to change the template so let's just retest this and see if we get the valid entries and if we do then uh we that should be done yeah yeah and we don't care as much about the optional hosts yeah they're optional good thing i got access to this system [Laughter] all right i've received it so i don't even need to go look at the thing and it says uh 18th on the correct times oh that looks good all right so now uh we can go close that close that close that oh we'll close all the things we'll go to the notification table eat and that wasn't the right table this one and we will uh artifact manager and calendar invites the other one both on the same table steve just the wrong one it's the one above it this one what it will contain you want to change the content type again how did the template go away that doesn't make any sense at all didn't we change the content after both uh i did change the content type so i might as well change it again i don't know how this template dropped out of this thing but victory was had you might want to check the dev system just to see what it says oh well the dev was recently cloned so it's going to be exactly the same but you're on dev now no no oh yes def program dev i am in dev now well let's go change the production let's go change the other one too then just do it in the right place of course you can't keep track of updates that's not we can't get back instances it starts from christmas vacation are you here we go bam save our audience is waiting [Laughter] that's not the right record uh no how do you know that wasn't the right one uh because the name of it is new artifact created why question mark oh okay that's not the template i mean i thought you were looking at the template no i was trying to just go to the other uh calendar invite one and add the template on it in dev so that i can do my commit in dev and promote it upwards and i i went uh up in the lit record list instead of down in the record list there we go all right we're all fixed up on that now uh we have a few minutes uh left i i have time for one more short thing brad what did we have in the hopper we had um creating podcast blogs oh the content yeah yes do we want to embark upon that template idea so we could change the content at any point without having to change code i don't remember it i don't remember that say it again and make it twice as many words but not four times as many make a table of templates and then we can apply a template and say this is how i want my blog post to look or this is how i want my community post to look or this is how i want and then you inject the variables in like a system notification oh the yeah the way you showed us you were doing with your with tech now and community live stream apps we're doing that yeah because we'll need to auto create those blog posts uh the more as we put more things in the blog yeah the content that says here's the title or here's the embedded code for the player or whatever we'll get injected into that and we'll get the output of a blog article that'll i like that idea i don't think we can do that in five minutes though we can make we can we can make what we can make the table yeah yeah i can go make a table do it you wanted a five-minute job let's make a table a template i can go make a table we have an artifact manager template table we've got to we're about to i mean we don't have anything called template or something that might be confusing uh i don't think so that's gonna turn up a few results yeah i was gonna try and narrow it down to artifact manager but i didn't name starts with x underscore nope okay make a new one template sounds like a good name for me uh content template sure uh let's put it in artifact manager and let's give it some tables hey uh do you have any idea which of the fields uh you like uh so name seems reasonable uh dis active oh wow wow active sounds really handy [Music] content uh well the whole thing is content maybe the uh body or well it depends what you yeah what you're calling body but it could be html could be markdown i was trying to be generic i wouldn't i don't know that i call it text but that's effectively what we're doing is this is output i don't know okay or that's actually the no this is going to be the template content of what we're going to have the variables in what do they call that is it the message what do they call it in a notification where it says what it will contain there's the subject yeah it's like message text yeah okay either okay give these things the right types and yeah values and display value uh so uh this is just gonna be a way i don't have to do it strings fine uh this is so while we're doing this this is a we're creating this table and if i want to uh take an artifact and have it generate a blog post i would just apply one of these templates to that artifact and then i wouldn't do it down it shouldn't be html it should just be a string big string like a 4000 string yeah all right here's another thing to think about do we want to put a condition on this because you may want a different template based on what state it's in here's an example before before we do a tech now it will say uh you know watch live at date and time afterwards it says originally aired at date and time so if you want to have a condition then you're going to need a table or we could do a static table in dictionary entry it's up to you do you check do do you need to apply the template again afterwards or do you have logic in the background that's like schedules and generally what i have what i've done in the past is have a ui action that says look i made some changes i want to refresh my content for the youtube description i want to refresh my content for the community html i want to refresh and it just goes and regenerates all that stuff because i may have added something in a related list that doesn't necessarily trigger a business rule that will generate that it's sort of an on-demand i know it's time to refresh but the template says because you're in this state uh maybe it's before this due date i mean with condition you can do all kinds of fun and then it will say ah this is the template i need for right now for this continuous state do we need a type field for what are you thinking um just so i can pick the template i want fast but you could do that with the condition as well okay what else do we need then and let's do markdown um oh yeah no you're uh well yeah i'm i'm thinking if this is a markdown template how does it know to generate markdown or if there's an html template how's it going to generate html or who knows what we're going to generate right in the future so it's an output type is what you're thinking yeah output the engine what kind of template it's looking for although that would be in the template the content itself wouldn't it i wouldn't put html into a marketer yeah that should be that kind in the content itself that should be the content itself that this feels a little redundant i'm gonna leave it for now uh because we could just delete the field later you want do you want that as a string your choice or what i'm gonna leave it as a string for now because i'm not sure if i need it yeah so when we do a blog article we often have that header text at the top i don't know if we want that separate or part of the content um yeah i think a header text and i also think um a uh like a social uh foodler a slug like a like a short description so we would yeah yeah the teaser text essentially like a socials like the format for this content type for its social promotion but is that getting away from the point of this table though the idea is the template you're going to use to generate my markdown or my html or something else it's not necessarily for social that feels more like an artifact feel yeah right but that well maybe that's a different template then because i want to generate i want to generate both of those at the same time i want to generate the right the format of the content and the format of the social content yeah that feels like a different template okay oh so you're saying the yeah it would generate something that takes whatever we put in the short description and then also matches like a url and maybe whoever's on the episode yeah tags them yeah yeah that would be another field that gets generated from this template okay um that's that seems good good place to start good place to start let's go build up well we forgot the display value on the name ah but it's the name it'll be a name you're right it'll default let's go bind the condition field to the table field where'd the condition go there it is so make it dependent on table and table did you make table a table name field yes okay uh advanced view where is it there it is down to the bottom i'm looking over here for you know the the business rule click you know the advanced like where's the advanced button dependent and then i use dependent field and do me a couple of favor and add some attributes in here so we don't knock ourselves silly later i would have put them in the attributes field but we can do it here too they're the same thing i know and they stay in sync i love it and sometimes i don't always remember what the actual attribute name is so readable r-e-a-d-a-b-l-e is true you you have generated these uh a lot recently a lot what else you got i don't know that we necessarily need show record count uh what the heck yes let's do it show condition count true and we don't need static dependent because i feel like a secretary now there's a third one that i always go after i can't remember what it is i have no clue all right that seems good enough okay and we'll call it a day the readable is the big one that's how you show in a list field it will say like active dot is dot true instead of active equals true up carrot something something we'll come back to these all right so i will stop share we are nearing the end look at it look at all those festive santa hats i love it i feel like you give me a kickstart for what i'm going to work on in january i know right now now we have a template table and we got to put some stuff in there [Laughter] um so that was fun unfortunately uh you know as we thought uh potentially that the the linkedin credentials we had for today i just weren't uh weren't available to access the apis we needed uh and i was trying to get the the other type of api credentials uh and just needed folks on the linkedin side to do things faster than they wanted to uh and that's fine uh so we'll we'll revisit that at some point in the future um and we fixed our confusing uh lack of the template in our notification tables even though the record has not been updated it's very strange for that to break uh without the record being updated um but but now we'll actually get calendar invites that work and that's pretty exciting that is exciting i i actually had to update i it got on so long that i had to update the uh the invite today to because we changed the zoom blanket like this doesn't look right it doesn't match chuck was like which one of these should it be because we retired because i only changed one of the two and i'm like there's automation for this why why is it not working thank you so much of working with servicenow i can fix this i can fix this so uh that was a lot of fun thank you for coming on this journey everyone let us rate our beverages and then wrap up the episode brad yeah i had the kentucky coffee barrel stout uh and it's it was pretty good i'm gonna give it a four two five oh is was that a like a bourbon age thing or yeah it's a barrel-aged i think it's like a bourbon and a coffee what's the abv on that eight okay significant significant my uh verstender dunkle is good i'm gonna go with a solid four this time it wash down the brats nice i'm i'm feeling like i've had a few too many of them now though so it's time to move on to something else yeah i'm ready for you to show a different label or the model negro for the last two months it feels like i actually left the house and got beers last week so that that was weird for me to to actually leave and go get beers and and you were sir yeah i had the gabrinios there we go yeah it was really good i mean i drank it all in in this hour so it takes i give it that four a four lord was that a one liter bottle no 500 milliliters bigger [Laughter] and my vienna lager this thing uh does work it's it's it does exactly what i wanted to do when i wanted to do it it's a four or five solid as can be there there are other beers that i'll drink before it but on a day a daily drinker that that that's the uh that's the stuff if if you were gonna have a beer every day which i can't i can't drink that much beer um which is why we can only have live codes on fridays it can't be can't be doing beer that often well that was really awesome thank you so much for joining us uh everyone in the audience and of course our special guest um we we are delighted that you took some of your evening to join us on this lovely friday and if we don't have an episode next week which is still up in the air we will be back next year and uh but we'll still be generating a little bit of content before we wrap up for the year even if it's not a video next week we'll we'll get a couple more blogs out but we're looking forward to an awesome 2021 with you our servicenow developer community um and we really appreciate you and we hope you have a great holiday and stay safe thanks everyone happy hall

View original source

https://www.youtube.com/watch?v=wDyAHyMwvWk