With INTEGRATE 2023 London concluded, time to shift gears to the next big event on cloud integration: Azure Logic Apps Community Day 2023, sometimes called LogicAppsAviators Community Day, which will take place on Thursday, June 22nd at 9 AM (Pacific) or 5 PM (UTC). The event is free and will be streamed on YouTube/Twitch, so be sure to subscribe to the Azure Developers YouTube to stay up to date.
Azure Logic Apps Community Day 2023will be the must-attend event for anyone who wants to learn more about Logic Apps and how it can help to solve real-life integration problems. It will be a full day of learning from the basics of getting started to deep dives into advanced automation with Logic Apps presented by the Logic Apps product group, Microsoft MVPs, and expert community members. In the end, will be a Round Table Discussion – Ask Me Anything with the Product Group and Community – this will be your opportunity to make “hard” questions.
I will have the pleasure of delivering a session about the new Data Mapper at this event and also be part of the panel on the Round Table Discussion!
About my session
Session Name: A walk in the park with the new Logic App Data Mapper
Abstract: In this session, we will present the new Data Mapper experience for Logic Apps Standard and how we can apply XML to XML transformations or XML to JSON transformations using a visual designer. Here, we will also address how to implement well-known mapping patterns like direct translation, Data translation, content enricher, or aggregator patterns alongside many others.
Hope you find this helpful! So, if you liked the content or found it helpful and want to help me write more content, you can buy (or help buy) my son a Star Wars Lego!
Author: Sandro Pereira
Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc.
He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community.
View all posts by Sandro Pereira
The last time I released a new version of my stencil, it was on January 26 of 2022. A long time ago indeed, so it is fair to say that I do need to release a new major version of my stencils, and that will be a long work and process. However, I decided to do this task progressively and release minor updates during this “journey”. This way, it becomes easier for me because I don’t need to spend long periods allocated to this task, and at the same time, all of you can start enjoying these new icons.
What’s new in this version? (for now)
The main goal of this release was to provide the new icons present in the Azure Portal, on the Power Platform, and new existing Services. In this version, the changes and additions are:
New shapes: New shapes added on MIS Databases and Analytics Stencils, MIS Azure Additional or Support Stencils, Microsoft Integration Stencils, MIS Azure Stencils, and MIS Power Platform Stencils;
SVG Files: Add new SVG files;
Special Highlights: Microsoft Fabric and the new Logic App Data Mapper
Microsoft Integration, Azure, Power Platform, Office 365, and much more Stencils Pack
Microsoft Integration, Azure, Power Platform, Office 365, and much more Stencils Pack it’s a Visio package that contains fully resizable Visio shapes (symbols/icons) that will help you to visually represent On-premise, Cloud or Hybrid Integration and Enterprise architectures scenarios (BizTalk Server, API Management, Logic Apps, Service Bus, Event Hub…), solutions diagrams and features or systems that use Microsoft Azure and related cloud and on-premises technologies in Visio 2016/2013:
BizTalk Server
Microsoft Azure
Integration
Integration Service Environments (ISE)
Logic Apps and Azure App Service in general (API Apps, Web Apps, and Mobile Apps)
Azure API Management
Messaging: Event Hubs, Event Grid, Service Bus, …
Azure IoT and Docker
AI, Machine Learning, Stream Analytics, Data Factory, Data Pipelines
SQL Server, DocumentDB, CosmosDB, MySQL, …
and so on
Microsoft Power Platform
Microsoft Flow
PowerApps
Power BI
Office365, SharePoint,…
DevOps and PowerShell
Security and Governance
And much more…
… and now non-related Microsoft technologies like:
SAP Stencils
The Microsoft Integration Stencils Pack is composed of 27 files:
Microsoft Integration Stencils
MIS Additional or Support Stencils
MIS AI and Machine Learning Stencils
MIS Apps and Systems Logo Stencils
MIS Azure Additional or Support Stencils
MIS Azure Mono Color
MIS Azure Old Versions
MIS Azure Others Stencils
MIS Azure Stencils
MIS Buildings Stencils
MIS Databases and Analytics Stencils
MIS Deprecated Stencils
MIS Developer Stencils
MIS Devices Stencils
MIS Files Stencils
MIS Generic Stencils
MIS Infrastructure Stencils
MIS Integration Fun
MIS Integration Patterns Stencils
MIS IoT Devices Stencils
MIS Office365
MIS Power BI Stencils
MIS PowerApps and Flows Stencils
MIS SAP Stencils
MIS Security and Governance
MIS Servers (HEX) Stencils
MIS Users and Roles Stencils
That you can use and resize without losing quality, in particular, the new shapes.
Download
You can download Microsoft Integration, Azure, BAPI, Office 365, and much more Stencils Pack for Visio from GitHub here:
Hope you find this helpful! So, if you liked the content or found it helpful and want to help me write more content, you can buy (or help buy) my son a Star Wars Lego!
Author: Sandro Pereira
Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc.
He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community.
View all posts by Sandro Pereira
In one of my previous documents, I spoke about how to configure ChatGPT to be used with Azure Logic Apps. At that time, my team and I decided to create that blog post just for fun, but we didn´t yet have in mind a good idea of how to use it in a real-case integration scenario or to help build integration projects.
During a break at INTEGRATE 2023 conference, Mike Stephenson show me an idea that he had while listening to one of the talks about putting ChatGPT to do transformation using natural language, thereby replacing the maps. Needless to say, it was a fascinating and fun conversation. You can see his blog post here:
This put me thinking about where else we could apply ChatGPT in use to help develop, implement, or process our integration needs. Despite having a few ideas, one quickly stood out, and that somehow follows Mike’s idea: Messages Validation! In other words, have a Logic App which is processing some data, and then we use ChatGPT to validate the data for us by describing the schema validation in natural language text.
So I ended up creating this small sample scenario where we have the following JSON Message:
And we want to validate the incoming message if it is valid or not based on the following rules:
The OrderID must exist and be an Integer.
The ClientName can not be empty or null.
The Quantity must exist, and it is an Integer.
The value of the Company field can only be “SP” or “LZ”.
The Operation field must exist.
Of course, this task can be made by creating a JSON schema with all the rules and then validating the message against the schema. However, some of these rules are not natively supported by Logic Apps like the use of regular expressions or patterns.
But the main idea here on this post is to provide a simplified way to do this task and use natural language to replace the Schemas.
You can watch my coworker Luís Rigueira describing all the process in this video:
So how do we achieve this?
First, as you already know, you should create a Logic App. It can be Consumption or Standard. We will be using Consumption, and then you should give it a proper name because starting using proper names from the day one rule never gets old!
And then create a Logic App that has the following structure:
When a HTTP request is received trigger.
A Compose action.
An HTTP action.
And finally, a Response action.
Leave the When a HTTP request is received trigger as his. And on the Compose action, add the following configurations with all the actions to apply the validation of the message:
Check if the Json Input is valid or invalid by these rules:
The OrderID must exist and be an Integer
The client name can not be empty or null
The Quantity must exist and it is an Integer
Company can only be "SP" or "LZ"
Operation must exist
If it is valid return a message saying "body is valid"
If it is invalid return a message saying the "body is invalid" and explain why.
Json input: @{triggerBody()}
As the JSON input, we dynamically select the Body property from the Trigger, which contains the JSON we send via Postman.
Next, on the HTTP call, we need to perform the call to the ChatGPT API to perform or try to perform the JSON message validation. To do that, we need to specify the following body:
If you want to know or understand a little bit about this – How to call ChatGPT from a Logic App – see my previous blog post: Using Logic Apps to interact with ChatGPT.
Finally, we need to configure the Response action to use the following expression in the response:
This way, we only send the message content as a response. Now if you test your logic app with Postman, this should be the result:
If the rules we added to the Compose action are met, we will get the following response:
The body will be valid.
Otherwise, the body is invalid, and ChatGPT gives the reason why.
Of course, I think at this stage maybe AI is still not a reliable option to be used in data transformation or data validation, but it shows potential.
Once again, thank my team member Luis Rigueira for helping me with this always crazy scenarios.
Hope you find this helpful! So, if you liked the content or found it helpful and want to help me write more content, you can buy (or help buy) my son a Star Wars Lego!
Author: Sandro Pereira
Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc.
He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community.
View all posts by Sandro Pereira
INTEGRATE (formerly known as BizTalk Summit) is the primary conference for professionals working in the Microsoft Integration space and once again is back in London. From June 5 to 7, 26 speakers – 12 MVPs, 1 former MVP, and 12 Microsoft PM – will address the entire Microsoft Integration Platform landscape on topics like BizTalk Server, Logic Apps, Service Bus, Event Grid, Event Hubs, Microsoft Flow, API Management, Azure Functions and many more.
And once again, I will be there delivering a session! Since the first BizTalk Summit event, I’ve been a constant presence as a speaker at these events! However, this will be the first time I’m not going to deliver a session 100% dedicated to BizTalk Server. This time I’ll be talking about how you can migrate your BizTalk Server solution to Azure Integration Services.
You could also get an exclusive 15% discount on top of the existing early bird offer using the coupon code “INT2023-SPEAKER-SANDRO”.
About my session
Session Name: BizTalk Server to Azure Integration Services migration
Abstract: If you are embracing the journey to move your current BizTalk Server environment to the cloud, we will discuss what you need to be aware of in this session. From the preparation phase – the assessment phase to the tools and technology you can use, some best practices you may implement, what to do and not to do, and finally, presenting some samples.
Content is not all you get from this event…
Content is hugely important, and as you read previously, this event will address the entire Microsoft Integration Platform landscape… but that’s not all!
This will also be a fantastic opportunity to Network, Connect, and Reconnect with Colleagues. Meet some of the people you have been following on Twitter and blogs and network with them and others who are interested in the same things you are. To hang out with the most brilliant people you know – and I’m not talking about the speakers or Microsoft PMs! I’m talking about you guys! – last year, we had more than 200 attendees from several companies across many countries attending the event, and it was the first personal event after COVID-19, this year will be bigger! Imagine the experience that all of us have combined!
The knowledge and experience of all the attendees, speakers, and product group members at these events are unreal!!! You will not find an opportunity like this every day.
So, this event is a massive opportunity for you to:
Get insight and answers to your questions from these real-world experts: attendees, MVPs, and/or Microsoft PMs;
Know and become friends with people you are interested in or that you follow on social media and participate in post-event activities like coffee breaks and dinner with speakers and/or other attendees.
Build your personal Business Networking, and it is also a good opportunity for Partnerships… and new business opportunities.
And finally: Refresh and recharge and have some fun!
Fill free to contact DevScope at [email protected] if you want to know more about us, what we do, and/or how we can help you and your business.
INTEGRATE 2023 Registration
You are still on time to register for the conference here.
Author: Sandro Pereira
Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc.
He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community.
View all posts by Sandro Pereira
Unfortunately, until this date, there isn’t available an Azure Logic Apps Tools for Visual Studio Extension for Visual Studio 2022, which means that we still need to use Visual Studio 2019 to create Logic App Consumption projects with Visual Studio.
An opposite to other Azure Services like Azure Functions that have a dedicated Azure Function project Template:
There isn’t a Logic App Consumption Visual Studio project template. Instead, we need to use the Azure Resource Group project template, and inside we will select that it will be applying a Logic App template.
Creating a Visual Studio Logic App Consumption project
The Logic Apps designer integrates with the current Azure Resource Group project. That saying, you will not find any Logic App template in the list of templates. Instead, we need to create an Azure Resource Group project to get started, and to do that, we need:
Open Visual Studio, and on the Create a new project panel, select C# -> Azure -> Cloud, or search for Azure Resource Group:
From the list of project templates, select the Azure Resource Group template.
On the Configure your new project panel, give a proper Project name, Location, and Solution name. Leave the Framework as .NET Framework 4.7.2 and select Create.
Finally, on the Select Azure Template panel, from the Visual Studio Templates list, select the Logic App template and select OK.
This will create an empty Visual Studio Logic App solution. Now on the Visual Studio solution:
Right-click on the LogicApp.json file and select Open With Logic App Designer.
This will open a Logic App Properties window, where you need to:
Define the credentials to authenticate on the Azure subscription.
Define the Subscription and Resource Group where you want to create these resources.
Define if you want the Location to be in the same Region or in an Integration Service Environment (ISE) – be aware the ISE is being deprecated.
And then select OK.
This will embed the Logic App designer inside the Visual Studio.
Now you need to select a common trigger, a template, or use a blank Logic App to start creating your business process.
Hope you find this helpful! So, if you liked the content or found it helpful and want to help me write more content, you can buy (or help buy) my son a Star Wars Lego!
Author: Sandro Pereira
Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc.
He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community.
View all posts by Sandro Pereira
We all must love this Logic App team for engagement with the community over the last few months! Always trying to listen to the client and community feedback in order for them to prioritize investments in Logic Apps based on our real needs.
And once again, the Logic App team wants to listen to our feedback! And this time, on the topic we all developers or consultants were also anxiously waiting for Developer Experience and Tools. At least I was!
Logic Apps Developer Experience and Tools Survey
With this new survey, the Logic App team seeks feedback on how you guys want to have or imagine having XML Support inside Logic Apps. They want to learn about your needs and feedback on the current Logic Apps workflows support for XML and to provide us information about potential scenarios that you want to see covered around XML and SOAP:
Which Logic Apps model(s) are you using today?
Which tools have you used to develop Logic Apps?
When developing Logic Apps Standard, which environment do you mainly use?
In what scenarios do you use Azure portal more for developing Logic Apps Standard?
Rank the new capabilities of Azure Portal experience for Logic Apps Standard.
If you can choose one IDE for developing Logic Apps Standard locally, which IDE do you want to use? Visual Studio Code or Visual Studio.
Why do you want to use Visual Studio instead of VS Code for developing Logic Apps Standard locally?
Rank the new capabilities of IDE experience for Logic Apps Standard.
THIS IS YOUR OPPORTUNITY! Don’t complain that the developing experience is not that good or you prefer using Visual Studio rather than Visual Studio Code for developing Logic Apps in the future if you don’t fill out this form. The survey does not take long to respond to, and this is your opportunity to try to change and influence the next set of features.
I did my part!
Please fill out the following survey to help Azure Logic Apps:
On a final note, congratulations to the Logic App team for being so engaged with the community!
Author: Sandro Pereira
Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc.
He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community.
View all posts by Sandro Pereira
And once again, the Logic App team wants to listen to our feedback! And this time, on the topic we all developers or consultants were anxiously waiting for, specially BizYalk Server developers: XML Support in Logic Apps!
XML Support in Logic Apps Survey
With this new survey, the Logic App team seeks feedback on how you guys want to have or imagine having XML Support inside Logic Apps. They want to learn about your needs and feedback on the current Logic Apps workflows support for XML and to provide us information about potential scenarios that you want to see covered around XML and SOAP:
What industry do you work in?
Information about the current XML capabilities of Logic Apps Workflows
Have you used Transform XML, XPath, XML Validation, Transform XML to JSON, or Transform XML to TEXT actions? Do they fulfill your needs?
What is your biggest challenge in dealing with XML Documents in Azure Logic Apps workflows?
How are you currently dealing with XMLs documents with schemas definitions (XSDs) in Azure Logic Apps workflows?
Are you currently converting SOAP to REST services or calling SOAP services from Logic Apps? If so, what procedure do you follow?
Are you familiar with the HTTP connector? Does it address your needs?
Are you familiar with the Custom Connector experience that supports SOAP? Does it address your needs?
How are you retrieving individual data elements from an XML document and then using that value in an action?
Are you migrating schemas from BizTalk or other products to Azure Logic Apps?
(For Consumption Only) How would you rate the XML capabilities of the Enterprise Integration Pack?
Please Rank the areas you feel Azure Logic Apps should include XML native support.
THIS IS YOUR OPPORTUNITY! Don’t complain that the developing experience is not that good or you missing XML capabilities inside Logic App in the future if you don’t fill out this form. The survey does not take long to respond to, and this is your opportunity to try to change and influence the next set of features.
I did my part!
Please fill out the following survey to help Azure Logic Apps:
On a final note, congratulations to the Logic App team for being so engaged with the community over the last few months! Keep this engagement active, and please continue to do a great job!
Author: Sandro Pereira
Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc.
He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community.
View all posts by Sandro Pereira
I have often been writing about how to handle exceptions and get the correct and detailed error message describing in an easy and clean matter the failures in our processes:
And the reason why that happens is that we need to accept the fact that at a certain point in time, our process will fail. Or by the fact we did some updates that weren’t tested properly, an external system is down or in intervention, or by issues in Microsoft infrastructure, and so many other reasons. But when that happens, one thing is clear: we want to get the exact error message describing why it failed. But, of course, we can always go to the Logic Apps run history – except if it is a Stateless workflow on Standard – to check where and why it failed. And obviously, we will have all the information necessary to solve the problem. However, most of the time, if not always, we want to log the error in some place like Application Insights, SQL Database, Event Hubs, and so on in an automated way without human intervention. To accomplish that, we need to access this error message in runtime.
By default, Logic App allows handling errors using the Configure run after settings at a per action level. For more complex scenarios, it can be done by setting up Scope action and implementing try-catch/try-catch-finally statements. However, getting a detailed error message can be a bit challenging inside Logic App, and you will find different approaches to implement the same capabilities, each of them with advantages and disadvantages.
In this whitepaper, we will be addressing some of the possible ways to address these needs but also addressing some of the following questions:
How can I implement error handling?
This is an important question and topic because, without proper error handling, we will not be able to send in an automated way access the error message instead, our workflow will finish in that action with a failure state.
What out-of-the-box features do I have to capture and access the error details?
How can I improve these default features in a no-code, low-code way and in a code-first approach?
Where can I download it
You can download the whitepaper here:
Author: Sandro Pereira
Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc.
He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community.
View all posts by Sandro Pereira
In my last blog post – Logic Apps and DocuSign integration – I explain how you can create and dynamically populate a contract using an HTTP input and then use the DocuSign connector to complete the workflow! Today we are going to see another DocuSign integration capability.
By default, and as I mentioned in my last post, once the document is completed and signed by both parties, all participants will receive an email informing them that All signers completed Complete with DocuSign and with an available link for them to access and view the document.
However, the signed document will live and will be available on the DocuSign platform, which is probably not ideal, typically, we would like to store it internally, if it is personal, in our local drive or dropbox, in an organization inside SharePoint or CRM for example.
So, the main questions are: Is it possible to automate this part of the process? and if yes, how?
And yes, it is possible, and this is what we will address in this blog post! For simplicity, we will be using Dropbox as our archive system.
Before we start to explain all the steps you need to do to implement this logic, let me tell you that what you usually expect to see in the Logic App workflow will be typically like this:
Where the:
Logic App will be triggered once the status of the envelope change to Completed.
From there, we will make an additional call to Get the envelope documents’ content.
And then create a file on Dropbox.
That will create a for each action since the structure of the response is an array despite only containing one row.
I don’t like this approach for several reasons:
We are making an unnecessary external call to DocuSign – the Get envelope documents content call.
It is less performant. The processing time of the Logic App can go from 3 to 5 seconds:
We can do way better! and do the same in less than 2 seconds. So here we are going to explain the “intermedium” approach. For simplicity, I won’t implement the “advanced” approach that only contains two actions!
So, to archive a signed document, what we need to do is:
Create a new Logic App, let’s call it: LA-ProcessDocuSignSignedDocuments-POC.
On the Search connectors and triggers box, type DocuSign, select the DocuSign connector, and then select the When an envelope status changes (Connect) (V3) trigger.
On the When an envelope status changes (Connect) (V3) trigger, we need to:
On the Account property from the combo box, select the account to use.
On the Connect name property, type a name that correctly describes your connector, for example, Process Document Signed.
On the Envelope Status property from the combo box, select the envelope-completed option.
Note: if you use V2 of this action, the Envelope event property value will be Completed and not envelope-completed.
Click on + New step to add a new action. From the search textbox, type Data Operations and then select Data Operations – Compose action.
On the Compose action, we need to add the following input value:
Here, we are extracting only the necessary pieces of information that the trigger will provide to us and creating a simple JSON message with all the information we will need to create the file in our Dropbox according to the rules we specify. For example:
The expression triggerBody()?[‘data’]?[‘envelopeSummary’]?[‘recipients’]?[‘signers’][0]?[‘name’] will contain the name external entity/person that signed the document.
The expression triggerBody()?[‘data’]?[‘envelopeSummary’]?[‘sender’]?[‘userName’] will contain the name internal entity/person that signed the document – in this sample, my name.
The expression triggerBody()?[‘data’]?[‘envelopeSummary’]?[‘envelopeDocuments’][0]?[‘name’] will contain the original name of the file we add on DocuSign – in our case, SERVICE EXCHANGE AGREEMENT.pdf.
The tricky part was the File data to be added to the Dropbox. If we send only the bytes that are available on the PDFBytes property, a file will be created on our Dropbox, but it will be corrupted, and we cannot open it. So we need to create a structure with content type and content information.
Now, continue our Logic App workflow. Let us:
Click on + New step to add a new action. From the search textbox, type Data Operations and then select Data Operations – Parse JSON action.
On the Parse JSON action, we need to:
On the Content property, set the value to the Output property of the previous Compose action, in our case, the Map TriggerData to DropBoxData.
Note: This will tokenize the properties of the JSON message we created earlier, and that will allow us to easily used them in the following action.
Note: these two actions, the Compose, and the Parse JSON, are optional. We could not use them and configure all the properties of the next action with expressions – this will be the “advanced” approach!
Click on + New step to add a new action. From the search textbox, type DropBox and then select Dropbox – Create file action.
On the Create file action, we need to:
On the Folder Path property, define the path inside dropbox to where to store the file.
On the File Name property, we want the file to have the following naming convention:
___
So for that, we need to define this property with the following expression:
On the File Content property, set the value to the FileData property of the previous Parse JSON action, in our case, the Parse DropBoxData JSON.
Finally, save your Logic App.
By clicking saving, this will also create in DocuSign platform a Connect configuration with the name you used on the trigger, in our example, Process Document Signed. You can see this by:
On the top menu, select Settings. From there, in the left tree, select the Connect option under Integrations.
Now, for these “intermedium” and “advanced” approach to work we need to do a small trick on the connection inside DocuSign. To do that, we need to:
Select the Process Document Signed connection.
On the Edit Custom Configuration page, scroll down to the option Trigger Events under Event Settings, and expand the Envelope and Recipients panel.
And then expand the Include Data panel and make sure you select the following options:
Custom Fields
Documents
Extensions (optional)
Recipients
Tabs (optional)
Click Save Configuration in the top right corner on the Edit Custom Configuration page
Now to test it, we need to start by executing the Logic App we create yesterday, in order to generate a new document (aka envelope) to be signed.
Once both parties sign the document, our Logic App will be triggered:
And a file will be added in our Dropbox:
And, to be sure, if you click on it, you will the the document signed by Luis and me.
Now, have you notice on the picture above the execution time of this approach? All of them in less than a 2 seconds!
Credits
Once again, a big thanks to my team member Luis Rigueira for participating in this proof-of-concept!
Hope you find this helpful! So, if you liked the content or found it helpful and want to help me write more content, you can buy (or help buy) my son a Star Wars Lego!
Author: Sandro Pereira
Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc.
He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community.
View all posts by Sandro Pereira
I’ve been wanting to explore the integration capabilities with DocuSign for some time now, but for some reason, I kept putting it off. Or because I didn’t have free time available or because I was doing other stuff. Until now!
And one of the reasons why I want to explore these capabilities is the fact nowadays, we have people entering at DevScope from all over the place, and we do follow a welcome process where they need to sign some documents like work conduct or work ethic, reception manual and so on. Do these need to be manually signed these days? That means that new remote employees need to print the papers, sign, scan, and send them back? Is there a better way?
But first, what is DocuSign? And how can we use it?
DocuSign is a cloud-based electronic signature platform that allows users to sign, send, and manage electronic documents securely. It is a software service that enables users to sign documents electronically and send them for signature to others quickly and efficiently. The platform is designed to be easy to use and accessible from anywhere, on any device.
DocuSign is used by individuals, businesses, and organizations of all sizes across many industries, including finance, real estate, healthcare, and more. The platform streamlines the document signing process and eliminates the need for physical documents and manual signatures, which can be time-consuming and costly. It also offers additional features like document storage, workflow automation, and advanced analytics. Overall, DocuSign helps to simplify the document signing process, increase efficiency, and reduce costs.
So, what we need to do first is to create a 30-day free account (No credit card required) on DocuSign and understand how DocuSign works.
And then, you just need to follow the steps and create your name and your password.
The second thing we will do is create a document template. For that, we need to:
On the top menu, click on the Templates option and then click Create a template.
On the Create a template page, we need to:
On the Template name option, provide a name to your template, for example, Default Service Exchange Agreement.
On the Template description option, provide a short description of your document template.
On the Add documents, select Upload or drag and drop the document to that area.
Click Save and Close.
So knowing this, let’s proceed to the Logic App, and here we will be creating a Logic App Consumption with the name LA-SendEmailToSignWithDocuSign-POC. To simplify the process I’m going to abstract the source system or application that will trigger the Logic App to send the document to be signed. That could be anything, but in our case, we will be using a Request – When a HTTP request is received trigger. To do that, we need to:
On the Search connectors and triggers box, select the Built-in and then Request connector, and then the When a HTTP request is received trigger.
On the When a HTTP request is received trigger, provide the following Body JSON Schema.
Click on + New step to add a new action. From the search textbox, type DocuSign and then select DocuSign – Logic action.
The first action we need to take is to Sign in with the account we create earlier in this tutorial.
Once you sign in, we need to Click on + New step to add a new action. From the search textbox, type DocuSign and then select DocuSign – Create envelope using Template action.
Note: In DocuSign, an “envelope” refers to a single package of one or more documents that are sent for signature to one or more recipients. It is the equivalent of a physical envelope that contains all the necessary documents for signature.
On the Create envelope using Template action, we need to:
On the Account property from the combo box, select the account to use.
On the Account property from the combo box, select the account to use, in our case, Default Service Exchange Agreement.
On the Envelope Status property from the combo box, select the Created option.
Click on + New step to add a new action. From the search textbox, type DocuSign and then select DocuSign – Add recipient to an envelope (V2) action.
On the Add recipient to an envelope (V2) action, we need to:
On the Account property from the combo box, select the account to use.
On the Envelope property, select the value to be the Envelope Id from the Create envelope using Template action.
On the Recipient type property from the combo box, select the Needs to Sign option.
Type Add new parameter and select the Signer name, Signer email, and Signing order properties.
On the Signing order property, type 1.
On the Siginer name property, select the value to be the ExternalName from the When a HTTP request is received trigger.
On the Siginer email property, select the value to be the ExternalEmailAddress from the When a HTTP request is received trigger.
Add the same action once again, but this time with the following configurations:
On the Account property from the combo box, select the account to use.
On the Envelope property, select the value to be the Envelope Id from the Create envelope using Template action.
On the Recipient type property from the combo box, select the Needs to Sign option.
Type Add new parameter and select the Signer name, Signer email, and Signing order properties.
On the Signing order property, type 2.
On the Siginer name property, select the value to be the InternallName from the When a HTTP request is received trigger.
On the Siginer email property, select the value to be the InternalEmailAddress from the When a HTTP request is received trigger.
To finalize, we need to click on + New step to add a new action. From the search textbox, type DocuSign and then select DocuSign – Send envelope action.
On the Send envelope action, we need to:
On the Account property from the combo box, select the account to use.
On the Envelope property, select the value to be the Envelope Id from the Create envelope using Template action.
And go ahead and Save your workflow.
Now if we go ahead and test our Logic App using Postman using the below payload:
We will see that our Logic App was correctly processed.
That means that:
Luis Rigueira, that is the first recipient, got an email from DocuSign with a document to sign.
And only when Luis signs the document, as a second recipient I receive the email to sign.
Note: I don’t need to implement this logic in my Logic App workflow since DocuSign will handle that internal logic.
Once both sign, we will also receive an email notification that the document is signed by both parties.
Note: once again, I do not need to implement that logic since DocuSgign will handle that for me.
Let me say, I was surprised by how excellent and efficient DocuSign is! Quite simple to use, and truly a great experience.
Now, this is the part where I need your imagination because here, we probably not using a real-case scenario we are creating a proof of concept. Nevertheless, I think this can indeed be a good approach for real-case implementation! But probably in most cases, this trigger of the Logic App can occur when a user is created on the Active Directory, or in CRM. From a SharePoint list, from an Onboarding application, well, the sky is the limit for your imagination.
Credits
Once again, a big thanks to my team member Luis Rigueira for participating in this proof-of-concept!
Hope you find this helpful! So, if you liked the content or found it helpful and want to help me write more content, you can buy (or help buy) my son a Star Wars Lego!
Author: Sandro Pereira
Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc.
He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community.
View all posts by Sandro Pereira