Sarah Khalid is a Salesforce Technical Architect for the MedPro Group. In this episode, Sarah and I talk about her experiences integrating and developing with MuleSoft. She also explains how she solved a clutter problem for her son’s school by getting them to stop using physical paper and start working with Salesforce. Sarah taught herself MuleSoft out of curiosity for technology and is now her company’s lead expert on it. Tune in to learn great insights from someone with a comprehensive background.

Show Highlights:

  • What Supermums is and Sarah’s involvement in it.
  • What MuleSoft is and how it’s different from other programs.
  • Early cases for which MuleSoft provided a solution.
  • Tips and tricks to consider when using MuleSoft to log in to many different systems.
  • What Okta is and what solutions it provides.
  • When an Apex trigger would have more of an advantage than CDC.
  • How using the Bulk API and MuleSoft plays into designing.
  • What OData is and how it works with MuleSoft.

Links

Episode Transcript

Sarah Khalid:

I felt like since I was a kid, I always was very fascinated and back in the old PC days with the floppy drives and I would play games on them for the most, but they always fascinated me, and I always wanted to say like, “Oh, this is something I’d like to learn and work on every day.”

Josh Birk:

That is Sarah Khalid, a Salesforce Technical Architect for the MedPro Group. I’m Josh Burke, a Developer Evangelist for Salesforce. And here on the Salesforce Developer Podcast, you’ll hear stories and insights from developers for developers. Today, we sit down and talk with Sarah about her experiences integrating and developing with MuleSoft, but to kick things off, we start with a project that was a little closer to home.

Sarah Khalid:

Sure. So for the local school project, I stumbled onto it. When my son started elementary school and I started attending some of the PTO meetings. And as a audience person, I would listen to them and they were tracking everything on paper and spreadsheets and they just didn’t really have a very good way of tracking things. And they were sending out a lot of reminders or forms over paper, which is the only way they had to do things. And as a parent receiving those papers all the time, we know what a clutter that is and how they tend to get lost, anyway. So that’s where I just sat in and I listened to them. And then the ideas started turning in my head, “Well, what if I could get them to use Salesforce?”

Sarah Khalid:

And I had heard about Salesforce org, the free enterprise edition they offer. And so I spoke to them, I went to the PTO president and their board and I discussed it and they were very supportive. They said, “As long as you’re doing the groundwork for us and you can help us get set up for it.” So, that’s how that started. I started that process with getting them the licenses and getting them transitioned to use the system. And that’s what they use today to send all their emails, especially in time of COVID. Right? How else would they communicate?

Josh Birk:

Right. Oh, yeah. I mean, it’s one thing to hear when people are relying on Excel or solutions like that, but to hear that they were still relying on paper is just-

Sarah Khalid:

Yeah. They were still relying on paper for tracking donations and for even keeping a track of who had paid what, and I know how many fundraisers they had and what they raised against each. That was all done manually.

Josh Birk:

And I do want to talk about MuleSoft today, but first I want to talk about something else that you have been involved with heavily. What is Supermom’s and what has your role done with it?

Sarah Khalid:

Sure. So Supermom’s is a organization, I think it’s based out of the UK and they have a presence in the US recently as well. And they are actually helping train moms and dads to come into the Salesforce workspace. And since Salesforce is very supportive and it’s on cloud, a lot of people, especially parents have found a good career and a family work life balance working in the Salesforce ecosystem because it’s so flexible and lets you work from home. So, that’s their mission. And my involvement was with them as a mentor.

Sarah Khalid:

So they have a really, really good program and they have a very aggressive course and they help their mentees with getting onboarded into Salesforce and they give practical assignments. In addition to that, they also give them a mentor. So, that was my role. As a mentor, I would check their homework, do a weekly check in with them.

Josh Birk:

Nice.

Sarah Khalid:

Talk to them about anything that they needed and then support them towards their actual real life projects.

Josh Birk:

What’s the experience gap that you saw there? Where there are people who were technical and then would jump into Salesforce, or were some people really starting from scratch?

Sarah Khalid:

Some people mostly were really starting from scratch. So in my case, my mentee, she was actually an elementary school teacher and she was coming into the Salesforce ecosystem because she wanted a better quality of life. She wanted to spend more time with her family and she did an amazing job. She went through the course, she was really good with her assignments and she even got herself certified shortly after completing the course.

Josh Birk:

Oh wow.

Sarah Khalid:

Yeah.

Josh Birk:

Wow. That’s impressive. All right. Well, we’ll include a link to that in the show notes, if people either have an interest being a mentor or checking out the program, I guess. So today’s topic is something that I think has growing familiarity with Salesforce developers, but many of them probably have not gotten their hands on it. How did you get introduced to MuleSoft?

Sarah Khalid:

So I was introduced to MuleSoft where I’m at right now, at MedPro. So we’re basically undergoing a digital transformation. And one of the platforms that we’re bringing in for our integrations is MuleSoft. So, that’s how I got exposed to it. And then given the nature of integration, obviously Salesforce was going to be one of the main systems that MuleSoft would integrate to and it just fascinated me to learn more about it. And especially since Salesforce announced that they took over MuleSoft. It was even more motivation to jump in and learn it. Like, “What is MuleSoft?” Because when they announced it, I remember at the World Tour in New York city, I was there.

Sarah Khalid:

And at that point it was just not clear if it’s going to be able to run cloud, how is it going to work with Salesforce? And I don’t think that was really clear until relatively recently, how they’re going to come together. So yeah, it was just curiosity and in my career also I’ve done a lot of integrations with other systems. So it was just curiosity to see like, “Well, what’s so special about MuleSoft? How’s it different than the other platforms?

Josh Birk:

Well, so let’s level set for everybody. What exactly is MuleSoft and how is it different from other platforms?

Sarah Khalid:

Sure. So, you can think of MuleSoft at the very high level, as an integration platform. It’s just like an ESB, but it’s much more than an ESB. So MuleSoft’s concept is to build reusable API so that you can help your organization across the board to reuse those APIs. So if you have a new business requirement and you are going towards the API led approach where you already have APIs against your system, so then if you need to interact with those systems and if any requirements like those come up, it’s first nature to you. Those APIs are there.

Sarah Khalid:

We’re seeing a lot of companies come to realize shortcomings who didn’t have APIs, especially I think nowadays, when people need access to systems, but they’re not necessarily there physically, you need a way to interact with those systems, and that’s through APIs. So you have to think API first.

Josh Birk:

Well, and I think that’s interesting because from a Salesforce developer point of view, we’re so API centric that I think sometimes we forget that not every system on the planet is.

Sarah Khalid:

That is very true. And I did not realize that, and I think as a developer that comes up when you interact with different systems, and you study their SD kits, their APIs, and you’re like, “Oh, I can do this.” Or, “Oh, I can do all of this.” Some are really, really good. And some are not so good. Salesforce, obviously are one of the really good ones, but yeah, that’s how I came to MuleSoft. Stumbled into MuleSoft.

Josh Birk:

Nice. And what were some early use cases that MuleSoft was an attractive solution for?

Sarah Khalid:

So from my perspective, obviously I was looking at from a Salesforce lens, but I understood the other systems we would be interacting with, but from a Salesforce lens too, for me, some of the early use cases were, given the nature of our integrations, some are going to be real time, some are going to be more batch type integrations like overnight feeds or if something a few times a day kind of nature, not real-time. So those were the use cases I had. And then I was trying to understand how I could use MuleSoft.

Sarah Khalid:

So on the Salesforce side, I understood the capabilities that I have for doing either thing, right? For doing a real time, I could do a real-time call-out, I could do CDC, I have a few options, right? And same for batch, if I needed to send data in batch. But it was just a black box to me from a mule perspective, how the receiving end would take that and how they would do what they need to with it. So that’s some of the initial use cases I started looking into to explore MuleSoft and to see how I could do it.

Josh Birk:

Got it. And I’m assuming that something that’s sitting in the middle of a lot of systems authentication is a big deal for MuleSoft. What are some tips and tricks that people should consider when they’re using MuleSoft to log into a lot of different systems?

Sarah Khalid:

Yeah, I would say that depends obviously A, on your security requirements, right? We’re insurance. So we have a pretty strict security policy, definitely no named credentials and things like that. We try to stay away from those as much as possible. So, obviously office, the preferred route, if your systems can support that, obviously the systems talking to MuleSoft. MuleSoft obviously has the support for it, itself. But the different tools you are going to use will depend on your exact requirements.

Josh Birk:

Well, and I was just going to follow up with that. So, the aversion to name credentials is that because in someplace, in some system that that username password is getting stored?

Sarah Khalid:

Yeah. That’s the hesitation, right? You don’t want to expose username password in any way, shape, or form. And then if that user gets deactivated, then what’s going to happen to your integration? That’s the least pressured OS flow, if you study on the Salesforce side of it as well. Anything you can do, if you can stay away from that. In our case, we use also use Okta as our identity provider. So, that’s the solution that I look to incorporate with our authentication mechanism, which required some research and obviously work from all parties involved, which would be Salesforce, obviously. The system talking to MuleSoft, MuleSoft itself, and then MuleSoft to register that the app in Okta.

Josh Birk:

Gotcha. Give me some more detail on Okta. What is it and what kind of solution does it provide?

Sarah Khalid:

Yeah, Okta’s a well known identity provider. So just like active directory is common views. Right? So in our case, a lot of people just use active directory, but Okta goes more beyond active directory I guess. And they have built in mechanisms to plug into other systems. So we’ve been able to put, obviously plugs in with your active directory, which is what we’ve done in our use case. But once you plug it in with active directory when you’re logged within Okta, you can launch all the different apps like Salesforce, MuleSoft, a lot of others that we use here, AWS, you name it.

Josh Birk:

So anything from just a standard OAuth flow to a SAML or SSL or something with leveraging a directory, basically. Gotcha.

Sarah Khalid:

Yeah. They support all the different flows and they just make it super easy for all the systems to plug into Okta. So that from a end user perspective, we just have one place where we log in and that’s Okta. And then once you’re logged into Okta, you see all the other apps and you can get into them from there.

Josh Birk:

Got it. Nice. Now, when you’re looking at a fresh MuleSoft integration, what are some of the things that’s first in mind for you before you really start actually putting it together?

Sarah Khalid:

The requirements. I guess the requirements are the most important, right? What is the nature of the integration? To understand that requirement. And then obviously depending on the requirements you will design around it.

Josh Birk:

And what are some of the specific things that’s under consideration? For instance, if I wanted to leverage a change data capture with MuleSoft itself.

Sarah Khalid:

Yeah. So, change data captures more for near real-time integrations. So you would use it for when you needed a near real time data sync to happen between Salesforce and another system. And that system can be multiple systems, right? Because change data capture goes on the pub sub model. So, Salesforce will publish the event and then anybody can subscribe to it. And in our case, MuleSoft can be one of the subscribers and then capture that event and then obviously send it off to whatever target system it needs to.

Josh Birk:

Got it, is it being asynchronous? Does that provide any challenges?

Sarah Khalid:

No, not that I’ve run into so far. it is, like I said, near real time, so it is not asynchronous, but it’s pretty fast. I haven’t seen it kick off a few minutes late, I haven’t seen any challenges so far.

Josh Birk:

Are there times that an apex trigger would have more of an advantage than CDC itself?

Sarah Khalid:

I think it depends on your requirements, so if you need a response back immediately, as soon as you send out your APR request and you’re looking to get something back, like an ID or if you inserted something and you want to get back the ID right now, then that’s more of a use case for you to use a trigger. But triggers, you have more considerations about how you would do call-outs feature methods and then then there’s other governor limits related to that, which most developers are probably familiar with.

Josh Birk:

Yeah, I feel like those words specifically, at future, at call-out, are all things that as developers, we’ve probably run into a couple of lifts.

Sarah Khalid:

Yes. We sure have. And just being limited in the future method too. Right? I can’t return anything. So what are you going to do? You have to process everything in there.

Josh Birk:

Right. And then throw it over the fence and hope for the best.

Sarah Khalid:

Yeah. And it does take up more resourcing. So if you do a debug log and you do the detailed stats and analytics on it, you would see the performance is a lot better with, obviously the CDC, because it’s a fire and forget.

Josh Birk:

Right. No, that makes a lot of sense. Talk to me a little bit about designing for an enterprise data warehouse. What kind of tools and scenarios you might use? How does the bulk API play into that and using MuleSoft?

Sarah Khalid:

Yeah. We haven’t tackled that part yet, but based on what I’ve studied and researched on it, it definitely seems like a better use for bulk APIs. The only challenge with bulk APIs, I think, is the fact that it doesn’t do any Delta. So it could be a good option for a one-time data migration. But from an ongoing sync perspective, it can have challenges because you don’t have the ability to do a Delta.

Josh Birk:

Got it. So, more of an initial load and then check to make sure everything went perfectly. And if it didn’t try, try again.

Sarah Khalid:

Yeah. It all depends on the volume of data you’re talking about. Right? If it’s not a huge volume of data, then it’s not usually a concern, but if it’s a huge volume of data, then you’ll need to engineer your solution carefully.

Josh Birk:

Got it. I do want to ask a little bit about how O data works with this, because it seems like a very, very specific technology designed for this kind of thing, but to level set for everybody first, what is O data?

Sarah Khalid:

Sure. So O data is basically stands for, I think, open data protocol.

Josh Birk:

I think that’s correct. Yeah. That sounds right.

Sarah Khalid:

Yeah. And it’s basically just a fast based protocol that allows you to query and update data and it’s breath based, but you have to write your APIs a specific way for them to be compatible with O data.

Josh Birk:

Got it. And I think Salesforce developers, they’re familiar with O data in the form of external objects where, I’m working with remote data like it’s localized data in the cloud, I guess you could say. So how does that experience work with MuleSoft?

Sarah Khalid:

Yeah. The experience is very interesting. So that was one of the use cases that I was exploring because obviously if you build an integrations and you need to bring in data and actually view it in Salesforce, that usually means A, either you’re storing it in Salesforce or B, you’re building some custom view, like a lightning component or something to surface that data in real time on your UI. Both approaches obviously have their disadvantages. First one being, you’re storing more data in your org. Second one, you’d be doing custom dev. So I was looking at O data and I was like, “That seems like a perfect fit for when you want to be able to view data that’s not stored within Salesforce, but you’re also sitting on the data storage, you don’t have to write any custom code.

Sarah Khalid:

So that’s where the idea started turning in my head and I’m like, “Well, we only use MuleSoft for our integrations. We’re not doing point to point as much as possible.”

Josh Birk:

Gotcha.

Sarah Khalid:

So then I looked in Mule and I researched to Mule by default. Obviously their APIs are not compatible, not O data compatible, but they do have a connector that you can install and you can plug in and you can set up your project a certain way so that your APIs are O data compatible. So that’s how I did a mini POC on that concept and it actually worked really, really well.

Josh Birk:

Interesting. So there’s two things I want to point out with that, or follow up with that. First is that I feel like this is self-evident, but also important, like what you just said there about moving everything, not doing point to point and using MuleSoft to be, I guess, the source of truth. How important is that when it comes to designing the integration around MuleSoft?

Sarah Khalid:

Yeah. The whole purpose of having MuleSoft is that you avoid doing point to point as much as possible and avoid that tight coupling of systems. Right? So, come another day, your API has to be extensible enough so that you can plug into a different system without minimal rework, on either side.

Josh Birk:

Yeah. And to tack onto my second followup, it’s like, I feel like that that adds a whole other layer of convenience. If what MuleSoft is doing is converting that data source into an O data friendly one, right?

Sarah Khalid:

Yeah, absolutely. They give you the platform for doing that through that plugin. There are certain things you have to set it up to make it O data compatible, but you have to define your O data Ramel, which is your specification file. And MuleSoft is very specification first focused. So that is how they started out with, with your specification file. And that’s where you define your data model, about the data that you want to return.

Josh Birk:

Got it.

Sarah Khalid:

And then once you define your data model, it actually does a bulk of the heavy lifting for you. You can just generate your Mule flows with the help of that O data Remel file and then obviously you’ll have to plug in the logic for your get in post methods depending on your use cases.

Josh Birk:

It occurs to me that that’s a little bit… I feel like somebody who might be experiencing that would feel the magic of MuleSoft, because what you’re saying is that you can basically take a data source that had no intention of being an API friendly data source and have it exposed in Salesforce almost like it’s a first party citizen.

Sarah Khalid:

Yes. But it was mind blowing, it really is, honestly, because Mule is extensible and upright. It has all these connectors to all these systems, even your on-prem old systems like databases, right? You can just connect there, even if you’re behind a firewall. Right? Even if Mule is on perm, in our case, it is, right? It just helps us get all that data out and just expose it in Salesforce and relate it to objects in Salesforce, search on it, report on it. It was just an eye-opener. It’s amazing. It’s truly, truly amazing that you can do that.

Josh Birk:

The idea that somebody’s rusty old Microsoft access database could be a custom field into somebody else’s Salesforce org is pretty cool.

Sarah Khalid:

Yeah. Yeah. It is extremely cool. Yeah. I totally agree. And the fact that it’s real time.

Josh Birk:

Right, right. So let’s talk a little bit about how MuleSoft has affected you. First of all, I don’t know if we’ve really brought it up before, but you learn MuleSoft out of your own curiosity, right? This was not a company directive for you?

Sarah Khalid:

Yeah. That is right. It was not a company directive, but I knew our company is using MuleSoft and obviously I learned Salesforce had acquired MuleSoft. I was very curious about it too. And in my previous jobs, throughout my career, I’ve worked on integrations. Right? I’ve worked with Informatica, Cloud, typical. So I was curious, like, “How is Mule, so superior over all of them?” And Salesforce were interested, how does it come together? So, that’s where I started to learn about it. It was like, “I need to know more.”

Josh Birk:

Talk to me a little bit more about learning MuleSoft. How did you find that experience?

Sarah Khalid:

Yeah, it was good. So obviously I am starting to look for an equivalent of what you have on the Salesforce side. Right? Like a Trailhead. They don’t obviously have anything as great, but they do have their own learning platform. Which is training.mulesoft.com. And again, there’s a lot of free resources there and there’s free self-paced courses. And so since Mule is a very depth focused tool. So if you were comparing to Salesforce and you’re not a developer, it’s not for you, because Mule is very depth focused.

Josh Birk:

Go it.

Sarah Khalid:

And it’s built on Java spring framework. So it’s not for non-developers.

Josh Birk:

Okay. That is good information. And, yeah, so as a developer, something within the Java wheel house is the skill set that I would be looking for?

Sarah Khalid:

Yes, yes. That is right. Preferably somebody with job experience, it would probably be easier for them to catch on.

Josh Birk:

Got it. And not only have you learned MuleSoft, but you are certified in MuleSoft now, what was that experience like?

Sarah Khalid:

Yes, that was an interesting journey. Having been certified in Salesforce, I was like, “Oh, how hard can it be to be certified in MuleSoft?” But I underestimated it. But obviously I felt that with me, when I first took my first Salesforce certification, I was 10 years into actual experience with Salesforce. So I did 15 of them over the course of two, three years, pretty quickly without any challenges. So I was thinking, maybe it’s not going to be that hard.

Josh Birk:

Yeah, you got this.

Sarah Khalid:

But it was. Like I said, it’s very, very developer focused. So you need to know the ins and outs of MuleSoft and you really need to actually do a project practically and understand how to troubleshoot things, how to do your error handling, how different processors work, what is the execution of things?

Sarah Khalid:

So you really need to be in the nitty-gritties to pass that cert. And I did not pass it the first time. And not to dishearten anybody, but it is a learning journey, right? I didn’t know what the exam was going to look like until I actually went in-

Josh Birk:

Until you opened it.

Sarah Khalid:

… And I took it and I was like, “Oh my God.” When I was in is, I was like, “I don’t know if I’m going to pass.” And I didn’t. And it was very heartbreaking because I have never failed a cert before.

Josh Birk:

Oh really?

Sarah Khalid:

N, I have not.

Josh Birk:

Because how many sorts do you have under Salesforce?

Sarah Khalid:

I have 15. I’m application and system architect and I had never failed.

Josh Birk:

And you had never failed one?

Sarah Khalid:

No. I did no.

Josh Birk:

And MuleSoft Gotcha.

Sarah Khalid:

And MuleSoft got be, yes, because I hadn’t practically worked on it as much, right? With Salesforce, I had worked on those things or the course of my career. Right? At some point or the other. So I had those concepts down mentally. Right? I’d worked on it, but MuleSoft was different, obviously. And it had only been about a year since I’ve been into MuleSoft that I attempted that cert.

Josh Birk:

So I think one tip, obviously, I’m hearing is take it seriously, but any other tips or tricks for anybody who might be interested in the MuleSoft cert?

Sarah Khalid:

Yeah. Don’t get disheartened, right? Focus on your area. So they have different sections, and you get scored on the different sections and different sections of different sections have different verbage. So just look at what you didn’t do so good on if you don’t pass the first time and then you don’t go back and focus on those concepts and make sure you’re crystal clear, make sure you’re crystal clear about default behaviors, you know, of, of all the different elements involved.

Sarah Khalid:

And then, it’s try and feel, right? What are you going to lose? I felt disheartened the first time, but then afterwards I realized, “You know what? I didn’t notice so well, so this told me what I can work on and what I can improve.” And when I went back and studied through those, those concepts became more clear and then I was able to pass it.

Josh Birk:

Nic. Now, one of the things that put you on my for talking about MuleSoft is your blog, Sarah, in the cloud and at WordPress, why’d you start writing about that and how long have you been blogging about Salesforce development and MuleSoft?

Sarah Khalid:

So, I’m new to blogging.

Josh Birk:

Gotcha.

Sarah Khalid:

And I there’s so many people that always like blogs. I was always so fascinated, I was like, “Wow. It’s like my bucket list item. Right? And then I just never got around to it, to be honest. There was always something going on. But then with MuleSoft, I really felt motivated to write this down because I felt there’s really no good documentation for a lot of the things that I tried to do to bring MuleSoft and Salesforce together, like authenticating through Okta. Right? I didn’t find any documentation and it took us a while to figure it out. How would I do it? The same thing with like the O data thing. MuleSoft explains their side, Salesforce explains their side, but how do you put it together, right? So I started it because I was like, “If it’s something that I’m benefiting from, I’m sure others out there might be looking for that information. And, felt like it’s my duty to help the community and help others, by, writing that down.

Josh Birk:

Now, Sarah’s blog is pretty great because it does hit that nice niche layer in between beginner information and more advanced topics. So if you’re interested in MuleSoft, I definitely recommend checking it out. And we will, of course, include that in the show notes. Now, before we go, I did ask Sarah for her favorite non-technical hobby. And it turns out that yet again, it’s getting affected by the pandemic.

Sarah Khalid:

Well, I really liked working out and especially in particular, I enjoy Zumba, but it’s hard for me, given them the COVID situation. So I’m not really doing too much of that.

Josh Birk:

Because you would actually go to the gym, which now you can’t.

Sarah Khalid:

Yes. So, that was one of my hobbies, which is on hold. One of my other hobbies is baking.

Josh Birk:

Nice. And that’s a very pandemic friendly hobby.

Sarah Khalid:

That isn’t very friendly hobby, and very unhealthy too.

Josh Birk:

And that’s our show. I want to thank Sarah for the great conversation and all the great work she’s doing on her blog and within the community. I also want to thank you for listening. And 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. And I’ll talk to you next week.

Get notified of new episodes with the new Salesforce Developers Slack app.