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


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

- 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.

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
Log in or sign up for Devpost to join the conversation.