Conditional Recipients

Advanced Recipient Routing

DocuSign offers two different ways to control your workflows, either by pausing the workflow or by allowing you to automatically have your envelope recipients chosen based on criteria specified in the envelope. For example, if you have a sales contract that needs to route to a certain team based on the amount being purchased, you can have Advanced Recipient Routing logic set up to check for the amount and route to the correct recipient based on the amount being purchased. This enables you to create complex workflows where the next recipient is determined based on data in the envelope that needs to be filled in by an earlier signer.

In this code example, I’ll be showing you specifically how to use the conditional recipient feature. The scenario that I’m showing is where, depending on the radio button selected by the initial signer, the envelope then routes to either a boat sales team or a car sales team. If you would like to use this example, you’ll need to add your own Base64 document to the call. In my example, I’m just placing the two radio buttons near the top-left corner of the first document by defining the x and y axis for both buttons—you can customize this in your code if you wish by updating the axis or changing the tabs to look for anchor strings.

Code example

{
    "status": "sent",
    "documents": [
        {
            "documentId": "1",
            "name": "TestDocument.docx",
            "fileExtension": "docx",
            "documentBase64": "base64 document"
        }
    ],
    "recipients": {
        "signers": [
            {
                "name": "John Doe",
                "email": "john.doe@example.com",
                "recipientId": "1",
                "tabs": {
                    "signHereTabs": [
                        {
                            "xPosition": "25",
                            "yPosition": "50",
                            "documentId": "1",
                            "pageNumber": "1"
                        }
                    ],
                    "radioGroupTabs": [
                        {
                            "tabLabel": "Sales Radio Group",
                            "groupName": "Sales Radio",
                            "recipientId": "1",
                            "documentId": "1",
                            "radios": [
                                {
                                    "tabLabel": "Sales Radio Group",
                                    "groupName": "Sales Radio",
                                    "required": true,
                                    "selected": false,
                                    "value": "Boat",
                                    "recipientId": "1",
                                    "pageNumber": 1,
                                    "documentId": "1",
                                    "xPosition": 50,
                                    "yPosition": 125
                                },
                                {
                                    "tabLabel": "Sales Radio Group",
                                    "groupName": "Sales Radio",
                                    "required": true,
                                    "selected": false,
                                    "value": "Car",
                                    "recipientId": "1",
                                    "pageNumber": 1,
                                    "documentId": "1",
                                    "xPosition": 75,
                                    "yPosition": 125
                                }
                            ]
                        }
                    ]
                }
            },
            {
                "name": "Sales Department",
                "email": "placeholder@placeholder.com",
                "roleName": "Sales Department",
                "routingOrder": 2,
                "deliveryMethod": "email",
                "recipientId": "2"
            }
        ]
    },
    "workflow": {
        "workflowSteps": [
            {
                "action": "pause_before",
                "triggerOnItem": "routing_order",
                "itemId": 2,
                "status": "pending",
                "recipientRouting": {
                    "rules": {
                        "conditionalRecipients": [
                            {
                                "recipientId": "2",
                                "recipientGroup": {
                                    "groupName": "Sales Department",
                                    "recipientId": "2",
                                    "routingOrder": 2,
                                    "recipients": [
                                        {
                                            "recipientId": "2",
                                            "name": "Boat Salesman",
                                            "email": "boat.sales@example.com",
                                            "roleName": "Boat Sales",
                                            "recipientLabel": "Boat_Salesman"
                                        },
                                        {
                                            "recipientId": "2",
                                            "name": "Car Salesman",
                                            "email": "car.sales@example.com",
                                            "roleName": "Car Sales",
                                            "recipientLabel": "Car_Salesman"
                                        }
                                    ]
                                },
                                "conditions": [
                                    {
                                        "order": "1",
                                        "recipientLabel": "Boat_Salesman",
                                        "filters": [
                                            {
                                                "scope": "tabs",
                                                "tabLabel": "Sales Radio",
                                                "recipientId": "1",
                                                "tabType": "RadioGroup",
                                                "operator": "Equals",
                                                "value": "Boat"
                                            }
                                        ]
                                    },
                                    {
                                        "order": "2",
                                        "recipientLabel": "Car_Salesman",
                                        "filters": [
                                            {
                                                "scope": "tabs",
                                                "tabLabel": "Sales Radio",
                                                "recipientId": "1",
                                                "tabType": "RadioGroup",
                                                "operator": "Equals",
                                                "value": "Car"
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    }
                }
            }
        ]
    }
}

Obtaining the feature

If you would like to obtain access to Advanced Recipient Routing on your account, please reach out to the DocuSign support team or your account manager and request access, there’s no cost to use this feature on a development account.

Additional resources

Jonathon Sammons
Author
Jonathan Sammons
Developer Support Engineer
Published