Simple NDA
From ContractPal
We develop a simple non-disclosure agreement (NDA) to demonstrate how a Pal is developed. You may download the completed Pal Image:Simple NDA.zip.
Create NDA Pal
- Configure your account for Pal development.
- Create a new Pal.
- Type "Non Disclosure Agreement" in the Name field.
- Type "Agreement to protect trade secrets" in the Description field.
- Type "Corporate" in the Category field.
- Select "Advanced" workflow from the type list.
- Select "2" from Authentication Level.
- Select ** Developer Activation Key 1 ** from the Activation Key drop down list.
- Click the Submit button.
Start Pal Builder
Pal builder is an integrated development environment (IDE) available for use from a web browser or with Eclipse using a plugin.
Add Custom Properties
Custom properties are global variables that hold a name and a value. We use the custom property Company to hold the name of the company.
- Add a custom property called "Company".
- Type in a company name or simply use "ContractPal" in the Value field.
- Leave the Searchable check box blank.
- Close the dialog.
- Click Save.
Add Roles
The Company role is responsible for initiating the transaction and closing it. The Recipient is responsible for reading and signing the NDA.
- Add roles Company and Recipient.
- Type "Company" into the name field.
- Click OK or Add New Role.
- Type "Recipient" into the new field.
- Click OK or Add New Role.
Add Requirements
A requirements document defines the purpose of a transaction. It includes background information, roles, documents, pages and a use case scenario to describe the process. The developer references this document to understand what the transaction is supposed to accomplish.
Sample requirements document for an NDA:
- Create a requirements document called "NDA_Requirements".
- Copy the text provided below and paste it in between the body tags.
- Click Save button.
<html>
<head>
<title>NDA Requirements</title>
</head>
<body>
<h3>Description</h3>
<p>A non-disclosure agreement (NDA), is a legal contract
between at least two parties which outlines confidential materials or
knowledge the parties wish to share with one another for certain
purposes, but wish to restrict from generalized use. In other words,
it is a contract through which the parties agree not to disclose
information covered by the agreement. An NDA creates a confidential
relationship between the parties to protect any type of trade secret.
As such, an NDA can protect non-public business information.</p>
<p>NDAs are commonly signed when two companies or individuals are
considering doing business together and need to understand the
processes used in one another's businesses for the purpose of
evaluating the potential business relationship. NDAs can be "mutual",
meaning both parties are restricted in their use of the materials
provided, or they may only restrict a single party. It is also possible for an
employee to sign an NDA or NDA-like agreement with a company at the time of hiring,
in fact some employment agreements will include a clause restricting
"confidential information" in general.</p>
<h3>Roles</h3>
<p> Company: starts and closes the non disclosure agreement process.<br/>
Recipient: reads and signs the non disclosure agreement.</p>
<h3>Documents</h3>
<p> Non Disclosure Agreement: Confidentiality agreement signed by anyone that may have
access to sensitive company information.</p>
<h3>Use Case Scenario</h3>
<ul>
<li>Company representative answers questions from a wizard.</li>
<li> An email invitation is sent to a Recipient.</li>
<li>Recipient opens email, clicks on a hyperlink to access the NDA Pal.</li>
<li>A welcome page explains the overall process and displays a 'Continue' and
an 'Exit' button.</li>
<li>Recipientis shown the nda document with information transferred from
the wizard.</li>
<li>Recipient reads and signs the nda document.</li>
<li>If Recipient rejects signing, a support page is displayed and an email is
sent to Company representative.</li>
<li> If Recipient signs the agreement, an exit page is shown and an email is sent
to the Company representative.</li>
<li>Company representative opens email confirmation of signing.</li>
<li>Company representative clicks on the hyperlink to view the completed
transaction.</li>
</ul>
</body>
</html>
Add Page
The page is used to display documents, notifications and wizards. The cascading style sheet defines a consistent appearance. Conditional tags <c:when > enable the main page to show a document, notification or a wizard as appropriate. The <c:progress/> tag displays a progress bar for the wizard.
- Create a new page called "main.htm".
- Copy and paste the text.
- Click Save button.
<html xmlns:c="contractpal">
<head>
<title>Display Page</title>
<link rel="stylesheet" type="text/css" href="../Styles/styles.css"/>
</head>
<body>
<div id="cp-root">
<div id="container">
<div id="header">
<h2>${CompanyName} Non Disclosure Agreement</h2>
</div>
<div id="content">
<c:choose>
<c:when test="${display == 'showWizard'}">
<c:progress/>
<c:wizard/> <br/><br/><br/><br/>
<c:wizard-previous style="wizButton" value="Previous"/>
<c:wizard-next style="wizButton" value="Next"/>
<p>
The NDA agreement is a legally enforcible contract in which one party <br/>
agrees not to disclose information covered by the agreement. An NDA creates<br/>
a confidential relationship between the parties to protect any type of trade secret.<br/><br/>
As such, an NDA can protect non-public business information.<br/>
NDAs are commonly signed when two companies or individuals are considering doing business<br/>
together and need to understand the processes used in one another's businesses solely<br/>
for the purpose of evaluating the potential business relationship. NDAs can be mutual<br/>
meaning both parties are restricted in their use of the materials provided or they can<br/>
only restrict a single party.<br/>
</p>
</c:when>
<c:when test="${display == 'confirmation'}">
<div>
<p>An email has been sent to <b>${firstName}</b> at email address <b>${email}</b>.</p>
<ol>
<li>Click the <b>Exit</b> button.</li>
<li>Open the email from ContractPal.</li>
<li>Click on the link in the email.</li>
<li>Login with the email address: <b>${email}</b><br/>
or create a new account to continue in the <b>recipient</b> role.
</li>
</ol>
<c:button style="float:left;" value="Exit" action="Exit"/>
</div>
</c:when>
<c:when test="${display == 'showNDA'}">
<div>
<c:document style="height:520px;width:780px;"></c:document>
<c:button style="font-size:10pt;color:blue;float:left;" value="Done" action="Exit"/>
</div>
</c:when>
<c:when test="${display == 'rejectSign'}">
<div>
<p>You have chosen to <b>not</b> sign the non-disclosure agreement.</p>
<c:button style="font-size:10pt;color:blue;float:leftI;" value="Exit" action="Exit"/>
</div>
</c:when>
<c:otherwise>
<c:debug/>
</c:otherwise>
</c:choose>
</div>
</div>
</div>
</body>
</html>
Add Email Template
Add an email template
- Create an email Template called "Invitation.htm".
- Type "Invitation" into the File Name box.
- Click the Finish button.
- Copy and paste the text.
- Click Save.
<html xmlns:c="contractpal">
<head>
<title>Invitation</title>
</head>
<body>
<div id="cp-root">
<p>${first_name},</p>
<p>${CompanyName} requests that you sign a non-disclosure agreement (NDA).</p>
<p><ol>
<li>Click on the link in this email or copy and paste the link into a browser window.</li>
<li>Login with the email address: <b>${email}</b><br/> or create a new account to continue in the <i>recipient</i> role.</li>
</ol>
</p>
<p><c:a name="target" action="show_document">Click here to sign the NDA.</c:a></p>
</div>
</body>
</html>
Add Wizard
The wizard asks for a name and email address of the recipient. This information is used to send an email with a request to sign the non-disclosure agreement. The attribute progress is set at 50%.
- Create a new wizard called "Client.xml".
- Copy and paste the text below.
- Click Save button.
<dialogs first="personal" styleSheet="styles.css" xmlns="http://www.contractpal.net/schemas/wizard"> <dialog name="personal" goto="endWizard" action="send_email" progress="50"> <content> <div> <p>Enter a first name, last name and email address.<br/> Click the <b>Next</b> button to send an email.</p> <p>First Name <input name="firstName" size="25" type="text" value="John"/></p> <p>Last Name <input name="lastName" size="25" type="text" value="Doe"/></p> <p>Email Address <input name="Email" size="35" type="text" value="EmailAddress@contractpal.com"/></p> </div> </content> </dialog> </dialogs>
Add NDA Document
The NDA document explains the terms of the non disclosure agreement. We will create the document by copy and pasting the text of the document. The document contains a tag that is rendered as a click signature field that will display an electronic signature.
- Create a document called "NDA.htm".
- Type "NDA" into the Name box.
- Type "Non Disclosure Agreement" in the Description box.
- Type or copy and paste this text into the document.
- Click the Save button.
<html xmlns:c="contractpal">
<head>
<title>NDA</title>
</head>
<body>
<div id="cp-root">
<p>NON-DISCLOSURE AGREEMENT</p>
<p>FOR GOOD CONSIDERATION, and in consideration of consideration of working with ${company},
the undersigned hereby agrees and acknowledges:</p>
<p>1. That during the course of my employ there may be disclosed to me
certain trade secrets of the Company; said trade secrets consisting
but not necessarily limited to:</p>
<p>(a) Technical information: Methods, processes, formulae, compositions,
systems, techniques, inventions, machines, computer programs and
research projects.</p>
<p> (b) Business information: Customer lists, pricing data, sources of
supply, financial data and marketing, production, or merchandising
systems or plans.</p>
<p>2. I agree that I shall not during, or at any time after the
termination of my work with the Company, use for myself or
others, or disclose or divulge to others including future employees,
any trade secrets, confidential information, or any other proprietary
data of the Company in violation of this agreement.</p>
<p>3. That upon the termination of my work with the Company:</p>
<p>(a) I shall return to the Company all documents and property of the
Company, including but not necessarily limited to: drawings,
blueprints, reports, manuals, correspondence, customer lists, computer
programs, and all other materials and all copies thereof relating in
any way to the Company's business, or in any way obtained by me during
the course of employ. I further agree that I shall not retain copies,
notes or abstracts of the foregoing.</p>
<p>(b) The Company may notify any future or prospective employer or third
party of the existence of this agreement, and shall be entitled to
full injunctive relief for any breach.</p>
<div id="smallText">
<p>(c) This agreement shall be binding upon me and my personal
representatives and successors in interest, and shall inure to the
benefit of the Company, its successors and assigns.</p>
</div>
<p>Signed: ${date}</p>
<p>Signature: <input cp-sig-id="sig1" cp-sig-type="click" type="text" cp-sig-role="Recipient"/></p>
</div>
</body>
</html>
Add Style Sheet
The style sheet defines formatting attributes.
- Add a style sheet with the name "styles.css".
- Type or copy and paste the text.
- Click the Save button.
/* Style Sheet */
#cp-root div {
margin:0 auto;
}
#smallText{
font-size: 10px;
color: #666666;
}
#header {
color: white;
padding: 10px;
background-color:Red;
height:50px;
text-align: center;
}
#container{
width:800px;
height:630px;
position: relative;
border: 1px red solid;
}
#content{
padding: 10px;
height: 100%;
}
Add User Workflow
The user workflow is a script that controls the transaction process.
- Add a workflow called "userworkflow".
- Type "userworkflow" into the Name field.
- Select User from the drop-down list.
- Click the default checkbox (workflow will be used when you click Test).
- Click the Create button.
- Copy and paste this script.
var c;
var packet;
var page;
var document;
var Data;
var wiz;
var cName;
function run(controller)
{
c = controller;
packet = c.getPacket();
document = packet.addDocument("NDA");
wiz = packet.addWizard("Client");
var email;
cName = packet.getProperty("Company");
// Add the main page, set the macro $display = showWizard. The page will display the wizard.
page = c.getPage("main");
page.addWizardToPage(wiz);
page.setValue("CompanyName", cName);
if (c.isAction("cp-begin") )
{
c.getUser().assignRole("Company");
page.setValue("display", "showWizard");
page.addWizardToPage(wiz);
return page;
}
else if (c.getAction() == "cp-continue")
{
page.setValue("display", "showNDA");
return showDoc("main", "NDA");
}
else
{
switch (c.getAction())
{
case "acceptTerms":
c.debug("Document Signed!");
document.sign();
page.setValue("display", "showNDA");
return showDoc("main", "NDA");
case "rejectTerms":
page.setValue("display", "rejectSign");
return page;
case "send_email":
// add the wizard to the packet
wiz = packet.addWizard("Client");
// Get name and email address from the wizard
Data = wiz.getData();
var fName = Data.getValue("firstName");
var emailAddress = Data.getValue("Email");
// Insert first name into the email template
email = c.createEmail("Invitation");
email.getData().setValue("first_name", fName);
email.getData().setValue("CompanyName", cName);
email.getData().setValue("email", emailAddress);
// Send the email to the address entered in the wizard
email.sendToAddress(emailAddress);
// Notify the user that the email invitation was sent
page = c.getPage("main");
page.setValue("display", "confirmation");
page.setValue("firstName", fName);
page.setValue("email", emailAddress);
return page;
case "show_document":
c.getUser().assignRole("Recipient");
// set the macro $display to show the NDA document section of the page.
page.setValue("display", "showNDA");
return showDoc("main", "NDA");
case "Exit":
return controller.exitToConsole();
}
}
}
function showDoc(pageName, docName)
{
page = c.getPage(pageName);
document = packet.addDocument(docName);
// Add the document to the page
page.addDocumentToPage(document);
// set the date in the document
Data = document.getData();
var todayDate = c.getFormatter().formatDate(c.getDateUtil().createDate(), "dd MMM yyyy");
Data.setValue("date", todayDate);
//packet.getProperty("Company")
page.setValue("CompanyName", cName);
// Get first and last name from the wizard
Data = wiz.getData();
var firstName = Data.getValue("firstName");
document.enableSigning("acceptTerms", "rejectTerms");
return page;
}
Test
Test the Pal to verify that the Pal will work as expected in Navigator. The test process validates the content and structure of the Pal.
Deploy
Deploying the Pal generates a hyperlink with a token to start a new transaction. This URL can be sent in an email or posted on a web page.
- Log into Console.
- Click the
next to the Pal Non Disclosure Agreement.
- Click Deploy
.
- Select an Activation Key.
- Click the Continue button.
- Copy the Token and paste it in an email or web page.
Sample Access Token: token: https://secure.contractpal.com/cpal/GetNavigator.do? nxTokenId=3F79D51B360472DC09AF80C13A283B3E20E0379131C26D5DD6ADD86B44B4479
Note: You may now copy and paste this access token into an email.