您可以在DocuSign中存储特定信封类型的电子邮件主题/正文吗?

时间:2017-12-13 15:34:47

标签: docusignapi

每种信封类型都有自己的电子邮件主题/正文,对于该信封类型是静态的。以下是一些预定信封类型的示例:

  • 按揭结算文件
  • 抵押贷款申请文件

这些信封将包含不同数量的文件,每个文件都是唯一的。我试图在没有文档的情况下创建模板,但似乎不允许这样做。

我希望能够保存这些信封类型的电子邮件正文和主题,这样当我通过DocuSign API发送信封时,我不必直接指定这些字段。我希望避免将主题/正文存储在代码或配置文件中。最好是,我希望非技术人员能够通过DocuSign界面更改主题/正文。

我最终做了什么:

根据Kim Brandl的建议,我编写了以下代码,该代码按预期工作。几点说明:

  1. 如果ServerTemplate序列大于InlineTemplate,则添加到模板的初始文件 not 将出现在最终信封中。您可以阅读更多here
  2. 收件人,签名者,文档等遵循与标准EnvelopeDefinition相同的模式,但数据放在InlineTemplate下。

    string docBase64 = Convert.ToBase64String(file.Stream.ReadAsBytes());
    EnvelopeDefinition envDef = New EnvelopeDefinition();
    envDef.Status = "created";
    
    // The first sequence that appears will be the first document that is applied.
    // If you want the uploaded documents to appear instead of the server template,
    // make the server template a higher number.
    envDef.CompositeTemplates = new List<CompositeTemplate>
    {
        new CompositeTemplate()
        {
            ServerTemplates = new List<ServerTemplate>()
            {
                new ServerTemplate("2", templateId)
            },
            InlineTemplates = new List<InlineTemplate>()
            {
                new InlineTemplate()
                {
                    Sequence = "1",
                    Recipients = new Recipients()
                    {
                        Signers = new List<Signer>()
                        {
                            new Signer()
                            {
                                Email = request.Recipients[0].UserEmail,
                                Name = request.Recipients[0].UserName,
                                RoleName = request.Recipients[0].RoleName,
                                RecipientId = (1).ToString() 
                            }
                        }
                    },
                    Documents = new List<Document>()
                    {
                        new Document()
                        {
    
                            DocumentBase64 = docBase64,
                            DocumentId = "3",
                            Name = "ConsentFake.pdf",
                            IncludeInDownload = "true"
                        },
                        new Document
                        {
                            DocumentBase64 = docBase64,
                            DocumentId = "9",
                            Name = "ConsentFake2.pdf",
                            IncludeInDownload = "true"
                        }
                    }
                }
            }
        }
    };
    
  3. 摘要:这使我能够利用DocuSign模板的电子邮件主题/正文,而无需使用特定的模板文档。

1 个答案:

答案 0 :(得分:1)

您可以通过执行以下操作为您描述的方案实施解决方案:

  1. 使用DocuSign网页界面create a Template查看每种“信封类型”,并在您创建的每个模板中指定电子邮件主题和正文。您还需要将文档上载到模板(DocuSign要求您在保存模板之前至少添加一个文档) - 但您可以添加任何占位符文档(例如,包含单词占位符的.txt文件)文件的)。您添加到模板的文档实际上不会在您从模板创建的信封中使用 - 因为您将使用API​​在运行时指定文档。 (非技术人员将能够在将来的任何时候使用DocuSign Web UI修改/更新每个模板中的电子邮件信息。)

  2. 通过API发送信封时,请使用“创建信封”API请求中的compositeTemplates结构。通过使用compositeTemplates结构,您可以指定要使用的serverTemplate(将拉入您在该模板中定义的电子邮件主题和电子邮件正文),使用inlineTemplate对象指定收件人和标签信息,并使用指定文档信息document对象。

  3. (Stack Overflow上有很多关于如何在创建信封请求中使用compositeTemplates的信息。如果您无法正确/正常地使用该请求结构,请发布一个单独的问题。)