Can you calculate follow-up time for us?

I feel like this might nicely fit into the „How I solved it“ series, which Jen is running.

A customer came the other day that they have a new process, where they need to follow-up with a new lead in 2 hours and notify owner and their supervisor if there is a delay.

My initial reaction was „damn, cases have it out-of-the-box but that’s not a reason to change leads to cases and it is really pity“

The next thought was pretty simple – 2 hours, it is just a simple flow which would set a date/time field and put extra two hours there and then scheduled path with email/Slack message.

Obviously it turned out to be a bit more complex:

  • 2 hours only during business hours
  • operating in multiple timezones

In Apex we can use the BusinessHours class, which would solve the check whether we are already after hours or weekend or ban holiday, but do I want to develop this thing? And how to handle the timezones?

And how can I solve it in Flow? Add two hours and check whether it is already after working hours or weekend?  That would be complex and ugly to configure.

Invocable classes and community solution to my rescue, I’m so glad that I know UnOfficialSF.com.

The Solution

There are actually two great solutions on the UnOfficialSF, which I combined.

The first is more complex and can solve almost anything, except using specified business hours to run the calculation (it takes the default one)

The second one can take specific business hours into account, but there is no way how to figure out which of them.

  1. Create a business hours for „each“ timezone – I didn’t really create for each, but only for the timezones (or rather timeshifts?) where present employees are based. What I mean by „timeshifts“? If there are two people, one located in Prague and one in Berlin (both are GMT+1) I would create just one record (e.g. BusinessHours1), where the number means the offset. The potential downside are cities, which typically have the same time shift but sometime to the switch to summer/winter time at different time of the year (or not at all – I still remember some states in Australia have it differently)
  2. As all times in Salesforce are stored in UTC/GMT the first thing the flow does is to calculate the offset of the owner of the record – the timezone field on user record doesn’t specify the numeric value, but the real city, so we cannot just get it from the record but the Apex can tell me the difference
  3. We will find the respective business hours record (remember the number in the name) and if there is none we would take the default one
  4. Calculate the offset via calling the respective method and passing the business hours Id
  5. Have a second after-save flow with scheduled path – the assumption is that there aren’t that many records created on daily basis to hit the limits of scheduled interviews. The reason for second flow was, that when you update the „Follow-up till“ value in the same flow, the scheduled path is not recalculated. Crucial detail when designing these two flows was also the order of their execution – don’t forget to set it right otherwise it might work just on second save or never

Done!

That would be too quick, right? One of my biggest fear was how to post the message to Slack, especially as I want to mention the respective user. Turned out that when you setup the Slack integration it automatically syncs the Slack user ids (or you can map it manually), so it was simple matter of lookup the user id (and their superior) and add the id into the Slack message – the format of <@Id> has been luckily easy to find on the internet.

Take away

Customer happy and one crucial fact discovered as well – to surprise of everyone, most of the leads could wait till the next day for processing (meaning the 2 hours deadline will be only the next day).

While the intention of assigning the person from the respective region was generally good and made sense, turned out that customers have been typically registering rather at the end of the day/after hours and it might be better to assign them to someone from other region, to really get in touch in those 2 hours. Obviously they might have done it as the last task of their day and be already out of office, but who knows and we don’t have data to confirm that.

What about you, do you have some KPIs to track and automation to help you keep up with them?

Napiš komentář, díky!

Free Salesforce License in your org, can you believe it?

Sometimes Salesforce surprises, like a few years back when they introduced the Integration license and gave 5 of them for free in every org.

Now – I mean it is for some time already, but I finally really used it at one client – you can get Platform licenses for free as well.

As SalesforceBen listed in their article, you get 600 Platform Login Licenses when you enable Salesforce Foundations.

But here is the catch, as the license is not available immediately after activating Foundations. The only one you will see is 601 of Einstein Agent and 20 200 of External Apps Login.

You need to reach out to your AE and ask them to add the ‚Agentforce 360 Platform — Login and Dev Provisioning‘ SKU into your contract, which is free of charge. Once signed and a bit of wait you will get Platform Logins into your org. Surprisingly we got 12 000 of them, when I expected only 600, maybe it is somehow linked to the related information in the article – „600 annual logins with 30,000 credits“ but I’m still not able to do the math.

Licenses in our org

What do to with that?

Login license is not like a regular license, you pay/use it for every login by those users, but counting only once for each user during 24 hours. Meaning if the user will login every working day (let’s say 200 days per year) you have enough for 60 people – wow!

Platform license works almost like any other license, there are just a few objects it cannot access such as Leads or Opportunities. But Accounts, Contacts, Tasks, Events, custom objects, etc are available and can be used.

You will also notice why Salesforce has been pushing for Permission Sets for a while – you need to have a different profile for Login users and it is quiet annoying to setup everything twice. Minimum profile extended with relevant permission sets will save you a lot of work.

External Apps Login

Actually what about the other license you get as well? Again, these licenses are used per login, as the name suggest you can use it only for external users (not internal) and they will be able to access Salesforce only via Experience Cloud. Generally they behave as Customer Community license which means less possibilities to share data, managing users via accounts & contacts and a few other things. And they have access only to CRM objects (meaning NO access to leads, cases, opportunities primarily) but you can probably still find some use-case for what to use it.

All those tricky flex-credits

Yes, to enable Foundations you need to enable Data Cloud and we all heard the story about pay-as-you-go, consumption credits, etc. A lot of people are super scared about this, even though Salesforce tried to minimize the risk with all the extra reporting.

From my experience when you just enable these things it doesn’t consume any credits and you are still getting the benefits mentioned above. Already 2 of mine customers are using extra licenses they’ve got for free and so far don’t complain.

Napiš komentář, díky!

O Salesforce s business analytiky

S analytiky

Volné pokračování mé série o rolích lidí v Salesforce/IT ecosystému. Už jsme mluvili o testování, projektovém řízení, s obchodníky, administrátory, head hunterem, s konzultanty i success architektem. Tak teď jsme chytili ten „začátek“ projektu, kde se říká co se bude dělat, proč a případně jak. Připojila se ke mě Nhan Anička NguyenováAnna Michutová, které si roli business analytika užívají už hezkých pár pátků a současně se dívají dopředu, takže jsme mohli mluvit i o technických dovednostech a jejich přínosu.

Zápisky:

  • Analytik není univerzál – role se specializují a málokdo pokrývá vše od byznysu po data.
  • Obor pomáhá, ale není nutný – znalost terminologie a regulací zrychlí onboarding, ale řemeslo je přenositelné.
  • Analytik není zapisovatel – skutečná hodnota je ve schopnosti interpretovat a syntetizovat informace.
  • Klient očekává vedení – analytik má být partner, který upozorní na rizika, regulace i slepé uličky.
  • Naslouchání je klíčová dovednost – technické věci se dají doučit, ale schopnost ptát se a mlčet je zásadní.
  • Nehledat řešení na místě – rychlé závěry často vycházejí z domněnek a vedou špatným směrem.
  • Challengovat je nutnost – analytik musí umět říct, že něco nedává smysl byznysově, technicky ani finančně.
  • Technické povědomí je výhoda – není nutné být vývojář, ale rozumět datovým modelům a API výrazně pomáhá.
  • Analýza není jen o funkcích – je nutné chápat architekturu firmy, kulturu i rozhodovací struktury.
  • Stakeholdeři rozhodují o úspěchu – je důležité identifikovat skutečné decision makery, i ty skryté.
  • Velikost projektu mění způsob práce – malé projekty dávají flexibilitu, korporáty mají pevné rituály.
  • Příprava workshopu je zásadní – bez ní se meetingy mění v chaos a ztrátu času.
  • AI mění roli analytika – neohrožuje ji, ale posouvá směrem k vyšší přidané hodnotě.
  • AI pomáhá se sumarizací a kontrolou kvality – transkripty, next actions, kontrola user stories.
  • Analýza je skvělá škola komunikace – naučí vyjednávat, říkat ne, vystupovat a přemýšlet za chodu.
Listen on Apple Podcasts Listen on Spotify

Napiš komentář, díky!

You know how to make your customers loyal?

Another great user group in the books, this time about Loyalty Management. Flo hosted us again in their beautiful offices and what originally looked like a small gathering of a few interested one at the end became one of the biggest meetups with close to 100% attendance rate, wow, this topic really resonates!

Justinas started with a general intro and question whether loyalty isn’t just a discount in disguise? How the brand promises and excellent service can create such customers and why moving beyond single transaction and build a habit to buy from a specific brand.

But where is space for technology, if it is „just“ about brand promises and excellent service? Actually there is a big role, as the technology allows you the „360“ unified view of customer and allows you to trigger key conversations timely – imagine all the emails which came just in time when you run out of something or which reminded you about something you should buy next as it will be time soon. Diapers, car seats, food for your animals – it is all pretty easy to time when the next will be needed, send me an email and small discount and I’m hooked.

Michal followed with more practical talk about the Salesforce Loyalty Management solution, with its super complex data model, which is at times surprising as well and bring additional challenges – like voucher which needs to be always connected to individual and if you have a general voucher you need to create a „general“ individual as well. Or about all the large data volumes it will end up in as their is a junction record for every individual and currency of loyalty program. Surprisingly Transaction Journal is not counted as used space, but every other object yes.

Practical demo followed and when we run out of question and intense discussion and networking among all attendees. It was a long evening but fully worth it!

Napiš komentář, díky!