Inspiration

I am interested in Generative AI and had already worked with Dropbox service integration few months ago, hence Dropbox Sign challenge is an opportunity to showcase Dropbox Sign API service and generative AI

What it does

Combosign help organizations to prepare document agreement content based on templates and generative AI, and facilitate digital signing between Organization and its Partner(s) thanks to Dropbox Sign API. The MVP is illustrated with contract agreement management.

The following use cases are available below :

Admin Access

content (text, PDF,...) stored in documents folder will be ingested in Pinecone Vector database to create and/or update an Index

User Access

organization representative can be assisted to define an agreement document by querying interactively the indexed content in previous "Admin Access" step. The user would be able to modify the document for instance to add partnership signature information or change the content, before digital sign process

Digital Sign

organization representative can then trigger digital signing thanks to Dropbox Sign embedded signing feature implemented as iFrame inside the frontend appplication and using the agreement document defined in previous "User Access" step

How we built it

Combosign solution includes :

  • a frontend module to enable end users to define the document to be signed between organization and partner(s) and trigger digital signing with Dropbox sign embedded signing with iFrame approach

  • a middleware module implementing Retrieval Augmented Generation (RAG) with Large Language Model (LLM) approach to ingest and query custom external documents/templates. Based on OpenAI API Interaction , Prompt process may be used to precise the user context, init draft document, perform summary or translation of agreement documents

  • Vector Database to store and retrieve vector data efficiently

  • Dropbox Shared Folder enabling to store and share Data content

Challenges we ran into

  • Integration of Dropbox Sign client library within Next JS application : after testing API call attempt which result in failures, I found a working solution using link

  • Dropbox Sign Test development conditions. After multiple failures, I manage to fix the problem about testMode parameter declaration

  • Dropbox Sign Events Callback :

    • based on multipart/form-data content-type on Next JS => requires special fix to parse multipart format before handling JSON event payload
    • json callback event data test received issue using Dropbox sign EventCallbackHelper isValidity method
{"event":
    {"event_type":"callback_test",
     "event_time":"1696152461",
     "event_hash":"1ca001d467a23e51aa8ecf420974935751308306a09f68405e2400ac66fc4f77",
     "event_metadata":{
        "related_signature_id":null,
        "reported_for_account_id":"94d19a6b9d2c4d37903467447406c85ed6588ff1",
        "reported_for_app_id":null,
        "event_message":null
      }
    }
}
exception:TypeError: Cannot read properties of undefined (reading 'eventTime')

=> fix by applying dynamic json data replacement of snake_case naming style format into camelCase style format (for instance event_time field becomes eventTime )

  • Project Video (less than 3 mn) with subtitles : Dropbox Capture has been used to screen cast on laptop several parts (introduction, application demo, roadmap), then they have been merged after some trim if necessary, subtitles have been added afterwards to enable better understanding of video

Warning :

  • With free Trial Plan, embedded sign can only work in local development test mode. It requires paid plan for deployed apps

  • With free Trial Plan, oauth authorization process works only with own (developer) Dropbox sign account. It requires app approval to test authorization process for other users

Accomplishments that we're proud of

  • a running application with frontend module hosted on vercel which showcases an MVP enabling to select an agreement document and trigger embedded signing thru an iFrame inside the frontend module

combosign vercel run app

combosign local sign

  • app events callback, whose url has been tested successfully as illustrated in the screenshot below

combosign dropbox sign app events callback

  • app oauth authorization management to receive, after authorization organization user grant, dynamic code, which will be used to generate access token, and later on from refresh token.

combosign dropbox sign authorize

What we learned

  • Dropbox sign integration in local development test mode

  • Dropbox sign events callback and oauth authorization process with own developer account

What's next for combosignAI

  • complete the dataset

  • enhances the frontend application

  • complete oauth2 process for token dynamic management and embedded signature confirmation event handling

  • paid plan (with organization and oauth2 to grant combosign to access their resources) to get embedded sign for deployed app

Built With

  • axios
  • dropbox
  • dropboxcapture
  • dropboxsign
  • hellosign-embedded
  • langchain
  • multiparty
  • nextjs
  • oauth2
  • openai
  • pdf-parse
  • pineconeindexvectordb
  • vercel
Share this project:

Updates