by Contributed | Mar 16, 2021 | Technology
This article is contributed. See the original author and article here.
Form Recognizer is a powerful tool to help build a variety of document machine learning solutions. It is one service however its made up of many prebuilt models that can perform a variety of essential document functions. You can even custom train a model using supervised or unsupervised learning for tasks outside of the scope of the prebuilt models! Read more about all the features of Form Recognizer here. In this example we will be looking at how to use one of the prebuilt models in the Form Recognizer service that can extract the data from a PDF document dataset. Our documents are invoices with common data fields so we are able to use the prebuilt model without having to build a customized model.
Sample Invoice:

After we take a look at how to do this with Python and Azure Form Recognizer, we will take a look at how to do the same process with no code using the Power Platform services: Power Automate and Form Recognizer built into AI Builder. In the Power Automate flow we are scheduling a process to happen every day. What the process does is look in the raw blob container to see if there is new files to be processed. If there is new files to be processed it gets all blobs from the container and loops through each blob to extract the PDF data using a prebuilt AI builder step. Then it deletes the processed document from the raw container. See what it looks like below.
Power Automate Flow:

Prerequisites for Python
Prerequisites for Power Automate
Process PDFs with Python and Azure Form Recognizer Service
Create Services
First lets create the Form Recognizer Cognitive Service.
Now lets create a storage account to store the PDF dataset we will be using in containers. We want two containers, one for the processed PDFs and one for the raw unprocessed PDF.
Upload data
Upload your dataset to the Azure Storage raw folder since they need to be processed. Once processed then they would get moved to the processed container.
The result should look something like this:

Create Notebook and Install Packages
Now that we have our data stored in Azure Blob Storage we can connect and process the PDF forms to extract the data using the Form Recognizer Python SDK. You can also use the Python SDK with local data if you are not using Azure Storage. This example will assume you are using Azure Storage.
!pip install azure–ai–formrecognizer ––pre
- Then we need to import the packages.
import os
from azure.core.exceptions import ResourceNotFoundError
from azure.ai.formrecognizer import FormRecognizerClient
from azure.core.credentials import AzureKeyCredential
import os, uuid
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient, __version__
Create FormRecognizerClient
- Update the
endpoint and key with the values from the service you created. These values can be found in the Azure Portal under the Form Recongizer service you created under the Keys and Endpoint on the navigation menu.
endpoint = “<your endpoint>”
key = “<your key>”
form_recognizer_client = FormRecognizerClient(endpoint, AzureKeyCredential(key))
- Create the
print_results helper function for use later to print out the results of each invoice.
def print_result(invoices, blob_name):
for idx, invoice in enumerate(invoices):
print(“——–Recognizing invoice {}——–“.format(blob_name))
vendor_name = invoice.fields.get(“VendorName”)
if vendor_name:
print(“Vendor Name: {} has confidence: {}”.format(vendor_name.value, vendor_name.confidence))
vendor_address = invoice.fields.get(“VendorAddress”)
if vendor_address:
print(“Vendor Address: {} has confidence: {}”.format(vendor_address.value, vendor_address.confidence))
customer_name = invoice.fields.get(“CustomerName”)
if customer_name:
print(“Customer Name: {} has confidence: {}”.format(customer_name.value, customer_name.confidence))
customer_address = invoice.fields.get(“CustomerAddress”)
if customer_address:
print(“Customer Address: {} has confidence: {}”.format(customer_address.value, customer_address.confidence))
customer_address_recipient = invoice.fields.get(“CustomerAddressRecipient”)
if customer_address_recipient:
print(“Customer Address Recipient: {} has confidence: {}”.format(customer_address_recipient.value, customer_address_recipient.confidence))
invoice_id = invoice.fields.get(“InvoiceId”)
if invoice_id:
print(“Invoice Id: {} has confidence: {}”.format(invoice_id.value, invoice_id.confidence))
invoice_date = invoice.fields.get(“InvoiceDate”)
if invoice_date:
print(“Invoice Date: {} has confidence: {}”.format(invoice_date.value, invoice_date.confidence))
invoice_total = invoice.fields.get(“InvoiceTotal”)
if invoice_total:
print(“Invoice Total: {} has confidence: {}”.format(invoice_total.value, invoice_total.confidence))
due_date = invoice.fields.get(“DueDate”)
if due_date:
print(“Due Date: {} has confidence: {}”.format(due_date.value, due_date.confidence))
Connect to Blob Storage
# Create the BlobServiceClient object which will be used to get the container_client
connect_str = “<Get connection string from the Azure Portal>”
blob_service_client = BlobServiceClient.from_connection_string(connect_str)
# Container client for raw container.
raw_container_client = blob_service_client.get_container_client(“raw”)
# Container client for processed container
processed_container_client = blob_service_client.get_container_client(“processed”)
# Get base url for container.
invoiceUrlBase = raw_container_client.primary_endpoint
print(invoiceUrlBase)
HINT: If you get a “HttpResponseError: (InvalidImageURL) Image URL is badly formatted.” error make sure the proper permissions to access the container are set. Learn more about Azure Storage Permissions here
Extract Data from PDFs
We are ready to process the blobs now! Here we will call list_blobs to get a list of blobs in the raw container. Then we will loop through each blob, call the begin_recognize_invoices_from_url to extract the data from the PDF. Then we have our helper method to print the results. Once we have extracted the data from the PDF we will upload_blob to the processed folder and delete_blob from the raw folder.
print(“nProcessing blobs…”)
blob_list = raw_container_client.list_blobs()
for blob in blob_list:
invoiceUrl = f’{invoiceUrlBase}/{blob.name}‘
print(invoiceUrl)
poller = form_recognizer_client.begin_recognize_invoices_from_url(invoiceUrl)
# Get results
invoices = poller.result()
# Print results
print_result(invoices, blob.name)
# Copy blob to processed
processed_container_client.upload_blob(blob, blob.blob_type, overwrite=True)
# Delete blob from raw now that its processed
raw_container_client.delete_blob(blob)
Each result should look similar to this for the above invoice example:

The prebuilt invoices model worked great for our invoices so we don’t need to train a customized Form Recognizer model to improve our results. But what if we did and what if we didn’t know how to code?! You can still leverage all this awesomeness in AI Builder with Power Automate without writing any code. We will take a look at this same example in Power Automate next.
Use Form Recognizer with AI Builder in Power Automate
You can achieve these same results using no code with Form Recognizer in AI Builder with Power Automate. Lets take a look at how we can do that.
Create a New Flow
- Log in to Power Automate
- Click
Create then click Scheduled Cloud Flow. You can trigger Power Automate flows in a variety of ways so keep in mind that you may want to select a different trigger for your project.
- Give the Flow a name and select the schedule you would like the flow to run on.
Connect to Blob Storage
- Click
New Step
List blobs Step
- Search for
Azure Blob Storage and select List blobs
- Select the ellipsis click
Create new connection if your storage account isn’t already connected
- Fill in the
Connection Name, Azure Storage Account name (the account you created), and the Azure Storage Account Access Key (which you can find in the resource keys in the Azure Portal)
- Then select
Create
- Once the storage account is selected click the folder icon on the right of the list blobs options. You should see all the containers in the storage account, select
raw.
Your flow should look something like this:

Loop Through Blobs to Extract the Data
- Click the plus sign to create a new step
- Click
Control then Apply to each
- Select the textbox and a list of blob properties will appear. Select the
value property
- Next select
add action from within the Apply to each Flow step.
- Add the
Get blob content step:
- Search for
Azure Blob Storage and select Get blob content
- Click the textbox and select the
Path property. This will get the File content that we will pass into the Form Recognizer.
- Add the
Process and save information from invoices step:
- Click the plus sign and then
add new action
- Search for
Process and save information from invoices
- Select the textbox and then the property
File Content from the Get blob content section
- Add the
Copy Blob step:
- Repeat the add action steps
- Search for
Azure Blob Storage and select Copy Blob
- Select the
Source url text box and select the Path property
- Select the
Destination blob path and put /processed for the processed container
- Select
Overwrite? dropdown and select Yes if you want the copied blob to overwrite blobs with the existing name.
- Add the
Delete Blob step:
- Repeat the add action steps
- Search for
Azure Blob Storage and select Delete Blob
- Select the
Blob text box and select the Path property
The Apply to each block should look something like this:

- Save and Test the Flow
- Once you have completed creating the flow save and test it out using the built in test features that are part of Power Automate.
This prebuilt model again worked great on our invoice data. However if you have a more complex dataset, use the AI Builder to label and create a customized machine learning model for your specific dataset. Read more about how to do that here.
Conclusion
We went over a fraction of the things that you can do with Form Recognizer so don’t let the learning stop here! Check out the below highlights of new Form Recognizer features that were just announced and the additional doc links to dive deeper into what we did here.
Additional Resources
New Form Recognizer Features
What is Form Recognizer?
Quickstart: Use the Form Recognizer client library or REST API
Tutorial: Create a form-processing app with AI Builder
AI Developer Resources page
AI Essentials video including Form Recognizer
by Contributed | Mar 16, 2021 | Technology
This article is contributed. See the original author and article here.
BSR reports that sustainability and ESG (environmental, social, and governance) reporting is increasing globally. In 2011, 20% of S&P companies published sustainability reports, compared to 90% in 2019. Great. And while boardrooms still need to ramp up quickly, I believe it is fair to say that in the corporate world, more time, money, and effort are spent on sustainability than ever before. Good. Corporations are stepping up their game.
One quick outcome is the number of jobs with sustainability in their title popping up left and right: Sustainable Supply Chain Program Manager, Environmental and Social Governance (ESG) Reporting Manager, Green Finance Expert. Great. Companies are hiring to keep their promises.
Very few of these jobs though are marketing jobs. As a marketer myself, I wonder why that is. Aren’t marketing leaders needed in the shift to a more sustainable and just corporate world? Are we not supposed to help our corporations become more sustainable too?
I think these roles will start emerging soon (:crossed_fingers:), but most importantly, I don’t think marketers should wait for them. I believe marketers should lead the sustainability charge at their companies.
Customers care. All of them. So should you.
Whether your role is demand generation, brand awareness, or thought-leadership marketing, I assume you talk to customers. A marketer’s role is to understand what customers think, what’s important to them, and how your product or brand is relevant to them. Your goal is to make your brand and products as fit as possible to your customers’ moments of truths and build your strategy around that. And ALL customers care about sustainability. So you should, too.
A few statistics:
Whether you are a Business2Customer or Business2Business marketer your customers are all citizens of this world and they are conscious and concerned about the state of the planet. Any way you can help them reconcile their work with having a positive impact will be welcome.
A few tips:
- Include sustainability in your customer surveys and research. Ask questions about it in relation to your business. You are the voice of the customer at your company, sustainability should be part of your pitch.
- Optimize based on new insights and let your customers know. This is valid for any type of business, whether you sell toothbrushes or software. (Sustainable software is a thing.) Check out the Microsoft Sustainable Software Engineering Learn Module for a solid introduction to sustainable software.
Shape the narrative. Bring purpose front and center.
Marketers tell stories that shape our brand and people’s perceptions of it. Brands need to get real, fast. As we build trust with our customers, sustainability is a dimension we all need to add to our practice. It used to be all about Profit. Then we added the People aspect. Planet is next. Profit, People, Planet. The triple bottom line.
I believe brand loyalty and trust will grow if we take the triple bottom line into consideration.
Enough of the bad marketing tactics that mislead people. Enough of the bad marketing that bores marketers before it bores customers. Sustainability is the new creative playground and it enables us to market like we actually give a damn! It’s too beautiful of an opportunity to stand by and wait for a nice “sustainability” word added to our title.
Greenwashing at its best
For the French speakers. Pour un reveil ecologique shames brands that greenwash – useful and funny don’t you think?
I am a big believer that we can shape our own work and write our own story. Our role is not to advertise or to sell, it is rather to solve problems. I hope you’ll join me in writing the story of more responsible marketing. Let’s make ourselves accountable for not only how our products gain market share, but also for how they impact the people and the planet. Every job is a climate job. Come on marketers, let’s lead the way! The world is watching (no pressure).
This piece was originally published on LinkedIn and titled, Marketers – let’s get serious about sustainability, by Jessica Mercuriali.
by Contributed | Mar 16, 2021 | Technology
This article is contributed. See the original author and article here.
(VOICES OF DATA PROTECTION – Episode 4)
Host: Bhavanesh Rengarajan – Principal Program Manager, Microsoft
Guest: Vivek Bhatt – CTO, Infotechtion
The following conversation is adapted from transcripts of Episode 4 of the Voices of Data Protection podcast. There may be slight edits in order to make this conversation easier for readers to follow along.
This podcast features the leaders, program managers from Microsoft and experts from the industry to share details about the latest solutions and processes to help you manage your data, keep it safe and stay compliant. If you prefer to listen to the audio of this podcast instead, please visit: aka.ms/voicesofdataprotection
BHAVANESH: Welcome to Voices on Data Protection. I’m your host, Bhavanesh Rengarajan, and I am a Principal Program Manager at Microsoft. Vivek, why don’t you give us a quick introduction about yourself?
VIVEK: I’m the CTO for Infotechtion, a Microsoft partner consulting firm. We specialize in information protection and governance solutions for Microsoft 365 and beyond.
A bit of a background for me, I started my professional career in software development in Microsoft Technologies and then leveraged that experience to transition into kind of more defining business solutions strategies. And the last decade has really been a focus area on information governance solutions, especially working with Microsoft team, engineering team and joint customers and advising them on what’s the best way to transition to managing information effectively, especially as they have been moving in the last decade from more paper-based solutions to more digital and cloud-based solutions.
BHAVANESH: So, Vivek, one question that we are asked all the time is, “Where do I start in my information governance or records management journey, and where should I get to and where do I need to be and how does organization scale and developer roadmap for implementation?” Could you kind of put everything in a nutshell for this audience?
VIVEK: Yeah, thank you. I get that question a lot. And my experience, the starting point is it’s really always your goal before you start the journeys. Before you set the direction of your travel, you need to know where you’re going. And a key aspect of that goal definition is to really outline the strategic, operational, and legal benefits which will ultimately deliver value to your business. And in that regards, you you’re looking at clearly defined goals, which is essential to confirm whether your governance initiative is set to travel in the right direction or not.
And for me, a good test is always when you when you define your governance goals, is whether those governance goals support your business or corporate goals or not. If they do, then that’s the best place to be and that’s the best starting point.
The second step, you really want to develop a minimum viable product definition or what we call as an MVP. And that MVP is really based on your goals, your business use cases and what your key success factors are.
Information governance is a very wide space and organizations can spend multiple years to actually implement it. And so, it’s very key to start defining what’s your benchmark, what are you trying to achieve as a first step, and in that an MVP definition is a clear benefit.
In that regard we focus on documenting business use cases instead of technology requirements. We really want to ensure that the governance program is enabling staff to excel at work instead of creating a change fatigue because we are just deploying another technology for them. We really want to make it contextual for them.
And the third step is really to develop then a roadmap that quickly delivers value for them. Plan your roadmap with focus on priorities to showcase the value and turn your users into champions. And then through those users and which have become your champions, you further penetrate the adoption of governance into your organization. And you can actually do that by involving your users in proof of concepts to verify the technology solution and really learn from that experience to improve your roadmap.
The advantage is, once you have adopted the culture and collective information governance mindsets are fantastic, and we have seen practical examples of how effective governance has enabled organizations to gain competitive edge and advantage and manage their compliance commitments.
BHAVANESH: Vivek, over the last six to eight months, a lot of organizations have moved all their working to over the remote work locations and they want to begin this information governance journey as well. For such organizations, it’s a journey which could span years before you can start and understand the processes behind it. What would it be the right first step to take in this information governance journey?
VIVEK: That’s a really good question and that’s where we also want organizations to get started with, with their journey.
And something going back to my previous point is goals are important and identify your top priority. Where do you want to actually focus on and where are you expected to gain the maximum value out of it? Is it compliance? Is it protecting data value leakage? Is it protecting information from sharing externally? And really, we can tie those into some specific implementations which can really quickly apply some governance capabilities into it.
For example, one of the customers that we’ve been working with is going through a rapid digital transformation, as a lot of companies have gone through, and one of their concerns is that as they’re going through with the Teams deployment. They want to control how Teams is created, how people are sharing information and actually put some controls on that doesn’t add any additional burden on the users on taking the responsibility of sharing the right thing.
We don’t talk about records management with them, but from a governance point of view, we really take the priority in terms of how Teams are provisioned, how metadata is provisioned to Teams, and how information protection controls are applied, so that the users, when they work with the information, the system automatically knows and understands those rules and actually applies accordingly and prevents users from making some mistakes.
BHAVANESH: So, what I’m hearing you say is that we’ve had a few other episodes with various other industry leaders from Microsoft and the industry. What I’ve heard them say is that when you are establishing a particular product in your organization, deploying Teams, I think there is a governance aspect to it and there is a protection aspect to it. They both basically go hand-in-hand.
VIVEK: Indeed. And so, behind the scenes, they might be different technologies, but from an end user point of view, we really don’t want to talk about different or discrete technologies. It really is about protecting and applying governance to the information that you deal with. And whether behind the scenes that gets applied using sensitivity labels or some other components, such as data loss prevention or insider risk, we bring those all together to solve a collective problem.
BHAVANESH: And do you see the personas as the same people in organization doing both the information protection and governance, or are they split apart?
VIVEK: Traditionally, it’s been all fragmented and different teams have been responsible for, for example, protection of information has very much traditionally been the responsibility of information risk management teams, whereas governance has fallen into the hands of ethics and compliance, e-discovery and litigation teams.
But I am definitely seeing a shift and in some of our customers where we are actually driving that shift is really moving away from that mindset and looking at information governance as a holistic product, so really taking people away from a project-based mindset to a product-based mindset where information governance has the core concepts, capabilities and it serves a collective purpose rather than applying discrete solutions and different solutions to solve specific problems.
BHAVANESH: The next thing is the implementation itself, that goes beyond a lot of processes. You also need to bring people and employees into the full picture, right? What have been some of the best practices that you’ve learned on how to approach this successfully?
VIVEK: That actually has been one of the hardest parts of actually going with through information. And especially when I say information governance, we’ve all been doing information governance for several years, but it really is the modernization of information governance has really been quite a big shift and a behavior change within organizations.
For me, it’s always important to know your customers. And when you say, know your customers, it’s about identifying where the leadership stands on information governance. Do you have the right support from leadership on the value information governance is going to deliver? Identify potential adoption blockers and find a way to turn them into your champions.
As part of the implementation, I’ve seen that the technology has improved quite significantly, and governance programs are no longer technology-led programs. They’re all business-led programs. It’s all about delivering business value. And technology is really a key enabler in that process. Having a strong multi-marketing and engagement strategy is essential, is a big part of governance programs.
Because an information governance program impacts and enables everyone in the organization, you will need an engaging marketing plan and active change network to carry your message to your users and actually find a way to consistently communicate that message, not just during the implementation, but find a mechanism and a structure through which that communication continues to flow because information, governance, the principles, the definitions, and the landscape is constantly evolving.
I think in that space I see things like leveraging technology to enable the change is a very, very key enabler. Technology is a key enabler for adoption as the way I see it. The outcome is truly beautiful when technology is implemented to solve real life issues.
We’ve gone to great lengths to apply technology to assist and make it easy as possible for users to adopt the changes. And there are again some great examples where Microsoft governance is integrated seamlessly with business processes, almost working behind the scenes, yet making a positive impact to their business outcomes.
BHAVANESH: It’s actually good to know, Vivek, because the way in which we are also approaching this problem statement is we are putting the business users ahead of the IT crowd because they are the ones who are making the decision and trying to basically bring the data across them.
When you said, know your customers, at the end of the day, for the customers, they need to understand about the data. We have this pillar called ‘Know Your Data’, which basically brings it out to the customer to tell them exactly how all their datasets get classified in the organization. So, we are heavily pivoting on trying to bring that insight out to the customer, saying, okay, you have so many documents which contain Social Security number or credit card number, and how many of these are unlabeled and how many of these are basically protected by the right DLP policies and how many of these are guarded by the right retention policies? We are thinking about that.
The second part over here is you have the protection and the governance working on it, so we have the right protection policies and governance policies that you can apply on it.
And last but not the least, you need to have the right monitoring capability because life is not always green, some things go wrong. So, you need to have the right capabilities and you can try to go and figure out what are the activities which could lead to some sort of a data leak or a risk or some sort of an issue with not retaining the content for the right amount of time. We need to provide those abilities to our administrator as well.
BHAVANESH: I think that’s a great example of knowing your customer through your data. And I see that ‘Know Your Data’ capability or the analytics capabilities are a great way to actually understand the customer and understand the behaviors and the changes that we need to include, and we should include in our marketing and adoption strategies to make sure that the message is actually well received by the customers.
What have been some of the best practices from a development and deployment point of view that you’ve seen from organizations who you’ve worked with closely?
VIVEK: I’ve been playing this role for many years in multiple projects and I’ve kind of played the role of design authority in that space to really develop some of the best practices, and especially from an implementation point of view, not just from a technology implementation, but the best practices as regards to how that piece of technology should be explained to the end user so that it is seamless and it works part of their business processes rather than something in addition to what they do today. And so, my advice would be to always take time to set up and survey the landscape properly and its complexities.
And coming back to your point, it’s about knowing your data, right? So, know your data, know your complexities, know what customizations exist because they do exist, and people do customized things and configure things and are actually very specific to them and there is a personal attachment to it. We want to understand all of those behavioral aspects and make sure that we are not breaking those by deploying the new change in behaviors.
I absolutely believe that architecture is a key foundation to any solution strategy, and so working with different architectural teams, including Microsoft, to ensure that the governance capabilities, the protection capabilities are actually implemented in the way that they are intended to be. So, always work with the experts and actually really develop a blueprint or a solution foundation.
I think what we’re seeing now is a day and age that automation, machine learning is actually becoming reality, and we are seeing some great examples of how machine learning is actually solving real life problems.
And so absolutely proactively seek automation options, not only to actually solve business problems, but it actually helps us simplify, repeat tasks, and enable our teams to focus on important activities than doing tasks which can actually be done by a simple script or an automation script, right?
And finally, one of the best practices that I’ve followed is that technology will always have constraints and will always have challenges, and it’s always evolving. So, understanding the roadmap and adopting a fail fast approach is always really efficient because it helps us quickly learn and adjust our solutions strategy. The technology might not be available today, but if we know and if we understand what the roadmap for technology is, then our business is much more accepting of the current solution.
BHAVANESH: Okay, so the way in which I see it is it’s not a one-way street, it’s more a cycle. You’re going to keep coming back to it.
VIVEK: No, indeed it’s not. I mean, those days are gone that you would implement a piece of software and then forget about it for five years until there is the next upgrade. Change is constant. We don’t see that anymore as a single project implementation activity, it’s a continuous change.
Anything that we do and any implementation that we do has to evolve as part of the evolving technology and also the evolving landscape, which is not just technology, environmental landscape, business landscape and the risk that the businesses are carrying these days.
BHAVANESH: Yeah, we here in Microsoft, as we do with you folks, as well as design partners, so we have a customer experience team wherein we reach out to a lot of customers. We have these regular surveys happening because the needs keep shifting every quarter. So, we kind of get in touch with a lot of our customers, understand exactly where they are in their journey and what is that they really would like from Microsoft, right? And we prioritize and start developing.
The days are gone where we are into a box and trying to develop things for a couple of years and shift it and what we are doing is every quarter or every half year, we are reaching out to the customers, understanding their priority because those keep switching and then trying to adopt a roadmap according to that.
So that has been one of our core areas wherein we’ve spent a lot of our time over the last year or so and we hope to make that process better, so I think with an intent that people get to learn about this more and try to reach out to us and we can include them in that community wherein you’re giving constant feedback, what you need at the end of the day. and try to see how we can prioritize and ship the same thing for you.
VIVEK: I think that really has been one of the significant shifts that I’ve seen in the past five, six years in that shift of change of relationship from being a vendor to customer is to really being in partnership, not just between Microsoft and Microsoft customers, but even for us, it really is about being in a partnership with customers and actually listening to them and it’s no longer a one-way discussion. It really is a circular discussion of continuous feedback and learning from each other.
BHAVANESH: With that, Vivek, before we close out the session, so let’s kind of do a quickfire exercise. Let me throw some terms at you and why don’t you tell me what comes into your head, first? Information governance?
VIVEK: Oh, don’t wait. Start practicing right now.
BHAVANESH: Defensibility.
VIVEK: I think essential to stay relevant right now and stay competitive.
BHAVANESH: Collaboration on records. I’m biased here. Advanced versioning.
VIVEK: Puts an end to copies and broken hyperlinks.
BHAVANESH: Retention schedule.
VIVEK: Just keep them simple. Don’t complicate them.
BHAVANESH: And Microsoft 365 podcast.
VIVEK: I think we should do it again. It was good fun. Thank you.
To learn more about this episode of the Voices of Data Protection podcast, visit: https://aka.ms/voicesofdataprotection.
For more on Microsoft Information Protection & Governance, click here.
To subscribe to the Microsoft Security YouTube channel, click here.
Follow Microsoft Security on Twitter and LinkedIn.
Keep in touch with Bhavanesh on LinkedIn.
Keep in touch with Vivek on LinkedIn.
Recent Comments