Docusignapi 使用复合模板创建DocuSign信封时,避免多次重复收件人信息

Docusignapi 使用复合模板创建DocuSign信封时,避免多次重复收件人信息,docusignapi,Docusignapi,我正在使用复合模板,因为我需要在信封中包含多个模板。在所有模板中,签名角色都是相同的。我有以下角色和签署订单 当我创建信封时,我还需要为每个角色提供自定义电子邮件主题和正文 这里是我的请求json使用复合模板创建信封。故意将第二个复合模板部分留空,这样它就不会太大 { "status": "created", "compositeTemplates": [ { "serverTemplates": [ {

我正在使用复合模板,因为我需要在信封中包含多个模板。在所有模板中,签名角色都是相同的。我有以下角色和签署订单

当我创建信封时,我还需要为每个角色提供自定义电子邮件主题和正文

这里是我的请求json使用复合模板创建信封。故意将第二个复合模板部分留空,这样它就不会太大

{
    "status": "created",
    "compositeTemplates": [
        {
            "serverTemplates": [
                {
                    "sequence": "1",
                    "templateId": "de231abb-4566-4433-8c10-6fae41d5f36e"
                }
            ],
            "inlineTemplates": [
                {
                    "envelope": {
                        "customFields": {
                            "textCustomFields": [
                                {
                                    "name": "policy",
                                    "value": "12345"
                                }
                            ]
                        }
                    },
                    "sequence": "1",
                    "recipients": {
                        "carbonCopies": [
                            {
                                "recipientId": "1",
                                "email": "email2@domain.com",
                                "name": "Supervisor Name",
                                "roleName": "Supervisor",
                                "routingOrder": "2",
                                "emailNotification": {
                                    "supportedLanguage": "en",
                                    "emailSubject": "Custom email subject for supervisor",
                                    "emailBody": "Custom email body for supervisor"
                                }
                            },
                            {
                                "recipientId": "2",
                                "email": "email1@domain.com",
                                "name": "Admin Name",
                                "roleName": "Admin",
                                "routingOrder": "4",
                                "emailNotification": {
                                    "supportedLanguage": "en",
                                    "emailSubject": "Custom email subject for admin",
                                    "emailBody": "Custom email body for admin"
                                }
                            }
                        ],
                        "signers": [
                            {
                                "recipientId": "3",
                                "email": "email3@domain.com",
                                "name": "Data entry person Name",
                                "roleName": "DataEntry",
                                "routingOrder": "1",
                                "emailNotification": {
                                    "supportedLanguage": "en",
                                    "emailSubject": "Custom email subject for data entry person",
                                    "emailBody": "Custom email body for data entry person"
                                },
                                "tabs": {
                                    "textTabs": [
                                        {
                                            "tabLabel": "field name",
                                            "value": "field value"
                                        }
                                    ]
                                }
                            },
                            {
                                "recipientId": "4",
                                "email": "email4@domain.com",
                                "name": "client Name",
                                "roleName": "Client",
                                "routingOrder": "3",
                                "emailNotification": {
                                    "supportedLanguage": "en",
                                    "emailSubject": "Custom email subject for the client",
                                    "emailBody": "Custom email body for the client"
                                },
                                "tabs": {
                                    "textTabs": [
                                        {
                                            "tabLabel": "other field name",
                                            "value": "other value"
                                        },
                                        {
                                            "tabLabel": "other2 field name",
                                            "value": "other2 value"
                                        }
                                    ]
                                }
                            }
                        ]
                    }
                }
            ]
        },
        {
            "serverTemplates": [
                {
                    "sequence": "1",
                    "templateId": "de231abb-4566-4433-8c10-6fae41d5f36e"
                }
            ],
            "inlineTemplates": [
                {
                    .
                    - repeat same recipient information again
                    .
                }
            ]
        }
    ]
}
当我准备信封创建请求json时,我必须为需要包含的每个模板创建一个CompositeTemplate。在compositeTemplates[x]/inlineTemplates[0]/recipients中,我为所有4个收件人指定了信息(姓名、电子邮件、角色名称、路由顺序、电子邮件主题、电子邮件正文和选项卡,如果适用)。我必须重复相同的compositeTemplates[x]/inlineTemplates[0]/收件人,因为在CompositeTemplate中有重复的信息(姓名、电子邮件、角色名称、路由顺序、电子邮件主题、电子邮件正文),这听起来对我不合适

问题#1-你知道有没有办法在一个地方提供收件人,而不是在每个复合模板下复制

我的下一个问题是从不同的角度证明收件人和选项卡信息。在inlineTemplates下的复合模板中,我必须使用它来指定收件人及其选项卡。在这种情况下,我需要知道每个收件人/角色的签名权限,因为我需要将它们放在signers、corbonCopy等项下。如果信封使用单个模板,我可以轻松地使用EnvelopeDefinition,仅按角色指定收件人及其选项卡信息。我不需要知道角色的签名权限

问题2–是否有办法在CompositeTemplate中按角色指定收件人信息,而不必像我们使用单模板信封那样知道签名权限?

答案1

我不这样认为。如果这个工作流是常见的,您可以考虑创建包含前两个模板的文档和选项卡的第三个模板。p> 然后,您可以发送一个只包含第三个模板的信封。在这种情况下,您只需指定收件人的信息一次

然而,我们通常建议使用复合模板模式,因为当您的用例在将来发生变化时,它更容易定制和扩展

回答#2

不可以。您正在混合两种不同的DocuSign设计模式,即不应混合使用复合模板和TemplateRole

如果您有一个服务器模板,并且希望从应用程序中预填充签名者信息和/或模板中存在的任何DocuSign选项卡信息,则需要模板角色


您可以做的(我相信您已经意识到)是在制作包含复合模板的
邮件/信封之前,使用
GET/template
检索模板的签名权限

回答如下。如果有帮助,一定要投票并接受。星期五快乐谢谢你的回答。我必须说DocuSign团队在stackoverflow上非常活跃。我同意你的答案#1,我将使用重复收件人信息的复合模板。关于答案#2,感谢您提出阅读模板的想法。一旦我读了,我就有了所有我需要的信息——收件人、角色、标签等等。很乐意帮助!请务必也接受答案。如果我们能帮忙,请告诉我们further@MatthewRoknich--请原谅我在这里插话:你是说如果我需要在DocuSign服务器上的模板上预先填充选项卡信息,我必须使用模板角色?但是如果我使用的是复合模板,我不能使用模板角色?我使用Composite是为了使用具有特定签名者信息的不同文档,但我需要在模板上预先填充一些选项卡。我应该用什么?如果你想让我开始一个新问题,我会的。谢谢对的模板角色特定于模板对象模型。如果选择复合对象模型,则只需在inlineTemplates属性中指定选项卡。如果你被卡住了,问一个新问题,我将提供一些例子。我最初在InlineTemplate中使用收件人选项卡,但单选按钮上出现发送错误。我最终发现我使用的文档被编辑器破坏了,同一锚文本的多个实例相互堆叠。一旦修好了,一切都正常了。谢谢