Thomas Prouvot, who joins to share about Salesforce Inspector Reloaded, is the Salesforce Inspector Reloaded creator/maintainer and Senior Technical Consultant at Salesforce
Main Points
- Salesforce Inspector Reloaded quick intro
- How we started to use Reloaded
- How Thomas starts learning the code of the original plugin
- Where the Salesforce Inspector Reloaded journey started
- Supporting more browsers
- The procedure to make a new release
- Collect user feedback to improve Reloaded
- Documentation
- How Reloaded handles customer data access
- Features in the future roadmap
Links
Video Teaser
Contact Me
If you enjoy this podcast, please reach me out to let me know your thoughts or simply say Hello. My (Xi’s) contact info:
Take care, until next time :)!
Transcript
AI-generated, unedited.
[00:13] Hello everyone. This is Xi Xiao. This is yet a new episode of Salesforce Way podcast. Today I have a new guest with me. His name is Thomas Prouvot. Hello, Thomas. Hi. Hi, Xi. Hello. So you are from France, right? Yeah, from France, based in Lyon. Oh, that's cool. So, would you like to introduce yourself briefly, Thomas? Sure. I'm a Salesforce technical consultant, working at Salesforce since around two years now. And working in the ecosystem since more than eight years now, and I've been working on a partner at first, and then I was a freelancer, and after that I joined Salesforce. Okay, cool. But you have a really popular open source repo that you are developing and maintaining. It's called Salesforce Inspector Reloaded, right? Yeah. Okay, that's a really mouthful name. Reloaded version, like yeah, Reloaded version, movies, yeah, yeah. And just to brief the listeners who maybe never really used it, could you just quickly let us know what it does? Yeah, Salesforce Inspector Reloaded is a new version of a very well-known Chrome extension, which is Salesforce Inspector. And the previous version has around 500,000 users today. Even if the
[01:43] plugin development stopped around two or three years ago. And I did this. I decided to take over the development of this great extension. I was one of the really close follower of what the creator of the extension previously did, and just decided to make a wonderful tool even better with extra features and some bug fixes. So basically, the extension provides you easy way to import, export data in Salesforce without the need of any external tool. You can also perform some requests to the APIs. In order to retrieve some information or to test some GraphQL queries, for example, you can also download metadata. And last but not least, you can check record detail. Requesting some extra fields via API, which can give you information that are not displayed in Salesforce layouts. But if you have the right to access those fields or those information, you can access it through the extension. Hmm. I have used it for about one year. I I probably I started from the original version, and then one day it comes with this Reloaded. I just seamlessly continue to use it. And to me as a Salesforce
[03:14] developer, this is a really good plugin. You know, my experience has been, I always search for different Chrome plugin extensions for Salesforce to help my work. I got a couple of them. There are other ones that does similar work, but slowly I just realized this one does. Like everything's in one shop, and then I kind of disable and retire the other ones, and just kept this one as like my main tool. I did exactly the same thing at the beginning of my career. I was very curious and just typing Salesforce in the Chrome Web Store and installing all the extensions. Even if there's some interested one, and after that, I slowly started to uninstall some of them because I wasn't using it. And the thing which was pleasant for me is, it was that you have access to the code, and you can check how it's done. And just on technical purpose, and curiosity, it was very interesting to check how this plugin works, and it also helped me to understand something, some items on Salesforce such as APIs or other other thing like that. So you did spend time to to dig into how those plugins were created. So you want to study a bit how the Chrome plugin was made. What's the patterns? What's the technologies used there? Right. Okay. Beginning, I started to search in the code
[04:44] just to fix a bug, which was present in the original version, which was the extra comma bug. Like I like to call it, in one of the pages of the extension is data export, and it allows you to write some SOQL queries. And this page has an auto suggestion for the fields on the object you are querying, and when you select one of those fields. It was added an extra comma at the end of this field in order to let you add another one. The thing is, when you have your query completed and you don't want to add another field, you had to manually delete this extra comma. And that's why I created a request in order to remove it because I was just fed up with it, and this is how the the story began. So you mean this tool gave us a. A feature that allows us to write the SOQL query, but in the meanwhile, it can have this intelligence. It can suggest you what fields you can select, yeah, yeah, and then automatically will add a comma at the end of that field. But if you don't have more field to add, then the end of the the field, you don't need that comma. If you search by that, then it's a syntax error in the the SOQL. Exactly. Exactly. Okay, so it should be more smart
[06:15] to say if it's end of the filter selection, then don't add any comma anymore, right? Exactly. Okay, you fixed that. You created a PR. Yeah. So did you get any response or not? No, I never had response on this pull request. I think that the original creator of Reloaded had other thing to do or maybe other priorities. And and I I never had any response on the on the pull request, not even today. Even not even not even today. Okay, I I made a presentation. I've reloaded on the Trailblazer group in. It was remote, but it was a Californian Trailblazer group, and one of the participants told me that story. Said that he is now something like a beekeeper, or he changed completely his his domain. But I'm not sure about this.
[07:15] All right, so that means you started to fork away from the original repo, right? You forked your own version, then you built this so-called reloaded version. Yeah, at the beginning it was just a fork, like you like you said, and I think. For a year or two, I was only using it locally, and I was install installing this fork on colleagues' computer or customer computer. So it was very local usage of of this version. It was just a fork of Salesforce Inspector OG version, and I I launched the reloaded version. I think it was around March of the last year. So March 2023, and I decided to call it Reloaded, like a Matrix movie, the first one, Matrix, Matrix Reloaded. Right, right. Then that means you have to do a lot of heavy lifting, like announce it and acquire those old customers to start using the new one. Let them know, right? That's right. The old one has a lot of new features coming from the new one. You should exactly okay. And the chance I had is that when I created my fork, it was just for me, and I added. Some features, but I didn't have many ideas from the community, so I was just adding small improvements.
[08:45] And if you check at the release note of the extension, you will see that at the beginning of the creation of this version, there was only few features per release. I don't know, maybe five or six features. And when the plugin started to have more and more users, I started to receive more and more ideas, feature requests. And this is how the the Ruby's nodes became bigger and bigger. So people go to the GitHub repo to submit the issues there or ask questions. Well, yeah, it depends. Some of them are contact me on LinkedIn, direct message. Some of them are commenting my posts on LinkedIn on Reloaded. I have colleagues who ask me to develop some features only. Okay, so it seems at the beginning you spend some time just to warm up yourself. You you have like smaller releases, right? You kind of study the code, practice, and now you already get the hang of it. So, what kind of like challenges when you study the code base, improve it at new features on your journey? In fact, at the beginning, I wasn't. I didn't plan to release a new version on Chrome Web Store. It's really when I started working at Salesforce. I was trying to make other colleagues discovering this new version, and have
[10:15] more and more people telling me that it will be much more easier to install it on the web store. So at the beginning, the chance I had is that I could inspect the code and appropriate how it was done before the extension was released. On the Chrome Web Store, and so I had some time to to check what was done, and and to be honest, even today I'm discovering new things on the plugin. Okay, so every day is a is a lesson on the with this great extension. That's cool. That's cool. So now you acquired a lot of active users. I think you support both the Google Chrome and the Firefox, right? Yeah, that's at least the two. Yeah, that we have. So originally the extension was on Chrome, the OG version, and they bring it also to Firefox. So at the beginning I created only on Chrome, and then I had some Firefox user who was asking me to release a version of Reloaded on Firefox. So I I released it. On Firefox, and then I did it on Edge also. But I wasn't aware that the Chrome extension was available on Edge. So in fact, there is a plugin I've reloaded on the Edge store. You mean your tool, or is it another name? Yeah, your tool. Inspector Reloaded
[11:45] is also available on Edge. Okay, so you didn't release it. Yeah, yeah. Okay, but in fact, it's it's useless because you can install Chrome version of Reloaded on Edge. Ah okay, so edge version is not not useful anymore, and I think I will I will delete it or just write write it in in detail that the. The main version is Chrome, and you can use Chrome one. Okay, is it because the Edge is also using the V8 engine from the open source version, the Chrome? Totally, yeah. But the main challenge for you is to maintain the Firefox one, which yeah, because it's a silly question. I I don't know how big effort it is to maintain both of them. In fact, main effort is to test the new features on Firefox and make sure that some of the features. Are compatible with Firefox, and for example, I recently developed one of the newest features that allows you to customize the shortcuts to the the pages of the extension. You you will be able to customize the shortcuts to open the extension, open the pop-up, to open the data export page, data import, etc. And this functionality is not compatible with Firefox. So I have to check if I can find a way to make it compatible with Firefox, or if it's just a feature that
[13:16] it won't be available on Firefox and only on Chrome. Okay, but yes, it is extra work to to have the compatibility on two browsers. I don't know, like when you test your new release, do you have a lot of automated tests to cover? And of course, there are some like user interface related features as well. So how do you cover that? In fact, the original version has a test functionality, but it's not very. How can I say? It's not very. Automated it's manual and it does not test hundred percent of the extension, which means I can have issues. And one one day I think it was on the the one point twenty or one yeah one point twenty I think I released the new version and I had many people complaining about the extension which was crashing. And in fact, it was a functionality that I've developed, and on the orgs which doesn't have any portal, the extension was crashing. And from this day, I decided to create a beta version. In order to have certain people who are using the beta version, I think I have around five hundred users, so that they will be able to test it before it's released on the main version. But for this five hundred active user, or I call it maybe pilot
[14:46] user, do they have to? Opt in to say, hey, I want to join the next beta, or automatically they will get this beta version. If they install the beta version, they will automatically ah, okay, will be beta users. In fact, it is two separate extensions. Okay, we have one beta version and one main version. That's smart. That's smart. Which means that if you have bugs on the beta version. Which I precise happen almost never. Beta version is a very stable version, so if you want to test it, it's not a beta. You it's it's a stable version. It's a release candidate version, and you can have both installed on your computer, and so that you will be able to switch from one to another if you have troubles with the beta version, which never arrives. I think that's a really interesting thing. You know. You are doing an open source project, but as as the the user base grows, you have more and more users. Now you have to follow a bit more restrict software engineer disciplines. You have to release it like early version, try it out, and fix the bugs if there's any. This is not as easy as it was at the beginning. And no, the more users, the more pressure. Yeah, you know, I'm just building a Vim plugin for Salesforce for myself, so I can just break any changes and then push
[16:16] to the master. This is real liberty. Yeah.
[16:22] Yeah, I can totally feel that. But also, it helps you to to gain the experience of this. It's like serious engineering skills. Right. Right. Hmm. And I have to say, for most of the open source repos, it's challenging to get the feedbacks from users. You can get some from like the active users, but the huge amount of people they are just silent. They are using the tool, but it's really hard to collect. Maybe no feedback is. It means that they are okay with the tool. I've done something on the the new version because you know on the Chrome Web Store you have the installation statistics and you also have the uninstall metrics, and I tried to work on the uninstall reasons. I was wondering and I was curious about why are you uninstalling the reloaded version? Right. So I created a Google form, which opens when you uninstall the extension and ask you for feedback. Why did why did you uninstall the the extension? And I was checking the results earlier, and I have a big amount of response which was couldn't find out how to use it.
[17:43] And I I think that it can be me when I started developing on Salesforce, searching for Salesforce on the Chrome App Store, don't knowing anything about the plugin, just installing it, and I don't know how to use the tool. I think this ah thing is that it just add a really little arrow icon to the right side. That's right. You totally miss it. You don't know what's going on, right? You can't miss it. So regarding the number of the response, with I don't know how to how to use it, I created an automation which open a new page when you install the extension. And basically says, okay, this is Inspector Reloaded. This is how you open the pop-up, and this is how you can use the tool. That's that's really good. So when you install the extension, you have a documentation page which opens with the welcome page and access to all the documentation websites. With the how-to tutorials, with the release notes, and the troubleshooting section also. Right. I really tried to reduce the number of an install installations, and I think that. One other another reason can be they are installing reloaded version, but not disabling. The OG version, and since the arrow is in the same position, the previous
[19:14] arrow from the original version can be on top, of reloaded, and if the user click it, he can see only the previous version. Okay, okay. So that's why I also added an advice to disable the previous version. Right. In order to test the new one, once the user get a hang of it, can click that arrow, then the new world is opened. Yeah, right. I was thinking about me when I started Salesforce. Searching for all the extension and forgetting that I have installed this one, yeah, and just yeah, exactly. You open this page and here is how to use it and here is what you can do with with the extension. And they took a different route to enable this plug-in. For the most of the other ones, you need to click this plug-in icon on the top right, right? Yeah. Then it pop up there all these. UI for you, but this one is just totally different. People couldn't really get it. Okay, okay, that's interesting. Another another thing is that the great. Plugin because, as I said earlier, I'm discovering new functionality not every day, but maybe every week or months. And this is really full of hidden gems and full of hidden functionalities. And the thing I was missing on this extension was a documentation website. And I think that it's another
[20:44] challenge to have clear documentation about what the tool can do and how you can do it. And this is what I tried to do with the help of Nicolas Viamy, who helped me to create the documentation website based on MkDocs. Okay. So he helped me on the documentation creation and also to advices. On the the global open source project collaboration and that's a like a doc tool can generate the the doc from the comments. Yeah. Okay. Okay. I got it. Um, I just following what you mentioned to to find some hidden gems in this tool. Like yesterday, literally yesterday, I was like. There is this page that can display all the fields of a record and the field values, and there is a formula field. the The value is true or false, but when I hover the mouse onto that field, then display the the formula equation there. I never knew such a thing in the past. I was like, oh, this is so handy, right? And I think that maybe you can also add the formula. On the show data page, okay, I have to check. But you know, you have some filters on the show data page, which allows you to add or remove some fields of the entity definition,
[22:15] and you have some information such as is on the layout. So, for example, I discovered this one few months ago. You discovered, yeah. You have the show data page, and you can filter only on the fields which are on the layout. Okay. Which is a really great functionality, and not very useful anymore because of the flexi pages. So, I was thinking about implementing the same thing for flexi page. You know, when I was using a SF plugin, the Salesforce SF plugin, they introduced this feature called "What's New." There's like a subcommand, "What's New." The list was the new feature. There is not. Yeah, that one actually is really handy for me, and I really enjoy it. Maybe for you too, you can have like a link, like a permanent link there. In fact, we we have something like that at the bottom left of the pop-up. You have the version. Okay. And if you click on the version, it brings you to the release notes. Ah, okay, that's a hidden gem again. This is this is a kind of hidden. And we also added a new thing with the help of Nathan Schulman, with who helped me a lot recently on the extension, to add a new banner. SLDS style banner on the pop-up when the extension is updated, which means every time the extension is updated. Previously, it was kind of
[23:45] hard to see. It was just the version which was changing, and you did see the change two or three days after the update was done. So now we have a banner which appears, on the extension, saying that okay the extension was updated. Here is the new version and check for the release note. Right, that's that's neat. That's really important. So that that this one was really I think important to to have because it it gives the users a visibility on the new features. Right and clear vision of the the the product. Right.
[24:25] So if we switch a little bit the focus on our discussion, we talk about how to develop the tool, like the technical side. But there is also the data side. When you develop the tool, the users should be comfortable of using the plugin because you can access almost everything. I don't know. I just click allow button. It's like you get all my data. Yeah. So how do you handle that part? That's right. In fact, I think the user are more and more conscious. About the the things that they can give the access to by installing the plugin, as you as you mentioned, Chrome asks for the permission to read all the data of the website, and when you give access to a plugin on Salesforce, in fact, you give access to the extension can read all the data of your org, the data you have access to. And this is really an important thing. And when you give the right on to an extension, you should be sure that this extension is safe. This extension is not performing some queries. That you don't want, and to make sure that it is safe for for your environment and your customer is okay with that. Have an example. We I've seen another extension of on based on Salesforce, which was silently querying the users,
[25:56] and it was just in order to provide you provide the the user the list. Of the user on the org without too much delay. So in fact, the extension was querying the database on the user, but it was without any filters. And without any limit, this simple query provoke some alerts. We have tools on Salesforce such as Event Monitoring, which can be configured to trigger some alerts when dumping data, performing query on millions of records, and this is what happened. The customer was afraid that someone dumped his database because the the alert was triggered, but we didn't knew by who and from where. And in fact, it was this extension which was just installed on the the computer. the The user was not using the extension, but the extension was querying the users. And it was an organization with lot of external users on a portal, and it raised the consciousness of the customer about the impact that an extension can have. On the data, on the API conceptions, and yeah, it was a kind of an alert for for this customer. This plugin you mentioned, the from the author point of view, maybe he was just think he want
[27:26] to pull the data, you know, to lazy load the the stuff. Exactly, yeah. Then there wasn't bad intention, and I I contacted the creator of the extension, and he totally understood the issue, and he provided a fix really really quick. So that the issue is not present anymore, but it can be. Yeah, can it run some alerts? Right, right. I was thinking about the responsibility of the admins on an org, in order to make sure that. Their users are not using tools without knowing what they what they do or what they can do. And to me, one best practice is to enable API access control in order to restrict the usage of the APIs on on the org, and then to choose. Which population, which kind of users can use or install extension, which can provide access to fields or give access to the API, and those kind of things. So, in fact, we implemented on Reloaded the usage of a connected app. In order to let the the admins configure that, okay, on my org, API is accessible only to admins, only to users with this particular permission sets. Okay. And with that,
[28:56] you make sure that you don't have a sales rep which who perform an extraction of the contact or account before quitting. You make sure that the intern can't delete all the records by mistake. And in fact, it's it's kind of a security added to the usage of the API and the usage of the plugins. Right, right. Because that means you need to control either you you are using profile or using permission set for the user, but you have to control the API access as well, right? Because it happens like under the hood, it doesn't appear in the UI. Maybe something really happens under the table you don't know. And you have some some admins or developers or functional who are saying that okay, I don't put this field on the layout so that they won't be able to see it. But in fact, you have tools which allow you to see those hidden fields, and if they are important, maybe you should you should restrict the access instead of not putting it on the layout. Right, right. All right. So we discussed a lot about the tool, and for for our listeners who haven't used it or haven't used a lot, so what are the good places for them to to study? Do you have a good documentation in the repo as well? Yeah, in fact, on the on the repository, you have a link to the documentation, okay,
[30:26] which gives you many tutorial and GIF on how to I don't know how to migrate your queries from the OG version to the new one, how to create new custom links. How to use the shortcut tab in order to access all the entries of the setup. So, but yeah, I think one of the parts which differentiate Reloaded version versus OG one is the shortcut tab. I really like this one because, in fact, it's a quick access to all the items of the setup menu. So you go to the setup tab and search for I don't know development deployment status deployments. So you can access all the menus item from this shortcut tab. After that, I was thinking that okay, setup menu is okay, but it's also convenient to search for metadata. And with all the bots put on flow recently by Salesforce, the flows are more and more used, and the list of the flows from the setup. Can be very huge. Well, you know this search for flow. It's really a pain when we have a long list of that. You have to click this next page button, right? Yeah. You cannot easily jump at the locate. Yeah. Okay. Thank you so much. I'm
[31:56] really looking forward to that. So yeah, I think the shortcut tab is is very helpful and accessible for all the users, even the the new joiners on Salesforce. Do you have a future roadmap? I mean, in your head or in the documentation? In fact, yeah, future roadmap is part of the issue and feature request on the repository, and also in my mind, and also it comes from it's built by the community when discussing, and and yeah, I have a roadmap in mind. I really want to, with the recent announce on Walkbench. I don't know if you know the tool Salesforce Walkbench. I know the tool, but there's new release of that. No, no, no. There's no. There's not a new release, and there was an announce that Salesforce doesn't recommend to use it because it it is not maintained anymore. Okay. Yeah. And this tool has really great features. And I want to take some of them into Reloaded. I'm thinking about the Query API Query Tool thing, which looks like Postman. I don't know if you already used it. Yeah. On Workbench. So I want to integrate this on on Reloaded. I also want to integrate the streaming event part. Unreloaded, to subscribe to platform events, to change data capture,
[33:26] and so on, to have this accessible on the extension. Those are the the two big improvement I want to have in the extension. I also have I also want to restyle and rethink all the download metadata page. Because today you can select the metadata you want to to download, but you can't filter, you can't save or download package XML based on selection. So I want also to restyle and refactor this. So yeah, sounds a lot of things to keep you busy for a couple of years even. Yeah. And yeah, this one is already developed, but not available at the moment. Is the need of having a different five icon. On Salesforce, based on the environment. So let's say I have my customer with production, UAT, and development sandbox open. I want the production to be red, UAT to be green, and development to be blue. So I did this one on the the next version. So this one will be available, and you can also choose a particular five five icon. So let's say you are working for customer A, so you can search on internet for the five icon of the this customer, and choose it. Unloaded. Yeah, precisely. Yesterday I was working
[34:57] with my colleagues. You know, we are developers, so every week we have like a knowledge sharing session. We just talk about whatever technology we want to talk. We were chatting about this unloaded, and then I just mentioned, hey. There is this famous plugin that can show the work in different colors in the tab, right? I mean, why not the reload? It does the same thing. I have to check this. This what what's the logging name? The dots environment name, right? So that's difficult to catch. Yeah, but if you have that icon, that's that's perfect. You really know the pain point from the users. Yeah, because I'm facing it every day. Indeed. Okay. Goal of the extension is to make the life of the ecosystem on Salesforce easier, and for developers, for architects, for business analysts, DevOps people, so. Goal is really to make your life and our life easier, and to increase your productivity on the tool. I was talking with colleagues yesterday, and we were wondering how much time we save with the extension. Weekly, and the response were different based on the role. Some of some of them were using it only for data import and export. Some of them were only for you know inspecting the data.
[36:28] So it's really different based based on the profile on on the usage. But I think for me. I think it's one, at least one hour per week, saved with with the extension. Definitely more than that to me. I I just keep opening the the arrow and and get it popped up. But for me, is I still need to. Go back to the documentation to learn it to thoroughly. I'm sure there are a lot of things I'm. I don't have the habit to go there. For example, the setup page you just mentioned. I still go to the setup page on Salesforce and go to the quick search. Maybe tomorrow. Yeah, you told me. I'll definitely search that out and figure out the new features. Okay. One thing is also it makes me think about one thing about documentation and Salesforce. I recently added also something about you know the object tab when you're searching for an object. Searching for the I don't know contact. So you enter contact, you select contact, and sometimes you are wondering, okay, what can I do on this object? Is it updatable, deletable? What is the documentation on this standard field? Is this field available since the version, the API version fifty eight? You know those kind of questions. And now, when you're selecting and a subject, you have a link. To Salesforce documentation, which
[37:58] allows you to have the information about this subject. Right. Right. Okay. Well, there are so many things can be improved, but everybody has twenty-four hours a day.
[38:11] Yeah. So Thomas. I sincerely thank you. Have spent so much time working on this and helped so many people. There are a lot of anonymous people, as I mentioned, they are using it just that didn't get the chance to voice up. But I think it's really really good tool. On top of all this, like heavy lifting, hard working. Do you get any like rewards? Yeah, I think most of them came from Salesforce Ben. I recently had a Beni award. Thanks to the extension, which brings lots of visibility and lots of happiness for me, because it's you know as you said rewarding to see that the time you spend is appreciated by the community and by other, because sometimes as you said we are we are not speaking with all the users of the extension, so either we are speaking with the ones who are really happy. And grateful for the extension, or the one who are facing issue, who can be less happy with with the extension. So we have a vision which is very happy of the tool, or not very happy. And we we don't have the global picture, and maybe the people who are okay with with the extension. And okay, best reward are the messages I received saying that I can't work with this tool. Some companies disabled. The extension
[39:41] for security reasons. Before checking the the source code or whatever the reasons, and I have message from people saying that okay, I was a heavy user of this tool, and now the the company blocked it. Yeah, how can I make it whitelisted for my company? And so it's beneficial to see that the tool is appreciated, right? And is a a part of your daily work on the on Salesforce. You know, I was just having this idea. What if you have a place on the plugging? People can type some free text feedback to. And send when they are happy or they are angry. They can send you something. Yeah, maybe I can add. I did a Google form for an install reason, but I can add a new one. Yeah, I was just telling you know, throwing some ideas. Yeah, this one can be interesting. Yeah. Thank you so much, Thomas. It was really great chatting with you. Thank you, Xi. All right. Thank you for your time.
[40:47] Thanks.
