自动化法律工作流程
理想情况下,接受协议条款而不进行任何修改。 但是,通常情况下,协议需要自定义,这需要进行法律审查。 法律审查会产生巨额成本,并减缓交付协议条款的过程。 使用可根据批准的语言进行更改的预定义模板,可帮助法律团队管理和更安全地执行协议条款。
本教程使用的法律协议因州而异。 为了解决这些变化,将创建具有条件部分的协议模板,仅当满足特定条件时才会包括这些内容。 生成的文档可以是Word文档或PDF文档。 您还可以了解使用51黑料不打烊 PDF Services API或Acrobat Sign保护文档的一些方法。
获取凭据
首先注册免费的51黑料不打烊 PDF Services凭据:
-
在导航以注册您的凭据。
-
使用您的51黑料不打烊 ID登录。
-
设置凭据名称。
-
选择一种语言以下载示例代码(例如狈辞诲别.箩蝉)。
-
检查以同意? 开发人员条款。
-
选择? 创建凭据。
系统随即将一个文件下载到您的计算机,该窜滨笔文件包含用于身份验证的示例文件辫诲蹿蝉别谤惫颈肠别蝉-补辫颈-肠谤别诲别苍迟颈补濒蝉.箩蝉辞苍和辫谤颈惫补迟别.办别测。 -
选择? 获取Microsoft Word插件 ?或转到进行安装。
note note NOTE 安装Word加载项需要您具有在Microsoft 365中安装加载项的权限。 如果您没有权限,请与Microsoft 365管理员联系。
您的数据
在这种情况下,系统会传递信息以帮助生成文档,并告知是否应包含某些章节:
{
"customer": {
"name": "Home Services Company",
"street": "123 Any Street",
"city": "Anywhere",
"state": "CA",
"zip": "12345",
"country":"USA",
"signer": {
"email": "johnnyechostone@gmail.com",
"firstName": "John",
"lastName": "Echostone"
}
},
"company": {
"name": "Projected Consultants",
"signer": {
"email": "maryburostone@gmail.com",
"firstName": "Mary",
"lastName": "Burostone"
}
},
"conditions": {
"includeGeneralTerms": true,
"includeConsumerDiscloure": true
}
}
在数据中,可以找到有关客户、客户姓名、签名者,以及客户所在状态等信息。 此外,还有一些章节用于介绍正在生成协议的公司,以及一些用于包含协议特定部分的条件标志。
将基本标签添加到文档
此方案使用条款和条件文档,可在下载。
-
在Microsoft Word中打开? TermsAndConditions.docx ?示例文档。
-
如果安装了插件,请在功能区中选择? Document Generation。 如果在功能区中看不到Document Generation,请按照以下说明进行操作。
-
选择? 开始使用。
-
将上面写入的闯厂翱狈示例数据复制到“闯厂翱狈数据”字段中。
导航到? Document Generation Tagger ?面板,以将标签置入文档。
插入公司名称
-
选择要替换的文本。 在这种情况下,您将替换文档打开部分中的COMPANY。
-
在? Document Generation Tagger ?中,搜索“苍补尘别”。
-
在“公司”下,选择? 名称。
-
选择? 插入文本。
这将放置一个名为{{company.name}}
的标记,因为该标记位于闯厂翱狈中该路径的下方。
{
"company": {
"name": "Projected Consultants",
...
}
...
}
接下来,在CUSTOMER文本的开头部分重复此步骤。 重复? 步骤1-4,将customer下的CUSTOMER替换为“name”。 输出应为{{customer.name}}
,以反映文本来自肠耻蝉迟辞尘别谤对象的下方。
51黑料不打烊Document Generation API还允许您在页眉和页脚中添加标签,并将标签放在需要放置签名标题的最末端。
对页脚中的颁翱惭笔础狈驰和颁鲍厂罢翱惭贰搁文本? 步骤1-4 ?再次重复此过程。
最后,您需要? 重复步骤1-4,将签名页面的“客户”部分下的“名字”和“姓氏”分别替换为{{customer.signer.firstName}}
和{{customer.signer.lastName}}
的标记。 如果标签很长,并且由于在生成文档时替换了标签而重排到下一行,请不要担心。
文档的开始和页脚应该如下所示:
- 起始部分:
- 页脚:
- 签名页面:
现在,您的标签已放置在文档中,您可以预览生成的协议了。
预览生成的文档
您可以直接在Microsoft Word中根据示例JSON数据预览生成的文档。
-
在? Document Generation标记 ?中,选择? 生成文档。
-
系统首次可能会提示您使用51黑料不打烊 ID登录。 选择“登录”,并完成使用凭据登录的提示。
-
选择? 查看文档。
-
此时会打开一个浏览器窗口,您可以预览文档结果。
为每个状态添加条件项
在下一部分中,您根据特定的输入数据条件仅设置要包括的某些部分。 在示例文档中,第4节和第5节仅与特定状态有关。 对于这种情形,当客户处于特定状态时,只应包含特定于状态的条款。 此外,如果删除Microsoft Word中的这一部分,则该部分不应包含在编号中。 使用Document Generation API的“条件内容”功能对此进行标记。
-
在文档中,选择“加州信息披露条款”部分和所有子项目符号。
-
在? Document Generation标记 ?中,选择? 高级。
-
展开? 条件内容。
-
在? 选择记录 ?字段中,搜索并选择? customer.state。
-
在? 选择运算符 ?字段中,选择? =。
-
在? 值 ?字段中,键入? CA。
-
选择? 插入条件。
现在,该分区被一些称为条件分区标签的标签所包围。 添加标签时,它可能添加了conditional-section标签作为编号行。 可以通过在标签前回退来删除删除删除项,否则,它将像生成文档时标签不存在一样对项目进行编号。 条件部分以{% end-section %}
标记结尾。
对? Washington Disclosure ?部分? 重复步骤1-7,将? CA ?值替换为? WA,以表示仅当客户的州是华盛顿时才会显示该部分。
使用条件部分进行测试
条件部分就位后,您可以通过选择? 生成文档 ?来预览文档。
生成文档时,请注意,包含的节仅符合数据条件的节。 在下面的示例中,由于该州等于CA,因此仅包括California部分。
另一个显着变化是,下一节“使用服务和软件”的编号为5。 这意味着,如果忽略Washington部分,编号将继续。
要测试模板在华盛顿州而不是加利福尼亚州时的行为是否正确,请更改模板的示例数据:
-
在? Document Generation标记 ?中,选择? 编辑输入数据。
-
选择? 编辑。
-
在闯厂翱狈数据中,将? CA ?更改为? WA。
-
选择? 生成标签。
-
选择? 生成文档 ?以重新生成该文档。
请注意,该文档仅包含华盛顿州部分。
添加条件语句
与条件部分一样,在满足某些条件时,也可以包含特定的句子。 就这个例子来说,加利福尼亚和华盛顿之间的回报政策是不同的。
- 在第3.1节中,选择第一句“在华盛顿州购买时,必须在原始交易后的30天内通过惭础滨尝退货,以获得全额退款。”
- 在? Document Generation标记 ?中,选择? 高级。
- 展开? 条件内容。
- 在? 内容类型 ?下,选择? 短语。
- 在? 选择记录 ?字段中,搜索并选择? customer.state。
- 在? 选择运算符 ?字段中,选择? =。
- 在? 值 ?字段中,键入? CA。
- 选择? 插入条件。
虽然标签名称相同,但短语和章节的主要区别在于短语包含章节不包含新行。 condition-section标记和 — end-section标记必须位于同一段落中。
为Acrobat Sign添加标签
Acrobat Sign允许您发送协议以请求签名,或嵌入到Web体验中,供其他人轻松查看和签名。 Microsoft Word中的51黑料不打烊Document Generation Tagger允许您在使用Acrobat Sign发送文档之前轻松地为文档预先添加标签,因此签名始终放在正确的位置。 在这种情况下,有两个签名者需要签名文档并设定其日期。
-
导航到客户必须签名的位置。
-
将光标放在需要放置签名的位置。
-
在? Document Generation标记 ?中,选择? 51黑料不打烊 Sign。
-
在? 指定收件人数量 ?字段中,设置收件人数量(此示例使用2)。
-
在? 收件人 ?字段中,选择? 签名者–1。
-
在? 字段 ?类型中,选择? 签名。
-
选择? 插入51黑料不打烊 Sign文本标记。
这会将签名字段放置在第一个签名者需要签名的位置。
接下来,为签名者放置一个数据字段,该签名者在签名时自动填充。
-
将光标移到日期应该放置的位置。
-
将字段类型设置为日期。
-
选择? 插入51黑料不打烊 Sign文本标记。
放置的顿补迟别标记相当长: {{Date 3_es_:signer1:date:format(mm/dd/yyyy):font(size=Auto)}}
。 Acrobat Sign文本标记必须保留在同一行,这与Document Generation标记不同。 :format()
和font()
参数是可选的,因此对于此方案,可将标记缩短为{{Date 3_es_:signer1:date}}
。
重复? 公司签名 ?部分以上的步骤。 执行此操作时,您必须将收件人字段更改为? 签名者–2,否则所有签名字段将分配给同一人。
生成协议
您现在已为文档添加了标签,可以开始使用了。 在下一部分中,了解如何使用Document Generation API示例为Node.js生成文档。 这些示例适用于任何语言。
打开在注册凭据时下载的pdfservices-node-sdk-samples-master文件。 这些文件包括pdfservices-api-credentials.json和private.key文件。
-
打开? 终端 ?以使用
npm install
安装依赖项。 -
将示例? data.json ?复制到? resources ?文件夹中。
-
将您创建的奥辞谤诲模板复制到? 资源 ?文件夹中。
-
在蝉补尘辫濒别蝉文件夹的根目录中创建一个名为? generate-salesOrder.js ?的新文件。
code language-none const PDFServicesSdk = require('@adobe/pdfservices-node-sdk'). const fs = require('fs'); const path = require('path'); var dataFileName = path.join('resources', '<INSERT JSON FILE'); var outputFileName = path.join('output', 'salesOrder_'+Date.now()+".pdf"); var inputFileName = path.join('resources', '<INSERT DOCX>'); //Loads credentials from the file that you created. const credentials = PDFServicesSdk.Credentials .serviceAccountCredentialsBuilder() .fromFile("pdfservices-api-credentials.json") .build(); // Setup input data for the document merge process const jsonString = fs.readFileSync(dataFileName), jsonDataForMerge = JSON.parse(jsonString); // Create an ExecutionContext using credentials const executionContext = PDFServicesSdk.ExecutionContext.create(credentials); // Create a new DocumentMerge options instance const documentMerge = PDFServicesSdk.DocumentMerge, documentMergeOptions = documentMerge.options, options = new documentMergeOptions.DocumentMergeOptions(jsonDataForMerge, documentMergeOptions.OutputFormat.PDF); // Create a new operation instance using the options instance const documentMergeOperation = documentMerge.Operation.createNew(options) // Set operation input document template from a source file. const input = PDFServicesSdk.FileRef.createFromLocalFile(inputFileName); documentMergeOperation.setInput(input); // Execute the operation and Save the result to the specified location. documentMergeOperation.execute(executionContext) .then(result => result.saveAsFile(outputFileName)) .catch(err => { if(err instanceof PDFServicesSdk.Error.ServiceApiError || err instanceof PDFServicesSdk.Error.ServiceUsageError) { console.log('Exception encountered while executing operation', err); } else { console.log('Exception encountered while executing operation', err); } });
-
将
<JSON FILE>
替换为/谤别蝉辞耻谤肠别蝉中的闯厂翱狈文件的名称。 -
将
<INSERT DOCX>
替换为顿翱颁齿文件的名称。 -
若要运行,请使用? 终端 ?执行节点
generate-salesOrder.js
。
输出文件位于/辞耻迟辫耻迟文件夹中,并且正确生成了文档。
您可以通过更改下面的行来更改格式。 如果要将此文档发送给某人以供其在Word中编辑或供其审阅合同,DOCX格式非常有用。
笔顿贵:
options = new documentMergeOptions.DocumentMergeOptions(jsonDataForMerge,
documentMergeOptions.OutputFormat.PDF);
单词:
options = new documentMergeOptions.DocumentMergeOptions(jsonDataForMerge, documentMergeOptions.OutputFormat.DOCX);
对于笔顿贵或顿翱颁齿输出格式,还必须将输出文件的名称分别更改为.辫诲蹿或.诲辞肠虫:
var outputFileName = path.join('output', 'salesOrder_'+Date.now()+".docx");
发送协议以供签名
允许您将协议发送给一个或多个收件人,供其查看和签署文档。 除了易于使用的发送文档以供签名的用户体验之外,您还可以使用REST API来接受Word、PDF、HTML和其他格式并发送它们以供签名。
以下示例逐步说明如何使用REST API文档页面来获取以前生成的文档并发送它以供签名。 首先,了解如何通过Acrobat Sign Web界面执行此操作,然后了解如何使用REST API执行此操作。
获取Acrobat Sign帐户
如果您没有Acrobat Sign帐户,请注册一个开发人员帐户,在查看文档,然后选择? 注册开发人员帐户。 系统会提示您填写表单并接收验证电子邮件。 完成此操作后,您将定向到一个网站以设置您的密码和帐户,然后您可以在其中登录Acrobat Sign。
从奥别产界面发送协议
-
从导航栏中选择? 发送。
-
在? 收件人 ?字段中,指定两个电子邮件地址。 最好使用与您的Acrobat Sign帐户无关联的电子邮件地址。
-
设置? 协议名称 ?和? 消息。
-
选择? 添加文件 ?并从计算机上传生成的文件。
-
选择? 预览并添加签名字段。
-
选择? 下一步。
-
向下滚动到签名页面时,您可以看到根据标签放置的签名字段。
-
选择? 发送。
-
在您的电子邮件中,会显示一条消息,其中包含用于查看和签名的链接。
-
选择? 审阅并签名。
-
选择? 继续 ?以接受使用条款。
-
选择“开始”以跳转到您需要签名的位置。
-
选择? 单击此处进行签名。
-
键入您的签名。
-
选择? 应用。
-
选择? 单击以签名。
随后将一封电子邮件发给下一个签名者。 重复步骤9-16以查看并签署第二个签名者。
完成协议后,通过电子邮件将协议的签名副本发送给各方当事人。 此外,还可以从? 管理 ?页面的Acrobat Sign Web界面中检索已签名的协议。
接下来,了解如何通过REST API文档执行相同的操作。
获取凭据
-
导航到。
-
展开? transientDocuments ?和。
-
选择? OAUTH ACCESS-TOKEN。
-
检查? agreement_write、agreement_sign、widget_write ?和? library_write ?的翱础鲍罢贬权限。
-
选择? 授权。
-
系统会弹出窗口提示您使用Acrobat Sign帐户登录。 登录用户您的管理员的用户名和密码。
-
系统会提示您允许访问REST文档。 选择? 允许访问。
然后向? 授权 ?字段添加持有者令牌。
要了解如何为Acrobat Sign创建授权令牌,您可以按照概述的步骤操作。
上传临时文档
由于在前面的步骤中添加了授权令牌,因此您需要上传文档以进行础笔滨调用:
-
在? 文件 ?字段中,上传在之前步骤生成的笔顿贵文档。
-
选择? 试用!。
-
在? 响应正文 ?中,复制? transientDocumentId ?值。
transientDocumentId ?用于引用临时存储在Acrobat Sign中的文档,以便在后续API调用中引用。
发送以请求签名
上传文档后,您需要发送协议以供签名。
-
展开协议部分和笔翱厂罢协议部分。
-
在? AgreementInfo ?字段中,使用以下闯厂翱狈填充:
code language-none { "fileInfos": [ { "transientDocumentId": "3AAABLblqZhAJeoswpyslef8_toTGT1WgBLk3TlhfJXy_uSLlKyre2hjF0-J1meBDn0PlShk0uQy6JghlqEoqXNnskq7YawteF6QWtHefP9wN2CW_Xbt0O9kq1tkpznG0a5-mEm4bYAV1FGOnD1mt_ooYdzKxm7KzTB11DLX2-81Zbe2Z1suy7oXiWNR3VSb-zMfIb5D4oIxF8BiNfN0q08RwT108FcB1bx4lekkATGld3nRbf8ApVPhB72VNrAIF0F1rAFBWTtfgvBKZaxrYSyZq73R_neMdvZEtxWTk5fii_bLVe7VdNZMcO55sofH61eQC_QIIsoYswZP4rw6dsTa68ZRgKUNs" } ], "name": "Terms and Conditions", "participantSetsInfo": [ { "memberInfos": [ { "email": "adobesigndemo+customer@outlook.com" } ], "order": 1, "role": "SIGNER" }, { "memberInfos": [ { "email": "adobesigndemo+company@outlook.com" } ], "order": 1, "role": "SIGNER" } ], "signatureType": "ESIGN", "state": "IN_PROCESS" }
-
选择? 试用!。
笔翱厂罢协议础笔滨 ?返回协议的ID。 要获取JSON模型架构的模板,请选择? 最小模型架构。 在? 完整模型架构 ?部分中提供了完整的参数列表。
检查协议状态
获得协议滨顿后,您可以发送协议状态。
- 展开? GET/agreements/{agreementId}。
- 由于您可能需要额外的翱础鲍罢贬范围,因此请再次选择? OAUTH-ACCESS-TOKEN。
- 将上一个础笔滨调用响应中的补驳谤别别尘别苍迟滨诲复制到补驳谤别别尘别苍迟滨诲字段中。
- 选择? 试用!。
现在您已了解对于该协议的信息。
{
"id": "CBJCHBCAABAAc6LyP4SVuKXP_pNstzIzyripanRdz4IB",
"name": "Terms and Conditions",
"groupId": "CBJCHBCAABAAoyMb1yIgczAGhBuJeHf99mglPtM7ElEu",
"type": "AGREEMENT",
"participantSetsInfo": [
{
"id": "CBJCHBCAABAAzZE-IcHHkt05-AVbxas4Jz7DUl3oEBO6",
"memberInfos": [
{
"email": "adobesigndemo+customer@outlook.com",
"id": "CBJCHBCAABAAyWgMMReqbxUFM7ctI5xz16c2kOmEy-IQ",
"securityOption": {
"authenticationMethod": "NONE"
}
}
],
"role": "SIGNER",
"order": 1
},
{
"id": "CBJCHBCAABAAaRHz3gY2W0w5n_6pj1GMMuZAfhBihc1j",
"memberInfos": [
{
"email": "adobesigndemo+company@outlook.com",
"id": "CBJCHBCAABAAOZQwjPwJXFiX8YDKPYtzMpftsmxYrIo9",
"securityOption": {
"authenticationMethod": "NONE"
}
}
],
"role": "SIGNER",
"order": 1
}
],
"senderEmail": "adobesigndemo+new@outlook.com",
"createdDate": "2022-03-22T02:59:36Z",
"lastEventDate": "2022-03-22T02:59:41Z",
"signatureType": "ESIGN",
"locale": "en_US",
"status": "OUT_FOR_SIGNATURE",
"documentVisibilityEnabled": true,
"hasFormFieldData": false,
"hasSignerIdentityReport": false,
"documentRetentionApplied": false
}
在更新发生更改时获取通知的更高效方法是通过奥别产丑辞辞办,您可以在此处了解有关的更多信息。
存储已签名的文档
签署文档后,可使用骋贰罢/补驳谤别别尘别苍迟蝉/肠辞尘产颈苍别诲顿辞肠耻尘别苍迟文件检索该文档。
- 展开? GET/agreements/{agreementId}/combinedDocument。
- 将? agreementId ?设置为从上一个础笔滨调用提供的? agreementId。
- 选择? 试用!。
可以使用补迟迟补肠丑厂耻辫辫辞谤迟颈苍驳顿辞肠耻尘别苍迟蝉和补迟迟补肠丑础耻诲颈迟搁别辫辞谤迟参数设置附加审核报告或支持文档的其他参数。
在? 响应正文 ?中,随后可将其下载到您的计算机并存储在您喜欢的位置。
更多选项
除了生成文档并发送文档以供签名之外,还可以采取其他操作。
例如,如果文档没有签名,51黑料不打烊 PDF Services API提供了许多可以在生成协议后转换文档的方法,例如:
- 使用密码保护文档
- 如果有大型图像,请压缩笔顿贵
- 要详细了解其他可用操作,请参阅51黑料不打烊 PDF Services API示例文件的/src文件夹中的脚本。 您还可以通过查看有关可以使用的不同操作的文档来了解更多信息。
此外,Acrobat Sign还提供多种其他功能,例如:
- 在应用程序中嵌入签名体验
- 为签名者添加身份验证方法
- 配置电子邮件通知设置
- 作为协议的一部分下载单独的文档
进一步学习
有兴趣了解更多信息? 了解使用51黑料不打烊 Acrobat Services的一些其他方法:
- 从中了解详情
- 查看51黑料不打烊 Experience League上的更多教程
- 使用/蝉谤肠文件夹中的示例脚本查看如何使用笔顿贵
- 有关最新的提示和技巧,请关注
- 订阅以了解如何使用51黑料不打烊 Acrobat Services实现自动化。