Microsoft Integration and Azure Stencils Pack for Visio: New version available (v8.0.1)

Microsoft Integration and Azure Stencils Pack for Visio: New version available (v8.0.1)

In my previous update, I discussed my intention to release a new major version of my stencils. However, I’ve opted for a gradual approach, releasing minor updates along the way. 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.

Keeping my promise, I’m presenting another update. I hope it meets your expectations! If you have any specific requests, don’t hesitate to share them with me.

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 stencil packages: Additional stencil packages were incorporated into this project to enhance the discoverability of shapes:
    • MIS Azure Integration Services: this file contains shapes related to Azure Integration Service and messaging.
    • MIS Microsoft Fabric: this file contains shapes related to Microsoft Fabric – This was actually a request made by a community member. And credits to Sam Debruyn for these Microsoft SVG files. I only had the work to “convert” them into proper Visio stencils.
  • Move some shapes: I reorganized and relocated certain shapes to other files within this package.
  • SVG Files: Add new SVG files;
  • Special Highlights: API Center, Policy fragments, Event Grid, Event Grid: Namespace, Partner namespaces and Partner registrations or APIM Schemas

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
Microsoft Integration (Azure and much more) Stencils Pack

The Microsoft Integration Stencils Pack is composed of 29 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 Integration Services
  • 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 Microsoft Fabric
  • 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

You can use and resize without losing quality.

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

Join me at BizTalk to Azure -The Migration Journey event | September 28, 2023 | Gothenburg, Sweden

Join me at BizTalk to Azure -The Migration Journey event | September 28, 2023 | Gothenburg, Sweden

I’m thrilled to be back doing a presential event after INTEGRATE 2023! And I’m excited to return to Gothenburg and Sweden after seven years! It has been so long! The last time I was in Sweden was in 2016 when I presented at BizTalk User Group Sweden in Stockholm and Gothenburg.

This time, I was invited by Contica to present at their event: BizTalk to Azure -The Migration Journey. In fact, my presence should have happened last year, but for personal reasons, I had to cancel my trip. But I promised that I would come back, and here it is! And to make up for it, in double dose! I will be delivering not one but two talks:

  • 1: Elevating Integration – The Roadmap from BizTalk Server: If you are embracing the journey to move your current BizTalk Server environment to the cloud, in this session, we’ll guide you through the steps, strategies, and best practices needed to successfully transition your integration solutions to the cloud. What phases in your migration journey are crucial? Which tools and technologies should you use? After this session, you’ll know about the dos and don’ts, as well as the key considerations that will empower the agility and scalability of Azure Integration Services. Join us to unlock the potential of Azure’s cloud-native services and streamline your integration landscape.
  • 2: Azure Integration in Action – BizTalk to Azure Transition Case Studies: Join us for an engaging session where we bring Azure Integration Services to life through simple real-world case samples. Through these exercises, you’ll gain practical insights, strategies, and tips to ensure a smooth BizTalk Server migration while embracing Azure’s agility, scalability, and cost-efficiency. Take advantage of this opportunity to see Azure Integration Services in action, guiding your path toward a seamless and future-ready integration landscape.

The event will take place on September 28, 2023, between 5 PM – 9 PM (local time) at Contica, floor 9
Masthamnsgatan 1, Göteborg, Sweden.

Simon Stender will join me at this event to deliver a session about Design and Infrastructure in Azure: Shaping Robust Infrastructure.

Link for the registration

See more about the event and sign up now to secure your seat at the event page: https://www.eventcreate.com/e/themigrationjourney

The event is free! See you there!

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

Thanks! Awarded as Microsoft Azure MVP 2023-2024

Thanks! Awarded as Microsoft Azure MVP 2023-2024

And the most expected email arrived once again on July 6th. I’m delighted to share that I was renewed as a Microsoft Azure MVP (Microsoft Most Valuable Professional). Thanks, Microsoft, for this amazing award. I’m always honored and humbled to receive it, and this is my 13th straight year in the MVP Program, an amazing journey and experience that started in 2011 back then as a BizTalk MVP. This program gave me the opportunity and still does, to travel the world for speaking engagements, share knowledge, and meet the most amazing and skilled people in our industry.

This longevity in the program currently makes me the “Godfather” of the Portuguese MVPs alongside my dear friend Rodrigo Pinto (but I am a few months older :)). And that could not be possible without the huge support of my beautiful wife Fernanda and my amazing 3 kids!

Jokes apart, I want to send a big thanks to Cristina González Herrero for all the fantastic work managing the program in my region. To Microsoft Portugal and to Microsoft for empowering us to support the technical communities. To my coworkers and team at DevScope, all my blog readers, friends, and Microsoft Enterprise Integration Community members, and in special to my beautiful family – THANKS! Thanks for your support during these years.

It’s a big honor to be in the program and be one of this fantastic worldwide group of technicians and community leaders who actively share their high-quality and real-world expertise with other users and Microsoft. I’m looking forward to another great year!

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

Microsoft Integration and Azure Stencils Pack for Visio: New version available (v8.0.0)

Microsoft Integration and Azure Stencils Pack for Visio: New version available (v8.0.0)

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
Microsoft Integration (Azure and much more) Stencils Pack

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

Natural Language Message Validation with Logic Apps and ChatGPT

Natural Language Message Validation with Logic Apps and ChatGPT

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:

{ 
    "Company": "SP", 
    "Operation": "Insert", 
    "Request": { 
        "OrderID": 2, 
        "ClientName": "Sandro Pereira", 
        "ShippingAddress": "Pedroso, Portugal", 
        "TaxId": 111222111, 
        "ProductName": "Chocollate Bar", 
        "Quantity": 1 
    } 
} 

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:

{
  "model": "gpt-3.5-turbo",
  "messages": [
      {
          "role": "user",
           "content": "@{outputs('Compose_-_Instructions_to_be_followed')}",
           }
        ]
}

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:

trim(outputs('HTTP_-_Call_Chat_Gpt_API')?['body']?['choices']?[0]?['message']?['content'])

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

Join me at INTEGRATE 2023 London | JUNE 5-7, 2023 | BizTalk Server to Azure Integration Services migration

Join me at INTEGRATE 2023 London | JUNE 5-7, 2023 | BizTalk Server to Azure Integration Services migration

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 info@devscope.net 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

Azure Logic Apps team is interested in your feedback – XML Support in Logic Apps Survey

Azure Logic Apps team is interested in your feedback – XML Support in Logic Apps Survey

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

Logic Apps and DocuSign integration (Part II) – Archiving the signed document

Logic Apps and DocuSign integration (Part II) – Archiving the signed document

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:
{
  "ExternalEntity": "@{triggerBody()?['data']?['envelopeSummary']?['recipients']?['signers'][0]?['name']}",
  "FileData": {
    "$content": "@{triggerBody()?['data']?['envelopeSummary']?['envelopeDocuments'][0]?['PDFBytes']}",
    "$content-type": "application/pdf"
  },
  "Filename": "@{triggerBody()?['data']?['envelopeSummary']?['envelopeDocuments'][0]?['name']}",
  "InternalEntity": "@{triggerBody()?['data']?['envelopeSummary']?['sender']?['userName']}",
  "completedDateTime": "@{triggerBody()?['data']?['envelopeSummary']?['completedDateTime']}"
}

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.
    • On the Schema property, set the following schema:
{
    "properties": {
        "ExternalEntity": {
            "type": "string"
        },
        "FileData": {
            "properties": {
                "$content": {
                    "type": "string"
                },
                "$content-type": {
                    "type": "string"
                }
            },
            "type": "object"
        },
        "Filename": {
            "type": "string"
        },
        "InternalEntity": {
            "type": "string"
        },
        "completedDateTime": {
            "type": "string"
        }
    },
    "type": "object"
}

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:
      • @{triggerBody()?[‘data’]?[‘envelopeSummary’]?[‘envelopeId’]}@{body(‘Parse_OneDriveData_JSON’)?[‘completedDateTime’]}@{body(‘Parse_OneDriveData_JSON’)?[‘ExternalEntity’]}_@{body(‘Parse_OneDriveData_JSON’)?[‘Filename’]}
    • 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:

  • Entering your DocuSign account.
  • 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

Logic Apps and DocuSign integration

Logic Apps and DocuSign integration

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.
{
  "properties": {
    "ExternalEmailAddress": {
      "type": "string"
    },
    "ExternalName": {
      "type": "string"
    },
    "InternalEmailAddress": {
      "type": "string"
    },
    "InternalName": {
      "type": "string"
    }
  },
  "type": "object"
}
  • Click on + New step to add a new action. From the search textbox, type DocuSign and then select DocuSignLogic 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 DocuSignCreate 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 DocuSignAdd 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 DocuSignSend 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