Genie Snap Documentation
Deterministic Intake Workflow Compilation for Secure, Offline, Enterprise Operations
Genie Snap is an Operational Intake Platform built on a deterministic compiler that transforms structured or semi‑structured requirements into fully integrated intake workflows. The platform is engineered for organizations that require precision, compliance, and operational sovereignty—including defense, healthcare, financial services, government, utilities, and industrial environments.
Unlike probabilistic AI systems or template‑driven builders, Genie Snap produces consistent, repeatable, verifiable output every time. Workflows are compiled locally, run locally, and remain fully contained within your environment—no cloud services, GPUs, external APIs, or model‑dependent templates required.
Enter Genie Snap!
A secure, deterministic, high‑speed intake workflow compiler that generates production‑ready forms, APIs, and document templates in seconds—fully offline and fully under your control.This platform serves as your launchpad for modernizing operational intake. Whether starting from a document, a block of text, or a predefined specification, Genie Snap compiles complete intake applications that your teams can review, validate, and deploy with confidence. From workflow generation to submission management, you are empowered to create compliant, self‑service intake flows for onboarding, requests, approvals, payments, and more—without code, without drift, and without operational risk. Start with Quickstart. Generate your first workflow. Let clients and teammates submit, sign, pay, and respond. Then review, assign, approve, reject, request more info, or reopen—all with deterministic consistency.
Reduce engineering cycles, eliminate variability, and modernize intake operations with deterministic precision. It's a snap.
Quickstart
- First, use one of the workflow generation services.
- Second, the form opens with an editor to customize the document template, elements, appearance, lists, rules, and other parts.
- Third, when finished editing, select 'Save' and the form will appear in your Dashboard Forms list.
- Fourth, open the Form from Dashboard Forms, fill and submit to create a record in your Dashboard Submission list.
Guidance: The forms can also be opened from the Dashboard Submission list, links sent through email, links placed on sites and from the Portal utility.
Generate and Use Workflows
Generate Workflow
Guidance: When each workflow generates, the editor opens to allow the requestor to customize the form and document template. The form and the editor is always accessible from the Dashboard Forms list.
1. File-to-Workflow Generation
Guidance: Each 'File-to-Workflow' is a standard docx, doc, rtf, or pdf file that has been tagged.
- Select the menu from the right-side of the drop zone for a list of predefined files.
- Select the file to generate, and the editor opens in a separate browser tab.
- Or, download the file to examine how variables are applied to generate the workflows.
- Follow these examples creating a new file, or use a file you already have. Tag, and then drop the file into the zone to generate a form.
2. Text-to-Workflow Generation
Guidance: Use 'Text-to-Workflow' to write text directly into the input area, or type into notepad and then copy and paste into the input area.
- Select the example menu to insert into the Text-to-Workflow input area.
- Write tagged text, or write text and let the Genie automatically tag the text.
- Select 'Generate', and the editor opens in a separate browser tab.
- Use the examples to learn how to learn how text is tagged.
- Use predefined, edit predefined, or provide custom instructions. Do what works for you.
- Form access is granted to any authenticated user and may be limited by the deployment option.
Form Deployment and Opening Options
Option 1: Open from Dashboard Forms by selecting the form's name whether active or inactive.
Option 2: Open from Dashboard New Submission Dropdown by selecting the form's name. Forms only appear in New Submission list when activated from Dashboard Forms.
Option 3: Open from Portals that have been configured from Dashboard Portals.
Option 4: Open from Email Link, or Site Link by sending the link through email or placing the link on a site for clients to select.
Form Submission Persona Modes
Persona 1: Edit Mode generates a document with edit mode watermark and will not submit a Submission to the Dashboard. This is useful for testing form interaction.
Persona 2: Unverified Email Address generates a document with unverified email watermark and will submit a Submission to the Dashboard. This lets the user know that they need to verify their email address.
Persona 3: Normal Mode and Verified Email Address generates a document without watermark and will submit a Submission to the Dashboard.
SaaS Subscription
Enter and confirm your email address to start using immediately with a free subscription. With the free subscription, host up to 10 Forms and store up to 20 Submission storage limit. When more Forms and Submissions are needed, upgrade to a paid tier.
- Delete unused Forms and Submissions if applicable to your business when needing to avoid upgrade.
- Form and Submission limits are assessed independently. Tripping the Form limit restricts additional Forms from being added to your workspace. Tripping the Submission limit restricts any additional submissions from being saved to your workspace. If both have met their limit, then additional Forms and Submissions are restricted.
- Upgrade or downgrade tiers as needed. If choosing to downgrade, keep in mind that you will not be able to add additional Forms, Submissions, or both, if your Forms or Submissions exceed your chosen tier's limit, depending on which limits are tripped. You will be able to continue to access your records, view, and perform other activities.
Free Tier: 10 Form and 20 Submission Storage Limit.
Paid Tier $50.00 USD Per Month: 50 Forms and 500 Form Submission Storage Limit.
Paid Tier $150.00 USD Per Month: 500 Forms and 1000 Form Submission Storage Limit.
Paid Tier $250.00 USD Per Month: 1000 Form Forms and 2000 Form Submission Storage Limit.
Dedicated License
If SaaS Subscriptions do not meet your needs due to compliance, security, volume, or other factors, contact us to discuss Dedicated License eligibility. Installation on premises and dedicated cloud evironments is also available.
Annual License: Requires software download and license to install on your premises or cloud environment.
Dashboard
The Dashboard is the initial landing area for team members. When a user lands in the Dashboard, information is collated for that user. The user is then provided with a view of all related submissions, tasks, todos, and notifications. User access to the Dashboard is controlled by team membership. End-user access to the forms does not require team membership, and any authenticated user can use the forms.
Menu Items down the left-side of the page allows the user to work in each of those areas.
Snapshots provide top 10 items. The remainder of the information is available by selecting that section from the menu item.
New Submission is available at the top of each page, and allows team members to submit same as clients. Forms will display in this list when activated from Dashboard Forms.
Filter Submissions is available from the top of each page. Members enter search parameters and are then navigated to the submission list.
Profile users can enter their last name, first name, and address by selecting the icon from the top right corner of the screen and select profile. Please communicate this with your team members as this will include the user's name in the lists instead of just the user's email address.
Workflows
Worfklow are initially generated using 'Workflow Request', 'Ready Made Forms', 'Generate Workflow From File' or 'Generate Workflow from Text' generation services. These services are available from the portal, or by selecting 'Generate' link that is located immediately above the Forms list on the Dashboard Forms page. Select the Save button from the form that was opened with the generation service to place it in Forms list. The form is then available to open and fill by using any of the following:
From the Forms list by selecting the name, whether active or inactive.
From the Submission List when the form is active.
From Link send through email or setup on a web page. Get the form's link by going to the Dashboard Forms list record, then select and get the 'Form URL'.
From Genie Snap Portal see portals section for more details. Portals can be arranged with related forms making it easy for clients to select the form that is needed.
Need More Workflows
Select Generate Workflow and then select from 'Workflow Request', 'Ready Made Forms', 'Generate Workflow from File' or 'Generate Workflow from Text' generation services. When saved, the form is added to form's list.
Need to Import a Form
Select HTML File Upload to import a form that originated from Download Form.
Form Record
Record Select Checkbox is used only for 'Bulk Delete'.
Name was entered when the form was saved or was updated from the editor by selecting . Selecting the name opens the form allowing submission whether the Form is active or inactive.
Description was applied when the form was saved or was updated from the editor by selecting Description. Use the description to provide clear meaning to your form.
Record Owner and Team is initially set to the user that generated and saved the form to their default team. The team can be changed from the editor by selecting .
Note: A Default Team, '_Default Team' is created when a user is created. The Default Team's name and description cannot be edited nor deleted, and your username cannot be deleted from the Default Team's Team Members. You can add, edit and delete additional Default Team's Team Members on your Default Team. However, you may only edit your Name and Role on the Default Team or any Team that you own.
Guidance: A Team is assigned to each Form. One Team can go across all Forms, or there could be specific Teams for one or more Forms. For example, a Finance Team may be assigned to financial type Forms. There could be departments or other groupings that are needed to associate Teams to Form types. You can always delete Teams, create other Teams, and reassign Teams to Forms. Fewer teams generally make more sense. The system also limits the maximum number of Teams to 100.
Active controls whether this form displays in 'New Submission'. Selecting active from the list will activate / deactivate as well as setting to active from within the editor .
Operations
Copy Form is used to make a copy of the form/workflow and add it to the list. The copy can then be edited to meet the new requirements.
Delete Form will remove the form from the list but does not delete submissions created from this form.
Download Form can be used in any Dashboard by selecting 'HTML File Upload' and upload into the form list.
Download Integration Contract is used to integrate and create submissions from other sources.
Edit Form opens the editor.
Edit Record is used to make changes to the Name, Description, Active status, change Team, and get the Form's link.
In-App Payments
Guidance: Any form can be setup to collect in-app payments from your clients. All that is required is for Team Owners to setup a Stripe Connected Account from their Teams Dashboard. Then set any Team connected Form to collect specific or variable amount payments. When clients submit, they are routed to Stripe Checkout to make payment. When client payments succeed, funds are deposited into the Team Owner's Stripe connected account.
First, setup Stripe Connected Account - This is to be used by the Team Owner. The user must select the Wallet icon from any Team of which they are the Team Owner. The user is then routed to Stripe's Connected Account setup - see Stripe's documentation for further instructions. Once completed, the user is routed back to the Team Dashboard to confirm.
Second, set Forms to Collect Payments - Forms are connected to Teams and therefore any Forms connected to any Team Owner's Teams are eligible to collect payment. Navigate to Forms and select Form Edit. Then go to the 2nd icon on the Form Editor's menu and select 'In App' payment:
- Select 'Collect Payments From Clients'.
- Enter specific amount or {{elementId}} for 'Form Charge Amount'.
- Enter specific description or {{elementId}} for 'Charge Description'.
- Open 'Save Edits' menu and select checkbox 'Replace existing file and make new version of file being replaced.', and then select 'Save'.
Collect Form Payment:
- Client selects submit.
- Stripe's payment checkout page is displayed with the 'Form Charge Amount' and 'Charge Description' displayed on Stripe checkout.
- On Successful Payment funds are deposited in the Team Owner's account and the client is routed back to the HTML From.
- On Cancel or Failure the payment is cancelled or abandoned depending on whether client selects back which navigates back to form, or closes the browser before completing payment.
Submissions
Submissions are generated when clients submit from a form or API - see Download Integration Contract in the Forms section.
When a submission is created, it is automatically set to open, and a task is created.
The submission will display with 'new' in the list until that submission is selected.
The submissions are assigned to the team that the form specifies.
This allows any Team Members that open the Submission List to work with the records in their view.
Submission Record
Record Select Checkbox is used for 'Bulk Download' and 'Bulk Delete'.
Form is the form from which the form submission originated.
Team is the team that the submission is assigned and this was set by the form's team membership.
Requestor the client that submitted the form.
Date Columns Open occurs when the submission is created, or when the submission is reopened. Once a submission is set to Completed, the Opened date will be empty. Pending will remove the date from In Progress. In Progress date is set for any task that is started.
Description Use to describe the submission. Select to update description.
Comments Comments are cumulative. The submission displays the last comment, and selecting from the status displays the status and comment history. Select Comment to add a comment.
Status Status is cumulative. The submission displays the last status and selecting displays the status and comment history. Status is automatically updated as actions occur.
Operations
Submission Details Work with document, attachments, and other information submitted by requestor and team members with all versions.
Open Shortcut opens the form with the most recent submission and allows updates. A version history is stored for form input data, and generated documents are stored for each submission.
Create and Manage Tasks allows team members to assign task, approval, request information, pend, close, and reopen submissions.
Reassign to Different Team allows team members to reassign the submission to a different team.
Delete Submission removes all the submission data from the system.
Renewals
A submission can have up to two renewals, shown as links on the Submission record under Renewals: a Submission Renewal and a Signature Renewal. The Scope field on the renewal dialog identifies which one is being edited — submission or signature — and is read‑only. Selecting either link opens the renewal for that scope, where the due date, frequency, and notification settings are configured.
Name and Description label the renewal for your own reference and do not affect notifications.
Frequency Unit is fixed to month and is read‑only. Frequency Units is the number of months between each renewal — up to 240 (20 years) — and is used together with Renewal Due Date to calculate the next due date.
Renew advances the Renewal Due Date forward by the configured Frequency Units from the current due date, without saving any other changes. Submit saves the renewal, including any updated due date.
Name the Email Is From, Renewal Notify Email Address, Renewal Email Subject, and Renewal Email Message configure the notification that is sent as the due date approaches. Multiple notify addresses can be entered.
Notification Schedule The system monitors renewal due dates and automatically emails the configured recipients, with a link back to the submission, on the following schedule relative to the Renewal Due Date:
- 30 days before due
- 14 days before due
- 2 days before due
- On the due date
- 1 day after due (late)
- 2 days after due (late)
Tasks
Tasks are used to assign work to submissions. Tasks also display in the calendar.
- Assign a submission to a team member.
- Request approval from team member or client.
- Request additional information from a team member or client.
- Pend, open, or close a submission.
- Send for signature.
Task Record
Form the type of form that the submission was created.
Description is the submission description.
Team is the team that was assigned to the submission which either defaulted to the form team or submission reassigned team.
Requestor the client that submitted or updated submission.
Created is the date the task was created.
Due is the date a user sets when creating the task.
Statement is text that is either system generated or or manually entered by the person that created the task.
Assigned is the user the task is assigned.
Completed is the date that is automatically recorded when the task is completed.
Response is a user's response that is applied using .
Operations
Submission Details Work with document, attachments, and other information submitted by requestor and team members with all versions.
Edit Task allows user to review task and update with a response.
eSignature Overview
PDF Text Tags Syntax
To make a PDF template eSignature‑ready, embed standard text tags into your document before uploading. The system scans PDFs for the following Tag Field Types:
Supported Tag Field Types
Append numbers to group tags by signer (e.g., 1 for Signer 1, 2 for Signer 2). Any mix of tags can be present for each signer — for example, Signer 1 may require signature, date, and full name, while Signer 2 only requires signature and date.
| Tag Format | Field Type | Description |
|---|---|---|
\s1\ | Signature | Main signature input box for Signer #1 |
\n1\ | Full Name | Full name text field for Signer #1 |
\f1\ | First Name | First name field for Signer #1 |
\l1\ | Last Name | Last name field for Signer #1 |
\i1\ | Initials | Initials field for Signer #1 |
\d1\ | Date | Automatic completion date timestamp |
\e1\ | Email address field for Signer #1 | |
\c1\ | Company | Company / Organization name |
\r1\ | Role | Title or role description |
\stamp1\ | Stamp | Official stamp / seal image placement |
\s1\ for Signer #1, \s2\ for Signer #2, \s3\ for Signer #3). Fields belonging to a later signer remain inactive on the signing page until that signer's turn in the order.
Starting From an External Document (Document Setup)
Open Document Setup and drop in one or more PDF or Word (.docx) files — Word documents are converted to PDF automatically. Each document is scanned for the tag syntax above and handled one of two ways:
- Already Tagged: If a document already contains tags — for example, a file exported from another system with
\s1\,\n1\, etc. embedded — Document Setup automatically detects every tag, confirms the number of signers found, and lets you proceed straight to routing. - Not Yet Tagged: If no tags are found, Document Setup asks how many signers are needed and lets you place each field directly on the page by dragging it into position — Signature, Full Name, Date Signed, Initials, and the other field types from the table above. Placed fields are written into the document the same way as if it had arrived pre‑tagged.
An envelope is limited to 20 documents with a combined size of 300MB across all of them together — there is no per-document size limit, so a single very large document (a full schematic set, for example) is fine as long as the whole envelope stays under the aggregate ceiling. Document Setup shows a live running total as files are added, and blocks anything that would push the envelope over either limit. Uploads that exceed a few megabytes are automatically transferred in small pieces behind the scenes so the browser doesn't time out — there's nothing to configure for this; it just happens for larger envelopes.
Either path leads into the same Set Signing Order & Routing step described next. From there, the request behaves exactly like any other eSignature routing: it lands as a standard Submission in the Submissions portal, and the same signer authentication, status lifecycle, audit trail, and administrator tracking described in the rest of this section apply identically regardless of which path started it.
Starting From an Internal Form Submission (Document Review and Workflow)
eSignature requests can also start directly from filling out one of your own forms — no separate Document Setup step required. This applies to any form whose generated document should be routed for signature.
- Select the form from the Form Workflows list (for example, Contact Information) to open it for filling.
- Complete the form and submit it. The user lands directly on the Document Review and Workflow dialog, showing the document generated from the submission.
- If the document is tagged — see the tag syntax above — select Start Signature Process. The Set Signing Order & Routing dialog described next opens immediately, pre‑populated with the signers detected in the document.
- If the document does not contain any signature tags, Start Signature Process is replaced with Add Signature Fields. Selecting it opens a panel where you set the number of signers, then select a field type — Signature, Full Name, Date Signed, Initials, and the other field types from the table above — and drag it onto the document. Placed fields can be repositioned by dragging, or removed with the × on the field, and are color‑coded and labeled per signer so fields for different signers stay easy to tell apart. Selecting Done — Continue to Routing writes the placed fields into the document and opens Set Signing Order & Routing, exactly as the tagged path does.
- Submission Task is unrelated to the signing process — use it to communicate with other consumers of the submission's output, independent of whether a signature is ever requested.
- Selecting Download PDF saves the current generated document without starting a signature request. Closing the dialog without selecting either signature option leaves the submission unaffected — a signature request can still be started later.
From here, the request behaves exactly like any other eSignature routing: it lands as a standard Submission in the Submissions portal, and the same signer authentication, status lifecycle, audit trail, and administrator tracking described in the rest of this section apply identically regardless of which path started it.
Set Signing Order & Routing
This dialog is the shared next step for both paths above — it opens automatically from Start Signature Process or Add Signature Fields → Done. It can also be opened later for a submission that was created without immediately starting a signature request:
1. Navigate to the Submissions page.
2. Locate the target submission and select the Signature icon from the Operations column.
3. If a signing order has not yet been set for this submission, the Set Signing Order & Routing dialog opens.
The dialog displays the Document Target (the submission being routed) and the Initiator (the logged‑in user), both set automatically. Below that, specify each signer in sequential workflow execution order:
- Order — the sequence number (1, 2, 3…). Signer 2 cannot open the document until Signer 1 completes signing, and so on down the line.
- Role / Position — labels each signer's function on the document (for example, Primary Signer, Approving Field Officer, Approving Regional Officer).
- Signer Name and Signer Email Address — required for every signer added to the routing order.
- Instructions — optional, signer‑specific notes. Select 'Next Field' or select a highlighted field on the document to auto‑populate this.
Select Start Signature Process to send the document to the first signer in the order. Only Signer 1 is notified initially; each subsequent signer is notified automatically once the prior signer completes.
Signer Authentication & Signing Experience
Each signer receives a delivery email containing a secure link. The signing experience is fully hosted — signers do not need a Genie Snap account.
- Email Link + OTP: Opening the link requires the signer to authenticate with a one‑time passcode (OTP) sent to their email before the document becomes accessible.
- Document Review: The signing page highlights only the fields tagged for the current signer (for example, Full Name, Sign, Date Signed). Fields tagged for other signers remain visible but inactive.
- Next Field: Steps the signer through each of their required fields in order.
- Complete Signing: Enabled once all of that signer's required fields are completed. Submitting advances the workflow to the next signer in the order, or finalizes the document if this was the last signer.
- Contact Sender: Lets the signer message the initiator directly from the signing page with questions.
Tracking, Resending, and Aborting
Selecting the Signature icon on a submission that already has a signing order opens Existing Signing Order & Routing instead of the setup dialog, showing a live status table for every signer:
- Delivered — timestamp the signing request was emailed to that signer.
- Opened — timestamp the signer opened and authenticated into the document.
- Signed — timestamp the signer completed and submitted their signature.
Each column reads Pending until that step occurs for that signer. From this dialog:
- Abort Signing Process: Cancels the routing entirely. No further signers are notified and the document does not complete. Use this to correct a wrong signer, replace a document, or cancel a request that is no longer needed.
- Resend to Active Recipient: Re‑sends the delivery email/link to whichever signer is currently active in the order, without disturbing signers who have already completed their step.
- Tracking History: Opens the full Comment and Task Status History log for the submission, showing every eSign status transition with user, timestamp, and message.
The real‑time status of the signing workflow is continuously reflected in the Submissions list.
Submission Status Lifecycle
eSignature status updates automatically as each signer completes, and is visible directly in the Submission's Status column and Comment/Task History:
- Submission created
- eSign Started — routing has been set and the first signer notified.
- eSign #N Signed by [Name] ([email]) — repeats for each signer in order as they complete.
- eSign #[final] Signed... and eSign is Complete — all signers have completed; the submission's Completed indicator updates.
Signature Files & Audit Trail
From Submission Details → Signatures, every generated artifact for the signature routing is available for download. A discrete file is captured at each signer's step, so the complete signing history — not just the final result — remains available for review at any time.
| File | Description |
|---|---|
completed_sign.pdf | The final, fully executed document with all signers' signatures and dates applied. |
sign.pdf | The document as routed for signature, prior to full completion. |
sign_[date]_[order]_[email].pdf | An individual signed copy captured at each signer's step, in signing order. |
Each signature routing also generates a downloadable Audit Log (CSV), tied to the document's unique ID, recording every step:
| Column | Description |
|---|---|
| Date | Timestamp of the event. |
| Step Name | The document/routing step (Signing Document). |
| Description / Action | Delivered, Authenticated (Email Link + OTP), Opened, or Signed. |
| Email Address | The signer associated with the event. |
| IP Address | The network address the action was performed from. |
| DocumentUniqueId | Correlates every row to the specific signature routing instance. |
Together, the per‑signer signed files and the Audit Log form a tamper‑evident, chronological chain of custody suitable for compliance, legal, and regulated‑industry recordkeeping — generated automatically, with no separate eSignature vendor or integration required.
Administrator File Access
Administrators can select the Submission's Description link at any time to open the complete Submission Details modal. From here, admins can:
- View and download all intermediate and final signed files, and the Audit Log.
- Resend the completed, executed document to the requestor or any signer.
- Review Form, Files, and Tasks tabs alongside Signatures for full submission context.
Todo List
Todo list is used to set personal tasks. Todos also display in the calendar
Todo Record
Form the type of form that submission was created.
Description is the submission description.
Team is the team that was assigned to the submission which either defaulted to the form's team or submission reassigned team.
Requestor the client that submitted or updated submission.
Created is the date the task was created.
Due is the date a user sets when creating the task.
Statement is text that is either system generated or or manually entered by the person that created the task.
Assigned is the user the task is assigned.
Completed is the date that is automatically recorded when the task is completed.
Response is a user's response that is applied using .
Operations
Submission Details Work with document, attachments, and other information submitted by requestor and team members with all versions.
Edit Task allows user to review task and update with a response. Not available for Todo.
Open Details Work with document, attachments, and other information submitted by requestor and team members with all versions. Not available for Todo.
Notifications
Notifications are automatically set by the system when a task or todo is due or near due.
Notification Record
Created is the date the notification was created.
Due is the task or todo due date.
Status is either Due or Late.
Type is either Task or Todo.
Title is displayed for those items having a title.
Description for the Task is what is set on the response and for the Todo is the Todo's description.
Note is applied by selecting .
Operations
Delete Notification delete the notification, but if the Task or Todo is still due, the notification will generate on next cycle.
Edit Notification review the notification and apply notes.
Edit Task go to the Task related to this notification.
Edit Task go to the Task related to this notification.
Calendar
The calendar displays tasks that are assigned to you and your team, and displays the todos you have set for yourself. The calendar is accessible by selecting from the main menu, or by selecting the date located near the top right corner.
Teams
Note: A Default Team, '_Default Team' is created when a user is created. The Default Team's name and description cannot be edited nor deleted, and your username cannot be deleted from the Default Team's Team Members. You can add, edit, and delete additional Default Team's Team Members on your Default Team. However, you may only edit your Name and Role on the Default Team or any Team that you own.
Guidance: A Team is assigned to each Form. One Team can go across all Forms, or there could be more than one Team for additional Forms. For example, a Finance Team may be assigned to financial type Forms. There could be departments or other groupings that are needed as a named Team to assign to other Form types. You can always delete Teams, create other Teams, and reassign Teams to Forms; however, with a little thought, there is usually a limited number of Teams. The system also limits the maximum number of Teams to 100.
Create Team
Teams are assigned to Forms, and the Team Member permissions then provide access to the Submission, Task and Form functions. Thoroughly consider before adding a new team. When a new team is added, try to align the team's name by function or department. This way the name is easily recognized by its purpose.
Team
Each Team record displays the Name, Description, total Team Members, Date Created and Updated. The Welcome Member email may be edited along with the Name and Description on all but the Default team. Edit and Delete are only available to Team Member's with Team Manage permission and Delete is not available for Default teams.
-
- Transfer Owner Icon - This displays only to team owners in the top right corner of the team edit dialog.
-
- Name - Team name is disabled for Default teams.
-
- Description - Team description is disabled for Default teams.
-
- Welcome Member Email Subject - Email subject is used when a Team Member is added to the team. The subject is limited to 100 characters. Right-click in the subject's input area to select tags.
-
- Welcome Member Email Body - Email body is used when a Team Member is added to the team. The body is limited to 2000 characters. Right-click in the body's input area to select tags.
Members
Each Team may have up to 100 Team Members. Assign each Team Member's Name, Role and Permissions.
-
- Email Address - This is set when the member is created and cannot be edited.
-
- First and Last Name - Enter name each time a member is added to a team.
-
- Role - Role is a free-form field used to describe the member's function
-
- Permissions
- - Form Manage - Member can create, edit and delete Forms. Members in this role can do Form Design.
- - Form Design - Member can edit the Form's appearance, properties and behavior.
- - Team Manage - Member can create, edit and delete Teams. Members in this role can Manage Team Members
- - Team Member Manage - Member can add, edit and delete Team Members.
- - Submission Manage - Member can update, delete, perform tasks, and add notes to client form submissions.
- - Task Manage - Member can configure tasks that are used by members when working with submissions.
- - Task Assign - Member can assign tasks to submissions.
- - Billing Manage - Member can select plan and setup payment information.
- - Billing View - Member can view plan and payment information.
Transfer Team Ownership
To transfer ownership of a team from you to a team member, follow these steps:
- Step 1: Select Team Member menu and Add a Team Member if one does not currently exist with the Manage Team Members permission.
- Step 2: Select Edit from the Team to transfer ownership. Transfer ownership is only available from Teams where the logged-in user is the team owner.
- Step 3: Select Team Transfer Icon which displays team members which have Manage Team Members permission.
- Step 4: Select the member and then select Transfer.
- Step 5: The selected user's role is set to 'owner' and all permission are selected. The logged-in user's role is set to 'past owner' and several of the roles are removed.
- Step 6 (optional): When needed, the original owner must be manually deleted from the team members.
Portals
The Dashboard is the initial landing area for all users other than user selecting Forms from links or Forms from Portals. When a user lands in the Dashboard, information is collated for that user. The user is then provided with a view of all related submissions, tasks, todos, and notifications. The user's access is controlled by team membership.
Integrations and API
Guidance:
Genie Snap supports APIs for submissions, responses, and document generation.
Postman - Genie Snap API
One API Shape, Every Application, Never Broken by an Edit
Every workflow Genie Snap generates — whether it started as a typed sentence, an AI-drafted prompt, or an uploaded DOCX/PDF — is compiled through the same pipeline into three synchronized outputs: the HTML Form, the REST API, and the Document Template. They are not three systems that happen to be wired together; they are one specification rendered three ways in the same pass.
That's why the API's mechanics never change from one generated application to the next: the endpoint you call (WebSubmissionGenie for submissions, WebDocumentGenieGenerate for document-only generation), the Bearer authorization model, the contract structure, and the response shape are identical whether this is your first generated workflow or your five-hundredth. Only the data elements inside the contract differ. Learn the integration pattern once and you already know how to integrate every workflow this compiler will ever produce.
Editing a form doesn't retire the integrations built against it. Every contract you download carries its own version identifiers in the payload — _genieApplicationVersion, _genieVersion, and _genieSubmissionVersion — rather than the server assuming every caller wants whatever the form looks like today. A contract you integrated against a year ago still posts successfully now, even after that form has since been edited and republished several times over. There's no /v2/ endpoint to migrate to, no deprecation calendar, and no coordinated cutover window to schedule with every client already live on the old contract.
The same guarantee covers document generation. WebDocumentGenieGenerate is the same deterministic templating engine behind every generated document, for every generated application — and a document contract built against an older template version still renders the exact output structure it always has, unaffected by later template revisions.
API Authorization
Every API call must include an
Authorization header, using a Bearer token, at the top of the request:
Authorization: Bearer [apiKey]The apiKey is issued per Team.
-
Copy a Key: Go to Teams and select the edit icon for the team to copy the API Key.
-
No Key Yet: If the team does not yet have an API Key, select the button on that screen to generate a new one.
-
Change a Key: If the team already has an API Key and you want to change it, as soon as the confirmation is accepted a new key is generated. Any clients using the old API Key will no longer be allowed to access the service for that team — update all integrations with the new key before regenerating.
Submissions & Responses
All forms are ready for integration and have contracts to make it easy. When integrated, the submissions land in Dashboard Submissions same as when users select the submit button on the forms. Follow these instructions to integrate submissions and responses.
Authentication and Authorization:
- The Username parameter on all Submission APIs must be a member of the Form's Team from which the request has been made.
- The member's role must have 'Submission Manage' checked.
- The TUID & FUID must be obtained from the Dashboard -> Forms list page by selecting the Form's hyperlink in the Name column.
- When the Form opens, the TUID and FUID are located on the URL. Pass these values in the API requests.
New Submission
-
Step 1: Download the contract for the specific form from the list located at Dashboard Forms.
-
Step 2: Contract Provides elements and certificate to perform post.
-
Step 3: POST to URL endpoint https://web.geniesnap.com/WebSubmissionGenie
-
Step 4: Pass contract as raw body: Supply values to the form's elements listed after '_webGenieControl'. Element values are applied to record and document.
-
Step 5: Pass these Query parameters:
- - Username: must provide a user from that Form's Team Members.
- - Description: must provide a description up to 250 characters.
- - FUID: must match exactly what is expected on submission. FUID is obtained by selecting the 'Name' link from Dashboard Forms list and copied from the URL.
- - TUID: must match exactly what is expected on submission. TUID is obtained by selecting the 'Name' link from Dashboard Forms list and copied from the URL.
- - Operation: for a new submission, the operation parameter is 'new'.
- - Callback URL: is optional and is called with a submission response when the submission is created.
-
Step 6: When the service request is successful, the submission record is created and JSON is returned.
The JSON Response:
- - FileName: the filename and extension specifying the file type.
- - Base64Content: the file contents in a base64 stream.
- - Result: the successful submission is the new submissionUniqueId.
- - Comment: is empty.
- - Payload: is empty.
-
Step 7: When the service request is queued. Also, see Retrieve Queued Submission
The JSON Response:
- - Message: Request accepted and will be processed asynchronously. A temporary QueuedUniqueId has been assigned. Use this to correlate when notified.
- - QueuedUniqueId: A guid is assigned for queued submission creation. Provide a callback URL for the system to respond when the submission is created.
Update Submission
-
Step 1: Download the contract for the specific form from the list located at Dashboard Forms.
-
Step 2: Contract Provides elements and certificate to perform post.
-
Step 3: POST to URL endpoint https://web.geniesnap.com/WebSubmissionGenie
-
Step 4: Pass contract as raw body: Supply values to the form's elements listed after '_webGenieControl'. Element values are applies to record and document.
-
Step 5: Pass these Query parameters:
- - Username: must provide a user from that Form's Team Members.
- - FUID: must match exactly what is expected on submission. FUID is obtained by selecting the 'Name' link from Dashboard Forms list and copied from the URL.
- - TUID: must match exactly what is expected on submission. TUID is obtained by selecting the 'Name' link from Dashboard Forms list and copied from the URL.
- - Operation: for a new submission, the operation parameter is 'update'.
- - SubmissionUniqueId: this operation parameter is the uniqueId that was generated when the submission was created.
-
Step 6: When the service request is successful, the submission record is created and JSON is returned.
The JSON Response:
- - FileName: the filename and extension specifying the file type.
- - Base64Content: the file contents in a base64 stream.
- - Result: the successful submission is 'updated'.
- - Comment: is empty.
- - Payload: is empty.
Delete Submission
-
Step 1: Download the contract for the specific form from the list located at Dashboard Forms.
-
Step 2: Contract Provides elements and certificate to perform post.
-
Step 3: POST to URL endpoint https://web.geniesnap.com/WebSubmissionGenie
-
Step 4: Pass contract as raw body: No values are required for the Form's elements listed after '_webGenieControl'.
-
Step 5: Pass these Query parameters:
- - Username: must provide a user from that Form's Team Members.
- - FUID: must match exactly what is expected on submission. FUID is obtained by selecting the 'Name' link from Dashboard Forms list and copied from the URL.
- - TUID: must match exactly what is expected on submission. TUID is obtained by selecting the 'Name' link from Dashboard Forms list and copied from the URL.
- - Operation: for a new submission, the operation parameter is 'delete'.
- - SubmissionUniqueId: this operation parameter is the uniqueId that was generated when the submission was created.
-
Step 6: When the service request is successful, the submission record is created and JSON is returned.
The JSON Response:
- - FileName: is empty.
- - Base64Content: is empty.
- - Result: the successful submission is 'deleted' or a message if there is a failure.
- - Comment: is empty.
- - Payload: is empty.
Retrieve Submission
-
Step 1: Download the contract for the specific form from the list located at Dashboard Forms.
-
Step 2: Contract Provides elements and certificate to perform post.
-
Step 3: POST to URL endpoint https://web.geniesnap.com/WebSubmissionGenie
-
Step 4: Pass contract as raw body: No values are required for the Form's elements listed after '_webGenieControl'.
-
Step 5: Pass these Query parameters:
- - Username: must provide a user from that Form's Team Members.
- - FUID: must match exactly what is expected on submission. FUID is obtained by selecting the 'Name' link from Dashboard Forms list and copied from the URL.
- - TUID: must match exactly what is expected on submission. TUID is obtained by selecting the 'Name' link from Dashboard Forms list and copied from the URL.
- - Operation: for a new submission, the operation parameter is 'retrieve'.
- - SubmissionUniqueId: this operation parameter is the uniqueId that was generated when the submission was created.
-
Step 6: When the service request is successful, JSON is returned.
The JSON Response:
- - FileName: the filename and extension specifying the file type.
- - Base64Content: the file contents in base64 stream.
- - Result: the successful submission is 'retrieved'.
- - Comment: JSON list of comments in base64 stream.
- - Payload: JSON data elements in base64 stream.
Retrieve Queued Submission
-
Step 1: Download the contract for the specific form from the list located at Dashboard Forms.
-
Step 2: Contract Provides elements and certificate to perform post.
-
Step 3: POST to URL endpoint https://web.geniesnap.com/WebSubmissionGenie
-
Step 4: Pass contract as raw body: No values are required for the Form's elements listed after '_webGenieControl'.
-
Step 5: Pass these Query parameters:
- - Username: must provide a user from that Form's Team Members.
- - FUID: must match exactly what is expected on submission. FUID is obtained by selecting the 'Name' link from Dashboard Forms list and copied from the URL.
- - TUID: must match exactly what is expected on submission. TUID is obtained by selecting the 'Name' link from Dashboard Forms list and copied from the URL.
- - Operation: for a new submission, the operation parameter is 'retrieve'.
- - QueuedUniqueId: this operation parameter is the queuedUniqueId that is returned when a new submission request is queued. Use this to correlate when a queued submission is created by using callback URL.
-
Step 6: When the service request is successful, JSON is returned.
The JSON Response:
- - QueuedUniqueId: is the queuedUniqueId that was issued when the new submission was queued during creation.
- - Operation: new or created
- - Status: "Submisison Created"
- - Timestamp: Utc.
- - Result: JSON submission record.
Retrieve Submission List
The list retrieves all submissions related to the Username's teams' associations. This means that even though the contract was downloaded for a form, the list is obtained by the team relationships.
-
Step 1: Download the contract for a specific form from the list located at Dashboard Forms.
-
Step 2: Contract Provides elements and certificate to perform post.
-
Step 3: POST to URL endpoint https://web.geniesnap.com/WebSubmissionGenie
-
Step 4: Pass contract as raw body: No values are required for the Form's elements listed after '_webGenieControl'.
-
Step 5: Pass these Query parameters:
- - Username: must provide a user from that Form's Team Members.
- - FUID: must match exactly what is expected on submission. FUID is obtained by selecting the 'Name' link from Dashboard Forms list and copied from the URL.
- - TUID: must match exactly what is expected on submission. TUID is obtained by selecting the 'Name' link from Dashboard Forms list and copied from the URL.
- - Operation: for retrieve, the operation parameter is 'retrievelist'.
-
- StartId: The submission id to begin request.
- StartId is 0 to get from the first submission.
- StartId can start from any number
- When retrieving records sets, get the last Id from the previous data set and set StartId to that value.
- - Rows: The number of submissions to retreive on each request.
- - Description: Search submissions for a specific description.
- - RequestorEmailAddress: Search submissions for a specific requestor's email address.
- - SearchFormUniqueId: Search submissions for a specific form.
- - State: Search submissions for open, closed, pend.
- - DateFrom: Search submissions from a specific date.
- - DateTo: Search submissions up to a specific date.
-
Step 6: When the service request is successful, a JSON list of responses with SubmissionId, FileName and Description is returned. To retrieve details, use the Retrieve Submission service.
- - FileName: this is empty.
- - Base64Content: this is empty.
- - Result: the successful submission is 'retrieved list'.
- - Comment: this is empty.
- - Payload: JSON list of submissions in base64 stream.
Document Generation
All forms are ready for integration and have contracts to make it easy. This contract can also be used solely for the purpose of document generation without creating a submission. Follow these instructions to generate documents.
Authentication and Authorization:
- The Username parameter on all Submission APIs must be a member of the Form's Team from which the request has been made.
- The member's role must have 'Submission Manage' checked.
- The TUID must be obtained from the Dashboard -> Forms list page by selecting the Form's hyperlink in the Name column.
- When the Form opens, the TUID is located on the URL. Pass the value in the API requests.
-
Step 1: Download the contract for the specific form from the list located at Dashboard Forms.
-
Step 2: Contract Provides elements and certificate to perform post.
-
Step 3: POST to URL endpoint https://web.geniesnap.com/WebDocumentGenieGenerate
-
Step 4: Pass contract as raw body: Supply values to the form's elements listed after '_webGenieControl', which are the element names you'll find in the HTML page.. Element values are applied to document and no record is created.
-
Step 5: Pass these Query parameters:
- - Username: must provide a user from that Form's Team Members.
- - TUID: must match exactly what is expected on submission. TUID is obtained by selecting the 'Name' link from Dashboard Forms list and copied from the URL.
-
Step 6: When the service request is successful, the document is the service response.
Form UI Integration Button
At the top of each form, users can click a button to pull in external data and have it applied directly to the form's input elements.
The button can be customized to use either POST or GET requests, along with variable inputs, headers, and a POST body if needed.
You can also customize the mapping so that fields from the external data line up correctly with the form’s inputs by name.
A built‑in test area lets you verify that the data pull works as expected before using it live.
Select Form Wizard Integration Button for details.
eSignature API
The eSignature API lets you create, route, and retrieve eSignature requests directly through WebSubmissionGenie, without building a Genie Snap form template first.
See eSignature Overview for the PDF tagging syntax and the manual signing workflow — these API calls produce and manage the same submissions and routing.
Username: a team member's email address that must have 'Manage Submissions' access.
FUID: these calls are not tied to a specific form. Copy and paste the all-zero GUID exactly:
00000000-0000-0000-0000-000000000000.TUID: the teamUniqueId that owns the record — found by editing the Team.
New eSign
Create a new eSignature process from a PDF (or Word document converted to PDF) supplied in the request.
-
Step 1: POST to URL endpoint https://web.geniesnap.com/WebSubmissionGenie
-
Step 2: Pass these Query parameters:
- - Username: team member email address that must have 'Manage Submissions' access.
- - Description: displayed on the record.
- - FUID: 00000000-0000-0000-0000-000000000000 — copy and paste the all-zero GUID exactly.
- - TUID: the teamUniqueId that owns the record — found by editing the Team.
- - Operation: for a new eSign, the operation parameter is
new_esign. - - Callback URL: optional. Reports on Create, Sign, Abort, and Complete events — see Webhook Callbacks.
-
Step 3: Pass this Post Body as raw JSON:
[ { "Name": "_webGenieDocumentGenerateIgnoreValidation", "Value": "True" }, // leave alone { "Name": "_webGenieReferenceDocument", "Value": "[the base64 PDF]" }, { "Name": "_webGenieFileName", "Value": "[the base64 PDF file name]" }, { "Name": "_genieApplicationVersion", "Value": "1" }, // leave alone { "Name": "_webGenieParser", "Value": "{{,}}" }, // leave alone { "Name": "_webGenieValidation", "Value": "" }, // leave alone { "Name": "_webGenieDataContract", "Value": "" }, // leave alone { "Name": "_genieId", "Value": "00000000-0000-0000-0000-000000000000" }, // leave alone { "Name": "_genieVersion", "Value": "1" }, // leave alone { "Name": "_genieSubmissionVersion", "Value": "1" }, // leave alone { "Name": "_genieFormHREF", "Value": "" }, // leave alone { "Name": "_signers", "Value": "[{\"Order\": 1, \"Role\": \"Signer 1\", \"Name\": \"Joe\", \"Email\": \"[email protected]\", \"Instructions\": \"Please click 'Next Field' or select a highlighted area to complete your document review.\"}, {\"Order\": 2, \"Role\": \"Signer 2\", \"Name\": \"Sally\", \"Email\": \"[email protected]\", \"Instructions\": \"Please click 'Next Field' or select a highlighted area to complete your document review.\"}]" } ]Fields marked "leave alone" must be passed exactly as shown. The_signersarray must have one matching entry for each signer order tagged in the base64 PDF — see PDF Text Tags Syntax if the document isn't tagged yet. -
Step 4: When the request is successful, JSON is returned:
- - fileName: the filename that was sent in the body.
- - base64Content: the base64 PDF that was sent in the body.
- - payload: empty.
-
- result: a JSON-encoded string containing:
- - SubmissionUniqueId: the parent record ID — keep it for renewals, since it groups any future eSignature events for this document. Use it to look up the record.
- - SignDocumentUniqueId: the document's unique ID. Use it, together with the SubmissionUniqueId, to look up information on the eSign.
- - comment: empty.
{ "fileName": null, "base64Content": null, "payload": "", "result": "{\"SubmissionUniqueId\":\"f247630b-399a-f111-972f-cc47406ca203\",\"SignDocumentUniqueId\":\"dc2a8b9a-5c99-4320-b726-e3db5e06e042\"}", "comment": "" }
Multi-Document eSign
A single eSign envelope can route more than one document through the same signer sequence in one request. Add a _webGenieDocuments entry to the same new_esign body described above — every other field, including _webGenieReferenceDocument / _webGenieFileName (which becomes document 1, the lead document) and _signers, stays the same.
.docx source to PDF before base64-encoding it, or the request will fail once a signer opens it.
-
_webGenieDocuments: a JSON-encoded string (same convention as
_signers) containing an array of documents, in order:- - Order: 1-based position in the envelope. Document 1 should be the same file as
_webGenieReferenceDocument. - - Title: display name for the document — used to build its stored filenames (e.g.
sign_2_Exhibit_A.pdf,completed_Exhibit_A.pdf) and shown in the Submission's file list. - - FileName: the original filename, including its
.pdfextension. - - FileBase64: the base64-encoded PDF bytes for that document.
- - Order: 1-based position in the envelope. Document 1 should be the same file as
[
{ "Name": "_webGenieDocumentGenerateIgnoreValidation", "Value": "True" }, // leave alone
{ "Name": "_webGenieReferenceDocument", "Value": "[base64 of document 1 - the lead document]" },
{ "Name": "_webGenieFileName", "Value": "NDA.pdf" },
{ "Name": "_genieApplicationVersion", "Value": "1" }, // leave alone
{ "Name": "_webGenieParser", "Value": "{{,}}" }, // leave alone
{ "Name": "_webGenieValidation", "Value": "" }, // leave alone
{ "Name": "_webGenieDataContract", "Value": "" }, // leave alone
{ "Name": "_genieId", "Value": "00000000-0000-0000-0000-000000000000" }, // leave alone
{ "Name": "_genieVersion", "Value": "1" }, // leave alone
{ "Name": "_genieSubmissionVersion", "Value": "1" }, // leave alone
{ "Name": "_genieFormHREF", "Value": "" }, // leave alone
{
"Name": "_webGenieDocuments",
"Value": "[{\"Order\":1,\"Title\":\"NDA\",\"FileName\":\"NDA.pdf\",\"FileBase64\":\"[base64 of document 1]\"},{\"Order\":2,\"Title\":\"Exhibit A\",\"FileName\":\"ExhibitA.pdf\",\"FileBase64\":\"[base64 of document 2]\"}]"
},
{
"Name": "_signers",
"Value": "[{\"Order\": 1, \"Role\": \"Signer 1\", \"Name\": \"Joe\", \"Email\": \"[email protected]\", \"Instructions\": \"Please click 'Next Field' or select a highlighted area to complete your document review.\"}, {\"Order\": 2, \"Role\": \"Signer 2\", \"Name\": \"Sally\", \"Email\": \"[email protected]\", \"Instructions\": \"Please click 'Next Field' or select a highlighted area to complete your document review.\"}]"
}
]
SignDocumentUniqueId behave exactly as in the single-document case above; that ID now identifies the whole multi-document envelope, and the completion package delivered by email contains every document in the envelope.
Large Envelopes: Chunked Upload
A request whose JSON body is small enough can be posted directly, exactly as shown above. For a very large envelope — the combined base64 of several sizable documents can easily exceed what a single HTTP request should carry — post the same JSON body in pieces instead, using three additional endpoints under the same https://web.geniesnap.com/WebSubmissionGenie path.
Authorization: Bearer [apiKey]. This applies to StartUploadSession and UploadChunk individually, not just CompleteUploadSession at the end.
-
1. StartUploadSession — POST to
https://web.geniesnap.com/WebSubmissionGenie/StartUploadSession, with theAuthorizationheader set, and a body of{ "TotalSizeBytes": <byte length of the full JSON body, UTF-8 encoded> }. Returns{ "uploadSessionId", "chunkSizeBytes", "totalChunks" }. -
2. UploadChunk — POST to
https://web.geniesnap.com/WebSubmissionGenie/UploadChunkonce per chunk, in any order, with theAuthorizationheader set on every call, and a body of{ "UploadSessionId", "SequenceNumber", "ChunkBase64" }. Encode the full JSON body to UTF-8 bytes once, then slice it intochunkSizeBytes-sized byte ranges by positionSequenceNumber × chunkSizeBytes— slicing raw bytes rather than the text itself means a chunk boundary can safely fall in the middle of a multi-byte character; base64-encode each byte slice for transport. -
3. CompleteUploadSession — once every chunk has been sent, POST to
https://web.geniesnap.com/WebSubmissionGenie/CompleteUploadSessionwith the same query parameters (Username, Description, FUID, TUID, Operation, CallbackUrl) and Authorization header the direct call above would have used, plus a body of{ "UploadSessionId" }. The response is identical in shape to posting the whole body directly.
WebSubmissionGenie operation whose JSON body is too large for a single request, since CompleteUploadSession feeds the reassembled body through the exact same processing as a direct post.
Retrieve eSign Documents
Retrieve the list of eSign documents for a submission by its submissionUniqueId.
-
Step 1: POST to URL endpoint https://web.geniesnap.com/WebSubmissionGenie
-
Step 2: Pass these Query parameters:
- - Username: team member email address that must have 'Manage Submissions' access.
- - FUID: 00000000-0000-0000-0000-000000000000 — copy and paste the all-zero GUID exactly.
- - TUID: the teamUniqueId that owns the record — found by editing the Team.
- - SubmissionUniqueId: the record ID returned from New eSign.
- - Operation:
retrieveesigndocuments
-
Step 3: Pass this Post Body as raw JSON:
[{ "Name": "SubmissionUniqueId", "Value": "69be885c-6399-f111-972e-cc47406ca203" }] -
Step 4: When the request is successful, a JSON array is returned — one entry per eSign document on the submission:
- - uniqueIdentifier: the document's unique identifier.
- - signDocumentTaggedUniqueId: the DocumentUniqueId used with Retrieve Document Route and Retrieve Document File.
- - documentSource: the document name.
- - documentSourceId: the submissionUniqueId the document belongs to.
- - dateCreated / dateUpdated: UTC timestamps.
- - status: the current eSign status (for example, Aborted or Completed).
- - signDocumentRouteUniqueId / signDocumentRouteOrderUniqueId: internal routing identifiers.
- - createdByEmail / createdByName: the user that created the request.
- - callbackURL: the callback URL configured for the request, if any.
Retrieve eSign Document Route
Retrieve the signing order and per-signer status for a specific document.
-
Step 1: POST to URL endpoint https://web.geniesnap.com/WebSubmissionGenie
-
Step 2: Pass these Query parameters:
- - Username: team member email address that must have 'Manage Submissions' access.
- - FUID: 00000000-0000-0000-0000-000000000000 — copy and paste the all-zero GUID exactly.
- - TUID: the teamUniqueId that owns the record — found by editing the Team.
- - DocumentUniqueId: the signDocumentTaggedUniqueId from Retrieve eSign Documents.
- - Operation:
retrieveesigndocumentroute
-
Step 3: Pass this Post Body as raw JSON:
[{ "Name": "DocumentUniqueId", "Value": "D3391A4A-19E6-491A-8F87-1456707F9EAC" }] -
Step 4: When the request is successful, a JSON array is returned — one entry per signer in the routing order:
- - signDocumentUniqueId: the DocumentUniqueId this route belongs to.
- - emailAddress / name / role / order: the signer's details and position in the signing order.
- - instructions: the instructions shown to that signer.
- - dateDelivered / dateOpened / dateSigned / dateAborted: UTC timestamps for each step; null until the step occurs.
- - dateCreated: UTC timestamp the route was created.
- - base64PDF / base64PDFFile: not populated by this operation — use Retrieve eSign Document File instead.
Retrieve eSign Document File
Retrieve the completed, signed PDF file for a document.
-
Step 1: POST to URL endpoint https://web.geniesnap.com/WebSubmissionGenie
-
Step 2: Pass these Query parameters:
- - Username: team member email address that must have 'Manage Submissions' access.
- - FUID: 00000000-0000-0000-0000-000000000000 — copy and paste the all-zero GUID exactly.
- - TUID: the teamUniqueId that owns the record — found by editing the Team.
- - DocumentUniqueId: the signDocumentTaggedUniqueId from Retrieve eSign Documents, which is the same as the DocumentUniqueId used in Step 2 of Retrieve eSign Document Route. A record can have multiple signed documents.
- - SubmissionUniqueId: the record ID.
- - Operation:
retrieveesigndocumentfile
-
Step 3: Pass this Post Body as raw JSON:
[ { "Name": "DocumentUniqueId", "Value": "1628BC4B-8199-4128-97FE-7E6A5DDFD255" }, { "Name": "SubmissionUniqueId", "Value": "a8793386-5e99-f111-972e-cc47406ca203" } ] -
Step 4: When the request is successful, the response body is the completed, signed PDF as a base64 string.
Webhook Callbacks
When a Callback URL is supplied on New eSign, Genie Snap reports eSignature lifecycle events to that URL as they occur. All reported times are UTC.
| Operation | Status | Notes |
|---|---|---|
Create | Submission Created for eSignature | No PDF is supplied on this step. |
Sign | eSign Signed | No PDF is supplied on this step. |
Abort | eSign Aborted | No PDF is supplied on this step. |
Complete | eSign Completed | Contains the completed and tamper-resistant PDF in base64. |
SignDocumentUniqueId is returned on the Create event — record this against your system and use it to correlate the Sign, Abort, and Complete events for that specific document.
Event Integrations
Guidance:
Integrations allow your forms and integrations to communicate with external systems, internal forms, email services, and webhook endpoints.
Each integration follows a two‑step process: Create the integration, then Update it to configure details.
Once configured, toggle the Active column to enable it.
There can be any number of integration events configured for each form.
e.g. You want two email notifications to go out — one could be sent to finance with a templated email and attached contract.
Then a second email could go to the operations team with its own templated message, along with the contract and JSON data.
e.g. You want two integrations to send to external downstream systems when an onboarding request is submitted —
configure two separate outbound integrations and select whether each sends the document, the JSON payload, or both.
Note — External Lookup Lists are available and can be applied to all forms accessible across your teams.
When using the wizard, open a dropdown and it will list the "Activated" External Lookup Lists available within your scope.
For best performance, limit the paginated list size to 20.
Chain multiple Genie Snap submission records across workflow types.
e.g. Use an employee onboarding request form to automatically create a security access request, a hardware request, and a system access request.
This would be three separate Genie Snap configurations that are generated any time an onboarding request occurs.
To do this, the forms must exist in Genie Snap, and you must create three separate Internal Submission Generators — each mapping the Onboarding Request to its target form.
From this, when the Onboarding Request is submitted, all Internal Submissions are created from that single request, and the resulting records will appear in each team’s submission to work those items.
- Step 1: Create the integration type by selecting "Create Integrtions" link. You'll select the integration type from here.
- Step 2: Upon saving from step 1, an integration record is created and here you'll edit the properties that are unique to that integration type.
- Step 3: Update the integration and then select the test button.
- Step 4: Select "Active" from the integration list when ready to use.
Genie Snap supports four integration event types that are in addition to API and web form get integration. Each type is designed to automate a different part of your workflow: External Lookup Lists, Internal Submission Generators, Outbound Push Email, and Outbound Push Integrations. These integrations run automatically when submissions are created or updated, depending on your configuration and the external lookup list is on demand.
External Lookup List
External Lookup Lists allow your forms to retrieve data from external APIs. These lists appear as selectable integrations inside the Form Wizard and populate dropdowns dynamically.
Configuration Steps
- Step 1: Select External Lookup List from the Integration Type dropdown.
- Step 2: Enter Name and Description.
- Step 3: Choose GET or POST.
- Step 4: Enter the URL Endpoint.
-
Step 5: Enter URL Credentials in JSON format.
Example:
{"username":"apiuser","password":"apipass"} -
Step 6: For POST requests, provide:
- POST Body (JSON)
- POST Content Type
-
Step 7: Configure:
- List Display Column — the field shown in the dropdown
- List Value Column — the value stored when selected
- List Filter Column — optional filter field
- Step 8: Select Update to save.
- Step 9: Select Test to validate the API.
pageSize and pageNumber.
GET Example:
?pageSize=80&pageNumber=1POST Example:
{
"pageSize": "80",
"pageNumber": "1"
}
Expected API Response Format:
{
"items": [
{ "name": "name 1", "value": "value 1" },
{ "name": "name 2", "value": "value 2" }
]
}
Internal Submission Generator
Internal Submission Generators create or update submissions in another form automatically. This is useful for chaining workflows, generating contracts, or creating downstream records.
Configuration Steps
- Step 1: Select Internal Submission Generator.
- Step 2: Choose the Source Form and Target Form.
- Step 3: Select Create to generate the mapping.
-
Step 4: Edit the integration:
- Name
- Description
- On Create and/or On Update
- Map Source Fields to Target Fields
- Step 5: Select Update to save.
- Step 6: Select Test to validate mapping compatibility.
Outbound Push Email
Outbound Push Email sends automated emails when submissions are created or updated. Emails may include JSON data, generated documents, or both.
Configuration Steps
- Step 1: Select Outbound Push Email.
-
Step 2: Enter:
- Name
- Description
- On Create and/or On Update
- To Email Address
- Name (recipient name)
- Subject
- Body
- Include JSON and/or Include Document
- Step 3: Select Update to save.
- Step 4: Select Test to validate configuration.
Outbound Push Integration
Outbound Push Integrations send submission data to external systems via webhook endpoints. These integrations support JSON payloads, document payloads, or both. The submission ID, form ID, form name, transaction type ('create', 'update', 'Test Transaction'), and the payload or JSON that is selected.
Configuration Steps
-
Step 1: Create the integration by entering:
- Name
- Description
- Type = Outbound Push Integration
- Source Form
-
Step 2: Edit the integration:
- Name
- Description
- On Create and/or On Update
- POST (required for payload)
- URL Endpoint
- Credentials (use
{}if none) - Include JSON and/or Include Document
- Step 3: Select Update to save.
- Step 4: Select Test to send a test payload.
Test Payload Result Format:
{
"submissionId": "00000000-0000-0000-0000-000000000000",
"formUniqueId": "...",
"transactionType": "Test Transaction",
"formName": "...",
"jsonData": {
"fileName": "data.json",
"base64": "..."
},
"document": {
"fileName": "document.txt",
"base64": "..."
}
}
Activation
After configuring any integration, return to the Integrations list and toggle the Active column. Only active integrations will run during submission events.
Account Delete
ACCOUNT DELETE IS UNRECOVERABLE.
Select 'Account Delete' to delete 'All' Forms, Submissions, Tasks, Notifications, Portals and Team Members for all Teams where you are the 'Team Owner'. This action also deletes all your Todo. Once this action completes, you will also be immediately signed out.
** Account Delete does not delete any data from where you are not the 'Team Owner'.