Getting Started

This is your goto reference for building great apps on the Pandexio Platform. Be sure to also refer to the Branding Guide and the Terms and Conditions as you design your app.

App permissions

When you start building an app on the Pandexio Platform, you'll need to create a Pandexio app in the App Console.

Use a single app key for each distinct app

If you build multiple apps, use one and exactly one key for each app you make. This makes it much easier for us to debug issues when they arise. That said, if you're just building the same app for different platforms (for example, iOS and Android), you should use the same key.

Request Signing

To use the Pandexio REST API, each request must be signed with an HMAC code and include all Pandexio authorization headers or all Pandexio parameters in the query string.  Signature Generation

SSL only

We require that all requests are done over SSL.

Error handling

Errors are returned using standard HTTP error code syntax. Any additional info is included in the body of the return call, JSON-formatted. Error codes not listed here are in the REST API methods listed below.

Standard API errors

400Bad input parameter. Error message should indicate which one and why.
401Bad or expired token. This can happen if the user or Pandexio revoked or expired an access token
404Object not found at the specified path.
405Request method not expected (generally should be GET or POST).
429Your app is making too many requests and is being rate limited. 429s can trigger on a per-app or per-project or per-user basis.
5xxServer error.

Document Viewer Integration

Setup

The first step in integrating the document viewer is to create a Pandexio app in using the App Console.

Once you have created your app you will need to write your signature generation code.

Create Projects

Pandexio documents are contained in projects.  Projects contain documents and have a set of members.

/projects/create will create a project that documents can be added to.

Once the project is created you can add additional members, the user that created the project is automatically added as the first member.  

/projects/addmembers will add additional members to a project.

Add Documents and Web Pages to Projects

There are 3 ways to add documents via the Core API.

/documents/uploadfiles will upload and add documents directly to a project

/documents/capturewebsite will capture the web page and add to a project

/documents/downloadfiles will have the Pandexio system download files from an external location and add to a project.

View and snip documents

Viewing and sniping of documents is done by launching the Pandexio document viewer.

You can either render the link to the document viewer immediately after receiving the response from the uploadfiles/downloadfiles request and let the document viewer inform the user if the file is not ready to be displayed yet.  Or, you can subscribe to a webhook for DocumentCreated notifications and only show the link when the document is ready.

If you would like to be notified when a snip is created on a document you can subscribe to the SnipCreated webhook.

Similarly, if you would like to be notified when a comment is created on a snip you can subscribe to the SnipCommentCreated.  

Launching the Document Viewer UI

The document viewer can be seamlessly and securely opened by using the following url format containing valid request signature query string parameters.

URL Format 

https://app.pandexio.com/viewer/document/[documentId]?[request_signature_parameters]

URL Example

https://app.pandexio.com/viewer/document/710da3d4-7dfe-4809-9758-9c4b4d774dfc?PdxPublicKey=12345&PdxRequestSignature=76828617BF24%3aIQRxyhk1d9w45%2f9XEAB3RKmlPNs%3d&PdxTimestamp=2013-03-20T14%3a15%3a45Z&PdxEmail=jsmith%40company.com&PdxFullName=John+Smith

Snips Viewer Integration

Setup

The first step in integrating the snips viewer is to integrate the document viewer.

Once the document viewer is integrated and you have created snips you can view those snips separately from the document by launching the snips viewer.

Launching the snips viewer UI

The snips viewer can be seamlessly and securely opened by using the following url format containing valid request signature query string parameters.

URL Format

https://app.pandexio.com/viewer/snipsbydocument/[documentId]?[request_signature_parameters]

URL Example

https://app.pandexio.com/viewer/snipsbydocument/710da3d4-7dfe-4809-9758-9c4b4d774dfc?PdxPublicKey=12345&PdxRequestSignature=76828617BF24%3aIQRxyhk1d9w45%2f9XEAB3RKmlPNs%3d&PdxTimestamp=2013-03-20T14%3a15%3a45Z&PdxEmail=jsmith%40company.com&PdxFullName=John+Smith
 

How to Create a Bookmarklet to Capture Web Pages

A bookmarklet is a small software application stored as a bookmark in a web browser which typically allows a user to interact with the currently loaded web page in some way.

It is relatively simple to create a bookmarklet that will capture the url of a web page that a user is viewing and automatically send that url to a page on your server.  

Add the following HTML snippet to a page, where YOURAPP.com is the url of your application.  

<a href="javascript: (function () { window.open('https://YOURAPP.com/bookmarklet?source=' + encodeURIComponent(document.URL) + '&title=' + encodeURIComponent(document.title || 'untitled')); })();" >Capture Web Page</a>

In this example you will need to create a page at /bookmarklet that accepts two query string parameters, source and title.

SourceThe url of the page to capture.
TitleThe title of the page.

To install the bookmarklet the user has to simply:

  1. Show the Browser Bookmarks Toolbar.
  2. Drag the bookmarklet from the page to his Bookmarks Toolbar. It should then appear on the toolbar.

Next Steps

One the bookmarklet and the bookmarklet handler page have been created you can use Capture Website to save a copy of the web page in Pandexio and Document Viewer Integration to view and snip the web page

Core API

The Core API is the underlying interface for all of our partner integrations. This reference document is designed for those interested in integrating Pandexio functionality into their applications or for those interested in exploring API features in detail.

General Notes

This API will evolve. Future versions of this API may add new endpoints or parameters. In order to keep older clients working, the behavior and return value of APIs with given parameter values will not change from the currently documented behavior and return values, with two important exceptions: currently undocumented request parameters (whether they are actually ignored or not) may be given a specific meaning, and objects returned in responses may contain additional keys in the future.

Thus, clients that want to be future-proof should avoid passing undocumented parameters (as they may cause different behavior in the future), and they should avoid strict checks on the keys of objects found in responses.

SSL only

We require that all requests are done over SSL.

UTF-8 encoding

Every string passed to and from the Pandexio API needs to be UTF-8 encoded.

Signing

All requests must be signed as described in Signature Generation.

Projects

/projects/create

DESCRIPTION Create a project and get its unique GUID.
URL STRUCTURE https://api.pandexio.com/projects/create
METHOD POST
PARAMETERS projectName  required  The name of the project to create.
EXAMPLE REQUEST
{ 
  "projectName": "Test Project" 
}
RETURNS The projectId of the new project.
EXAMPLE RESPONSE
    "34ade35e-6d5f-4c9f-a062-8c6daaf1b86b"

/projects/addmember

DESCRIPTION Adds a new member to a project.
URL STRUCTURE https://api.pandexio.com/projects/addmember
METHOD POST
PARAMETERS projectId  required  The id of the project to add the member to.
memberName  required  The email address of the member to be added.
EXAMPLE REQUEST
{ 
    "projectId": "34ade35e-6d5f-4c9f-a062-8c6daaf1b86b",
    "memberName": "test1@user.com" 
}
RETURNS No response.
EXAMPLE RESPONSE N/A

/projects/removemember

DESCRIPTION Removes a member from a project.
URL STRUCTURE https://api.pandexio.com/projects/removemember
METHOD POST
PARAMETERS projectId  required  The id of the project to remove the member from.
memberName  required  The email address of the member to remove from the project.
EXAMPLE REQUEST
{ 
    "projectId": "34ade35e-6d5f-4c9f-a062-8c6daaf1b86b",
    "memberName": "test1@user.com" 
}
RETURNS No response.
EXAMPLE RESPONSE N/A

/projects/delete

DESCRIPTION Deletes a project.
URL STRUCTURE https://api.pandexio.com/projects/delete
METHOD DELETE
PARAMETERS projectId  required  The id of the project to delete
EXAMPLE REQUEST
{ 
    "projectId": "34ade35e-6d5f-4c9f-a062-8c6daaf1b86b"
}
RETURNS No response.
EXAMPLE RESPONSE N/A

/projects/changename

DESCRIPTION Changes the project name.
URL STRUCTURE https://api.pandexio.com/projects/changename
METHOD POST
PARAMETERS projectId  required  The id of the project to rename.
projectName  required  The new name of the project.
EXAMPLE REQUEST
{ 
    "projectId": "34ade35e-6d5f-4c9f-a062-8c6daaf1b86b",
    "projectName": "newname" 
}
RETURNS No response.
EXAMPLE RESPONSE N/A

/fetch/projectbyprojectid

DESCRIPTION Fetches a project.
URL STRUCTURE https://api.pandexio.com/fetch/projectbyproject/{projectId}
METHOD GET
PARAMETERS projectId  required  The id of the project to retrieve.
RETURNS A JSON object containing the project details
EXAMPLE RESPONSE
{
  "ProjectId": "e57af378-6bf8-4ec6-8d66-07e411562a4b",
  "ProjectName": "my project",
  "ProjectCreatorName": "spolitakis@pandexio.com",
  "ProjectCreatorFullName": "Simon Politakis",
  "ProjectCreatorThumbnail": "data:image/jpeg;bFFFI88//2Q...==",
  "ProjectCreationDate": "2014-06-27T16:29:48.7514908Z"
}

Documents

/documents/downloadfiles

DESCRIPTION Download one or more files from an external server and add to the specified project.
URL STRUCTURE https://api.pandexio.com/documents/downloadfiles
METHOD POST
PARAMETERS projectId  required  The id of the add the files to.
documentSource  required  One of the predefined document sources. Use 7 for partner.
fileUrls  required  An array of fileUrl objects.
  fileUrl  required  The url if a file to download.
  fileName  required  the name of the file including its extension.
  documentName    The display name of the document.
EXAMPLE REQUEST
{
    "projectId": "34ade35e-6d5f-4c9f-a062-8c6daaf1b86b",
    "documentSource": 7,
    "fileUrls": [
        { 
            "fileUrl": "https://s3.amazonaws.com/pandexio_test_good/feature-flow.v1.jpg", 
            "fileName": "file1.jpg", 
            "documentName": "file1"  },
        { 
            "fileUrl": "https://s3.amazonaws.com/pandexio_test_good/growthhacking-120502082450-phpapp01.pdf",
            "fileName": "file2.pdf", 
            "documentName": "file2" },
        { 
            "fileUrl": "https://s3.amazonaws.com/pandexio_test_good/Oregon%20Residential%20Lease%20Agreement.docx", 
            "fileName": "file3.docx", 
            "documentName": "file3" },
        { 
            "fileUrl": "https://s3.amazonaws.com/pandexio_test_good/ui%20elements.pdf", 
            "fileName": "file4.pdf", 
            "documentName": "file4" }
    ]
}
RETURNS A JSON object containing the document ID's and the status of each download.
EXAMPLE RESPONSE
[
    {
        "DocumentId": "00d50771-0daa-4b87-b4ca-f948e990c03a",
        "DocumentName": "file1",
        "Success": true,
        "Message": null   },
    {
        "DocumentId": "8120f84c-0572-46f3-bf9b-906bbcde215d",
        "DocumentName": "file2",
        "Success": true,
        "Message": null   },
    {
        "DocumentId": "08f2ba45-03ae-47a2-8e6a-5512bf22710c",
        "DocumentName": "file3",
        "Success": true,
        "Message": null   },
    {
        "DocumentId": "ad4eaa4f-beb7-4e9e-b192-6a58abd04fd6",
        "DocumentName": "file4",
        "Success": true,
        "Message": null   }
]
OTHER INFOOn success the message will be null.
On failure the message will contain the reason for failure.
If any of the files fail validation the http status code will 206.
If all files fail validation or, for example, a bogus project id was passed in, the http status code will be 400.
A 200 status is returned when there are no errors.

/documents/capturewebsite

DESCRIPTION Capture a webpage and add to the specified project.
URL STRUCTURE https://api.pandexio.com/documents/capturewebsite
METHOD POST
PARAMETERS projectId  required  The id of the add the web page to.
documentSource  required  One of the predefined document sources. Use 7 for partner.
webSiteUrl  required  The URL of the web page to be captured.
documentName  required  The display name of the document.
EXAMPLE REQUEST
{
    "projectId": "34ade35e-6d5f-4c9f-a062-8c6daaf1b86b",
    "documentSource": 7,
    "webSiteUrl": "https://www.yahoo.com/",  
    "documentName": "Yahoo!"  
}
RETURNS The document ID for the captured web page.
EXAMPLE RESPONSE
    "354d94d7-be36-4386-bc7d-f92322a31c4f"

/documents/uploadfiles

DESCRIPTION Upload one or more files. This endpoint accepts three parameters: an array of files, projectId, document source, posted by a standard upload control or explicitly via code.
URL STRUCTURE https://api.pandexio.com/documents/uploadfiles
METHOD POST
DATA TYPE multipart/form-data
PARAMETERS projectId  required  The id of the project to add the files to.
documentSource  required  One of the predefined document sources. Use 7 for Partner.
files  required  The file data.
EXAMPLE REQUEST
POST https://api.pandexio.com/documents/uploadfiles
     ?PdxPublicKey=1AE174B2ED52&PdxRequestSignature=ZnhcgKMoEOucN8q2ffg3cu%2bLpSA%3d
     &PdxTimestamp=2013-11-14T00%3a55%3a12Z&PdxEmail=jsmith%40company.com
     &PdxFullName=John%20Smith HTTP/1.1
Host: api.pandexio.com
Connection: keep-alive
Content-Length: 17478
Accept: */*
Origin: null
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
            Chrome/31.0.1650.57 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary9EB5D2cCqPQ5jSjL
DNT: 1
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8

------WebKitFormBoundary9EB5D2cCqPQ5jSjL
Content-Disposition: form-data; name="files"; filename="sample.pdf"
Content-Type: application/pdf

%PDF-1.2
%????
4 0 obj
<< 
/Linearized 1 
/O 7 
/H [ 1188 200 ] 
/L 16945 
/E 16534 
/N 1 
/T 16748 
>> 
4 31 
0000000016 00000 n 
0000000980 00000 n 
0000001050 00000 n 
0000001388 00000 n 
000>> TRUNCATED....
%%EOF ------WebKitFormBoundary9EB5D2cCqPQ5jSjL
Content-Disposition: form-data; name="projectId"

6c247f27-5bcd-4381-bed8-a60cd10034c9
------WebKitFormBoundary9EB5D2cCqPQ5jSjL
Content-Disposition: form-data; name="documentSource"

7
------WebKitFormBoundary9EB5D2cCqPQ5jSjL--
RETURNS A JSON object containing the document ID's and the status of each upload.
EXAMPLE RESPONSE
[
    {
        "DocumentId": "00d50771-0daa-4b87-b4ca-f948e990c03a",
        "DocumentName": "file1",
        "Success": true,
        "Message": null   },
    {
        "DocumentId": "8120f84c-0572-46f3-bf9b-906bbcde215d",
        "DocumentName": "file2",
        "Success": true,
        "Message": null   },
    {
        "DocumentId": "08f2ba45-03ae-47a2-8e6a-5512bf22710c",
        "DocumentName": "file3",
        "Success": true,
        "Message": null   },
    {
        "DocumentId": "ad4eaa4f-beb7-4e9e-b192-6a58abd04fd6",
        "DocumentName": "file4",
        "Success": true,
        "Message": null   }
]
OTHER INFOOn success the message will be null.
On failure the message will contain the reason for failure.
If any of the files fail validation the http status code will 206.
If all files fail validation or, for example, a bogus project id was passed in, the http status code will be 400.
A 200 status is returned when there are no errors.

/fetch/documentbydocumentid

DESCRIPTION Fetches a document.
URL STRUCTURE https://api.pandexio.com/fetch/documentbydocumentid/{documentId}
METHOD GET
PARAMETERS documentId  required  The id of the document to retrieve.
RETURNS A JSON object containing the document details
EXAMPLE RESPONSE
{
  "ProjectId": "e57af378-6bf8-4ec6-8d66-07e411562a4b",
  "DocumentId": "9c8c707c-8f0c-4771-b0a6-07200ed0e212",
  "DocumentName": "growthhacking-120502082450-phpapp01.pdf",
  "DocumentThumbnailUrl": "data:image/png;base64,iVBORw0KGg...==",
  "DocumentCreatorName": "spolitakis@pandexio.com",
  "DocumentCreatorFullName": "Simon Politakis",
  "DocumentCreatorThumbnail": "data:image/jpeg;base64,/9j/4AAQEAYABg...==",
  "DocumentCreationDate": "2014-06-27T17:15:55.7657549Z"
}

Snips

/fetch/snipbysnipid

DESCRIPTION Fetches a snip.
URL STRUCTURE https://api.pandexio.com/fetch/snipbysnipid/{snipId}
METHOD GET
PARAMETERS snipId  required  The id of the snip to retrieve.
RETURNS A JSON object containing the snip details
EXAMPLE RESPONSE
{
  "ProjectId": "e57af378-6bf8-4ec6-8d66-07e411562a4b",
  "DocumentId": "9c8c707c-8f0c-4771-b0a6-07200ed0e212",
  "SnipId": "cf311463-802b-4fe5-9db1-a2efe9b85553",
  "SnipTitle": "My First Snip",
  "SnipCreatorEmail": "spolitakis@pandexio.com",
  "SnipCreatorFullName": "Simon Politakis",
  "SnipCreatorThumbnail": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ...==",
  "SnipCreationDate": "2014-06-27T17:25:56.6491235Z"
}

Webhooks

Webhooks are a way for web apps to get real-time notifications when objects are created of deleted in Pandexio. 

Once you register a URI to receive webhooks, Pandexio will send a signed HTTP request to that URI every time an object is created or deleted.

We are in the process of creating self service tools for webhook URI setup, but in the mean time please contact your customer service representative to help you setup your webhook URI's.

Once your webhook URI is added, your app will start receiving notifications every time an object is created or deleted in Pandexio.

A notification request is an HTTP POST with a JSON body. The JSON has the following format:

{
    "WebhookType": "SnipCreated",
    "TargetId":"1de50d22-cfe6-4c18-9ffc-0350acbf2819",
    "Path":"1de50d22-cfe6-4c18-9ffc-0350acbf2819/cf311463-802b-4fe5-9db1-a2efe9b85553/6hddr63-hhrb-4fe5-6671-7br2e9b85553",
    "TriggeredBy":"jsmith@company.com",
    "TriggerDate":"2014-06-30T19:23:11.1676012Z"
}

The webhook type will be one of the types listed below, with the targetId being the id of the object affected. In the sample webhook above the targetId is the id of the snip that was created.

Webhook TypeDescriptionTargetIdPath
ProjectCreatedProject created.projectIdprojectId
ProjectDeletedProject deleted.projectIdprojectId
ProjectMemberAddedProject member added.projectIduseremail/projectId
ProjectMemberRemovedProject member removed.projectIduseremail/projectId
DocumentCreatedDocument created.documentIddocumentId/projectId
DocumentConversionFailedDocument conversion failed.documentIddocumentId/projectId
DocumentDeletedDocument deleted.documentIddocumentId/projectId
SnipCreatedSnip created.snipIdsnipId/documentId/projectId
SnipDeletedSnip deleted.snipIdsnipId/documentId/projectId
SnipCommentCreatedSnip Comment created.commentIdcommentId/snipId/documentId/projectId

 

 

Signature Generation

To use the Pandexio Core API, each request must be signed with an HMAC code and include all Pandexio authorization headers or all Pandexio parameters in the query string.

Using Authorization Headers

Requests can be authorized by adding the authorization headers shown below.

HeaderValue
AuthorizationPDX {PUBLIC_KEY}:{REQUEST_SIGNATURE}
X-PDX-Meta-TimestampUTC timestamp.
X-PDX-Meta-Email User email address.
X-PDX-Meta-FullNameUser full name.

The public key is the public key for your application that was created using the App Console.  The request signature is the Base64 encoded request signature described in the signature generation section below.

Example Header Values

AuthorizationPDX 76828617BF24:IQRxyhk1d9w45/9XEAB3RKmlPNs=
X-PDX-Meta-Timestamp2013-03-20T14:15:45Z
X-PDX-Meta-Email jsmith@company.com
X-PDX-Meta-FullNameJohn Smith

Using Query String

Requests can also be authorized by adding URL encoded query string values to the request URL as shown below.  

Parameter NameValue
PdxPublicKey{PUBLIC_KEY}
PdxRequestSignature{REQUEST_SIGNATURE}
PdxTimestampUTC Timestamp.
PdxEmailUser email address.
PdxFullNameUser full name.

The public key is the public key for your application that was created using the App Console.  The request signature is the Base64 encoded request signature described in the signature generation section below.

Example Query String

PdxPublicKey=12345&PdxRequestSignature=76828617BF24%3aIQRxyhk1d9w45%2f9XEAB3RKmlPNs%3d&PdxTimestamp=2013-03-20T14%3a15%3a45Z&PdxEmail=jsmith%40company.com&PdxFullName=John%20Smith

 

Signature Generation

To create the request signature, generate the SHA1 hash code of the ASCII encoded signing string, using the ASCII encoded private key as SHA1 key.

Pseudo Code

string GenerateSignature(string stringToSign, string privateKey)
{
    var encodedSringToSign = ASCII_Encode(stringToSign);
    var encodedPrivateKey = ASCII_Encode(privateKey);
    var signature = SHA1_Hash(encodedSringToSign, encodedPrivateKey);
    return signature;
}

Signing String Creation

To build the signing string used in the code sample above, concatenate the lowercase UTC server time in web format, the lowercase user email address, and the lowercase user full name using '|' as a delimiter between each field.

Pseudo Code

string BuildStringToSign()
{
    var stringToSign = lowercaseUTCTimestamp + '|' +
                       lowercaseUserEmail + '|' +
                       lowercaseUserFullName;

    return stringToSign;
}

Example Signing String

2013-03-20t14:15:45z|jsmith@company.com|john smith

 

App Console

Coming soon.

Please contact customer support@pandexio.com to register an application.

Branding Guide

We're very excited that you're integrating with Pandexio! We've put together these guidelines so you know how to reference Pandexio and its components and so that your integration with Pandexio makes the most of our features and functionalities —you'll need to follow them for us to approve your app for production status.

This document is a living document that we will continue to work on collaboratively with the Pandexio developer community.

Using Pandexio’s name, logo

You can use the Pandexio name and logo for anything related to your app, such as marketing materials, as long as you follow our Pandexio branding guidelines when using our logo or name.

  • Don't suggest that there's a partnership or that Pandexio endorses your app. For example, you can say "we're developers on the Pandexio API" or "API developers," but not "we partner with Pandexio” or "API partners." Also, don't make misleading statements about Pandexio.
  • Only use the logo when referring specifically to Pandexio or an integration through the Pandexio platform. You may only use the approved logos, available here. You may not alter their colors or designs, or crop them, though you may modify the size to fit your use.
  • Don't use the Pandexio brand as the most prominent brand in your marketing content
  • Do not use Pandexio logos or designs to copy or imitate the look and feel of the Pandexio website, or mobile apps.

Links to Pandexio-Embedded Components

All Pandexio-embedded components are launched from links contained within your application.  When linking to a Pandexio component, the following terminology or icon should be used:


Document viewer

DocumentName.doc (view)
DocumentName.doc (view)
DocumentName (read & snip) 
DocumentName (read with Pandexio)

Snip viewer

link only

DocumentName | View Snips
DocumentName (View Snips)

 

links and snip count

DocumentName | 13 Snips
DocumentName (13 Snips)

 

links and snip list

DocumentName 
snip title
snip title
snip title
snip title
DocumentName 
snip title
snip title
snip title
+3 more

 


Point-maker

Point Title


Hypersnip and Hyperpoint Objects and Icons

It is important that we provide a consistent, cross-system experience for organizations and end users who work with Hypersnip and Hyperpoint objects.  Accordingly, Pandexio has filed trademark applications for these terms for the benefit of all organizations providing knowledge flow solutions using these objects.

They may either be referenced by their full names, or when icon-based reference is warranted, via the following symbols:


When used to reference a set of Hypersnips or set of Hyperpoints, a numeric indicator may be overlayed on the icon in white Arial font.  Example:

 

Questions?

Please contact us.

Our Logos

Integration Logos

 

Blue Logos

Download: Large, Medium or Small 

Download: LargeMedium or Small 

Download: Large, Medium or Small 

Download: LargeMedium or Small 

White Logos* 

Download: Large, Medium or Small 

Download: LargeMedium or Small 

Download: Large, Medium or Small 

Download: LargeMedium or Small 

*here with #283F61 background

Icons

Download blank 16 x 16 icon: blue or white

Download favicon

Developers Support

Name *
Name

Drop us a message if you need some help. We'll get back to you as soon as possible.


Trial Agreement

Our goal is to make it easy to embed Pandexio into your application and test it with your customers.  To facilitate that  goal, we created a simple trial agreement that you can use for up to six (6) months.  Upon approval of your plan to embed Pandexio, the below will automatically apply.  You can replace it with a formal agreement at any time during or after the trial:

 

When you embed Pandexio into your app, you become part of the Kflow Movement

One of the benefits is that your application will be designated “Kflow-enabled” and announced to members of the Kflow Movement, notably systems integrators.  Learn about more benefits at www.kflow.org.

 

You can use our marketing materials with your branding – that’s why we created them

We have created a variety of videos and other marketing materials that help educate and inspire – please use them if you find them helpful.  We can also write guest blog posts, or anything else that helps you communicate the benefits of the new functionality to your customer base.

 

Use of Pandexio under the trial agreement is free

The goal is for embedded Pandexio functionality to ultimately become an add-on upsell for you, or become part of a higher-paying premium offering.  Our standard financial terms for an add-on upsell is simple:  you get half of the upsell revenue, we get half.  If after the trial period you don’t think you can sell Pandexio as an add-on, or you would like to build Pandexio functionality into a premium offering, we’ll determine pricing at that time.

 

Users of Pandexio within your Application are YOUR customers

The users are your customers, YOU are our customer.  You will continue to use your branding with Pandexio’s new functionality within your application.  We require ingredient branding – to drive awareness and ultimately enhance the perceived value of your application.

 

We will provide tier-2 support to your customers for Pandexio functionality, treating them as if they were our valued customers

The only interaction we will have with your customers is when they are routed to us as part of the tier-2 support we will be providing you.  We will treat them as if they were our valued customers, though we will be representing your implementation of our functionality.  

 

The customer owns the data (not us or you)

Pandexio data objects are neither your data nor our data, it is your customers’ data.  We feel strongly about this.  In the unfortunate event a customer does not pay, we do not want to be in a position of withholding their data from them.     

 

We abide by your privacy policies and security policies.  

These are your customers and we’ll abide by your policies for servicing them.  There are two potential exceptions to this: (1) we follow the law, even if the law conflicts with your policies and procedures.  For example, in the event of a claimed trademark violation related to content stored within Pandexio systems, we follow the processes that we believe are required regardless of any policies you have which may conflict; (2) we make aggregate use of metrics related to the data for benchmarking purposes that benefit all organizations making use of Kflow functionality.

 

You can use our trademarks as needed to market the embedded functionality

We created them for you to use.  To use them, please follow our simple policies and procedures set forth in our Branding Guidelines.

 

You can use this trial agreement for up to six months, and you can terminate it at anytime

This agreement is designed to get up and running fast and confirm the relationship meets our mutual expectations.   It has a limited scope: you get a license to use the Pandexio API while this trial agreement is in effect.  You can’t sublicense it or use it in a way that could compromise security.  You can terminate it and/or replace it with a formal agreement at any time during the trial period.