Mastering Salesforce DevOps, Andrew Davis

Mastering Salesforce DevOps, Andrew Davis

At Dreamforce I’ve been lucky enough to be invited for Copado event, where Andrew Davis signed his new book about DevOps.

DevOps – topic about which I don’t know much, which doesn’t mean I cannot argue with our developers and also topic I always wanted to learn more (and looks like I’ll just the day after CzechDreamin).

Never mind, I got the book (445 pages) and have something new to read and think about. Incredible what can be done and how well it can run. Here is my summary and would be great to have a coffee with someone to talk about their view about this.

Interesting to note that almost all of these „DevOps tools“ are helping to solve problems that simply do not exist for Salesforce users. Simply moving to Salesforce solves most every problem with infrastructure, security, monitoring, databases, performance, UI, and more. One reason Salesforce users have been so slow to adopt DevOps practices is that most of them are simply not needed. Sort of.

DevOps is not only about the technical thing, it is about mindset and changes in the company as well. You need to build a force which will push it forward, you need to educate people and remove obstacles. Start with finding influencers, which might not be the one high in hierarchy but those who help others, and get them on your side. And then educate others, via multiple channels, message it again and again in small bites. Andrew did „DevOps December“ and I feel we need the same, as just lately I asked about CI to be setup for one of my projects and had to fight hard to store metadata in the DX format, just to learn later on that they convert it all to metadata to be able to push it via Ant, because they know how it works. So disappointing.

The great debate of scratch orgs/sandbox/multiple sandboxes (one for each dev), org development model versus unlocked packages, one repository versus multiple. And also question how to incorporate admins into the whole flow. There probably isn’t silver bullet and we can have a lot of drinks while talking around this. As well as abound what metadata we shouldn’t track, because … because do you really need reports being done in scratch org and stored in repository or is it easier to make them in production on real data?

Also – one sandbox for each developer or shared sandbox? I prefer the shared one as I can see immediately changes done by other, at the same time developers want their own because … I don’t really know. Also one thing I hate about DX and scratch orgs, that when I need someone else work to be done first I still need to merge their branch into mine to have the last version, while in single sandbox I would see it immediately. It somehow sounds easier.

Metadata or Salesforce DX format? I prefer DX as it will split all those fields out of the one big object file in metadata format, it should better handle profiles but still it looks like proper CI supporting Salesforce will be handy to use (luckily Andrew list a few of them including their comparison).

Why Process Builder use the version, it is way easier with workflow. Such a great question and I never had answer, but here it is (remember that Process Builder uses the same framework behind as Flow):

Flows are asynchronous and may be waiting for user input for many minutes. Flows store the user’s state in FlowInterview object, along with which version of the Flow is being used. Even if a different version is activated while a user is still progressing thorough that Flow, they will be able to complete the process using the same Flow version they started with.

DON’T CHANGE ITS NAME – when you rename field, label, what ever, take a cue from Salesforce and don’t change its API name (if it is already in production). Still remember last project where we regularly rename things and then had to remember to put the old names into the destroy package. That was a pain.

How to transfer configuration? It isn’t suddenly about developers, you need to understand the structure, which might be complex and large at the same time. Using REST API and Get Updated calls to get the last changes might help with getting just the updates and thus minimising data transfer.

Number of deployment per day per developer - 2015 State of DevOps Report

You might believe that bigger team means slower deployment, but with the proper DevOps tools in place the opposite is true – the large team with good infrastructure deploy more often, meaning quicker and easier deployments.

It is also good to follow the practice that broken build has priority, still remember from one project how we weren’t able to deploy for a few days, because it just wasn’t priority, consultants didn’t have a clue what the errors are about, they didn’t make sense to developers either, so we tried to ignore them for a few days. Surprise, they didn’t go away.

Naming Conventions, Dependency Injection, Event-Driven Architecture, Separation of Concerns, Enterprise Design Patterns, Packaging Code, Trigger Management – difficult topics for non-developer, but great eye-openers. I do know about FFLib and did the Trailhead about it but never forced myself to use it on my projects, still looks somehow complex. Similar to Trigger frameworks which are around (Appero, NPSP).

I remember Dreamforce 2017 and great presentation about the internals of Salesforce, but I completely missed the Salesforce Engineering blog. Also have you read the Twelve-Factor App? And do you follow that approach?

Feature branch naming – in big teams include your name in it, also include Work ID and description. Again, I fight about this, the requirement on project is to only use ID and I complain that it is completely meaningless to me and just a short description would be easier than constantly check the requirements to see what was that branch about.

Preserving Git history when migrating to DX – delete the original file at the same time as you commit the new one, Git will take it as rename and preserve the history. Probably make sense to do it in smaller batches not to confuse Git with many changes at once.

Branching strategy, all those Trunk-Based, GitHub Flow, GitLab Flow, Gitflow, Feature Branch, Forking Workflow, … jesus, cannot here be one best practice I can just follow? Freedom and control, pull requests and all these things. Also – delete feature branch after merge or leave it? What are the pros and cons? And finally based on some analysis they found that teams with no approval process or just a peer review achieved higher delivery performance (no surprise) but also a strict process had negative colleration with lead time, deployment frequency, restore time and no correlation with change fail rate.

I wonder whether having Circle Of Success on this topic and sharing different approaches and lessons learned might be useful and any real outcome.

Code reviews also transform development from an isolated activity into a social and collaborative activity.

Code reviews provide a way to transfer knowledge organically throughout a team and so avoid knowledge getting overconcentrated in one person. They lead to standardisation and improved code quality, as well as deep camaraderie between those involved.

Do you really have continuous integration? Jez Humble has three simple questions:

  1. Does your entire team merge their work into a common trunk at least daily?
  2. Does every change to that codebase trigger a comprehensive set of tests to run?
  3. If the build breaks, is it always fixes in less than 10 minutes?

If you cannot answer Yes to those three questions, you are not actually practising continuous integration.

Programmers' Hardest Tasks - naming

This graph always make me smile when I remember the Winter ’20 setting called „enableDisableParallelApexTesting“.

Testing is also part of DevOps, I didn’t know there are so many different tests. What I like about Andrew’s approach is the push for automated tests so testers don’t waste their time again and again on manually testing everything. I know how much work it is (or used to be) to prepare such tests, wonder how other (consulting companies) do it. Also – do you have Test Suits, which you run regularly/do you run all tests regularly/you don’t run them as long as possible?

I love that the book mention things which didn’t connect with DevOps to me – Linting, Static Analysis, Unit Tests (also for UI), Security Analysis. And he also mentions tools – Clayton, SonarQube, CodeScan, ApexPMD (hey, I know that guy!), Codacy, CodeClimate, CheckMarx, Micro Focus Fortify.

A surprising number of Salesforce developers are uneducated about the capabilities of change sets and the Metadata API and may rely on manually recreating configuration to „deploy“ functionality that could easily be automated. Even very senior Salesforce developers may be hanging on to the outdated view that „much“ or „most“ configuration can’t be automatically deployed.

Bookmark Metadata Coverage and check! Those who cannot be deployed via Metadata might be deployable with AutoRABIT or Copado, which are able to configure it with „UI test automation tool“, meaning you just need to record where to click and what to enter.

Which tools to use for deployment?

  • CumulusCI
  • SFDX-Falcon
  • Force-dev-tool
  • The Salesforce Toolkit
  • Appirio DX
  • AutoRABIT
  • Blue Canvas
  • ClickDeploy
  • Copado
  • Flosum
  • Gearset
  • Metazoa Snapshot
  • (hey, CzechDreamin sponsor!)

An Admin’s Guide to Doing DevOps is the final part of the book and we really need to make admins to understand it isn’t something scary. Writing code is just writing, once some setup the process and tool it shouldn’t be that hard for you to adopt it.

A common adage is that DevOps tools are far less important than the culture shift involved. What matters is that everyone whose work impacts your production or is able to collaborate on common systems and that there is a shared sense of resposibility for enabling innovation and reducing risk and confusion.

Deployment errors, merge conflicts, tests – they all may be hard at the beginning but once you get over it you are good.

And the same is with this book, I don’t think it is only for DevOps people or for developers. I think that every consultant and admin should read it as well, think about it, get part of it into their daily routine. Because it will make the whole thing easier in the long term.

As with Benioff’s book I’m sharing this book with Czech community, let me know if you want to read it, I’m happy to share. Because it is worth sharing and reading.

Napiš komentář, díky!

Bezpečnost v Salesforce – další setkání uživatelů

11. března v Impact Hubu se letos potkáme poprvé, tentokrát na téma bezpečnosti dat v Salesforce.

Jak to udělat, abychom zpříjemnili uživatelům život a současně měli větší kontrolu nad tím co kdo smí. Musí všichni vidět a upravovat všechno nebo to jde rozdělit? Jak zpřístupnit informace zákazníkům a současně jim nedovolit moc.

Toto setkání míří primárně na business a power uživatele, asi nepůjdeme tak do hloubky jak by si vývojáři přáli, ale právě nechceme „utavit“ ty běžné lidi od zákazníků – ti by si měli odnést nejvíc.

Přihláška nutná, Alča přišla s myšlenkou že by každý mohl upéct něco dobrého (a Alča má skvělé myšlenky, pokud jste četli mých 5 momentů loňského roku). Kdo co přinesete?

PS: pořád hledám přednášející, pokud nám chceš povědět o něčem z této oblasti tak se ozvi, díky.

Napiš komentář, díky!

Expertní dobrovolnictví pomáhá. Efektivně.

Ano, expertní dobrovolnictví pomáhá. A netýká se jen nekvalifikované práce. Mnozí totiž zjistili, že pomáhat mohou klidně tím, v čem jsou dobří. Občanskou angažovanost a zájem o své okolí považuji za dnešní formu Kalokagathie. 

Dělám, co umím, a ještě to pomáhá.

Dobrovolnictví vnímám jako určitou formu zájmu o společnost. A cítím, že v dnešní individualistické době zaujímá jakýsi hlubší rozměr, než tomu bylo historicky.

Máme se dobře, žijeme v hojnosti konzumní společnosti. Přirozeně prahneme po jakési smysluplnosti života (ne-li nacházení smyslu). Proč tedy nevěnovat svůj čas někde, kde ho efektivně zužitkují? Mohu nabídnout něco, co umím nebo s čím mám vlastní zkušenost? Na tom podle mě stojí vnitřní motivace dobrovolníků. Nehledě na to, že i pro ně je cenná zkušenost si svou odbornost vyzkoušet v oboru, kde nejde hlavně o generování zisku.

Zkuste udržet v ekologické organizaci na výsadbu stromů 35letého manažera z banky, který je guru na PR. Jak dlouho bude asi sázet stromky? Jaká je jeho motivace? Nebude lepší využít jeho PR znalosti a nabídnout mu možnost pomoct PR zaměstnancům organizace? Vsadím se, že když s ním občas zajdete na kafe, zeptáte se, jak se má jeho rodina a poprosíte o radu ohledně další kampaně, zůstane s vámi mnohem déle.

Jakmile dobrovolník sám pocítí, že má možnost růstu ve svém oboru i prostřednictvím dobrovolnictví, je vyhráno. Vzájemný pocit užitečnosti je dobré živit a podporovat. A navíc jak se říká: „Dej člověku rybu a nasytíš jej jeden den, nauč jej rybařit a nasytíš jej na celý život.“ Dobré neziskovky na to už dávno přišly a vzniklo díky tomu mnoho zajímavých platforem: CRM pro neziskovky, UMSEMUMTAM, Hestia a mnoho dalších.

Poznejte svého souseda.

Sama jsem dělala dobrovolnici v různých oborech a nejlepší pocit jsem měla, když jsem mohla využít své znalosti a zkušenosti z fundraisingu v organizaci, která mi byla blízká tématem a byla navíc lokální.

Myslím, že profesní dobrovolnictví je efektivní i proto, že si dobrovolník sám vybírá organizaci, která je mu blízká a postupně se s ní sžije. Může to být např. organizace, která sídlí ve vedlejší ulici nebo naopak organizace, která je aktivní celorepublikově, ale její činnost chci sám rozvinout v místě mého bydliště. Poznám tak lidi, kteří žijí v mém okolí a budu mít dobrý pocit, že jsem se stal součástí kultivace mého města. 

Neberte to na lehkou váhu.

I když dobrovolnictvím nepodepisujete úpis ďáblu, je potřeba si uvědomit, že jako dobrovolník plníte vůči organizaci jisté závazky. Někdo na Vás totiž už spoléhá a věří, že práci, ke které jste se upsal/a, dotáhnete do konce.

Jasně, ne vždycky je to možné, ale rozhodně je lepší všechny překážky komunikovat než nechat vyhnít. I dobrovolník má svou čest. 

Dobrovolnictví není nevolnictví. 

Čas. Míra. Obojího máme každý dle svých možností, které je důležité respektovat. Člověk moudrý (jak se dnes nazývá člověk) se podívá do svého diáře a odhadne své časové možnosti. Sám se pak rozhoduje, kolik času věnuje dobrovolnictví. Pro organizaci je to velmi důležité, protože pak s touto kapacitou může pracovat a efektivně vést celý tým dobrovolníků. I kdyby to byla 1h měsíčně, má to smysl. Dobrovolníka může dělat každý. 

IT man není E.T. man 

O lidech z IT kolují různé zvěsti.

  • lidí, kteří se motají okolo informačních technologií je opravdu hodně;
  • tento obor je bohatý na oblasti, ze kterých se skládá;
  • i s člověkem z oboru IT se dá mluvit normálně;
  • lidé z IT jsou specifický živočišný druh – pracují po nocích, vstávají k obědu (pokud nemají děti).

A já k tomu přidám svou zkušenost. Jsou loajální. U nás v CRM pro neziskovky máme už 7 let desítky dobrovolníků, kteří s námi táhnou káru všech povedených implementací Salesforce, jeho rozvoje a podpory lidí z nezisku, kteří nás potřebují. Jsme největším implementátorem Salesforce na českém trhu. Máme za sebou přes 85 úspěšných implementací různé velikosti. To vše jen díky dobrovolníků.

Za každým projektem stojí jeden i více lidí, kteří mu věnovali svůj čas v rozpětí i několika měsíců. Čas, který do této práce investují, je u každého různý. Někdo věnuje 1h týdně, někdo i 20h měsíčně. Důležité je, že každá hodina se počítá. A za to jim patří velké DÍK.

Na začátku byla idea…CRM pro neziskovky

Spolek, který by bez dobrovolníků neexistoval. Jeho počátek „zavinilo“ spojení projektu Rok Jinak, Aleše Jeníka, Jana Hromase, Světla pro svět.

Ten den, kdy se objevil Aleš v kanceláři Světla pro svět, byl úplně normální jako každý jiný. Jako fundraiserka jsem měla plno práce, navíc jsme zrovna řešili výběr vhodného CRM systému, který by pojmul všechny rozsáhlé aktivity, které jsme v organizaci dělali. A tu seděl Aleš, ukazoval něco, co se tvářilo poměrně uživatelsky přívětivě. A navíc pro neziskovky zdarma…

Za pár měsíců mi Aleš volá, že právě vzniklo sdružení CRM pro neziskovky a jestli bych si ho nevzala pod svá křídla. No a tak tu jsem, už 7 let a pořád mě to baví. Baví mě to proto, že dělám s dobrovolníky. Že naši klienti jsou lidé, kteří svou práci mají rádi. Že mi tahle práce nabízí prostor pro vlastní rozvoj. 

Kdo chce kam, pomozme mu tam.

Aneb pár návodných otázek:

  • Umíte něco, co by mohlo někoho obohatit?
  • Je ve Vašem okolí někdo, kdo by Vaše dovednosti a zkušenosti využil?
  • Máte přátele, kteří se věnují nějaké dobrovolnické činnosti?
  • Máte kapacitu (i minimální) někomu pomoci?

Jestli jste alespoň u jedné otázky odpověděl/a ano, tak neváhejte a pusťte se do toho. Oborů, kde můžete pomoci, je mnoho.

Petra Joklová

A jestli vás napadlo se přidat k posádce CRM pro neziskovky, tak tady je moje adresa: nebo telefon 731 140 399.

Petra Joklová – v neziskovém sektoru našla svůj druhý domov. Přes práci lektorky primární prevence ve školách, fundraiserky rozvojových projektů se dostala až k vedení ajťáků. Pořád si ale drží svůj silně humánní základní kámen, proto ji tahle práce baví. Propojuje moderní svět s lidským kontaktem. Ráda si hraje, hledá a pracuje s lidmi. Když nepracuje, hraje si se svými dětmi nebo vede taneční a pohybové semináře. Howgh

Napiš komentář, díky!

Spring ’20 Release Notes

Spring '20 Logo

It is really great, that Salesforce provides us with a free book three times a year. 552 pages of awesomeness for free, who can believe that. Here is the list of things which got my attention for the Spring ’20 release which will hit us this or next weekend.

App Launcher

They changed the App Launcher! Not sure I like this smaller version more, but when you click View All you will get the old version, which has all the objects sorted vertically. Would I not use the search bar I’ll be able to find them quicker this way. The fact that your users can change the order of the apps is just … sometimes I’m not sure these changes are that important.

Search includes details about Account

When you search for contact and opportunity it will also show you account name – no more guessing or including the company in opportunity name.

How long is it, 2 years? When they came with surveys it was paid feature, now it is free till some number of sent surveys and is better and better with every release, I would say we can slowly say good bye to GetFeedback and similar.

Images in questions are nice, being able to reuse previous answer in follow-up question is really great and being able to branch the survey based on previous answers is much needed feature. Auto-progressing is just small sweet on top.

Lightning Scheduler looks better and better as well, pity it is paid add-on. Skill Matching, combination with Einstein Bots, allow Guest Users to use it and support in flows. Feels I have plenty of organisations who use Calendly now-a-days and might really use this.

URL „Hacks“ are back, now officially supported and we can predefine fields when creating new records. Great in case when Quick Action isn’t the right solution. And look – you don’t need to know field ID but can use its name!

CustomCheckbox__c={!IF(Account.SomeCheckbox__c, true, false)}

Enhanced Related Lists are out of beta, I already enabled them in several organisations and they are super cool. Would it be possible to auto-enable them everywhere with one click, that would be awesome. Up to 10 fields, resizing columns, sorting, text wrapping, refresh button. Now I only need to be able to set a filter on it and add the same related list twice (or more).

Enhanced Related List

Salesforce CMS gets love in every release as well, I just skip it completely. Or should I move my blog to Salesforce? Tempting, but it will take a lot of energy.

Einstein Opportunity Scoring

Opportunity Scoring for free! It just need to learn a bit about you (meaning you have big enough sample of data and you also track enough different information about opportunities based on which it came make estimates) and then you will see what are your chances. I’m curious how much in-line it will be with AEs feelings.

Plus multiple emails and phones for Individual and Person Accounts including details such as when is the best time to reach them. Subscription object for storing info about newsletters they signed for.

Adding products to opportunities just got way better as well with filters. That looks like a great surprise for a few orgs I know.

Add product to opportunity

Support for Opportunity Contact Role in Process Builder is small but nice change, we will just use it at one project. Plus ability to add custom fields.

Being able to add account info to filters on contact list views is … nice, I wonder where we will stop needing reports as the border just got a bit more fuzzy. Also – why just on contact list views?

Cloning campaigns or opportunities with related records – this one is huge! Actually not that much. Originally I wrote „So far orgs could clone the campaign and then add all campaign members again via report, now it is just one click.“ The problem is that on campaigns it clones just Campaign Member Statuses. Anyway, one new button we need to remember to add to page layout.

Clone with related records

In Summer ’20 the email fields should support UTF-8, meaning we will be able to use our special characters in email addresses (as the existing norm allows). I’m not sure whether I should be excited or sad as on every single implementation when we import data at least one contact fails because they have such character in email address. And it is there by mistake. So now it will go well, but the email will never be delivered as in fact the address doesn’t exist.

Being able to assign task to a queue – already got one request for it a few weeks ago. Before you could assign it to multiple people which effectively resulted in cloning the task, now there will be just one task which can be completed by anyone from that queue (meaning we have to set it up up front).

Task assigned to queue

News got more relevant, now includes information from Germany, Netherlands, France and some others. It isn’t US only!

Do they want to receive email?

I need to learn and play more with the „new“ Individual object as it got a lot of new things as well. One of them is the Gmail/Outlook extension which can show you which people you shouldn’t send email to, because they didn’t wish to. And there is difference between the Email-opt-out field on contact and fields on Individual record. And between commercial and non-commercial email and you can also forbid some people to send the commercial one.

You can merge duplicated cases. That’s not the most important about it, the great thing is that you can manually select which cases you want to merge and that you can keep the duplicates and they will be linked to the main one. Both of that is cool, might be great to have the same for accounts & contacts.

Ability to insert formatted code into case emails is nice as well as bulk macros or running macros on background so you don’t have to wait till they finish. Small touches, but nice.

Reports – you can switch off automatic preview when creating report, so it is way quicker. Plus we got field by field comparison (was in beta in Winter) which is super cool as well as count of unique values (good bye Power Of One).

Einstein Analytics got a lot of love as well. Data Catalog which will show you where data come from and where they are used.

Data Catalog

MuleSoft connector, in pilot we have a lot of other new connections – SugarCRM, Zendesk, SAP SuccessFactor as well as other Salesforce Clouds such as Sales, Service or CPQ so you don’t need to worry about the links between objects because it will be set up for you.

Raised limits, being able to use filters for quicker sync, more granularity when scheduling sync with local Salesforce. Plus new apps. Direct Data – yes, we can do SOQL from EA to SF without replicating first. Dashboard versioning and collaborating on it before publishing to users. And Bindings just became Interactions and got their own editor.

Interactions Editor

New Mobile App came in Winter but has to be enabled. Now everyone will get it, a bit different UI which makes more sense (to me) and allow you to share direct link to records as one of great new feature.

Almost at the end of the whole release notes is the best part – flow enhancements.

Now you can:

  • run flow directly before save and it is 10 times faster than process builder. And it also changed the order of executions and run even before before Triggers;
  • we don’t need to create variables anymore as they are automatically created;
  • Get Records element can store all fields and not just those you specified (I always forget some as I update the flow, but what happened to the theory that we need to be selective to what we need, will we also get SELECT * ?);
  • run flow in system mode, till now it run in user mode, unless you fired it from process builder. I just need to re-read this sentence several time to be sure what it really can „The flow still respects org-wide default settings, role hierarchies, sharing rules, manual sharing, teams, and territories, but it ignores object permissions, field-level access, or other permissions of the running user“ – looks like the record level access is respected but not field level;
  • being able to use related record values is a big!
Choose related record values
Permission Sets Group

Permission Set Groups are here. Being able to use bare profiles and all extras to set via permission sets meant plenty of them and admins struggled as which one they need to assign. No more problems like this, just add one group and you are done. And it also includes mute permissions which means that it actively block the permission which might be added in different set. Now we only need to be able to use it for page layout and lightning pages assignments.

Direct Read Access to Custom Settings & Custom Metadata Types is disabled by default and we need to allow users in profiles for specific custom settings. This sounds huge and we need to check profiles. Similar looks this critical update, which is planned for Summer ’20 – Require Permission to View Record Names in Lookup Fields. When you don’t have access to the record in lookup field you won’t even see the name in the field. That sounds strange.

Salesforce Data Mask is probably great to those with full sandbox as they can provide access to developers without worrying about data as they will be masked/changed.

Plenty and plenty of other changes, but these are important to me and orgs I care about. Which new thing catch your attention?

Napiš komentář, díky!

Tips & Tricks for Salesforce

Last year I decided to put together a series of some small and simple tips how to improve your Salesforce instance. You know, that 1 % of improvement every months which will make it way better at the end of the year. And also to cover things we quite often skip during the implementation as their to need/time/will/what ever during the implementation.

I realised two things during the year:

  • I don’t have as many tips as I thought, respectively I don’t think that they are easily transferable to everyone and make sense to only some;
  • I don’t like the mailing list especially as MailChimp decided during the year that this feature will be paid and I wasn’t willing to pay. Also it feels better to me when the tips are just freely accessible to anyone, so I’ll republish them during the year here and maybe add some new one as well.

Here we go with the first one, which is the first step I do now-a-days and is surprised that many still skip it.

My Domain

It came a few years ago, at one time Salesforce also wanted to make it mandatory but then decided not to and rather „force“ it other way.

I like it for a few things:

  • branding – users can see your company name right at the URL and feel more „part of it“;
  • when Salesforce will migrate you to another server (which happens quite often) all URLs you have in emails and elsewhere will be still valid;
  • you can force users to login only from your domain -> a bit of extra security;
  • you can update the login screen with your branding;
  • consultants can work in multiple instances (even on the same server) at the same time (yeah!).

And then there are things when you have to enable My Domain:

  • when you want to use SSO (Single Sign-On, Social Sign-On) and make it easier for your users;
  • when you switch to Lightning and want to use 3rd party or your own Lightning components on pages.

How to do that?

It isn’t rocket science even though Salesforce recommends doing it during time when your users doesn’t work – so they aren’t surprised that they have to re-login again.

Just go to Setup, find My Domain and you are at the right place.

Enter your domain name, click on the Check availability and you will immediately know whether you can use it or choose a different one. If it is free you can click Register, wait a few minutes for email telling you all is good and you can continue.

Once you get the email the page will change, you will click on the Log In button to login on your new domain, test everything (cannot imagine why something shouldn’t work if you follow best practices) and click the magic button Deploy to Users.

Done. Well, you should play with the branding for a while, upload your logo, choose colors and maybe what will be in the right part of the login screen (if you don’t want to see the ads there anymore). And send email to users so they aren’t surprised.

Can I try it somewhere?

Trailhead, there is one module with practical example. Do it, NOW!

Napiš komentář, díky!