Dynamics 365 Team Member Licenses Lock Down

Microsoft recently announced that for Dynamics 365 Team Member licenses purchased during or after October 2018, license-based access will restrict users to a set of designated app modules: Customer Service Team Member, Sales Team Member, and Project Resource Hub. Users with these Team Member licenses will no longer be able to access the Customer Service Hub, Sales Hub, or custom app modules.

During the early access phase (Wave 1 release), users with Team Member licenses will be able to preview the designated app modules mentioned above alongside all existing apps in a Sandbox org. Once license enforcement is turned on in April 2020, unentitled apps – such as Customer Service Hub, Sales Hub, and custom apps – will no longer be accessible.

To enable the early access preview, follow the steps below:

Go to a Sandbox environment. Select Manage in the Updates box.

Click <Update now>.

Once all the Wave 1 release content has been completed, go into your Sandbox environment.

Under My apps on the top left, you will see that the Sales Team Member designated application is accessible to preview.

For any additional questions about Wave 1, please reference this Microsoft document: https://docs.microsoft.com/en-us/dynamics365-release-plan/2020wave1/

Additional information regarding the Team Member license lock down can be found here: https://docs.microsoft.com/en-us/dynamics365-release-plan/2020wave1/dynamics365-sales/license-enforcement-users-new-team-member-licenses

Notes and Links Feature in Dynamics 365 Business Central Online

One of the helpful features in on-premises versions of Business Central that has recently been brought to the online version is the addition of a notes and links option to the FactBox pane. In this post we’ll go over a few scenarios where this might be helpful.

Link on a list page 

Perhaps a client calls asking about various product prices and you want your salespeople to have a quick way to pull up your company’s client-facing inventory page. By adding a link to your item list, you can pull up what the client is currently seeing on their screen and discuss options.

Link on an item card 

Using the same example above, the client has now decided which item they would like to purchase but has a couple questions about the wording of the item description online. A link on the item card will promptly get you to the same page that the customer is looking at on their end.

Note + Link on an item card 

Perhaps the client is looking at buying a specific product that your company is actively trying to phase out. You can attach a note to that item signaling to your salesperson that they should try to steer the customer toward your newer offering. To add a note, click on Attachments in the FactBox pane or use the Alt+O shortcut. Then add a link to the newer item above so that the salesperson can quickly pull up the information on that item.

Note on a customer card 

Another useful example for adding a note could be for customers who are chronically late payers. Perhaps add a note to let your AR department know to follow up immediately when any invoice for the customer in question goes past due. Also, let your salespeople know to make sure there are no past due invoices before proceeding with the current sale.

One thing to mention on records with multiple notes - the most recent note will always appear at the top of your list so if you would like the note to your AR department to appear at the top you’d have to enter it after the note to your salespeople.

To summarize 

There are many other places where you could add a quick note that might help to move things along more efficiently. Some of them are sales orders (let everyone know that this is a VIP customer and the sale is top priority), sales invoices (add a note explaining why the customer was given a 10% discount), purchase orders (you only received half of the shipment up front because there was no room for the rest in your warehouse), etc. These are all situations where someone might needlessly be spending time going desk to desk looking for answers. Or as in our previous examples, your salesperson might be endlessly looking for that one item online that your client already has up on their screen, when they could be closing the sale. Notes and links can help put a stop to that frustration.

Hope this helps! Be sure to subscribe to our blog and happy Business Central’ing!

Migrating Databases with HashByte

Hey, what should we do tonight? The same thing we do every night… try to migrate all the data in the world!

Once, we were creating a migration process for a database that had no fields to verify or control changes. Thus, we had to consider a different option, and someone mentioned using HashBytes. A-ha!

HashBytes is a function that allows you to generate an encryption code for any information that is transferred in the string parameter, and where you can make the decision about which algorithm you want to use in the process.

How is the syntax of this function?

This function receives two parameters:

When I send these parameters, the function returns a varbinary (maximum 8000 bytes).


OK, so we know what this function can do, but how can we use it in our migration process? The solution was to separate the main issues into four items and attack each of them separately.

  1. How can we identify when a record was created or modified?
  2. In the Migration/Integration process, we need to validate all the fields of data source because it is not always necessary to move all the information to the target system.
  3. How can we build the string to generate the hash with Hashbytes and make it an automatic process?
  4. How can we use the encrypted information in our process?

To solve the first question, we created two new fields to validate and control the changes in our cross-reference table. We did this so we could have control if we needed to create a new record or update the existing record in the target system.

The new fields are PO_HashBytes_ORI, where you save the encrypted code when the migration process is executed or when the record is new/modified. Great! We can now identify our records, but this is just a small part of our bigger issue.

For the second item, the solution was to validate all the fields we need to move in the migration/integration process that had been modified in the records. Once this was done, we could create a new table with the name of the fields of each entity that we needed to move from the source system to the target system.


Next, we populate this table with all the fields that we need to use in the process. To do this, we create a SQL Dynamic to build all the insert sentences necessary to insert all the rows required.


We now have the validation/control fields needed in our process. Next, we need to build strings to execute the HashBytes function.

We need to build this string with excellent performance, so this can occur automatically because the next time someone needs to modify the process, they can use this one instead of the more difficult process of building these strings manually. In order for the above process to go smoothly, we created a function in our database. Below is an example of the function we created (PO_get_hash_fields):

This function has a parameter (@p_table_name) where it receives the name of the table that is necessary to build the string that we use in the other function (HashBytes). With the name of the table (@p_table_name), we get all the necessary fields to build the string (PO_structure_to_update) and make the conversion when the field type is different from char, varchar, nvarchar.

The result of this function is the new string with all fields concatenated and ready to do the conversion in encrypted code.

We’re getting close. Now we need to use all the processes to identify new or updated records. But how can we use all the previous steps to complete our process to identify whether a record is new or updated? The solution was to create a stored procedure that uses the functions to generate the hash and update the field to validate if the record is new or updated.

This stored procedure has 4 input parameters that are necessary to do all the Dynamic SQL that identify if the record is new or modified.

These parameters are:

  1. @p_table_name_ori: this parameter is used to place the name of the table that we need to get all the fields to generate the hash.
  2. @p_table_name_PO_Des: this parameter is used to find the name of the cross-referenced table where we have the information of all the records stored, moved from the source system to the target system. Now we need to generate the hash for each record and update in the cross-reference table.
  3. @p_table_type: this parameter identifies which table we need to process (e.g., Account, Contact, and/or other entities).
  4. @p_process_type: this parameter is used to identify the process of validating whether the record is new or updated. If the process is updated, we need to place the information in the PO_HashBytes_DES field of the generated hash. When the record is new, we need to place the information in the PO_HashBytes_ORI field of the generated hash.

The stored procedure generates a Dynamic SQL to update a table with the encrypted code generated using the HashBytes and all the fields required in the migration/integration process for each record.

Excellent! We have our new verified/control field for our migration/integration process. Now we can use the HashByte function in the migration/integration packages by generating the hash for each record using the new stored procedure. We can also identify if a record is new or modified by comparing the original field to the new field using the encrypted code through the HashBytes. Now we can migrate databases that do not have any control fields. Wow!

Happy migrating!

Delivering World-Class Customer Service in the Capital Markets Industry

Excellent customer service can be seen in so many different lights that businesses can get dizzy contemplating them all. For example, maybe you’re more inclined to think that helpful and caring people create the best experience for your customers. Or perhaps you think providing a more self-service model is really what your customers want and appreciate from your business. Some customers will gladly sacrifice speed for 100% accuracy, whereas others prioritize immediacy above all else. Is quality more important than efficiency? And where does cost fit into the picture?

Dizzying indeed. But one thing’s for sure: no matter what your approach is to customer service, it’s an absolute cornerstone to your business that cannot be ignored – one that can truly differentiate you from the competition for better or worse. And that’s true across all industries.

Let’s look at the Capital Markets industry as an example. It is evolving faster than most organizations can even keep up with. Investment opportunities are everywhere and the on-demand generation we live in means immediate, real-time service must be available – around the clock and around the world.

The ability to offer a broad range of investment options tailored to your clients’ individual needs is the foundation of creating a great relationship. You need to provide a clear summary view of their portfolio while offering trusted, sound advice on additional investments.

In order to provide that big picture view to your clients, you need access to tools that pull together a complex, multifaceted environment. It’s not just about integrating systems; it’s about delivering that best possible experience to your clients.

A Microsoft Dynamics 365 solution from PowerObjects enables financial services firms to work cohesively across the entire organization to develop deeper client relationships, maximize client value, and deliver world-class customer service.

Built on Dynamics 365, PowerCapital is a custom solution designed by Capital Markets experts based on years of experience within the industry. PowerCapital accelerates the time to market for Dynamics 365 implementations by leveraging the Microsoft technology stack: Dynamics 365, LinkedIn, Azure, Power Platform, AI, Machine Learning, Microsoft One Common Data Layer, and the innovative Microsoft Cloud Platform. It is based on nine fully developed Capital Markets user personas that drive the navigation, forms, and views needed for each user interface across an organization.

Learn more about PowerCapital and PowerObjects’ approach to delivering world-class customer service, no matter what the world throws your way!

AI Chatbots and Virtual Agents

AI chatbots and virtual agents are becoming an increasingly important component of digital transformation across industries designed to improve the quality of customer interactions. Computer programs designed to simulate conversation with humans have existed for decades, but the idea of conversational AI with bot tools is relatively new. This new idea of conversational AI is built into Dynamics 365 Virtual Agent and Azure Bot Service. In today’s blog, we will outline the functionality that supports conversational AI to create outstanding customer experiences.

What is Dynamics 365 Virtual Agent?

Dynamics 365 Virtual agent is a no-code-required AI-based application that is focused on providing customer service organizations the ability to engage in personalized conversations that go beyond the conversational search.

Virtual agents provide the ability to deploy and manage the automation of handling problems with specific solutions. Subject matter experts can be hands on to deploy solutions to problems. These experts can create, test, and launch bots using a guided code-free graphical interface and easy-to-use templates.

An important feature of the Virtual Agent is the integration with Power Automate (formerly Microsoft Flow). Power Automate can extend the capabilities of your Virtual agent and do things like trigger existing flows or create new ones that call backend systems without writing any code. Custom connectors can also provide extensibility.

What is Azure Bot Service?                                 

Azure Bot Service is based on the Microsoft Bot Framework. The Bot Framework is a collection of Software Development Kits (SDKs) that can be used to build and develop bots.

Azure Bot Service can be deployed to popular channel types such as Microsoft Teams, Skype, Facebook, and Slack in order to reach customers wherever they interact.

It is a self-learning conversational AI platform that can take in data, understand the data, and then adapt the data. The bot can be deployed with QnA maker, which is an API service for conversational question-and-answer of data. This makes the discussion more interactive than a standard chatbot because it understands the data and adapts to it – and then makes suggestions based on that data. The aim of Azure Bot Service is to make the conversation as interactive as possible.

AI Vision

The capabilities of conversational AI interfaces for the enterprise are impressive. This functionality is part of a larger AI strategy that presents opportunities to solve business problems across applications. Artificial Intelligence is truly the future… of every industry. We only scratched the surface today – but it is a topic we’ll be writing about more often in the next few years.

Be sure to subscribe to our blog - happy AI’ing!

Smart Manufacturing: Optimizing Digital Operations

Smart manufacturing is the implementation of digitization to streamline processes, create efficiencies, and work smarter, not harder. Similar to Lean Manufacturing, Smart Manufacturing is taking efficiency to the next level to help organizations achieve success.

This is the second in a three-part series on Smart Manufacturing. In Part 1, we described the role smart manufacturing plays in delivering new services. In the forthcoming Part 3, we’ll discuss how smart manufacturing is transforming the workforce. Today, in Part 2, we’re writing about how smart manufacturing is optimizing digital operations. Enjoy!

Optimizing Digital Operations

Manufacturing as a concept is in the midst of a fourth major industrial revolution. The first and most widely recognized was the introduction of water/steam power in the early 1800’s. A century later, manufacturing was forever changed by the emergence of mass production and electricity – the second major industrial revolution. About 50 years ago, manufacturing was again revolutionized – this time by electronic automation. And now, with the advances in smart automation, manufacturing is changing exponentially right before our eyes. Indeed, machine learning and artificial intelligence are changing literally everything – and smart manufacturing is a perfect example!

Let’s consider some of the problems that used to plague manufacturing companies:

Through the relatively simple act of optimizing digital operations by implementing smart manufacturing technology, such problems are nonexistent. How is that possible? Well, a robust technology solution like Dynamics 365 – especially with related Microsoft Business Applications working in concert – is what makes it possible. And it does so by empowering all of the following for organizations:  

In addition, with Dynamics 365 for Field Service – and particularly with Microsoft’s Connected Field Service, which is tailor-made for manufacturing organizations – today’s manufacturers are optimizing their digital operations.

There’s a lot more to smart manufacturing than just optimizing digital operations to increase efficiency and revenue. Learn more by downloading this digital transformation fact sheet and in a few weeks, look for the final installment in this 3-part smart manufacturing series. Stay tuned!

Power Apps Positively Impacting Local and Regional Governments

Local and Regional Government organisations are in a state of constant technological flux. And as their constituencies continue to grow and expand over time, the necessity for transparent, quick and personal constituent interactions grows as well. Indeed, helping constituents feel closer to the Governmental institutions that represent them is absolutely a move in the right direction for Local and Regional Governments. It inspires more confidence among citizens that they are being heard, seen and recognised in their own homes and communities, which is of paramount importance nowadays.

So, having said all that, the question that naturally follows in this day and age of technology is this: what is the most cutting-edge technology solution that can be implemented to enable Governments to stay in tune with their communities?

It depends on who you ask, of course, but PowerObjects is a firm believer that Microsoft’s Power Platform as the answer to this increasingly important question. The Power Platform is a combination of Power Apps, Power BI, Power Automate and Power Virtual Agents. Each of these products has their own focus and application – i.e., whether you’re trying to automate mundane processes (Power Automate), set up a Customer-facing Chat Bot (Power Virtual Agents), present data in a visually appealing and understandable manner (Power BI) or create low/no code applications in a matter of mere minutes (Power Apps), Power Platform has you covered.

And that last element of Power Platform – Power Apps – is the key component of PowerObjects’ answer to the question of how to keep Local and Regional Governments in touch with their constituents. The customisation aspect of Power Apps is unbeatable in terms of the ability to create unique solutions to specific needs. As each institution experiences different issues, the ability to create malleable Apps for Government employees, without requiring any coding knowledge to do so, is a fantastic asset to have at one’s fingertips.

Kicking 2020 off the right way, PowerObjects recently hosted an App-in-a-Day Event in the United Kingdom, during which we sat down with representatives from various Local and Regional Government organisations to hear about the technology and customer service challenges they were currently facing.

We then showcased Power Apps and worked side by side with them to develop – in a matter of minutes – applications designed to overcome and solve those challenges. By the end of the day, each group of representatives from Local Councils had built their own Power Apps solution. As a result, they were able to digitally solve their most unrelenting issues and keep their constituents as priority number one.

For more information on Power Apps, click here. As always, happy Dynamics 365’ing!

Filtering on Calculated Fields in D365 Business Central

There are many ways to access transaction history within Business Central. For instance, what if you are looking for cash transaction history for a month, a week, or even just one day? There are multiple reports you could run with date filters on the desired G/L account(s). However, if you want to see this data for a few different date ranges you’ll have to enter new dates and re-run the report each time. A quick and easy method to skip reports altogether while also allowing you to drill down to the data you’re looking for is to filter on a calculated field. Using the steps below, we’ll show you how to quickly get the data you need.

Using that cash account example, you’ll start with accessing your chart of accounts and selecting the G/L account for which you want to view history. Click on <Search> and enter the desired account. You’ll see two totals: the Net Change in account balance and the current account Balance.

If you click on Net Change now, you will see the entire transaction history for that account. However, we’re only looking for the transactions in a specific date range, so select the filter button instead.

This will bring up the filter pane. You’ll now see two filtering choices. The first is Filter list by:. The second option is the one you’re looking for – Filter totals by…

Select the second option and then click on the filter you would like to use. For this example, we’ll stick with date ranges and click on Date Filter.

Let’s say that you want to only see cash transactions for the 2019 calendar year. You can either enter the exact dates or use the formula “1/1/2019..T” (tip: T is a shortcut to signify “today” within a date field in Business Central. If you’re someone who tends to forget what date it is, this is a safe way to make sure that today’s transactions are included in the desired date range). You will see that your account balance is unchanged, but your Net Change has recalculated. You can click on this if you’d like to drill down and see the individual transactions.

You now have detailed information on only the transactions that add up to the Net Change for 2019.

If you want to change your view again and see the Net Change for only January of 2019? Enter those dates into the Date Filter and recalculate. Once again, you can click on Net Change and see a list that contains only those transactions.

Reporting tools are great but can sometimes be overkill or too slow when you’re looking for quick access to transactional data over multiple date ranges. In a pinch, filtering on a calculated field can be the tool you’re looking for.

Happy Dynamics 365'ing!

PowerObjects' Commitment to Education

What truly differentiates PowerObjects from other Microsoft partners is our deep commitment to training and education. We understand that an organization's success with Dynamics 365 is reliant on strong user adoption and advocacy, which in turn is dependent on focused product and process training as well as effective change management. Watch this video to learn more about our Dynamics 365 education offerings and how PowerObjects can help your organization succeed!

Service Accounts vs. Billing Accounts in Dynamics 365 for Field Service

As your organization begins to set up the data necessary to run your Dynamics 365 Field Service system, you’re told that you need to designate Service Accounts and Billing Accounts. Seems clear enough: Service Accounts determine where the work is performed, while Billing Accounts pay for the work. No problem. And yet… there are a few little details that aren’t totally clear. This blog will look at the difference between Service Accounts and Billing Accounts, what information each of them send to the Work Order, and when information from one overrides information on the other. It’s a head-to-head battle no one wants to miss!

In general, Service Accounts hold information about:

Billing Accounts, on the other hand, control:

It probably won’t surprise you to know that Service Location information comes from the Service Account. After all, it’s right there in the title! And everyone knows that Customer Assets (often where work occurs) are attached to Service Accounts.

But what about Service Agreements – did you know those are attached to Service Accounts? Even though Service Agreements are often related to payments (and rightly so), they are often associated with Customer Assets in maintenance contracts. Therefore, they get attached to Service Accounts.

Here’s another tricky one: Travel Charge Type. Again, seems to be related to payments, right? But this information actually comes from the Service Account. Let’s look at all the Field Service fields on the Account record for more details.

Billing AccountService AccountWhen a Work Order is created and the Service Account record is chosen, this field is queried to see if it has data. If it does, this info is put into the Billing Account field on the Work Order. If this field is blank, then the name of the Service Account is put into the Billing Account field.
Tax ExemptService AccountDetermines whether or not taxes will be charged.
Service TerritoryService AccountIf this field contains data, it will copy to the Work Order. If not, the Service Territory field on the Work Order will remain blank unless filled in manually.
Work Hour TemplateService AccountDetermines when work is allowed to be performed at this site.
Travel Charge TypeService AccountThis determines if (and how) travel will be added to the invoice.
Work Order InstructionsService AccountThis information gets copied to the Instructions field on the Work Order.
Invoice AccountBilling AccountThe Account listed on the Invoice will match the Billing Account field on the Work Order.
Price ListBilling AccountThe Work Order always looks at the Billing Account to get the Price List. If this price list doesn’t have everything that’s needed, then the Work Order will use the List Price from the Product itself.

So, bottom line is that almost all information comes from the Service Account. The only information that comes from the Billing Account is the invoicing information and the Price List. And that’s it – maybe it’s time for an early lunch. Be sure to subscribe to our blog!

Happy Field Servicing!

Sovereign is Gearing Up for Success with PowerObjects' Proven Process

Sovereign is a leading housing association in the UK that serves nearly 150,000 tenants. With PowerObjects’ help, they are executing a multi-stage and multi-year Dynamics 365-based digital transformation. This video is the third installment of a four-part series exploring different aspects of the project and their partnership with PowerObjects. In this installment, we look at Sovereign's experience with PowerObjects' Proven Process!

[php slug=amp-video-embed]

Updating Icons in the Unified Interface

When a business implements Dynamics 365, one of the most critical elements of success is user adoption. One unique and simple way of enhancing user adoption is to modify the icons within CRM to make things more user-friendly and familiar.

In today’s blog, we’ll cover the simple ways to update icons and personalize them to create a more relatable experience within your v9 and later version of your CRM, mixed with a few tips on how to customize your icons if you are on a later version as well. Updating the look and feel of things can be scary, but with the customized icon option it can offer the move with a lot less stress.

Step 1:

There are several sites from which to pull icons; we recommend Syncfusion Metro Studio: https://www.syncfusion.com/downloads/metrostudio. It offers more than 7,000 icons broken down by category, and it is completely free when you sign up using your email.

When you find the icon you want, click and save the icon to your computer, then load it into a program of choice to resize the image to 32px by 32px.

Step 2:

Open Dynamics 365 and navigate to Settings > Solutions. Once there, double click to expand the Entities tab and open the custom entity for which you wish to create the icon.

Step 3:

Click the Update Icons button on the top of the screen.

If you are not in Dynamics 365 v9 or later, you will see the following image which is missing the key tab (workaround is below):

You will notice that the Web application section on the top requires a 16px image and the Entity Forms section requires a 32px image in order to properly fit the new icon into the appropriate space. In v9 and later, you will notice there is one additional tab as shown here:

To be clear, when you are in version9 you will need to upload your custom icon in all three locations. Finally, search for Web Services in your solution and upload the image in the image below:

There you have it! If you see the generic icon inside your solution, it means your icon size does not match the required dimensions.

As mentioned at the beginning, this is a great way to bring customization to your CRM and help your users feel more comfortable with the change brought about by a new implementation. Happy D365’ing!