메인 콘텐츠로 건너뛰기
항목을 찾을 수 없습니다.
dropboxsign 로고
Dropbox Sign을 사용해야 하는 이유
아코디언 메뉴 펼치기/접기

포함된 기능

온라인에서 문서 서명
전자 서명 만들기
템플릿 선택 또는 생성
PDF를 작성하고 서명하기
온라인 계약 체결하기
문서 관리
기능 살펴보기
오른쪽 방향 화살표 아이콘

이용 사례

영업 및 비즈니스 개발
인사
스타트업
재무 기술
부동산
온디맨드 서비스
제품
아코디언 메뉴 펼치기/접기
Dropbox 아이콘
Sign
간편한 문서 전송과 서명
Dropbox 아이콘
Sign API
워크플로에 전자 서명 통합
dropbox fax 아이콘
Fax
팩스 없는 팩스 전송
dropbox 통합 아이콘
연동
여러분이 일하는 곳이라면 어디서든 구현 가능한 Dropbox Sign
관련 자료
아코디언 메뉴 펼치기/접기
블로그
워크플로 전문 지식과 제품 소식
고객 이용 후기
실제 성과를 엿볼 수 있는 실제 스토리
도움말 센터
Dropbox Sign 제품 심층 설명
자료 라이브러리
보고서, 동영상, 정보 안내서
개발자
요금
아코디언 메뉴 펼치기/접기
Dropbox Sign 요금제
가장 적합한 요금제 찾기
Dropbox Sign API 요금제
실제 성과를 엿볼 수 있는 실제 스토리
영업팀에 문의
가입
영업팀에 문의
로그인
아코디언 메뉴 펼치기/접기
Dropbox Sign
Dropbox Forms
Dropbox Fax
무료 평가판
블로그
/
개발자

Sending Bulk Signature Requests with the Dropbox SignAPI

by 
Cory Shrecengost
11
분 소요
툴팁 아이콘

새로운 이름, 변함없이 강력한 성능! HelloSign이 Dropbox Sign으로 새롭게 탄생했습니다.

닫기 아이콘

Electronic document signing has become the norm in today's remote world. From job offers to contracts, having the ability to quickly and securely electronically sign documents has become a must-have functionality for many different types of software-as-a-service (SaaS) applications and industries.

‍

For developers, having the ability to quickly implement eSignature functionality has become a lifesaver and an invaluable tool in their arsenal to develop high value with minimal effort. While there are many examples where this functionality is required, non-disclosure agreements (NDAs) are one of the most common use cases in high-tech industries.

‍

While it might be tempting to roll out your own document signing service, it is way more effective and efficient to leverage an existing service like the Dropbox Sign API to provide this functionality in your application.

‍

This tutorial will go over the steps needed to leverage the Dropbox Sign API’s bulk sending capabilities for the specific use case of sending an NDA to multiple parties. By the end of this article, you will have a good understanding of the main concepts involved in electronic document signing, knowledge of the Dropbox Sign API, and a powerful set of tools to leverage on your next project.

‍

‍

Implementing a bulk NDA send-out with Dropbox Sign

In this tutorial, you will build a bulk NDA management tool that will allow you to:

  • Bulk send NDA signature requests to multiple subjects
  • Leverage Dropbox Sign templates with custom builds
  • Check on the progress of a bulk job to see pending signatures

‍

Prerequisites

‍

This tutorial uses the Dropbox Sign API. As part of the tutorial, you will need to sign up and generate a new API key.

‍

Additionally, you will write all the code examples in Node.js, using the Express framework to provide a basic project structure. You can find the code examples and demo application in the GitHub repository. Instructions on how to install Node.js for your operating system can be found here.

‍

Note: This tutorial assumes the reader is already familiar with Node.js and the Express framework and does not cover the details of how to install Node.js and Express.

‍

시작하기

‍

Start by downloading a local copy of the sample code from the GitHub repository. Make sure you can run the project locally by running the following console commands:

‍

cd hellosign-sample-code
npm install
npm start

‍

You can verify that your base Express application is running correctly by visiting the localhost:3000 URL in your browser.

Homepage

‍

If you see the Express default homepage, you are all set.

‍

‍

Installing the Dropbox Sign API SDK

Your next step is to install the official Dropbox Sign Node.js SDK. This is a library that allows you to interact with the Dropbox Sign API without having to write the boilerplate code.

‍

From inside your project directory, you can run the following command to install the Dropbox Sign Node.js SDK:

‍

npm install hellosign-sdk

‍

Next, import it into your application. You can do this by adding the following code to your application's `app.js` file:

‍

...
var app = express();

var hellosign = require('hellosign-sdk')({key: 'OUR_API_KEY'});
app.set('hellosign', hellosign);

// view engine setup
...

‍

In the code above, you are initializing the Dropbox Sign Node.js SDK and setting it as an Express application property. You will use this property in your application to interact with the Dropbox Sign API across all your routes.

‍

You need to create a Dropbox Sign account and get a valid API key. You can do this by following the Dropbox Sign API documentation.


You can retrieve the API key by following the steps below:

  • Click Integrations in the left navigation bar
  • Click API in the top navigation bar
  • Click the Reveal Key button to the right of your API key


Finally, in the `app.js` file, replace `OUR_API_KEY` with the API key you just retrieved.

‍

‍

Creating a Dropbox Sign template

Before you go ahead and create your first route, you need to create a Dropbox Sign template. This is a document you will use to send out NDAs to multiple parties. Document templates are great because you only need to prepare them once.

‍

Currently, Dropbox Sign templates can only be created through the Dropbox Sign website. Click Templates on the left side navigation and then Create a Template.


Now, upload the NDA document that you want to turn into a template. In this case, you will use a unilateral NDA from OpenDocs.


You should now specify the roles responsible for signing the NDA. In this case, add a `Contractor` role:

Roles

‍

On the next screen, set up the fields that will be used to sign the NDA. The following fields should be used in this case:

Fields 1


Fields 2

‍

It is important to take a moment and understand that Dropbox Sign has different types of fields that you can use to sign a document:

‍

  • Signature fields are filled by the signer, for example, the initials and signature of the person signing the NDA.
  • Merge fields are fields added to the template when created, that you intend to map signer-specific values to when you use that template in a signature request. For example, the name of the company or the name of the person signing the NDA.
  • Custom fields are the values mapped to merge fields on the template when creating the signature request. For example, the name of the person signing the NDA. Custom field values are provided through the `custom_fields` request parameter. Using this parameter you will provide names and values for your custom fields, and the value of each custom field will be mapped to the merge field on your specified template with an identical name.

‍

An important thing to note is that in order for custom field values to map correctly, the name of the custom field specified in your API request must match the name of the merge field on your template exactly. Here is how you set up the NDA `start_date` merge field; this merge field can be populated with a custom field value that you will pass back to the Dropbox Sign API when you create the signature request.

Custom fields

‍

Finish by saving the template. Make sure to add a name for the template and click Save template.

NDA

‍

Once you have saved your template, you will get a modal confirming that the template was created successfully. Keep the template ID shown for future reference; you will use it shortly.

Confirmation

‍

‍

Listing your templates

To list all the templates that you have created, first update the `routes/index.js` file by replacing it with the following lines:

‍

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
  var hellosign = req.app.get('hellosign');

  hellosign.template.list().then((r) => {
    // handle response
    res.render('index', { title: 'Express', templates: r.templates });
  }).catch((err) => {
    // handle error
    console.log(err);
  });
});

module.exports = router;

‍

Next, you need to update the `views/index.jade` file by replacing it with the following lines:

‍

extends layout

block content
  h1= title
  p Welcome to #{title}

  ul 
  each template in templates 
    li= template.title

‍

You can then visit the localhost:3000 URL in your browser to see the list of templates.

Template list

‍

To recap the steps you have taken so far:

‍

  • You created a Dropbox Sign account and retrieved a valid API key.
  • You created a Dropbox Sign template.
  • You listed all the templates that you created.

‍

Your next step is creating a signature request.

‍

‍

Creating a signature request

Start by creating a new route that will issue signature requests. Create a new route called `/signature_request` and use the following code in `routes/signature_request.js`:

‍

var express = require('express');
var router = express.Router();

router.get('/', function(req, res, next) {
      res.render('index', { title: 'Signature Requests' });
});

/* POST send a signature request . */
router.post('/', function(req, res) {
    var hellosign = req.app.get('hellosign');
    var ts_hms = new Date(UTC);

const opts = {
        test_mode: 1,
        template_id: 'YOUR_TEMPLATE_ID’',
        title: 'NDA with The Weird Co.',
        subject: 'The NDA we talked about',
        message: 'Please sign this NDA and then we can discuss more.',
        signers: [
          {
            email_address: 'hp@lovecraft.com',
            name: 'HP',
            role: 'Contractor'
          }
        ], 
        custom_fields: [
          {
            name: 'start_date',
            value: ts_hms.format("%Y/%m/%d");
          }
        ],
      };
      hellosign.signatureRequest.sendWithTemplate(opts).then((res) => {
        // handle response
        console.log(res);
      }).catch((err) => {
        // handle error
        console.log(err);
      });
});

module.exports = router;

‍

‍

You also need to update the `app.js` to include your new route manager:

‍

...
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var signatureRequestRouter = require('./routes/signature_request');

var app = express();
...

app.use('/', indexRouter);
app.use('/users', usersRouter);
app.use('/signature_request', signatureRequestRouter);

‍

Finally, modify the `views/index.jade` file to include a button to create a signature request:

‍

extends layout

block content
  h1= title
  p Welcome to #{title}

  ul 
  each template in templates 
    li= template.title
      form#sendTemplate(method="post", action="/signature_request")
        input(type="hidden", name="template_id", value=template.template_id)
        input(type="submit", value="Send")

‍

You can go ahead and issue a signature request by clicking the Send button.

Signature request

‍

If everything worked correctly, you should see the new signature request listed in the list of signature requests in the Dropbox Sign dashboard.

Documents list

‍

To recap the steps you have taken so far:

‍

  • You created a new route called `signature_request` to issue signature requests.
  • You updated the `app.js` to include your new route manager.
  • You updated the `index.jade` file to include a button to create a signature request per template.
  • You successfully created a signature request.

‍

‍

Bulk sending requests to signers

Note: Bulk sending signature requests is only available to Dropbox Sign Standard users and above.

‍

You might have noticed that the approach you are following so far has a major downside: you can only send out a single NDA to a single recipient.

‍

You already created a template of your document that you can easily reuse. While you could handle the logic on your side to send out multiple NDAs to multiple recipients, it would require many changes to your code to track the status of the bulk signature request.

‍

Thankfully, Dropbox Sign provides an endpoint to send out bulk signature requests. Create a new route called `/bulk_signature_request` and use the following code in `routes/bulk_signature_request.js`:

‍

var express = require('express');
var router = express.Router();

const multer  = require('multer')
const upload = multer({ dest: 'uploads/' })
const fs = require('fs')

router.get('/', function(req, res, next) {
    var hellosign = req.app.get('hellosign');

    hellosign.template.list().then((r) => {
      // handle response
      res.render('bulk_signature_request', { title: 'Bulk Signature Requests', templates: r.templates });
    }).catch((err) => {
      // handle error
      console.log(err);
    });
});

/* POST send a signature request . */
router.post('/', upload.single('signers_file'), function(req, res) {
    var hellosign = req.app.get('hellosign');
    var ts_hms = new Date().toISOString().slice(0, 10);

    const opts = {
            test_mode: 1,
            template_id: req.body.template_id,
            title: 'NDA with The Weird Co.',
            subject: 'The NDA we talked about',
            message: 'Please sign this NDA and then we can discuss more.',
            signer_file: req.file, 
            custom_fields: [
            {
                name: 'start_date',
                value: ts_hms
            }
            ],
        };

        console.log(opts);
      hellosign.signatureRequest.bulkSendWithTemplate(opts).then((res) => {
        // handle response
        console.log(res);
      }).catch((err) => {
        // handle error
        console.log(err);
      });
});


module.exports = router;

‍

For this script, you need to install the `multer` module. This allows you to upload a CSV with a list of all the signers for your bulk signature request:

‍

npm install multer

‍

Now, create a brand new view to handle the bulk signature request. Create a file called `views/bulk_signature_request.jade` and add the following code:

‍

extends layout

block content
  h1= title

  form#sendTemplate(method="post", enctype="multipart/form-data", action="/bulk_signature_request")
    select#(name="template_id")
      each template in templates
        option(value=template.template_id)= template.title
    input(type="file", name="signers_file")
    input(type="submit", value="Send")

‍

‍

Bulk signature request

‍

If everything worked correctly, you should see the new batch of signature requests listed in the Documents > Bulk send list in the Dropbox Sign dashboard.

Bulk documents list

‍

Finally, you can also check the status of the bulk signature request by clicking the View Progress button.

Bulk signature request status


The Dropbox Sign API can also be used to monitor your account’s bulk sends through the use of the following endpoints:

‍

Endpoint Summary Description
/bulk_send_job/{bulk_send_job_id} Get Bulk Send Job Returns the status of the BulkSendJob and its SignatureRequests specified by the `bulk_send_job_id` parameter.
/bulk_send_job/list List Bulk Send Jobs Returns a list of BulkSendJob that you can access.

‍

Conclusion

Over the course of this tutorial, you learned how to work with the official Dropbox Sign API to create signature requests, bulk send signature requests, and retrieve signature requests. You also learned how to create document templates and how to use those templates to save time when creating signature requests for multiple recipients.

‍

Dropbox Sign offers unparalleled ease and speed of implementation, from embeddable iframes on your site with only 4 lines of code, to powerful APIs and exceptional developer support.

‍

You have only just scratched the surface of the Dropbox Sign API. There are many other features available to developers. To learn more or test the code from this tutorial, please check out the Dropbox Sign API; you can get started today for free.

‍

진행 상태 확인

모두 완료되었습니다! 받은 편지함을 확인하세요.

Thank you!
Thank you for subscribing!

Lorem ipsum

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Lorem ipsum
오른쪽 방향 화살표 아이콘
닫기 아이콘

Up next:

현대 디지털 서명 솔루션을 나타내는 수기 서명의 클로즈업 일러스트레이션.
개발자
15개
분 소요

Integrating Dropbox Sign with Ruby on Rails: A Step-by-Step Tutorial

현대 디지털 서명 솔루션을 나타내는 수기 서명의 클로즈업 일러스트레이션.
개발자
15개
분 소요

Dropbox Sign vs. SignNow for developers

템플릿으로 팀원 가져오기

W2 templates

제품
Dropbox SignDropbox Sign APIDropbox Fax연동
Dropbox Sign이어야 하는 이유
전자 서명문서에 서명PDF 작성과 서명온라인 계약전자 서명 만들기서명 편집기Word 문서 서명
지원
도움말 센터영업팀에 문의지원팀에 연락쿠키 관리시작하기: Dropbox Sign시작하기: Dropbox Sign API
관련 자료
블로그고객 이용 후기자료 센터합법성 지침신뢰 센터
파트너
전략적 파트너파트너 찾기
회사
함께 일하기이용 약관개인정보 보호
Facebook 아이콘Youtube 아이콘

사용 가능한 결제 수단

Mastercard 로고Visa 로고American Express 로고Discover 로고
CPA 컴플라이언스 배지HIPAA 컴플라이언스 배지Sky High Enterprise Ready 배지ISO 9001 인증 배지

Dropbox Sign 전자 서명은 미국, 유럽연합, 영국을 비롯해 전 세계 많은 국가에서 법적 구속력을 발휘합니다.
더 자세한 정보는 이용 약관과 개인정보처리방침에서 확인할 수 있습니다.