Daniel Peter is the Salesforce Practice Lead over at Robots & Pencils. Having had some incredible experiences throughout his life (including starting as a self-taught programmer, studying marketing in college, and taking some time mid-career to go on “sabbatical” and travel), Daniel brings a unique perspective to our show.
In today’s conversation, Daniel and I talk all about his time in the Salesforce ecosystem and what his current job looks like. We also get into the weeds a bit with the Slack and Salesforce integration. Tune in to hear all of this and more.
Show Highlights:
- Daniel’s history with computers.
- Why he decided to get a business degree and how it has benefited him.
- How he describes his current job.
- Why the designer role is so important.
- The benefits of Block Kit.
- How Slack can be used for more than communication.
- How the Slack and Salesforce integration can bring back some of the magic for developers.
- Daniel’s developer story with Slack.
- Slack integrations he has worked on and their use cases.
- Event structure in Slack.
Links:
- Daniel on Twitter: https://twitter.com/danieljpeter
- Daniel on LinkedIn: https://www.linkedin.com/in/danieljpeter/
- Daniel on Github: https://github.com/danieljpeter
Episode Transcript
Daniel Peter:
I’ve actually been doing this since I was a little kid. I was probably close to burned out on software before I even started Salesforce 13 years ago.
Josh Birk:
That is Daniel Peter, Salesforce practice lead over at Robots and Pencils. I’m Josh Birk, your host with the Salesforce Developer podcast. Here on the podcast, you’ll hear stories and insights from developers for developers. Today, we sit down and talk with Daniel about his career in the Salesforce ecosystem, and then we’re going to get into the weeds with some Salesforce and Slack integration, but we start, as we often do, with his early years.
Daniel Peter:
Yeah. I think there’s two schools of thought on education. Some people think you should double down on what you’re good at and other people think maybe you should go beef up on the skills you’re not so good at. For me it was the latter. I mean, like I said, I’ve been programming since a little kid and it didn’t make sense for me to do even more computer science. I was a self-taught programmer. I went that route.
Daniel Peter:
I said, “Well, what are the skills that I’m not so good at? These things, marketing, business strategy. Let’s go try to fill in some of those gaps.” That’s what I did, was I learned a lot of great things. I think it’s a lifelong experiment. I don’t know yet if it was worth it or if I would recommend it, but I think it probably was. I’ll definitely know, probably like at the end of my career, I can look back and tell you.
Josh Birk:
Well, and I think we’ll get into some of that with your current role. I did want to poke at one thing in your CV though, you have a section in your CV that’s simply listed, I believe it is, living life.
Daniel Peter:
Yeah. Yeah. I guess you can leave a hole in your resume or LinkedIn where you’re on sabbatical, but I decided to put it in there so people knew what I was up to during that gap. I think it’s common in the industry to see folks take breaks between roles. There’s obviously these… A lot of these software roles are pretty demanding. Yeah. That’s what I did.
Daniel Peter:
Maybe on my LinkedIn… I’m sorry. Probably not LinkedIn, but Instagram, I think I might have some photos of me when I was on sabbatical. I went down to South America for a bit.
Josh Birk:
Nice. Nice. I was going to ask because it’s like, Salesforce has a pretty decent sabbatical program and I’ve been at the company long enough that I have some book booked up, but my problem is I’ve spent so much time allocating that, that there’s part of me that’s almost like… It’s this exact same reason why I haven’t gotten a tattoo. It’s like, I’m too indecisive to know how to spend that collateral kind of thing. It’s good to hear that you knew you just wanted to go to South America. What part of South America?
Daniel Peter:
Yeah. I was in Columbia. Yeah, I was indecisive. The way I made the choice, I asked a friend, he was a world traveler. I was like, “If you had some time and you wanted to go somewhere, where would you go?” He listed a few places. He gave me like three options and I can’t remember what they all were, but I ended up taking his advice and going with one of these places. That’s I guess one way to solve the indecisiveness.
Josh Birk:
Yeah. It’s almost like throwing a dart at the board, but you get a little bit more of a mentor along the way I would say.
Daniel Peter:
Yeah.
Josh Birk:
Yeah. Nice. Now, how would you describe your current job?
Daniel Peter:
Yeah. It’s really an interesting mix of things. I mean, there’s a lot of reasons. There’s still the hands-on aspect of writing code that I’ve been doing forever, but there are so many new things. Part of it’s something you might find at any company, which is this idea of moving from an individual contributor to more of a leadership role where it’s what are your soft skills? How do you build a team? Your success comes through their success. There’s all of that.
Daniel Peter:
Yeah, to add on that, Robots and Pencils happens to be very relevant right now in the Salesforce ecosystem with a lot of the focus on design. The pencils at Robots and Pencils, those are our designers. We’re seeing the UX designer cert and the UX is now more of a role in the ecosystem. We’ve got all these great pencils. There’s all these intersections happening and so I’m trying to connect the dots between all our designers, what’s going on in Salesforce? Within also Slack. Salesforce bought Slack and we-
Josh Birk:
Yes, you did.
Daniel Peter:
I happen to be at this company that built Workflow Builder, Slack acquired Workflow Builder from us, and also we’re Slack’s first SI partner before they had an SI program. It’s kind of serendipitous in a way. Yeah. Doing all the coding, also doing the leadership soft skills, everything from trying to find talented people to trying to find good clients and rolling up my sleeves, helping on projects when need be. Then also what’s all this stuff going on now with design and Slack?
Josh Birk:
Interesting.
Daniel Peter:
Yeah. It’s quite a lot, actually. A lot of variety.
Josh Birk:
Yeah. Well, going back to the previous question, do you think going into an MBA and forcing yourself to go down that other route, do you think that helped with the soft skills and the leadership skills?
Daniel Peter:
Yeah. Definitely helped. Question is how much, but yeah, definitely did help. I think there’s probably another debate out there, is like, are these things that you’re more born with or things that you can learn, right?
Josh Birk:
Right.
Daniel Peter:
I think there’s some of both going on there. You definitely see people are just naturals. They have this charisma and I’m not sure exactly. They probably didn’t get it from school, right? They got it from somewhere else.
Josh Birk:
Right. Right.
Daniel Peter:
Yeah. But-
Josh Birk:
But then you have to learn how to use those particular skills.
Daniel Peter:
Yeah. I think personality-wise a lot of us are introverts and there’s different types of things like Myers–Briggs types, things like this. Yeah. I’m an introvert, but I think I’m becoming more of an ambivert, but also I definitely have a natural mind for strategy. I kind of like the theory of business strategy and there is a lot to learn there because… So it’s like taking your natural aptitude and then learning the academic portion of it and putting the two together to try to find some success there.
Josh Birk:
Well, tell me a little more about that and if you can give an example, because I think that’s an interesting section of trying to lead a successful programming team because you’re not really talking about architecture there, you’re talking about more like how are we a successful business, right?
Daniel Peter:
Yeah. Yeah. A lot of it’s just how you prepare, trying to be a step ahead, looking at where the market’s going and then getting the right people trained on the right things to be in the right place at the right time with the right skills. Yeah. That ties back into the thing I was saying about the design and the Slack. How can we get our folks involved in that and where’s the world going?
Daniel Peter:
It’s like, are we going to go back to the office or not? Is Slack going to be just growing bigger and bigger? That’s going to be your new… Everybody’s just going to have a Slack digital HQ, you know?
Josh Birk:
Yeah.
Daniel Peter:
Or are people really going to want to be back in the office together again, or? A lot of it’s just trying to look where you think the world’s going and this macro sense and where all the markets in terms of new industries are going to become more relevant. What products are those industries going to need? How do you have a team that can execute on that?
Josh Birk:
Yeah. I do think it’s interesting. It feels like the way we’re talking about designers now is very similar to the way we started talking about architects a few years ago. It was like we all knew the role was there, but we hadn’t really defined it and supported it as much.
Josh Birk:
Do you think that the rise of the designer, so to speak, is that an evolution of where we’re going in general or is it just Salesforce as a platform is hitting this point where we can do really cool stuff like LWC and Apex and stuff like that, but it also means we can do really cool stuff when it comes to user interface, but only if we have a really good designer?
Daniel Peter:
Yeah. It gets back to the roots of Salesforce. It was an interesting platform 15/20 years ago. You heard about it coming in as shadow IT or things like that. There was a lot of non-developers, non-designers that were buying this thing and so it got sticky within a lot of companies. Fast-forward to now basically if your software doesn’t look pretty, isn’t so frictionless and so easy to use, people won’t use it.
Daniel Peter:
There’s so much choice. Pretty much the only way you can get somebody to use software with bad design is if you somehow force them, like you don’t get paid unless you use this system kind of thing.
Josh Birk:
Gotcha.
Daniel Peter:
We’ve seen early on, it was more about, can you build a system that can have this functionality? Now functionality, that’s table stakes, right?
Josh Birk:
Yeah.
Daniel Peter:
It’s more like, what’s the one that has functionality that I love to use the most? I think that’s why the designers become so important in Salesforce. If something else is a better UX. I think that’s what we’re actually seeing with Slack. If you have Salesforce in your organization, you also have Slack, probably you’ve noticed people are collaborating on Slack more than they’re collaborating in Chatter in Salesforce. That just comes back to that user experience. It’s just so good, you know?
Josh Birk:
Yeah. Can confirm even here at Salesforce we are becoming very much the Slack devotees and it is. It’s interesting how if you took a screenshot of Chatter and you took a screenshot of Slack, somebody could potentially say something like, “Well, what’s the big difference here?” Then you actually get into the UX and you actually start getting to real-time communications and sharing and things like that and it’s kind of night and day. I don’t even think about going back to Chatter at this point.
Daniel Peter:
Yeah. Yeah. Some of those things are so subtle and that’s why the role of the designer is so important. They understand all these subtleties, what’s going to make it successful or not. Whereas somebody more like a developer architect mindset, they might say that same thing like you said, like what’s the difference? These things look the same. Yeah. You got to get hands on. You got to do all these tricky things like watch people working and see the frustrations that maybe they can’t even tell you but you can observe them, you know?
Josh Birk:
Right. Let’s dig into those subtleties a little bit because when I think people think in terms of the designer, they think in terms of the person who’s going to be making it very pretty or flashy or professional and the look of it, so to speak. When we talk about user interfaces in UX, there’s more science to it, right? There is the, did you present the user with the right-designed widget so that they could actually perform this task efficiently? As you said it, even to the point where they’re actually enjoying doing the task.
Daniel Peter:
Yeah. It’s almost like, how do they feel when they’re using it? You know?
Josh Birk:
Right. Right. Like who wants to spend all day with something that’s annoying them?
Daniel Peter:
Yeah.
Josh Birk:
Which I feel like some people probably are stuck in that position, so if you’re listening right now, we apologize.
Daniel Peter:
Yeah. Yeah. The interesting thing about Slack is in some ways… So it’s definitely a great UX, but in some ways it also reminds me of developing on Salesforce in the early days. I think a lot of it is just the constraints. It’s a newer platform as compared to Salesforce and it’s a newer tool.
Daniel Peter:
There’s not a lot to it, so when you have to meet business requirements with Slack, you have to get really creative, just like we had to in the early days of building, let’s say, Visualforce or maybe S-Controls or things didn’t even exist. We had to do weird stuff like integrate on-premise servers with Salesforce to get things done. Like you had to-
Josh Birk:
Oh, wow.
Daniel Peter:
You had to get super creative, you know?
Josh Birk:
Yeah. Yeah.
Daniel Peter:
Now with Slack, if you’re a long-time Salesforce developer and you’re looking for something new, Slack gives you that magic again, of your early days in Salesforce. Really, how can I make this business really hum with this tool? It’s pretty gratifying.
Josh Birk:
Yeah. Well, and it’s such an interesting new space because I was thinking about how this is interestingly similar to the Visualforce years where we suddenly gave people way more flexibility in a user interface that they’d never really seen in Salesforce before. Slack, it’s like… But even Visualforce is so stuck in the old-school client server, a user’s in an interface, they’re talking to the server, but in Slack, you’re really talking to other people.
Josh Birk:
You actually have a communal space that you’re trying to get stuff done in real time on a platform kind of… I don’t want to say for the first time ever, because even some of the concepts we’re talking about go all the way back to IRC and stuff. But in some ways the experience is something that we haven’t had a chance to really play with before.
Daniel Peter:
Yeah. Yeah. It’s definitely not new. Like you said, IRC. I mean probably a lot of folks have used these other tools like Yammer. I know a lot of enterprises used Yammer and even Yammer with Salesforce, right?
Josh Birk:
Yeah.
Daniel Peter:
I think one thing about Slack that’s pretty interesting, there’s all the text stuff, but we’re getting into these more basic UIs now. The Block Kit UIs, they’re so simple and powerful and so cross-platform that it’s just that work from anywhere. You almost don’t even have to test these things on the different devices because they’re so simple. There’s not much surface area there to test. You can only do a two-column layout and things like this.
Daniel Peter:
Yeah. I don’t know if that’s mobile first on a desktop or what it is, but yeah. I think the Block Kit UIs are a bit like the early days of Visualforce, but it’s definitely different. It just rhymes.
Josh Birk:
Yeah. Take a step back and give us the elevator pitch for Block Kit IU.
Daniel Peter:
Yeah. Let’s see, this is a tricky one. I think Block Kit gives you-
Josh Birk:
Oh, did I say blockchain?
Daniel Peter:
You said Block Kit.
Josh Birk:
Okay, good. Yeah. That could take this episode in a very strange direction. Please continue.
Daniel Peter:
Yeah. No. That’d be an interesting one. Yeah. Block Kit UI gives you a little bit more in your UI toolkit versus just plain text. You can do a lot with the slash commands and bots and that tech space interaction, but sometimes you just need a little more. You need some hierarchy in your UI some sections with things underneath them. It also gives you these input controls that we’re used to, just like standard web controls, things like dropdowns, stuff like that, pick list in Salesforce.
Josh Birk:
Gotcha.
Daniel Peter:
Obviously you can do the same types of things with plain text or with Block Kit, but for some use cases, you need more of what we think of as a traditional UI, like a Visualforce or an LWC kind of a UI, but it’s very limited. That limitation is actually a good thing I think because probably the last thing we want to do is slap a complicated app builder page right into Slack.
Josh Birk:
Right. Right. You want that really quick point of contact. Here’s a quick interaction. Give me a quick response and I’ll give you your data back.
Daniel Peter:
Yeah. I think there’s definitely this two-tier mindset that you hear called thin and thick work, or you might call it quick work or deep work, but-
Josh Birk:
Gotcha.
Daniel Peter:
… the idea is you want to separate those two out and maybe it’s an 80/20 rule, like 80% of the day you’re doing this quick work and you’re doing it all from Slack, super efficient, but yeah, sometimes you have to drill deeper into Salesforce or Excel or VS Code, whatever it might be and get that deep work done. What you don’t want to be doing is doing all your quick work all day long in these deep work UIs because you just get so much mental friction from that. You get exhausted at the end of the day.
Josh Birk:
Yeah. Yeah. I think that’s pretty interesting in the sense that Slack’s not just a communication tool, but it’s also a place where we’re really getting things done. What’s a good or a favorite use case scenario for you where Slack’s not just you and me talking remotely from three different time zones, but something that’s actually accomplishing work?
Daniel Peter:
Yeah. There’s a lot. I know some of my favorite ones are ones, I guess, sadly, that eliminate people from the loop, but you could say the good news is they free those people up to do more, I want to say, gratifying tasks. You’re emailing, you’re Slacking, you’re Chattering somebody, asking them to go into the system and do this thing for you. It’s like, okay, it takes you days to get ahold of them, it takes them days to get around to it.
Daniel Peter:
In Slack, you can do something like a direct integration with the system that they were the bottleneck for, and it only lets you do it if… It does some checks and balances because the whole reason you had the gatekeeper a lot of times was because they had to approve it per se, but you can build that approval into Slack. Maybe it’s checking some access levels, could be asking, what project is this for? Asking a couple of questions, doing whatever it needs to do.
Daniel Peter:
Maybe you still need a person in the loop, but all they’re doing is saying approved and maybe you don’t even need that person to approve it. It just goes to the other system and does that thing.
Josh Birk:
Gotcha.
Daniel Peter:
This could be integrating with other it systems, with HR systems, time tracking, expense kind of stuff. Basically the sky is the limit. Anything that has an API or even anything that doesn’t, you can even connect RPA stuff. Yeah. Those use cases, I think are… Those are some of the killer apps because you just went from days of friction to something that can be resolved with some keystrokes. Yeah.
Josh Birk:
Right. That’s always some of my favorite examples. I remember somebody had a whole… He was just walking me through the process of basically having an account of a certain type, have a contract that was signed and it was just like… And it wasn’t even a contract. It was just like you’re saying, it was like an approval thing.
Josh Birk:
He took this thing that used to take like five days and automated the whole thing, made it into this API friendly thing, sent the information to a command line that would convert the PDF and then attach the PDF into the account. He was the hero of his office because he took something that’d take days because of exactly what you’re saying. You got to go to the account, you would print out the account, you’d put the account on somebody’s desk.
Josh Birk:
I mean, we’re talking this old-school stuff and the whole thing would take less than a minute because it’s just like, boom, everything’s just integrated. Then you’re just basically done. Then with Slack, we can put that into just basically, once again, into the command line, you’re just basically having a dialogue with that data so it just feels so much faster.
Daniel Peter:
Yeah. Yeah. You mentioned the hero effect. I was a little bit talking about from an end user perspective, but back to the developer, right?
Josh Birk:
Yeah.
Daniel Peter:
Yeah. We love to be the hero I think as developers. We love to build that cool thing at saves everybody so much time and it’s very gratifying. I think Slack is the perfect new place to get that. If you’re feeling like you’re not getting as much of that with pure Salesforce development, maybe you look at the intersection of Slack and Salesforce and bring back some of that magic again.
Daniel Peter:
Feel like the hero and in new ways, because a lot of people, they talk about Slack as a supercharge for Salesforce. I think that’s valid, right?
Josh Birk:
Yeah.
Daniel Peter:
Obviously it’s a little more gratifying to build something that makes something exponentially more efficient versus a little more efficient.
Josh Birk:
Right. Now, go back to your early experiences with Slack because that piece of information you offered up before I was not aware of. When did you first start working with Slack as something that was more like an application platform or a product as opposed to just a comms tool? Where does your developer story with Slack begin?
Daniel Peter:
Yeah. It might go back to those early days, like running BBSs and IRC and Yammer, so I definitely was wired to understand the power of that communication that software can bring. But actual Slack… Actually, when I joined Robots and Pencils in 2018, Slack wasn’t too much on my radar other than the fact that Slack was the tool that we used for our digital HQ. I was just a user. We had all the skilled Slack people in the web practice. Basically it’s like, oh, somebody else handles that. I don’t have to worry about it, you know?
Josh Birk:
Right.
Daniel Peter:
It’s really when Salesforce bought Slack that I’m like, “Okay. I need to hurry up and learn.” I got Slack certified and I started-
Josh Birk:
Gotcha.
Daniel Peter:
… building apps with all the APIs in Slack to familiarize myself with the APIs. Yeah. It’s actually relatively new. That’s why I love to talk to people about it because it’s fresh in my mind and I can really empathize with them what it’s like to learn this new thing.
Josh Birk:
Right. The old chicken and egg question. Did you have a problem and you were trying to solve that with Slack or did you get into the education process and be like, “Oh, here’s some totally new things that I think I could build with this.”
Daniel Peter:
Yeah. Yeah. It’s definitely the latter. In terms of all the cool stuff that we have internally in Slack, this was mostly built by our Slack experts. The interesting thing is there, they don’t know a lot about Salesforce, so I’m teaching them a little bit about the Salesforce APIs if they need to grab some data from Salesforce, but they know how to build a Slack app on AWS with Node.js really well. That’s their happy place.
Josh Birk:
Gotcha.
Daniel Peter:
Yeah. That gets into a whole interesting discussion of, how do you build a Slack app now, right?
Josh Birk:
Yeah.
Daniel Peter:
We’ve got so many different ways. We’ve got Apex SDK coming out, but you’ve also got the legacy ways and you’ve got a lot of options in between.
Josh Birk:
Walk us through some of those options. Let’s start chronologically. What was the first style of integrations that you were working with?
Daniel Peter:
Yeah. The first one I worked with was not the Apex SDK, but it was still using Apex to interact with Slack.
Josh Birk:
Got it.
Daniel Peter:
If you think about the Chatter connect API, how you have a lot of Apex to do things with Chatter, or you could do HTTP call-outs directly to the Chatter API, REST API stuff. That’s the style I was doing. I wasn’t using the Chatter connect in Apex because Apex SDK isn’t generally available yet. I was using HTTP call-outs to call the Slack APIs and then creating an experience cloud site in Salesforce that could listen for Slack events being posted to it.
Josh Birk:
Gotcha.
Daniel Peter:
Really more of that bare metal API experience. The reason I did it that way is because I’m just so familiar with Salesforce. It was the easiest way to get something working, but it basically was the exact same thing as if I would’ve used like a Node.js or maybe even like curl commands. I just really wanted to get my hands dirty and test all the API surface area that Slack had to offer, and Salesforce was my tool in that case.
Josh Birk:
Gotcha. Then walk us through the advantage of using something like a Node.js app running on AWS. What kind of application was that bringing to bear?
Daniel Peter:
Yeah. I think there’s a lot of overlap between the Salesforce-hosted one and the AWS-hosted one, but I think the areas that pop up are either what I would call Governor Limits or more like just platform limitations. It’s really difficult to generate binary files. That’s the whole use case with Salesforce functions, and sometimes people use Heroku.
Daniel Peter:
Those types of platform limitations, if you’re producing a lot of PDFs and posting those into Slack, you’re probably not going to want to do that on Apex. But the other one is just the Governor Limits. Every time you type a message in Slack, you could potentially send that, say to Salesforce, or every time you click on an emoji or anything. If you have a big org, tens, thousands, hundred thousand people, you’re all in Slack, you probably don’t want to funnel all that traffic.
Daniel Peter:
You’ll probably hit whether it’s a platform event limit or some other limit. Other than that, they’re pretty similar. Like say the architecture you might do of… But I think there’s one other consideration which are these bolts. Kind of like the Apex SDK on Salesforce, you can get Node.js Java or Python bolts for Slack and so it’s a little bit of a… not as bare metal. It’s more like you’re working with the language, objects, methods functions instead of everything’s a REST API call-out.
Josh Birk:
Walk me through a little bit more of that. Is like a bolt then like a starting Node.js application running on AWS that already knows how to talk to the actors or is it more sophisticated than that?
Daniel Peter:
Yeah. It’s more sophisticated. I think it handles some of the other tricky things that aren’t value-added, like authentication and stuff like that.
Josh Birk:
Gotcha.
Daniel Peter:
I actually haven’t worked a lot with the bolts. We have the experts in our company that they know that world. I don’t program in Java and Python too much. I work with Java sort of, like its cousin Apex, and I work with Node.js through like LWC, right?
Josh Birk:
Right. Right. Yeah. I feel like Node.js is an easy one for any of us who spend a lot of time in the JavaScript world to just tumble into, although I will say, I’m the old geezer, which was like, when Node first started coming out and it’s using all of the new ECMAScript six stuff and I was like, “What is this? What do you mean [inaudible 00:27:15]?”
Daniel Peter:
It’s weird.
Josh Birk:
What are these variables doing right now?
Daniel Peter:
The gap between Apex and JavaScript got way bigger with ES6, ES7. Yeah. The syntax got so different.
Josh Birk:
Yeah. Yeah. It was just like the idea of importing things actually being built into the language was like, yeah. Okay. Why didn’t JavaScript have this earlier? Would’ve made my life so much easier.
Daniel Peter:
Yeah.
Josh Birk:
Yeah. What about pitfalls? Anything that people should think about if they… You mentioned Governor Limits and I’m curious about that. How does… Well, let me… Okay. Every time I try to ask this question, I get another question in my head. Walk me through some of the event structure in Slack. What are some of the things that are putting out these requests?
Daniel Peter:
Yeah. Actually there’s an events API that will do a call-out on almost anything. I mentioned the emoji clicks and the messages, but even things like joining and leaving a channel, pretty much renaming things. If it’s something you can do in Slack, it’s going to fire an event, but you get to choose. Slack has its own admin UI a lot like the Salesforce setup configuration UI. You get to choose which things are actually firing.
Daniel Peter:
As a developer, of course I went and turned everything on, but probably in production you would want to be pretty careful. Do you really want to fire a platform event in Salesforce anytime almost any key is pushed in Slack for any user? Maybe not.
Josh Birk:
Maybe not. Yeah. The gotcha there. That was going to be my follow-up question was like, so Slack can filter out what it’s sending out and then Salesforce can be selective about how it wants to respond to it, right?
Daniel Peter:
Yeah. You can do filtering in Salesforce also, but probably you don’t want to do all your filtering there. Or maybe it’s only the filtering. Maybe think of it as almost like CRUD in FLS versus sharing rules. The CRUD in FLS is on the Slack end where you’re saying, “I want to listen to all these messages or not.”
Daniel Peter:
Whereas then in Salesforce it’s more like, “Okay. Well, I’m getting all of the emoji clicks, but I’m filtering down which records you can see.” Like sharing rules. Like, okay. I’m only going to care about the ones that are the middle finger or something like that.
Josh Birk:
One of the neater Slack integrations I heard of was the ability to gauge how well the opportunity was going based on the emojis and their account. Have you tinkered with anything like that?
Daniel Peter:
I’ve tinkered with emojis, for sure, but not that specific use case, but I think actually at our company, I know it predates me a bit, but I’ve heard stories of how we had a way to take a sentiment check within our company using emojis and things like this. Yeah. I think there’s a lot, right?
Josh Birk:
Yeah.
Daniel Peter:
Emojis are kind of like structured data in a way, each one has their own meaning. They’re pretty easy to… A lot of them. Maybe some of them have double meanings too, but-
Josh Birk:
Right. Well, and so just the idea of emojis being functional, to me that’s almost mind-blowing because I’m again, old geezer. Emojis I thought were something that teens would use to text each other, not stuff that I would actually be using at work, but to the double meaning thing, one of my favorite one is the fire doge, and I do it if I think it’s like, “Oh, that’s internet cool kind of thing.”
Josh Birk:
I sent it to a coworker and she’s like, “Is that the dog sitting in the room where everything’s on fire?” I’m like, “Actually I think it could work both ways for the thing we were just talking about.”
Daniel Peter:
Yeah. Yeah. I’ve seen them in some of the Dreamforce TrailblazerDX demos. Yeah. They can be a way to express a sentiment like thumbs up, smiley face. They can also be a way to indicate like I’m doing some work on this thing. The check mark is like, you did it, or even in terms of a workflow firing when you click an emoji, so it’s not just about the communication. It’s like in Salesforce, you have global action, you have a record level action. It can almost be used like that in Slack.
Josh Birk:
Yeah. Yeah. No. It’s pretty interesting.
Daniel Peter:
Yeah.
Josh Birk:
Now, you’ve got a GitHub repo with some Apex and I think this is the Apex that you were referring to. Where do you think that code resides now? With the Apex SDK coming out, is it still a good starter pack in case people… Because it’s fairly extensive. You have a pretty good broad range of functionality in it. Does it still have that educational value so people can see how you kick the tires of it?
Daniel Peter:
Yeah. It definitely is something with a half-life. If Salesforce starts to make Apex SDK and UI services framework more prime time, this stuff will become a thing of the past, but I think it’s probably good as a way to learn how the Apex SDK works. So there is such a thing as like maybe being a little too abstracted.
Daniel Peter:
You need to realize that probably somewhere along the line, these things are actually being transferred to API calls and my recommendation would be build something. If you have access to the Apex SDK now, do that. Or if you don’t, use the Apex and actually learn how the Slack APIs work through Salesforce. Yeah. I mean, part of it, just the API stuff is just plumbing, right?
Josh Birk:
Right.
Daniel Peter:
That’s not super interesting, but I think the UI services is a little more interesting because it’s a new model. On the one hand, it feels like Visualforce. On the other hand, it’s a totally different architecture because these things live not in Slack, but somewhere like Salesforce or AWS, wherever you’re building your app. It’s like we’ve always had the concept in Salesforce, you create a UI, it’s like metadata saved, it’s like an app builder page or a Visualforce page.
Daniel Peter:
In Slack, Slack right now, I mean, they’re talking about next-generation platforms, but right now that UI you’re seeing in Slack, it was actually generated either statically or dynamically over in Salesforce and then pushed into Slack for you to be able to see it. It doesn’t live in Slack like Salesforce metadata does. So wrapping your brain around, not only that concept, when you’re talking about forms that are interactive, right?
Josh Birk:
Right.
Daniel Peter:
You click a button on form A, it does something in Salesforce and presents form B.
Josh Birk:
Form B. Form B is actually this alien visitor that’s just in your channel.
Daniel Peter:
Yeah. In a way-
Josh Birk:
I love it.
Daniel Peter:
Yeah, in a way it’s like the Slack app is almost like your container for your UI, but actually all the backend stuff is like Salesforce, but the other piece is like, how do I create, maintain, generate these UIs? Because their Block Kit JSON is their native format, but you can generate those in Apex, convert to JSON or the stuff that Salesforce is building, the UI service framework, I think it’s defined in YAML.
Josh Birk:
Gotcha.
Daniel Peter:
But a lot of times your UIs, they need to be dynamic. They have N number of sections to them. It’s querying data from Salesforce and iterating and showing that. How do you design a form and block it to be dynamic to show? I think that part, that’s where there’s a lot more potential for creativity, I think.
Josh Birk:
Gotcha.
Daniel Peter:
The Apex side is more plumbing, but the UI side, maybe there’ll always be a place for custom UI outside of UI services framework, depending on how is that form getting generated? Is it data-driven? Is it more static with merge fields?
Josh Birk:
That’s our show. Now, before we go, we did ask after Daniel’s favorite non-technical hobby and it turns out this might be the most pandemic answer I’ve ever gotten.
Daniel Peter:
Oh gosh. I can tell you the one I do the most.
Josh Birk:
[inaudible 00:35:29] worse.
Daniel Peter:
I don’t know if it’s my favorite, but my ‘favorite’ these days is working on the house here. It is part of the pandemic. I’ve learned everything from fixing sheet rock to doing gardening.
Josh Birk:
I want to thank Dan for the great conversation and information, and as always, I want to thank you for listening. Now, if you want to learn more about this show, head on over to developer.salesforce.com/podcast, where you can hear old episodes, see the show notes and have links to your favorite podcast service. Thanks again, everybody. I’ll talk to you next week.