Creating An Invitation To A Forms Pro Survey

*** NOTE: ALL INFORMATION IS ACCURATE AT DATE OF PUBLISHING ***

| CLICK IMAGES IN THE POST TO ENLARGE THEM |

In previous posts we’ve looked at how to distribute a survey using Microsoft Flow, and using the Send Survey action. This allows you to generate an email sent using an email template you’ve created in Forms Pro. The email comes from a forms pro email address and is only customised to a certain extent. In this post we will look at how to create an invitation link which you can then use in an email you create in Gmail, Outlook or other Flow Connectors with email functionality.

First we have a survey that has some personalisation on it. We are using the First Name, then have two custom parameters. One is to show a case number, and the other to show a case title. These will be used to be populated from a case that is closed in Dynamics 365 Customer Engagement.

We now need to create a Microsoft Flow. The first step is the trigger using the Common Data Services connector, and the When a record is updated option. Set your environment, cases as the entity, and scope as organisation. Our first action step is a condition to check and make sure the Status Reason value of the case is equal to 5, which is Resolved.

If false (No), we do nothing. If true (Yes), we move on to the next action which is another Common Data Service step, to get a record. In this case, we want to get the contact from the case, using the Customer value from the initial trigger step. If you wanted to have a flow that works and checks if the customer is an Account or a Contact, you can view this post.

Our next action step is from the Forms Pro connector. Choose the create an invitation action. From here, we pick which survey we want to send out a link for. Now we can populate the fields we want to pass through to the invitation. You will notice any of the parameters you created on the survey. So we can populate them all with the fields from the Get Contact step. Note that the Regarding and Recipient details values must include the entity name followed by a comma, then the record id.

Now we create the email we want to send. You can see below, it’s got a customised subject using the case number, and the body uses various fields from the Contact or the Case. The previous create invitation step gives us an Invitation link variable. We want to make it a hyper link, so you can add <a href=” first, then add the variable. Then close that with a “>. Next, put the text you want to use as the hyperlink (Complete Feedback Survey) in this example. Finally, put </a> after that.

Here is what the email looks like. The email has the Contact’s first name, the case number and the case title. The link to the survey looks nice and clean and when clicked on opens up the survey in a browser.

Reviewing the survey shows us the Contact first name, case number and case title. Excellent! 🙂

Want to just watch how to do this? Check out the video below:

14 thoughts on “Creating An Invitation To A Forms Pro Survey

  1. Hi Megan,
    Your articles are great. This one in particular provides the “missing link”…passing personalization parameters through to the survey…finally the reason to drop JotForm. Thank you!
    The final challenge, since you’re pulling from Dynamics365 CE/CDS, would be linking the invitation to the case to show the history. Normally, this is done by generating the email in Dynamics365. However – and this is according to Microsoft – using the CDS connector to create a new email record is not possible, even following the normal email workflow rules (creating in “draft”, then updating status to “pending”.)
    Thanks again for your valuable contributions.
    Jim

    1. Hi Jim, thanks for the compliment, glad you are enjoying the articles. So in the example I gave, look at the screenshot that shows the ‘Create an invitation’ step. You will see that there is a Regarding field, and a Recipient details field. You will see that the Regarding has the incident value in there, with the incident being the case. That will then link the survey invite to the case for you.

  2. Hi Megan, great article, and Video. It have been massively helpful thank you:-) I wondered if you had any success linking either the invite or the response to a record in D365. I’m passing through (for example) a case id as per your example above, but the issue as far as i can tell is that the form (and therefore the associated response records) is created in the default environment and not my CRM Environment, therefore when i’m passing a case id, it isnt stored against the regarding of the response, as the case doesnt exist in the default environment. I’ve tried switching in Forms to the CRM environment but it just errors. Have you experienced anything like this?
    Many thanks

    1. Hi Carl, thanks for the compliments! I’m actually working on a blog post for next week that covers this kind of head scratching scenario. Forms Pro gives you the default environment, and then one environment for each Dynamics 365 Customer Engagement environment you have… So a production and a sandbox for example.

      Microsoft Flow will do the same. So if you run your Flow in default it won’t find the case entity as it’s not one of the CDS entities, it’s a D365 CE entity. So make sure your Forms Pro survey and your Flow both exist under the same environment.

      Hope that helps!

  3. Hi Megan,

    Thanks for all your helpful posts about Forms Pro. I was exploring the capabilities of Forms Pro, especially now that MS has made official their plans to deprecate Voice of Customer next year.

    Something that seems to be still missing in Forms Pro is the possibility to create individual invitation links without having the dependency on email address. The flow action “Create an Invitation” requires an email address. And it will will unless this email address value is provided. In some scenarios contact will not necessarily have an email address. With Voice of Customer we can do that.

    Have you also come across this limitation from your end? Have you by any chance been able to find a workaround?

    Thanks in advance.
    Rafael

    1. Hi Rafael, thanks for the compliment and for reading my blogs! It does indicate that the email is not required, but in testing it seems to fail without anything in that field. I am doing some digging and will get back to you once I have more info on this specifically. I can certainly see scenarios of needing to generate an invitation but not for email purposes, such as sending out a text message perhaps. What is your business case for this? I am curious to know so maybe I can factor that in to a future video/blog post to share.

      1. That is right Megan. Even though it does not show as a mandatory field in the flow step, it fails when no email address value is specified.

        The particular use case I am currently working on is for an organization that would like to send surveys printed out in paper via direct mail. 30% of their contact database does not use email so they do not have one, mostly due to their demographic characteristics.

        The objective here is to allow data entry resources to submit the survey responses on behalf of the customer once their paper based survey response, is received. As you said, there are other scenarios where you would want to send the invitation via other channel like for example SMS.

        Having the ability to create individual invitation links associated to a Survey (or survey invite) and Contact using the record ID (GUID) instead of email, sounds much more logical and flexible to me. This is currently available in Voice of the Customer.

        Of course I can build logic in a flow to try and match the response to existing contact based on certain criteria (unique ids) but having the ability to create individual invitations upfront, would be much simpler and a feature many organizations will expect to be available out of the box.

        Thanks again for taking the time.

  4. Hi Megan,

    Thanks for all your helpful posts, I am happy that I found your website, it’s amazing what you are doing and sharing here!

    I have a question and hope that maybe you can help me. regarding the “Get record” step.

    In my case, instead of the customer(item identifier), I have to use another field, that lists multiple contacts as project members. (Please see the screenshot: https://ibb.co/JQ6ZwZJ). There is a small window (on the right side) where you can assign multiple contacts as project team members. I would like to send all of them the survey. However, when I go to the “Get contact” window in Microsoft Flow and want to set the item identifier, I can’t find the “project team members”.

    Would you have any idea how to achieve this?

    Thank you!

    Best,
    Csaba

    1. Hi Csaba, thank you for the comment and kind words. For your scenario, what is the trigger? is it a case being closed, or something different? If it is indeed a case, you would need to add a List step and get all of the Contacts that are linked as Project Members. Then for each Contact returned, you would create an invitation for them and send it out. Have a look at this for the Apply to Each step: https://meganvwalker.com/send-survey-request-to-appointment-required-attendees/

      1. Hi Megan,

        Thank you for your hint with the List step, it was very useful!

        Yes, it is a case and when it is closed it should trigger the survey.

        I just realized that the “project member” is a separate entity, and I am not sure how to build up the bridge between the case and the contact, because, they are not directly related to each other (Please see the screenshot: https://ibb.co/7tzVx3Z ):
        – the case has a window in the bottom right corner, that lists the project members (which is another entity)
        – when I click on the name of a project member a new window opens up. Here we can see the name (lookup field to the contact), the role, and other information.
        – when I click here on the name of the project member, then I am directed to the contact itself.

        As you can see in the screenshot, I tried to create the flow based on your recommendation. However, I have to deal with this “project member” entity between the case and the contact.
        Do I need to have 2x List steps after each other? What do you think?

        I really appreciate your help!
        Thank you!

        Best,
        Csaba

        1. Hi again, your Flow looks like it is almost there. You have your list step to get the Project Members, then you have your Get record step to get the Contact using the Project Member id. That should then give you the Contact you want to send the survey invite to. You would then do your Create Survey Invitation step from Forms Pro. Because you are doing that all within the Apply To Each section, this will do it for each Project Member that was found in the List step. Does that make sense?

          1. Hi Megan,

            Thank you for your reply. Yes, it totally makes sense.
            I tried to run the flow accordingly, however, I got an error message (BadRequest) at the List step:

            {
            “status”: 400,
            “message”: “Syntax error at position 36 in ‘_parentcustomerid_value eq ORD-01379-V0X9Z4’.”,
            “source”: “….crm4.dynamics.com”,
            “errors”: [],
            “debugInfo”: “clientRequestId: ecf3bb64-b81d-4dad-9553-0bbcae8ef734”
            }

            The Filter Query seems to be wrong:
            _parentcustomerid_value eq @{triggerBody()?[‘ordernumber’]}

            Do you have any idea?

            Thank you in advance,
            Csaba

          2. Hi Csaba, hmmm…. not sure how your Parent Customer ID could equal a customer number. What are you trying to achieve with that filter?

          3. Hi Megan,

            In the List Records step, I would like to list the Project members that are connected to the particular project(case).
            However, I am not sure how to formulate the filter query correctly. Somehow I need to tell the system not to list all project members from the entire database, but only those who are connected to that particular case, (the case that triggered the flow). Does it make sense?

            Thank you,
            Csaba

Leave a Reply

Your email address will not be published. Required fields are marked *