#1 How I have started the User Group – Beginning

This will be slightly different from regular blog posts, which you have gotten used to seeing and reading on this blog. This series of posts will be about how I have started and how I’m leading one Microsoft Business Application User Group in Serbia.

Regular blog posts about Microsoft Business Applications will continue to be published regularly. But let’s try to have something new as I have created one UG, and maybe somebody is doing the same at the moment, so this blog post serial will be some tips and tricks on starting and leading UG.

#1 Beginning

Like most things in life and business, you must start with an idea. My idea was to form a User Group focused on Microsoft Business Applications. Business Apps are my focus in my day-to-day job, and all my community work is also focused on Microsoft Business Applications. So, when I realized that in my county MS Business Apps don’t have any active User Groups where people with the same interest can getter and speak and share knowledge. I started to think about forming one.

With an idea, we come to the first and most important part of forming a User Group. You can’t do everything alone, so you need at least one Co-Lead. In my case, this was easy because I immediately asked my recent co-speaker on some events and my friend Nikola Pancic if he would be interested in starting a User Group with me. He accepted the idea.

As advice, if you don’t know somebody who shares the same enthusiasm as you, do search well because there is always a lot of work with User Group, especially in the beginning. Better slow down a little bit until you find someone, then rush with everything alone.

This leads us to the second important part of the beginning of founding your User Group. Think about the name. You have to think of an interesting name that can be connected to the main focus of your User Group and also be different from others. With a good name, you will be recognizable, and also, it is important because everybody who starts with User Group plans to stay with that group for some time, and the name will always be there.

When you have the team and name, you can continue to the third part. Contact your local Microsoft for support. Depending on how big your country and community this could be easy, or if you are from a big country, it could be much more complex. But with support and approval from Microsoft, you are on an excellent path to organizing your first meetup.

In our case, we connected with leaders of other User Groups, who introduced us to the Microsoft team. Then, we shared our idea, which was a good fit for Microsoft Community in Serbia, so support from Microsoft has come easily and fast. It will help you in the future, and of course, If you are starting a Microsoft User Group it is nice to inform them and ask for approval. But I know that in some cases, this will be challenging but do it.

After getting support from Microsoft, we are getting to the part where we must work on the design a bit. Create your logo. This step is important same as a name. The logo will follow you for a long time. Take your time and think about it. There are a lot of free online design tools, so you can use them, but try to create and create many different options and then vote for the best one. In the voting part, ask your friends and family because this is just the part where you create something that has to look nice.

After the logo, we are still on the design side. I recommend creating a PowerPoint template. It is not time-consuming, and there are a lot of tutorials and documentation on how it should be done. This was the first time I was working with PowerPoint templates, and it took me around an hour and a half to create a PowerPoint template.

Before our last step, there is one more thing to do. Create an email address. We wanted to avoid paying anything in the beginning. So, we have created a free Outlook account and are still using it. It is easy and fast. But it is important for our next step.

And now, for the first post about How I have created a User Group, I will end with the last step, which you have to do in this process, which is important. Create Social Media Groups. And when I say create social media groups, I mean to make them all.

At this moment, we have the following:

  1. Twitter
  2. LinkedIn
  3. Facebook
  4. Instagram
  5. Meetup

Social media are important for the future because you will attract users to come to your events and to see all the important things about your group.

With these steps, you have successfully created a Microsoft User Group, and you can be proud of yourself, as we are. For the next post, you will see how to organize your first meetup, and I will try to cover all things which were important to us and all those things which made our first event good.

How to create Sales Order in Business Central using Power Virtual Agent?

Now, when chatbots are becoming a more and more popular way of communicating with customers, all users would like to do more via chatbots. As Microsoft’s response to tools that can make chatbots, there is Power Virtual Agents, and the real power of Power Virtual Agent (PVA) is enormous.

But as business application specialists, we always try to think about how to connect it to some of our Business Applications. This time we plan to connect PVA to Business Central (BC). More precisely, we want to create New Sales Order from PVA and directly in BC.

How we can achieve that, and not to say it is easy, but it is not so complicated. In a concise explanation, we will create PVA with typical questions, and then we will ask some specific questions to our users so that they can give us order-specific data. After collecting data, we will use Power Automate to connect all.

But let’s stop talking hypothetically and start creating our PVA connected to BC.

The critical thing to mention is that I will not explain how to create PVA nor suggest which questions to use to trigger it and which flow you will make. I will focus only on the essential steps you must implement to create a Sales Order in BC using PVA. You can start as you like and do it in the best possible way so that it fulfills all of your requirements.

So, let’s start.

First, you will have to get three essential pieces of information from your PVA users:

  1. Account/Customer No.
  2. Item No.
  3. Quantity of Item which customer wants to buy

You can work with Item Name and Customer Name, but be aware that this can make your process more complicated because we have a few things to take into consideration before using this approach:

  1. Human error
  2. Similar names
  3. Many more questions for users
  4. Many more variables to consider
  5. Etc.

If you want to try this approach, consider this problem, and you can do it. The process is similar, only with some more steps.

But with our approach, let’s create three questions in Power Virtual Agent and define Variables for them:

  1. Choose Add Node
    1. Choose Ask a Question
  2. In Question, define:
    1. What is your company account number with us?
    1. Identify the User’s entire response
    1. Save response as
      1. Click on the Pen icon and name it VarCustomerID
  3. choose Add Node
    1. Choose Ask a Question
  4. In Question, define:
    1. What Product No. are you looking to purchase?
    1. Identify the User’s entire response
    1. Save response as
      1. Click on the Pen icon and name it as VarItemNo
  5. Choose Add Node
    1. Choose Ask a Question
  6. In Question, define:
    1. Can you tell us which Quantity you would like to order?
    1. Identify Number
    1. Save response as
      1. Click on the Pen icon and name it as VarItemNo

And now we have our questions and variables. What we have to do from here is to add a new action in our PVA, but this time is going to be active for triggering Power Automate.

To do this, you will have to:

  1. Navigate to Add node in a Topic editor in Power Virtual Agent
  2. Choose to Call an action
  3. Choose to Create a flow

And from here, you will be redirected to the Power Automate editor, and you should start creating a new Power Automate.

You will see immediately that you already have trigger and Output predefined for PVA. Just keep it, and we will use it in the process.

From here, you will have to create some Variables and, most important Sales Order Header and Line.

As you probably know, in BC, Sales order contains two tables:

  1. Sales Order Header
  2. Sales Order Line

We will have to use both. First, we will create Header, and later we will use the Find Record action to find our Item, and then, in the end, we will fulfill Sales Order Line.

Don’t worry. I will now list all actions one by one and in the order in which you will have to create them so that you’re Power Automate works at the end.

Before you start with Sales Order Header and Lines, as I sed, you will need to do some setup in Trigger and initialize some variables.

For the trigger, what you would need to do is to add you’re Inputs. You will probably understand now whose inputs are values we will get from Questions we have asked users in our PVA.

So let’s create three inputs:

  1. Text: CompanyName
  2. Text: Item
  3. Number: Quantity

And after inputs, I will list all variables you have to Initialize, and all of them will be STRING. Just create them, don’t assign any values. We will do that later in the Power Automate.

  1. Order ID
  2. Currency Code
  3. Item No
  4. Quantity
  5. UOM
  6. Total Price

Now that we have created Variables, we can continue creating records in BC. For better understanding, our Variables are here so that we can collect output at the end and show Sales Order info in PVA so that users can understand what they have created and get some information about orders they had made automatically.

If you want to create Sales Order and not use data back in PVA, you don’t need all these Variables. But when making PVA, it is always lovely to show values at the end to users of PVA.

Now let’s continue with Power Automate, and finally, let’s create a record in BC.

We will now perform three actions; you must do this in this order.

  1. Create Record V3 (Business Central)
    1. Environment Name: SANDBOX (if you are working with a PRODUCTION environment, choose PRODUCTION)
    1. Company Name: CRONUS USA, Inc.
    1. API Category: v2.0
    1. Table name: salesOrders
    1. customerNumber: CompanyName (from trigger)
  2. Find Records V3 (Business Central)
    1. Environment Name: SANDBOX (if you are working with a PRODUCTION environment, choose PRODUCTION)
    1. Company Name: CRONUS USA, Inc.
    1. API Category: v2.0
    1. Table name: items
    1. Filter Query: number eq ‘ItemNo’ (ItemNo Variable form dynamic value)
  3. Create Record V3 (Business Central) (Apply to Each will be created automatically)
    1. Environment Name: SANDBOX (if you are working with a PRODUCTION environment, choose PRODUCTION)
    1. Company Name: CRONUS USA, Inc.
    1. API Category: v2.0
    1. Table name: salesOrderLines
    1. documentId: id (from Create Record (Header) dynamics value)
    1. itemId: id (from Find Records (Item) dynamics value)
    1. quantity: Quantity (from the trigger, dynamics value)

And now, after we have created Sales Order in BC, we need to get data and show them back in PVA so that users can see what they have done.

We will do this by assigning values to our Variables. For this scenario, it is best to use Append to string variable action.

Again let’s see what we have to do here.

  1. Append to a string variable (in Apply to Each)
    1. Name: ItemNo
    1. Value: description (from Create Record line)
  2. Append to a string variable (in Apply to Each)
    1. Name: Quantity
    1. Value: Quantity (from Create Record line)
  3. Append to a string variable (in Apply to Each)
    1. Name: UOM
    1. Value: UniteOfMesureCode (from Create Record Line)
  4. Append to a string variable (in Apply to Each)
    1. Name: Order ID
    1. Value: number (from Create Record Header)
  5. Append to a string variable (in Apply to Each)
    1. Name: Total Price
    1. Value: amountIncludingTax (from Create Record Line)
  6. Append to a string variable (in Apply to Each)
    1. Name: Currency Code
    1. Value: currencyCode (from Create Record Line)

When we have assigned values to Variables, we are only left with a few steps till the end of this scenario.

Now we must create one more Variable and append value to it.

This time we are doing this to format our Output result in the best possible way because formatting output values from Power Automate in the PVA is not the best, so we want now to do it in Power Automate and later show this value in our PVA.

To do this, we will create the following Variable:

  1. Initialize variable (Out of Apply to Each)
    1. Name: Order
    1. Type: String
    1. Value: (none)
  2. Append variable
    1. Name: Order
    1. Value:
      You have created a sales Order with ID: Order ID (Variable dynamics value)

With Item: ItemNo (Variable dynamics value)

Quantity:  Quantity (Variable dynamics value) UOM (Variable dynamics value)

With total price: Total Price (Variable dynamics value) Currency Code (Variable dynamics value)

And now, we are just two more steps to the end in Power Automate.

This time we must use two actions and keep in mind that one of them is already there, so in reality, we must create one more cation (COMPOSE) and, in the end, assign that value to our PVA output.

  1. Compose
    1. Inputs: Order (Variable dynamics value)
  2. Return value(s) to Power Virtual Agents
    1. Inputs
      1. Text: Item
        1. Outputs

And now we are finished with Power Automate. All that is left here is to Save it, jump back to PVA, and map Variables in PVA so that our inputs in Power Automate can work. Your Power Automate would look like the one on the Screenshot if you created it with the exact steps I described.

To do this, you will have to go back to your PVA and inaction, which you have called Power Automate. You have to choose one which we have created just now.

  1. Choose Power Automate, Which you have created
  2. Setup Variables
    1. CompanyName (text) -> VarCustomerId
    1. Item -> VarItemNo
    1. Quantity -> VarQuantity
  3. Add Node
    1. Show a message
      1. Dear customer VarCustomerID (add a variable from the list),

Your order has been created with the following details:

Item (variable from the list)

Now you can Save your PVA and Test it to see if it works. If everything is fine, the result will look something like this.

This is not the end. You can continue playing with this PVA and add one new branch where you will create one more Power Automate for users who are not Customers in BC and first create them so that they can make an order. But this is the end for this scenario, How to create a Sales Order from PVA in BC.

In conclusion, when we can use Power Automate with some other tool natively, SKY IS THE LIMIT in what we can do.

I know that this scenario has a bigger number of steps, but in total, it is not so complicated. Still, it gives an excellent perspective on what you can do and gives you an idea of what some other Power Automates should look like if you are using them from PVA. Enjoy creating this Power automate and Power Virtual Agent.