Send reminders using Acrobat Sign for Microsoft Dynamics 365 and Marketo

Learn how to send an email reminder when an agreement remains unsigned after a period of time. This integration uses Acrobat Sign, Acrobat Sign for Microsoft Dynamics, Marketo, and the Marketo Microsoft Dynamics Sync.


  1. Install the Marketo Microsoft Dynamics Sync.

    Information and the latest plugin for Microsoft Dynamics Sync is available here.

  2. Install Acrobat Sign for Microsoft Dynamics.

    Information about this plugin is available here.

Find the custom object

Once the Marketo Microsoft Dynamics Sync and Acrobat Sign for Dynamics configurations are complete, two new options appear in the Marketo Admin Terminal.


  1. Click Dynamics Entities Sync.

    Sync must be disabled before syncing custom entities. Click Sync Schema if this is your first time. Otherwise, click Refresh Schema.


Sync the custom object

  1. On the right side, locate Lead, Contact, and Account-based custom objects.

    • Enable Sync for the objects under Lead if you want to send a reminder when a Lead has not signed an agreement in Dynamics.

    • Enable Sync for the objects under Contact if you want to send a reminder when a Contact has not signed an agreement in Dynamics.

    • Enable Sync for the objects under Account if you want to send a reminder when an Account has not signed an agreement in Dynamics.

    • Enable Sync for the agreement object under the desired Parent (Lead, Contact, or Account).

    Custom Objects

  2. In the new window, select the properties you want under Agreement, then enable the boxes under Constraint and Trigger to expose them to your Marketing Activities.

    Custom Sync 1

    Custom Sync 2

  3. Reactivate the sync after enabling sync on the custom objects.

    Go back to the Admin Terminal, click Microsoft Dynamics, then click on Enable Sync.

    Microsoft Dynamics

    Enable Global

Create the program and token

  1. In the Marketing Activities section of Marketo, right-click on Marketing Activities on the left bar.

    Select New Campaign Folder, and give it a name.

    New Folder

  2. Right-click on the created folder, select New Program, and give it a name.

    Leave everything else as default, then click Create.

    New Program 1

    New Program 2

  3. Click on My Tokens, then drag Email Script over to the canvas.

    Email Script

  4. Give it a name, then click on Click to Edit.

    Name and Edit

  5. Expand Custom Objects on the right-hand side, then expand the Agreement object.

    Find and drag Name, Agreement Status, Sent on, and Current Signer Url onto the canvas.

  6. Write a Velocity script using these tokens to display the agreement URL of an agreement that goes unsigned for a week. Here is an example that compares the current date to Sent On:

    code language-none
    #foreach($agreement in $adobe_agreementList)
        #if($agreement.adobe_esagreementstatus == "Out for Signature")
            #set($todayCalObj = $date.toCalendar($date.toDate("yyyy-MM-dd",$date.get('yyyy-MM-dd'))) )
            #set($dateSentCalObj = $date.toCalendar($date.toDate("yyyy-MM-dd",$agreement.adobe_datesent)) )
            #set($dateDiff = ($todayCalObj.getTimeInMillis() - $dateSentCalObj.getTimeInMillis()) / 86400000 )
            #if($dateDiff >= 7)
                #set($agreementName = $agreement.adobe_name)
                #set($agreementURL = $agreement.adobe_currentsignerurl.substring(8))
        <a href="https://${agreementURL}">${agreementName}</a>
        Please contact us.
  7. Click Save.

Create the reminder and add personalization

Examples of personalization include: the name of the signer, the name of the agreement, a link to the agreement, etc.

  1. Right-click on the program you created and click New Local Asset, then select Email.

    New Email

  2. In the new tab, enter a Name and Description for the email and select a template from the template picker.

    Template Picker

  3. Click Create.

  4. Set the From Name and From Address.

    Reminder Email

  5. Click on the message body to activate the Editor.

    Click on the Insert Token button, find the custom Agreement URL token you created, then click Insert. Finish customizing your email, and click Save.

    Insert Token

  6. Preview using a profile that has an agreement assigned to it.

    You should see a link to the URL with the Agreement Name as the label.

    Email Link

Set up the Smart Campaign Filter

  1. Right-click on the program you created, then click New Smart Campaign.

    Smart Campaign 1

  2. Give it a name of your choosing, then click Create.

    Smart Campaign 2

  3. Search for, then click and drag Has Agreement to the Smart List.

    Has Agreement

    The fields you exposed to the trigger should be available in Add Constraint.

  4. Select Agreement Status and any other fields you wish to filter by.

    For each field added, define the values to filter by. In this case, it only triggers when the Agreement Status is Out for Signature and Sent On is in past before 1 week.

    Agreement Status

    note note
    Add a unique identifier to the constraints, like Name, if you want this campaign to only run for certain agreements.
  5. Confirm the campaign audience and see who will qualify in the Schedule tab.


Set up the Smart Campaign Flow

Because the campaign filter Days Until Expires was used, you can use a scheduled recurrence for the campaign.

  1. Click the Flow tab in the Smart Campaign.

    Search for and drag the Send Email flow onto the canvas and select the reminder email you created in the previous section.

    Send Email

  2. Click the Schedule tab in the Smart Campaign. Ensure that the campaign flow is limited to only run once per person in the Smart Campaign Settings. Then, click on the Schedule Recurrence tab.

    Schedule Tab

  3. Set the Schedule to Daily. Choose a start day and time and end date for the campaign if necessary.

    Schedule Settings

This tutorial is part of the course Accelerate sales cycles with Acrobat Sign for Microsoft Dynamics and Marketo that is available for free on Experience League!