WEBINAR Series

Advanced Reporting Tips and Tricks for New Admins

Use Salesforce regularly? This webinar recap is for you. Here, Integrate.io's panel of experts explore hot-button Salesforce issues and more.

Advanced Reporting Tips and Tricks for New Admins

This Xforce Data Summit session features Leonard Linde and speaker Aaron Creaer, Founder of Hat-Trick Consulting and Salesforce Expert. Aaron dives deep, offering everything you need to know about reporting. Providing advanced tips and tricks, the goal of this session is to help Salesforce Admins become much more efficient.

Topics include cross filters, field-to-field filters, power of one and unique values, custom summary and row-level formulas, buckets, joined reports, and custom report types. Each feature is described, followed by a detailed use case or two. Aaron then completes a demo, showcasing exactly how that feature is used.

Based on the case uses and demos provided, this talk is ideal for new Salesforce Admins. However, you may also benefit as someone who has built on the platform for years, after all, features are always evolving. Whether you’re looking to learn new reporting features or strengthen your current skills, “Advance Reporting Tips and Tricks for New Admins” will certainly come in handy!

VIEW TRANSCRIPT

Hello, welcome to another X Force Data Summit presentation. Today we have Aaron Career, who, has a company called Hatcher Consulting in the Boston area. He's a Salesforce expert, And he's gonna give us advanced reporting tips and tricks today and I am eager to hear him.

Without further ado, here's Aaron.

Thanks, Aaron. Thanks everybody for joining today. Again, my name is Aaron. I'm gonna teach you a bit about reporting here.

And just to give you a little background on myself, I'm a recovering sales manager.

I'm proud to say I haven't made a cold call or begged somebody for a purchase order in almost three years. Never felt better in my life.

Been using Salesforce since about two thousand and nine. I started as an inside sales rep using it to create opportunities, log activities, and became kind of an accidental admin just by learning more to make my job easier.

About four years ago, I decided I wanted a career change. And I was kind of tired of having that quota hanging over my head and made a career pivot because I really saw the value in how companies could use Salesforce to make them more efficient and help them grow. So I began with Trailhead and then started studying for certs.

I speak at a lot of these events because I feel very fortunate that I was able to make that career pivot, and it's kind of my way to give back. I run the Lowell, Massachusetts admin user group. I'm co organizer Northeast Freeman, and I'm co founder of a blog I'm reporting called Report Force.

So all the tips and tricks we're going to show you today, they're really simple things once you know they exist. But there was certainly a time in my career where I did not know they existed. So they're going to be really useful for you. They're going to make you much, much more efficient.

So our topics today are cross filters, field to field filters, Power of One unique values, custom summary and role level formulas, buckets, joint reports, and custom report types.

We'll have a brief overview of the topic. We'll have a use case or two. And then we'll have a demo of how you actually use these features.

So first is cross filters.

They allow you to filter reports by objects instead of just fields. These object filters are dependent on the parent object of the report type.

We have three separate use cases here. So one is a marketing manager who wants to identify all accounts without contacts so they can put some more in their marketing funnel.

Second, we have a sales director that wants to review all accounts with opportunities to look at industry trends but only relying on new customers.

And third, as a sales rep, all contacts part of opportunities should have activities associated with them, and you want to make sure that you've done this.

All right. Let's take a look at our first use case for cross filters. That is a marketing manager wants to identify all accounts without contacts to add contacts into their marketing funnel. So we will take a look at our first report, which is accounts without contacts.

And we can see here just a tabular report with a few fields based on the accounts, and we're going to edit this to see how we were able to use the cross filter.

And we'll just click on our filters tab here. If we were adding a brand new one, as we can see, we have one here already. To add a cross filter, we simply click the little drop down there and add cross filter, But we'll open up the existing one, and we selected accounts. That's the only thing available because that's based on the report type, which we can see up here. It's just accounts.

And then it's just a with or without statement. So one object with or without another, we selected without. And then as our secondary object, we selected contacts out of all these related objects.

So very quickly, very simply, we get a, quick synopsis of which accounts have no contacts related to them. The first time that I, somebody asked me for this report, I didn't know cross filters existed. I exported the entire database, created a couple of formulas in Excel to basically return a zero or a one if there were contacts related to that account.

It was not fun. It took quite a long time. It was a complete pain in the butt. And then a few hours later, I, read a blog post about cross filters, and it really saved a ton of time. I wish I had known about it a lot sooner.

So we will take a peek at our next use case, which is a sales director is interested in reviewing all accounts with opportunities in order to identify industry trends focusing only on new customers.

So we're going to look at accounts with opportunities by industry. So we can see here we have a chart group by industry.

We have some ratings. We have our account names, and we're basically looking at, record count. So how many, opportunities within each of these industries.

Let's take a peek inside and we'll look at our cross filter.

Again, we have accounts. This time we've selected with opportunities.

We made our filter, so we're not returning any accounts without opportunities, but we only want to focus on new customers.

So if we use this filter within the cross filter, say on the type field, we're allowed to select new customer here. So when we apply this, now we're reducing that list to only show opportunities of the type new customer. And the really cool part about this is we're using that field from the opportunity as a filter within our report even though we're only using an accounts report type up here. There's not, this isn't accounts with opportunities.

There's no fields over here from the opportunities. If we look, these are all just account fields. So it's a really good way if you just need a quick numeric value or a quick, list of records. You you don't need to create that custom report type.

We can use fields from the other, other objects within our cross filter as filters. So really good use case here.

Our third one is as a sales rep, all contacts part of opportunity should have activities associated with them, and you wanna make sure you've done this to create a report and begin outreach. So my second job out of college, I was a sales rep. And every Friday afternoon at four thirty, my manager wanted to have a review call.

I don't know about you, but four thirty on a Friday, I wanna log out, crack a beer, and relax. I don't wanna rehash what I did all week or more importantly, I didn't do all week. So after a a couple of weeks of going through these meetings, I said, is for the birds. I gotta figure out a a better way to do this so I can I can get him the answers that he needs, and I can get these calls over with quicker, get on with my life? And to do that, I started creating some reports for myself just to make sure I didn't miss anything over the course of the week. So we'll take a quick peek here at our report. So we're looking at contacts without activities.

And we can see our cross filter here. Real simple. But we wanna make sure that we're looking at contacts with opportunities. So to do that, we can add a second cross filter so we can layer these or nest them.

So we're going to say without activities, but with opportunities, and we're gonna apply. And now I can see in my list. This would be a real standard SLA, for most organizations. Obviously, if you have an opportunity, you should be working that opportunity.

There should be contacts related to it. Those contacts should have that activity. So now I can see that I need to reach out to Jane and Avi, before that Friday call. That way I can make sure I've covered all my bases and done my outreach.

So there's a quick, demo of how to use cross filters, and, we'll move on to the next section. Thank you.

All right. Our next section is going to be field to field filters.

These allow you to compare values of two different report fields. This is only available in Lightning Experience, and this is one of the newer reporting features from the last few releases.

In our use cases, a marketing team wants to evaluate all campaigns that have an actual cost more than the budgeted cost to help with planning for next year.

Alright. We'll take a look at our use case for field to field filters.

Before we do that, want to make sure that it's enabled in our org. So we'll go to setup, and then over here in our quick find, we'll look for report and dashboard settings.

We'll click on that, and we wanna make sure that this box is checked as this is one of the newer features. So just check that box, and you'll be good to go.

And we'll take a look at our report for our use case, which is a marketing team lead wants to evaluate all campaigns that have an actual cost more than the budget cost to help with budget planning for next year. So we take a peek at our report here. We can see our budgeted cost and campaign and our actual cost and campaign. We can see we've gone over in, several of these campaigns and what was budgeted versus what was actually spent.

So how did we filter our report to only show these?

Well, to do so, we used this newer feature, is field to field filters.

And when we look at our filter here, we'll click into it.

In this little type section, we have the option which now is selected on field versus value. So you're probably familiar with filtering based on values of amount greater than a hundred k, under a hundred k, things like that. But now we're filtering on a field. So we're saying, look at actual cost, compare that to the budgeted cost field, and return any that are greater than.

And when we apply that, now we're only seeing records that have an actual cost greater than budgeted cost. Really good, new new feature. It is limited to only certain types of field. As an example, you cannot use lookup fields in this. So if you're trying to compare contact or opportunity owner versus account owner, things like that are I'm not available in this. So just be be be clear when you're trying to use this. If, for some reason you don't have this option available when you try and filter, that's the reason why it's based on the field you're selecting.

Alright. Our next section is PowerOne in unique counts.

It allows you to summarize and count objects and reports. PowerOne's a new custom formula field. I recommend you do it on every object. I think it's a best practice if you name the field the same as the object, and I'll explain why in a few minutes. They're useful in roll ups and additional formulas. Unique count, which is a newer feature, gives you quick visibility and reports to these numbers.

So a use case, sales director wants a report that shows the pipeline summary by stage that breaks on the number of opportunities, accounts, and products within that pipeline.

Now we'll take a look at our use case for PowerOne and unique counts and this will be a sales director wants a report that shows the pipeline summary by stage that breaks down the number of opportunities, accounts, and products.

So we'll look at our opportunity pipeline composition report. See just a funnel chart here, group by stage, and then if we scroll down here we can see the number of opportunities, accounts, products.

And this is a really useful report for sales and marketing departments because we can take a look and see is too much of our pipeline weighted towards one or two customers where if that relationship goes south or you don't get that initial win, are you really going to take a hit there? Or on the product side, is it too heavily weighted towards one product which you just found out is going to be delayed and released for a month or two? That can really pressure quarter for companies.

So it's really used to judge the health of your pipeline.

So to create these, we've created basically formula fields on the objects themselves that allow them to count themselves.

And that allows us to look at this report in this funnel and say how many different opportunities are covered here, how many different accounts, how many different products or opportunity products. We can see over here to the right, we have a row for a column rather for record count. I never ever use that unless it's a single object report because I think it's really confusing for users to understand what is actually counting. So using the power of one to show these is definitely a much better way to do it. So how do we create that formula? Pop over to setup, and we'll just take a look at one of our objects.

And we'll look at an account, and we'll look at field called accounts, and we'll edit this just to take a peek at it.

And it's a number for the return type, zero decimal places. And now the really, really complicated part is the formula itself, And that's just the number one in that big white box. That's all you have to type in there. That's the entire formula. And now it's allowing it to count itself.

So if we go back to our report here, I told you that it's a best practice to name it the same as the object. So the first time I read Steve Moe's blog post about this, I said, oh, this is a great feature. This solves one of my problems. I went into one of my orgs, I put the field, on every single object in the org.

And on every single object, I named it the power of one. And then when I looked at these four columns here, they all said the power of one, and I had no idea which one went to which object. So I had to go back and relabel them all. So, good use learning learning moment there for me.

But a good way to use this. Now there's a newer feature that just came out in the last release that kind of helps with this. I'm going to show that to you here. But the PowerOne is definitely useful.

There's other use cases that you're going to see throughout this presentation. We'll tie it back, here from some of the other sections, but I really wanted you to understand the concept of it. So if we edit this and we'll take a look, we'll show our detail rows.

And we'll let's say we just want to find out how many accounts are in here.

We're just going to click this little drop down next to account name and we're going to say show unique count.

We get our total down the bottom. We'll run this and we'll just compare it to our power of one field to see if they're exact or not.

And if we look over here, our unique count down the bottom here is seven. If we look over at the accounts, we have a seven. So this new feature a hundred percent came from, the usage of the power of one by lots and lots of people. If you're just looking for that quick total, I would definitely use this feature here, as opposed to going to create all those formula fields in the account.

But there's definitely reasons to create that formula field on your objects because there are a lot of other ways to use it. And we'll see some of those as we move forward. Alright. Our next section is custom summary and row level formulas.

Custom summary formulas are used to calculate additional totals in summary matrix and join reports. They're based only on numeric fields, can be summarized.

They are unique to the report and cannot be shared to other reports.

Role level formulas, which is a newer feature, allows you to do the calculations on every role. You have flexibility outside of numeric fields with standard formula operations.

You can definitely reduce the number of formula fields you have in your org by using this.

And these are also unique to the report and cannot be shared to other reports.

So we have a few use cases here. Marketing department needs to know what percentage of leads created were converted.

You want to give the sales team a visual representation of where their sales are compared to goal.

An executive wants to see the number of days between when an opportunity was created and when it closed.

And the territory manager wants to evaluate their current structure by looking at all opportunities that have a different owner than the related account.

Now we'll take a peek at our use cases for custom summary and role level formulas.

So the first is marketing department needs to know what percentage of leads created were converted. Real simple metric that most marketing departments are going to use. We'll take a look at, two ways to look at these. The first is just using a simple is converted statement or fields, standard out of the box availability, true or false. And we hover over here, we can see the record count or number of leads as well as the percentage.

So again, out of the box functionality works fine. When we look at this, we can see our grouping right here by that converted field or statement.

Again, it works fine, but if you want to do something a little more advanced, we can use the custom summary formula to add to that.

So we can see here we have our vertical bar, which is showing the number of leads for the month, as well as the upward sloping or horizontal bar, line rather, that is showing the conversion rate. And we can see here we have our conversion rate column with our percentage, and we can see the FX here, which is telling us it's a formula.

So if we edit this, let's take a peek at our summary formula here. We've named it conversion rate. We selected percent. We could choose number or currency.

We've said two decimal points. And then we've written our formula in here, converted sum, so the number of leads converted, divided by the sum of leads, so the total number of leads.

We can see this looks a little odd. Right? Lead dot leads sum. This piece right here highlighted is actually, the power of one on the leads object.

So we're taking what we learned in the previous section, and we're adding it in within our custom summary formula.

Our next use case is we want to give the sales team a visual representation of where their sales are compared to goal.

So we can see here we have our vertical bars, which are showing basically closed one for the for the month, how much was sold, and then we have our horizontal bar which is our monthly goal.

And we can scroll down and we can see here we have four custom summary formulas that are showing us these calculations.

So the first time I wrote this report, was visiting one of my customers and the sales director, her name is Elizabeth, sitting at her desk. She's got both screens going. She's got a piece of paper and a calculator and Excel spread sheet. She's scratching her head.

She's swearing. And, I said, Elizabeth, what's the matter? And she's saying, we have a new way we need to report things, and, I'm trying to figure out if we're above or below our goals. They don't use standard, Salesforce forecasting.

They don't have any custom fields or custom objects to capture their goals. They don't live anywhere inside of Salesforce.

So we get to talking for a bit. And once I understood that it's a really simple case, they're they have a flat goal per month, that's all they need to capture. I said, okay, we can do that right in a report. We don't have to build anything crazy. We can get you the numbers that you need. So if we open this up, we'll take a look at how we built our four formula fields.

So first is monthly goal. Again, select the currency, two decimal points, and we've written our formula here as ABS five hundred ks. All ABS means is absolute value. Whatever you put inside of these parentheses, that's what it's going to return or display.

And in this case, we've selected a specific group to display it as based on close date. And what that means is basically in this report, since we grouped it by that close date, every row is going to return five hundred thousand, which if we close this, we can see right here.

When we look at our percentage to monthly goal, again, we've set the amount sum, in this case what's closed one for the month, dividing it by that five hundred k.

And again, we've displayed that on the specific group for closed date, again, returning that calculation on every row.

We look at annual same way we built, the monthly goal, except we've replaced the five hundred k with six million.

The difference is we've chosen to display this on the grand total only, which is why it only shows up on the bottom row. So when we look at this, we can see our six million only shows up down here. It doesn't return on every row, which is what we want.

Percentage to annual goal, we've divided that amount sum or closed one divided by the six million, and we've displayed on the grand total only, which displays right here.

So a really quick way to show people kind of where they stand, in a report without having to build custom fields, custom objects, or, adding forecasting, anything like that.

Next use case is an exec wants to see the number of days between when an op was created and when it closed without creating a new custom field.

So very common use case prior to the last release.

If we look at column here, have one for created date, and we have one for closed date.

And then we have days to close, which again we can see is a formula with a calculation here. But we've chosen to use a row level formula instead of a custom summary formula basically because we have to. We can't use a custom summary formula for this. And again, custom summary formulas basically are giving you totals. They have to be based on numeric values. And in this case, we're doing a calculation based on two date fields.

So if we click into our formula, we've chosen not to summarize because it's not relevant for this. We're gonna edit it, and we selected days to close. Number is our output.

Obviously, we're not going to be able to select currency because it's not a currency field.

And we've selected our field, so close date, and then created date, and we've added a formula function of date value because create a date is technically a date time field, and we only want to calculate the date part of that. So we've added a date value in here, and that's allowed us to create our calculation.

So really good use cases is a common formula field that a lot of companies have, put on their opportunities. Now we don't need to unnecessarily use up that field. We can just do it in the report here, as long as you don't need to actually see it on the record itself. So if you're only consuming this for reporting just to gauge how long the, opts are taking to close, you don't need to see it on that individual record or in a list view. This is a great way to do it.

And we'll look at our last use case, which is a territory manager wants to evaluate the current structure by looking at all ops that have a different owner other than the account owner. So we will look at our report here.

We can see here we have our opportunity owner. We have our account owner and then a column called same owner, which is a formula. And these three, four have returned no, which if we look at a quick compare here, none of these first two columns match, so these all should say no.

How did we create that?

Look at our formula, title it same owner. It's a text formula. We've used an if statement. So we've said if account owner is our first field equals full name, and in this case, name is the opportunity owner.

We said return a yes. If not, return a no. So we're basically using a text formula here and we've applied it and it's given us our calculations. Then I've also used it as a filter So we can take the formulas that we've created and we've used it as a filter to say only show me records that do not have the same owner.

So really, really good use case.

Row level format is definitely my favorite feature out of the new release.

Right now, you're limited to using one in a report. I can't wait till that changes, but this is a real game changer for reports.

All right. And our next section is buckets.

And buckets allow you to categorize a group of values. You can use custom names for each bucket. They do not require formulas or custom fields. I kind of think of it as opportunity stage forecast categories.

And we have a couple use case here. So you're tasked with creating a sales by region report. Opportunities from accounts in the US and Canada should be combined into NA, and all countries in Europe should be combined into Europe.

Alright. We'll take a look at our use case for buckets. So we're tasked with creating a sales by region report. Opportunities from accounts in the US and Canada should be combined into NA, and all countries of Europe should be combined into Europe. So we'll look at our sales by region report.

We can see here we have things grouped by region. We can see Europe, NA, other. We can look at the record count as well as the percentage. And then we can see over here we have a column for region. We can see a little icon here, is a bucket, and that tells us we bucketed fields based on values here.

So if we edit this, we'll take a look at our bucket and we've named it region. You can name it whatever you like. We're selecting a specific field. That's what we're bucketing. And in this case, we select billing country.

We can see we have a bucket for NA with a blue bucket for Europe with purple. And if we look at our values, can see France is in that purple bucket. USA is in that blue bucket. China, although is not bucketed. So let's create a new bucket for Asia.

We have our new bucket. Now we need to put a value into it. So if we click on all values, we can see China hasn't been put in there. We'll check the box next to it and simply say move to Asia.

We'll hit apply.

Now we have our column updated with Asia. We have our chart updated with Asia.

We still have this group called other and why is that after we run, we don't actually don't need to run it we can look back over here into our bucket and we can see we have this box checked, basically putting any remaining values into the quote unquote other bucket. That's why that's showing there. So if you didn't want that, you can simply uncheck the box. So this is a good use case for grouping things in a bucket for quick reporting purposes.

If it's something you're going to use a lot, you may want to do this on the objects themselves. So much like custom summary and row level formulas, buckets live in the reports themselves. They don't actually sit on the objects. So if you need to see this on a record as an example, you're not going to be able to do that.

You might be better off in that case of creating an actual region field on, you know, leads, accounts, contacts, opportunities.

You could automate that, you know, with some process builder that looks at, say, shipping or billing country and then updates that region field, something like that. But if you're only using it for reporting purposes, this is a really good way to use it. Again, you would have to recreate this bucket depending on the report you're creating, unless you kind of clone this. So if you just do a quick save as and do this as a new version and then update your filters, fields, etcetera, the the bucket would get passed through.

Next, we'll talk about joined reports. They allow you to view different types of information within a single report. You can create up to five blocks, and the blocks can be cross object.

And our use case here is a sales director would like one report that shows sales for the month, the year to date, and the last twelve months all within one report, one view.

Next, we'll take a look at our use case for joined reports.

So a sales director would like one report that shows sales for month, year to date, and last twelve months.

So we'll take a look at our report here.

And we can see we have basically three blocks here looking at opportunity information for different time periods. We have month, this year, last twelve months. They all have closed date amount and opportunity name.

So we could, instead of creating this report, we could create a dashboard with three charts based on these time periods. That would be very simple to do. This is really a personal preference use case where this manager just wants one report that maybe gets emailed to him daily or weekly that has these metrics in it, and no need to create a whole dashboard in that case.

But if we edit this, how did we create this?

So the first way we do it is by selecting a join report. So if we click up here, basically you're going to select report, and that'll be selected by default when you create a report. And this would cover tabular summary matrix. You'd have to select this to switch over to a joined. You can have up to five blocks, as I said earlier.

And when we look at our columns here we can see the blue dot is showing us the separation between each block.

That's also telling us the object. So these are all blue because they're opportunities. So if we wanted to change the columns just like you would in a normal report, can select your columns here for each block. So each block does not have to have the same column. So we could add created by to that column as an example, to that block rather, and not put it in the other.

We also have our filters. Just like our normal filters for each block we can set our filters and we can see these are identical with the exception of the date periods based on closed date. Those are all different. So if we want to add a new block, we select our report type.

When you do that it's automatically going to put it over to the far right, so don't be alarmed if you think it's going show up on the left. It always shows up here.

And if we scroll down, look at our outline, we have a ton of fields here. Let's get rid of these and match it up to the rest. So we're going to remove all columns, and then we'll add in the same as the others. So we'll put in our close date, our amount, and our op name.

Now we want to give this a unique name so let's say the last two years as an example So now we have our new block, but we need to still need to update our filters for it. So based on that time period, so instead of current fiscal quarter, we could use something like current and previous fiscal year. We'll say that's what we're using for our last two years.

And now we have our new block. It's a really good way to get a bunch of different data points into one view on a report.

But another great use case for joint reports is you don't have to have the same object in all five blocks. So let's add another block and assume we want to capture some lead info.

So we're going to add another block here.

And again, we'll scroll over to the right and we can see we have lead info.

We'll look at our outline, and we can see that's green. So that's telling us it's a different object compared to the blue, which is opportunities. And we have our columns here. Now we would just need to update our filter.

Let's say we want to look at all leads.

Let's say all times as an example.

Now we run our report.

Join reports do take a minute or so to run here because they're doing the calculations across objects, especially when we're doing all time.

But it's a really good use case for getting, like I said, different objects, different data points into one view without having to create a dashboard, that you're gonna have to maintain, especially if this is kind of a a one off use case for a specific person sometimes or or even a couple of specific people. And now we can see over here, we have our lead info as well.

Alright. Next, we're gonna talk about custom report types, and they allow you to create more complex reports not provided by standard ones. You can include up to four objects, primary and secondary objects, which must be related to the primary.

You can choose whether a secondary object may or may not have an associated record, and you can select which fields from the objects are available on the report type itself.

So use cases, a marketing manager would like to see what activity volume campaigns are driving with the visibility to the contact level. So we can look at a campaign and see campaign members. We can look at a contact and see activities. But having that cleaner line of visibility from the campaign to the campaign member to the contact to the activities not easy, out of the box.

Alright. Our final section, we'll take a look at their use case for custom report types.

And our marketing manager would like to see what activity volume campaigns are driving with the visibility to contact levels. So it's pretty easy to to do some reports on campaign and the associated contacts to them. It's pretty easy to look at contacts and the activities related to them. But having a clear line of sight from a campaign to say a contact to an activity is not that simple with standard reporting.

So to do that, we'll create a custom report type to help us with that. So the first thing we'll do is we'll take a peek at our report for our October newsletter, and we're just looking at activity volume. We can see we just have our name, we have our campaign, our subject, and activities. This activities column is just the power of one on that object.

So again, we're going back to something we learned earlier in the session, looping that into another way to use it in a report. And I use these reports a lot for callback lists. So for reps, if you walk through the expo this week, obviously, there's hundreds of vendors here. They all have people manning their booths.

When they kind of scan your name, there's people that are going to be reaching out to us all next week, trying to sell us product services, all of that. So how do each of their reps know who they're following up with? I would create a report like this, and give that to them. And then we can actually filter it so that when they make contact with somebody, they fall off this report. So a simple way to do that would just be to filter on that activities field.

We'll add this in here. Scroll down the bottom.

I want to say greater than zero and apply.

Actually we want to make that less than one is actually the better way to do that.

So now when we run that, once you make contact with somebody, they'll fall off this list. So now I'm only seeing the people I do need to still follow-up with.

So in order to do that, we created a custom report type.

So we'll go to setup, and we'll go to report types, and we can see here we have our activity volume for contacts, and if we edit this, campaigns was our primary object, contacts is our second secondary and they have to be related, and we've said each a record must have at least one b record. So when we use this report type to create a report, it's only going to return values of campaigns that have at least one contact on them.

So if you have campaigns rather that only have leads on them, they're not going to show up when you are in a report based on this report type.

But we've said each B record may or may not have a related C record. So we're saying only show campaigns that have at least one contact, but show contacts regardless of whether they do or they do not have activities.

We just filtered that report to show us people that didn't have any, but the report type starting basis, we're saying show us whether they do or they do not.

This is really important to make sure when you select these, get them right and really label your report type something that's clear. So if I'm going to choose something like this, I want to say campaigns with contacts. If I'm going to change it to that value here saying they may or may not, I'm going say campaigns with or without contacts because it can be very confusing to users what they're returning. Because this, based on the report type, will filter things out of the report.

Another thing to note about report types is you can choose what fields are available or not available in the reports themselves.

So we have our layout here where we can see our three objects and all the fields here.

When you create your report type, unless you come in and edit this, all fields from those three objects are going to show up in your report type.

When you go to add a new custom field to any of these objects, let's say we created it today, all the fields are in here. On Monday, we go in and we create a new custom field on one of these record, one of these objects.

It doesn't necessarily show up here. It actually won't. You will physically have to come in here and look for the new field that you added on the contacts object called individual. You have to drag it in here, and then you have to save it. It's a very frustrating thing. But when you're creating a report and you're looking for that new field that you created and you can't find it to add as a column or a field in your report or you can't find it to use as a filter, this is the reason why. You need to come back in here and update your layout and hit save.

Another really cool use is to add related fields via lookup. And what this is we can add fields available in a report type without linking additional objects in here. So we had campaign contact inactivity in this report type.

Let's assume we want to look at something based on, say, the contact owner. So we don't have the user object as part of this report type. But if I look at contact owner, we have all of these fields available from the actual user record.

So let's say we want to select role or locale or language.

We can add those in without going back and and adding that user object in here.

And now we've added those fields via the lookup. So really good use case. If you can start by using the bottom level of your report, adding fields in via lookup, you're going to save yourself a ton of work. It's a lot better than trying to jam in a bunch of objects if you don't have to.

Alright, so some other resources for you. Trailhead, I'm sure everybody's heard this by now. Great way to learn, especially with hands on modules.

Certifications are great. I have six of them. Every single one of them, I've had to learn things about the platform I didn't know about. I had been a sales director for a decade and an admin for, I think, two or three years. I thought I was going to breeze through the Sales Cloud certification. Not so much, just because there were areas that I hadn't been exposed to. So you're always going to have to learn new areas.

Trivillager community is awesome. Anytime I don't know how to do something, it's the first place I look. You have MVPs, CTAs, user group leaders, sometimes answering your questions in real time invaluable resource.

Community groups are great. They're they're outstanding for networking, but you can also learn a ton from the presenters there.

Community conferences. So whether they're virtual like this or they're the in person, there's thirty plus streaming events around the world. They're great ways to learn. And find a mentor.

A mentor could be somebody more senior at your organization. It could be somebody you meet, a speaker at a conference like this. It could be somebody you follow on Twitter. But the best part of this community is people are willing to share their knowledge and their time.

So don't be shy about asking for that because I know people are willing to do it. And then blog. Reportforce. Blog.

And there's a lot of articles up there that will help you with your reporting journeys. So thank you very much for your time.

Thanks, Aaron. Well, I should learn something about Salesforce reporting. I guess one of the things that I as a more old school Salesforce user, used it a while back, It all seemed like Salesforce had sort of stopped developing reporting features, but it looks like with Lightning, they've kind of let it go.

Do you see some things on the horizon coming? Have you heard of more things in reporting that you think are interesting?

So the last couple releases, there's been a lot about reporting. So from the the lightning report builder to row level formulas, unique counts. So those have been really good. Some of the newer things that I've heard are going to be coming out in somewhat near future are the example that I showed on how new custom fields don't automatically show up on custom report types. That's supposed to be a feature that will come out. So when you add those new fields, they will automatically go to those report types.

And I think they have more recently made some larger investments in the reporting, even speaking to the product manager for reports at Dreamforce at the end of last year, just talking about row level formulas right now. It's really only limited to one. That was a huge hurdle for them, looking at adding more because it is such a performance degradation by doing that. So I think it is something they're going to continue to invest in. Obviously, we have analytics and now Tableau they've acquired, so there's other products for this. But core reporting is certainly not going away.

Right. And I think that in addition to the changes Salesforce is making, this PowerOne thing is super clever.

You know, like that report you showed that had the, you know, cut offline for that, just using regular reporting. That was, that kind of stuff is really, I mean, if you can do it in a platform that all your users can use and that they're comfortable with, that's huge. Exactly.

Well, thanks Aaron. We really appreciate your time and your expertise.

Thank you for having me.