Documents
Overview
At the heart of the FormKiQ document management platform lies a sophisticated framework that seamlessly integrates storing, retrieving, and organizing documents. Built on Amazon S3, our platform's robust storage capabilities ensure documents are securely housed and easily retrievable, guaranteeing data integrity and scalability.
Documents can be organized in a way that mirrors their workflow, projects, or departments. This intuitive hierarchy ensures efficient navigation, as documents are logically grouped for swift access. Users can effortlessly retrieve specific files by browsing through familiar folder paths or by utilizing powerful search functionalities. This combination of advanced storage solutions and user-centric organization not only streamlines document management but also enhances collaboration and knowledge sharing across teams.
See full API documentation here
Core Components
Document Metadata
FormKiQ supports two types of metadata for maximum flexibility:
Standard Metadata
Essential document properties tracked automatically:
- Path/filename
- Content type
- Checksum
- File size
- Deep link path (enabling an external document's metadata to be included within FormKiQ while the file object itself is stored in another system)
Extended Metadata
Custom data directly attached to documents:
- Supports up to 25 metadata entries per document
- Versioned with document changes
- Enables comprehensive audit trails
- Searchable through full-text solutions
When using document versioning, as documents evolve and new versions are created, the platform retains a historical record of metadata changes, providing a comprehensive history of the document's attributes across iterations. This powerful feature allows for accurate tracking and auditing for document controls.
Each document only supports up to 25 Metadata entries.
Document Attributes
FormKiQ's document management platform revolutionizes document organization through powerful document attributes that enable:
- Custom classification schemes
- Advanced search functionality
- Workflow automation
- Access control
See full API documentation here Learn more about Attributes
Key Features
-
Customizable Document Attributes Users can define and assign specific attributes to each document. These attributes may include document type, author, creation date, department, confidentiality level, and more. By enabling tailored metadata, this feature supports various document management needs across different industries.
-
Searchable Attributes Document attributes are searchable, allowing users to quickly locate documents based on specific metadata. The platform's search functionality leverages these attributes to deliver highly accurate results, saving time and reducing search effort.
-
Schema-based Classification Utilizing SiteSchema, document attributes can be organized into predefined classifications. This schema-based organization allows for consistency across documents and makes it easier to enforce organizational standards for document handling.
-
Dynamic Document Classification Documents can be automatically or manually classified based on their attributes. This dynamic classification improves the accuracy of document categorization and simplifies document retrieval.
Document Relationships
The Document Relationship feature enables users to create logical links between documents, essential for connecting related files and providing context for how documents relate to each other.
Relationship Types:
- PRIMARY: Main document serving as the principal source
- ATTACHMENT: Supporting files linked to primary documents
- APPENDIX: Additional reference materials
- SUPPLEMENT: Standalone supplementary information
- ASSOCIATED: Documents with non-hierarchical connections
- RENDITION: Alternative formats or translations
- TEMPLATE: Templates, such as those used in document generation
- DATASOURCE: Datasources, such as those used in document generation
Document Management Features
Document Actions
The primary purpose of Document Actions is to enhance the document management workflow by automating tasks such as content extraction, metadata tagging, notifications, integrations with other systems, and security checks.
By leveraging these actions, you can improve efficiency, ensure data consistency, and integrate your document processes with broader business systems.
Use Cases
Optical Character Recognition (OCR):
Automatically extract text from scanned images or PDFs. This is useful for converting non-searchable documents into searchable ones, enabling better indexing and retrieval.
Full-Text Extraction:
Extract all textual content from a document for indexing or analysis purposes. This action helps in creating a searchable text corpus that can be used for quick lookups or further natural language processing.
Document Tagging:
Utilize machine learning or external engines (like ChatGPT) to analyze the document and generate relevant metadata or tags. This can standardize how documents are categorized, making it easier to filter and search documents later.
Webhook Integration:
Trigger an external system by sending a callback URL when a document is processed. For instance, after a document is updated, a webhook can notify your CRM system or a third-party application to take further action.
Notification:
Send out email notifications (or other types of alerts) automatically when certain events occur—such as when a new document is added or when an important document status changes. This helps keep teams informed and facilitates rapid response.
Intelligent Document Processing (IDP)
Apply advanced machine learning models to classify, extract, and validate data from documents. For instance, an IDP action might analyze invoices to extract key fields (like dates, amounts, and vendor information) and validate them against internal systems, improving data accuracy and speeding up document workflows.
EventBridge Integration
Publish document events to AWS EventBridge so that various parts of your ecosystem can react to document changes in real time.
Antivirus Scanning
Automatically scan documents for viruses or malware as soon as they are added, enhancing the security of your document repository.
Supported Actions
FormKiQ supports various automated actions for document processing:
Action | Description | Edition |
---|---|---|
ANTIVIRUS | Scans documents using ClamAv for detecting trojans, viruses, malware & other malicious threats | Explore and Commercial Deployments (Essentials, Advanced, Enterprise) |
DOCUMENTTAGGING | Intelligent document tagging using artificial intelligence | Core |
EVENTBRIDGE | Enables AWS EventBridge integration for event-driven architectures. Sends document data and metadata as events for further processing. Full EventBridge documentation | Core |
FULLTEXT | Extracts and indexes text content for search capabilities using Typesense or Opensearch | Core (TypeSense), OpenSearch is an Add-On for Advanced and Enterprise Deployments |
IDP | Extracts and processes document data using Document Attributes | Explore and Commercial Deployments (Essentials, Advanced, Enterprise), as well as optional Add-Ons |
NOTIFICATION | Email notifications | Core |
OCR | Text extraction from images/PDFs | Core (Tesseract), with Amazon Textract available with Explore and Commercial Deployments (Essentials, Advanced, Enterprise), as well as optional Add-Ons |
PUBLISH | Publication of approved documents | Explore and Commercial Deployments (Essentials, Advanced, Enterprise) |
WEBHOOK | External system integration | Core |
Document Versions
FormKiQ's versioning system provides:
- Complete change history
- Version comparison
- Rollback capabilities
- Comprehensive audit trails
Not available with FormKiQ Core; available as part of FormKiQ Explore and FormKiQ's Commercial Deployments (Essentials, Advanced, and Enterprise)
Document User Activities
The platform tracks and logs all document interactions:
- View access
- Modifications
- Sharing events
- Deletion records
Not available with FormKiQ Core; available as part of FormKiQ Explore and FormKiQ's Commercial Deployments (Essentials, Advanced, and Enterprise)
Document Events Features
The Document Event System is a robust mechanism designed to enable real-time, scalable, and decoupled processing of document-related operations, such as creation, metadata updates, and deletions. By leveraging Amazon EventBridge (and maintaining support for legacy Amazon SNS-based notifications), FormKiQ can easily integrate with various downstream applications and services.
This document outlines the design and implementation of the Document Event System in our Document Management System. The system captures events associated with document operations (such as creation, metadata updates, and deletions) and publishes them to Amazon EventBridge for downstream processing.
Amazon EventBridge
As of version 1.17.0, each FormKiQ installation comes with its own Amazon EventBridge setup to be connected to. FormKiQ publishes document events to Amazon EventBridge automatically. This allows easy integration for:
-
Real-time Processing: EventBridge routes events to subscribed targets for immediate handling.
-
Scalability: Leverages EventBridge’s ability to handle high volumes of events across distributed systems.
-
Decoupling: Separates the event production from consumption, allowing independent scaling and evolution of each component
Supported Event Types
Each document event uses the DetailType field in the EventBridge Message to distinguish between the different kinds of events. The supported DetailType event types are:
-
CONTENT
- DetailType:
Document Create Event
- Description: Triggered when a document is created or updated with new content.
- DetailType:
-
METADATA
- DetailType:
Document Create Metadata
- Description: Triggered when metadata is added or updated for a document.
- DetailType:
-
DELETE
- DetailType:
Document Delete
- Description: Triggered when document is deleted.
- DetailType:
-
SOFT_DELETE
- DetailType:
Document Soft Delete
- Description: Triggered when document is soft-deleted (i.e., logically removed).
- DetailType:
Event Payload Schema
Each event published to EventBridge follows a consistent JSON schema. The payload structure is as follows:
{
"siteId": "string",
"path": "string",
"deepLinkPath": "string",
"insertedDate": "string",
"lastModifiedDate": "string",
"checksum": "string",
"checksumType": "SHA1",
"documentId": "string",
"contentType": "string",
"userId": "string",
"contentLength": 0,
"versionId": "string",
"metadata": [
{
"key": "string",
"value": "string",
"values": ["string"]
}
],
"attributes": [
{
"key": "string",
"stringValue": "string",
"stringValues": [],
"numberValue": 0,
"numberValues": [],
"booleanValue": false
}
],
"url": "S3 Presigned Url"
}
Amazon SNS (Legacy)
In addition to the current EventBridge-based event system, FormKiQ supports an event notification mechanism that utilizes Amazon SNS. From verion 1.17.0 onward, this legacy system is maintained for backward compatibility with systems that have not yet migrated to the new EventBridge-based architecture.
Supported Event Types
The following event types are supported, each with a corresponding DetailType
used in Amazon EventBridge:
-
CONTENT
- DetailType:
Document Create Event
- Description: Triggered when a document is created or updated with new content.
- DetailType:
-
DELETE_METADATA
- DetailType:
Document Delete Metadata
- Description: Triggered when metadata is removed from a document.
- DetailType:
-
SOFT_DELETE_METADATA
- DetailType:
Document Soft Delete Metadata
- Description: Triggered when metadata is soft-deleted (i.e., logically removed) for a document.
- DetailType:
SNS Subscription Policy Filter
For SNS-based legacy events, subscribers can use a subscription policy filter to receive only the event types they are interested in. The subscription filter inspects an attribute named type in the SNS message attributes. The supported values for this attribute are: • create: For document creation or content update events. • delete: For document metadata deletion events. • softDelete: For document metadata soft deletion events.
Example Policy Filter
To subscribe only to create events, the subscription filter policy can be defined as follows:
{
"type": [
"create"
]
}
Subscribers can also adjust the filter to include multiple event types. For example, to receive both delete and softDelete events:
{
"type": [
"delete",
"softDelete"
]
}
Event Payload Schema
Each event published to Amazon SNS follows a consistent JSON schema. The payload structure is as follows:
{
"siteId": "string",
"path": "string",
"s3bucket": "string",
"s3key": "string",
"type": "string",
"documentId": "string",
"content": "string",
"contentType": "string",
"userId": "string",
"url": "S3 Presigned Url"
}
Best Practices
1. Document Organization
Implement consistent naming conventions:
- Standardize file naming:
[ProjectCode]-[DocumentType]-[YYYY-MM-DD]-[Version]
- Example:
PRJ001-Contract-2024-02-15-v2.pdf
- Example:
- Use consistent casing for paths:
/Clients/ClientName/Projects/ProjectName/
- Example:
/Clients/Acme/Projects/WebsiteRedesign/Contracts/
- Example:
Use attributes for classification:
- Tag documents with department ownership:
{
"key": "department",
"stringValue": "Legal"
} - Add priority levels:
{
"key": "priority",
"numberValue": 1
} - Mark document status:
{
"key": "status",
"stringValue": "In Review"
}
Establish clear relationship hierarchies:
- Link related documents properly:
- Main contract (PRIMARY) → Addendum (ATTACHMENT)
- Meeting minutes (PRIMARY) → Supporting materials (SUPPLEMENT)
- Original document (PRIMARY) → Translations (RENDITION)
Leverage metadata for searchability:
- Include author information:
{
"key": "author",
"stringValue": "Jane Smith"
} - Add project identifiers:
{
"key": "projectId",
"stringValue": "PRJ-2024-0123"
} - Tag with relevant keywords:
{
"key": "keywords",
"stringValues": ["contract", "renewal", "client-facing"]
}
2. Version Control
Leverage versioning and consider specific attributes for critical documents:
- Legal contracts
- Financial reports
- Compliance documents
- Policy documents
Document version changes:
- Consider adding change notes to each version of a critical document:
{
"key": "changeNotes",
"stringValue": "Updated section 3.2 with revised payment terms"
} - Consider track approvers for each version of a critical document:
{
"key": "approvedBy",
"stringValue": "Thomas Johnson"
}
`` `
Regular backup procedures:
- Leverage AWS Backups
- Consider cross-region replication for disaster recovery
- Document the restoration process for emergency situations
3. Security
Configure appropriate access controls:
- Implement role-based permissions:
- Viewers (READ): Can only download and view documents
- Contributors (READ/WRITE/DELETE): Can upload and edit documents and set attributes
- Data Governance (GOVERN): Can add access attributes for use by Open Policy Agent
- Administrators: Can manage users, access policiess, and API key access
- Use attribute-based access for document-level granularity:
{
"key": "confidentialityLevel",
"stringValue": "Restricted"
}
Regular security audits:
- Review user access logs monthly
- Verify document permission settings quarterly
- Conduct penetration testing annually
- Use the
/documents/{documentId}/userActivities
endpoint to audit document access
API Document Endpoints
See full Documents API documentation here
POST /documents
Creates a new document; body may include document content if less than 5 MB. Returns a unique documentId used in subsequent operations.
This endpoint works well for smaller-sized documents, such as most Markdown (.md) files or JSON data that fits well within the 5 MB limit and is a text content-type. For most other types of documents, we recommend using POST /documents/upload
Sample Request
curl -X POST "https://<FORMKIQ_API>/documents?siteId=yourSiteId" \
-H "Authorization: YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"path": "invoice123.pdf",
"contentType": "application/pdf",
"isBase64": true,
"content": "Base64EncodedDocumentContent=="
}'
Sample Response (HTTP 201)
{
"documentId": "string"
}
GET /documents
Retrieves a list of recently added documents. You can filter the list by parameters such as siteId, date, or actionStatus.
Sample Request
curl -X GET "https://<FORMKIQ_API>/documents?siteId=yourSiteId&limit=10" \
-H "Authorization: YOUR_JWT_TOKEN"
Sample Response (HTTP 200)
{
"next": "string",
"previous": "string",
"documents": [
{
"siteId": "string",
"path": "string",
"width": "string",
"height": "string",
"deepLinkPath": "string",
"insertedDate": "string",
"lastModifiedDate": "string",
"checksum": "string",
"checksumType": "SHA1",
"documentId": "string",
"contentType": "string",
"userId": "string",
"contentLength": 0,
"version": "string",
"versionKey": "string",
"s3version": "string",
"belongsToDocumentId": "string",
"metadata": [
{
"key": "string",
"value": "string",
"values": [
"string"
]
}
]
}
]
}
GET /documents/<documentId>
Retrieves detailed metadata for a specific document.
Sample Request
curl -X GET "https://<FORMKIQ_API>/documents/{documentId}?siteId=yourSiteId" \
-H "Authorization: YOUR_JWT_TOKEN"
Sample Response (HTTP 200)
{
"siteId": "string",
"path": "string",
"width": "string",
"height": "string",
"deepLinkPath": "string",
"insertedDate": "string",
"lastModifiedDate": "string",
"checksum": "string",
"checksumType": "SHA1",
"documentId": "string",
"contentType": "string",
"userId": "string",
"contentLength": 0,
"versionId": "string",
"metadata": [
{
"key": "string",
"value": "string",
"values": [
"string"
]
}
]
}
PATCH /documents/<documentId>
Used to update document metadata (and optionally content). If you omit the content, the API may return a pre-signed URL for uploading large files.
Sample Request
curl -X PATCH "https://<FORMKIQ_API>/documents/{documentId}?siteId=yourSiteId" \
-H "Authorization: YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"path": "invoice123_updated.pdf",
"contentType": "application/pdf",
"isBase64": true,
"content": "UpdatedBase64EncodedContent=="
}'
Sample Response (HTTP 200)
{
"documentId": "string",
"uploadUrl": "string"
}
DELETE /documents/<documentId>
Remove a document. You can choose to soft-delete the document (temporary removal) or permanently delete it by adjusting the softDelete query parameter.
The SoftDelete parameter allows for the temporary removal of a document's metadata, attributes, etc from being retrieved from all API requests.
The document can be permanently deleted by calling the DELETE /documents/<documentId> with softDelete=false or restored using the PUT /documents/<documentId>/restore.
Only the GET /documents?deleted=true will return all the soft deleted documents.
Sample Request Soft Delete
curl -X DELETE "https://<FORMKIQ_API>/documents/{documentId}?siteId=yourSiteId&softDelete=true" \
-H "Authorization: YOUR_JWT_TOKEN"
Sample Request Hard Delete
curl -X DELETE "https://<FORMKIQ_API>/documents/{documentId}?siteId=yourSiteId" \
-H "Authorization: YOUR_JWT_TOKEN"
GET /documents/<documentId>/url
Returns a URL for the document's contents; this URL will expire (the default is 48 hours).
Sample Request
curl -X GET "https://<FORMKIQ_API>/{documentId}/url?siteId=yourSiteId" \
-H "Authorization: YOUR_JWT_TOKEN"
Sample Response (HTTP 200)
{
"documentId": "string",
"url": "string"
}
GET /documents/<documentId>/content
Retrieves the content of the document with the specified documentId.
- If the content is plain text and under 6 MB, the content will be returned directly.
- If the content is plain text but exceeds 6 MB, an error will be returned.
- For documents not in plain text format, pre-signed S3 URLs will be returned to download the content from S3. It is recommended to use the /documents/<documentId>/url endpoint to retrieve pre-signed S3 URLs for downloading the content.
Sample Request
curl -X GET "https://<FORMKIQ_API>/{documentId}/content?siteId=yourSiteId" \
-H "Authorization: YOUR_JWT_TOKEN"
Sample Response (HTTP 200)
If the document has a Content-Type of text/, application/json, application/x-www-form-urlencoded the content field will be returned. All other Content-Type, the contentUrl field will be returned, which is a S3 Presigned url.
{
"content": "string",
"contentUrl": "string",
"contentType": "string"
}
POST /documents/upload
Returns a URL that can be used to upload document content and create a new document, while allowing metadata to also be sent; this endpoint (whether GET or POST) is required in order to add content that is larger than 5 MB.
The POST endpoint allow the adding of document metadata at the same time as the document is created.
Sample Request
curl -X POST "https://<FORMKIQ_API>/documents?siteId=yourSiteId" \
-H "Authorization: YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"path": "invoice123.pdf",
"contentType": "application/pdf",
"isBase64": true,
"content": "Base64EncodedDocumentContent=="
}'
Sample Response (HTTP 201)
{
"documentId": "string",
"url": "string"
}
API Document Attribute Endpoints
See full Document Attributes API documentation here
POST /documents/<documentId>/attributes
Add multiple attributes to a document.
Sample Request - Standard Attribute
Adds invoiceDate (String), invoiceNo (Number) and invoicePay indicator (boolean) to a document.
curl -X POST "https://<FORMKIQ_API>/documents/{documentId}/attributes?siteId=yourSiteId" \
-H "Authorization: YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"attributes": [
{
"key": "invoiceDate",
"stringValue": "2025-01-25"
},
{
"key": "invoiceNo",
"numberValue": 12345
},
{
"key": "invoicePay",
"booleanValue": true
}
]}'
Sample Request - Classification Attribute
Adds a Classification Schema to a document. This classification requires the attribute invoiceDate to be added to all documents.
curl -X POST "https://<FORMKIQ_API>/documents/{documentId}/attributes?siteId=yourSiteId" \
-H "Authorization: YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"attributes": [
{
"classificationId": "28d49090-6555-4049-b93a-b92a39e29843"
},
{
"key": "invoiceDate",
"stringValue": "2025-01-25"
}
]
}'
Sample Request - Relationship Attribute
Creates a ASSOCIATED relationship between original document and document 5c245b25-dc93-46df-9ac4-0e1e251a8eb0 and an inverse relationship (optional) of PRIMARY between 5c245b25-dc93-46df-9ac4-0e1e251a8eb0 and the original document.
curl -X POST "https://<FORMKIQ_API>/documents/{documentId}/attributes?siteId=yourSiteId" \
-H "Authorization: YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"attributes": [
{
"documentId": "5c245b25-dc93-46df-9ac4-0e1e251a8eb0",
"relationship": "ASSOCIATED",
"inverseRelationship": "PRIMARY"
}
]
}'
GET /documents/<documentId>/attributes
Retrieves a listing of a document's attributes.
Sample Request
curl -X GET "http://localhost/documents/{documentId}/url?siteId=yourSiteId&duration=48" \
-H "Authorization: YOUR_JWT_TOKEN"
Sample Response (HTTP 200)
{
"attributes": [
{
"key": "invoiceDate",
"stringValue": "2025-01-25"
},
{
"key": "invoiceNo",
"numberValue": 12345
},
{
"key": "invoicePay",
"booleanValue": true
}
]}
}
API Document Action Endpoints
See full Document Actions API documentation here
GET /documents/<documentId>/actions
Retrieves a document's actions and their status.
Sample Request
curl -X GET "http://localhost/documents/{documentId}/actions?siteId=yourSiteId&duration=48" \
-H "Authorization: YOUR_JWT_TOKEN"
Sample Response (HTTP 200)
{
"actions": [
{
"type": "OCR",
"parameters": {
"ocrParseTypes": "TEXT,FORMS,TABLES",
"ocrEngine": "tesseract",
"ocrOutputType": true,
"ocrNumberOfPages": "-1",
"addPdfDetectedCharactersAsText": true
},
"insertedDate": "2024-10-29T12:34:56Z",
"startDate": "2024-10-29T12:35:00Z",
"completedDate": "2024-10-29T12:36:00Z"
}
]
}
POST /documents/<documentId>/actions
Below is an example payload for the POST /documents/<documentId>/actions endpoint that demonstrates every all ACTION type.
For OCR action type, the /documents/<documentId>/ocr endpoints can be used to fetch the OCR data after the OCR action has completed.
For FULLTEXT action type, the /documents/<documentId>/fulltext, /searchFulltext, /queryFulltext endpoints can be used to fetch data after the FULLTEXT action has completed.
OCR Action
Tesseract OCR Sample Request
Basic OCR using Tesseract and extracting text for all pages.
curl -X POST "https://<FORMKIQ_API>/documents/{documentId}/actions?siteId=yourSiteId" \
-H "Authorization: YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "OCR",
"parameters": {
"ocrEngine": "tesseract"
}
}'
Tesseract OCR Sample Request
Basic OCR using Tesseract and extracting text for the first 2 pages.
curl -X POST "https://<FORMKIQ_API>/documents/{documentId}/actions?siteId=yourSiteId" \
-H "Authorization: YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "OCR",
"parameters": {
"ocrEngine": "tesseract",
"ocrNumberOfPages: "2"
}
}'
AWS Textract OCR Sample Request
OCR request that uses AWS Textract to extract all the TEXT, Key-Value pairs and Table data from all pages in the document.
curl -X POST "https://<FORMKIQ_API>/documents/{documentId}/actions?siteId=yourSiteId" \
-H "Authorization: YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "OCR",
"parameters": {
"ocrEngine": "textract",
"ocrParseTypes: "TEXT,FORMS,TABLES"
}
}'
Fulltext Action
Full Text extract all text
Extract all text and send it to either Typesense / Opensearch.
curl -X POST "https://<FORMKIQ_API>/documents/{documentId}/actions?siteId=yourSiteId" \
-H "Authorization: YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "FULLTEXT"
}'
Full Text extract Max Characters text
Extract up to a maximum number of characters to either Typesense / Opensearch.
curl -X POST "https://<FORMKIQ_API>/documents/{documentId}/actions?siteId=yourSiteId" \
-H "Authorization: YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "FULLTEXT",
"parameters": {
"characterMax": "2000"
}
}'
DocumentTagging Action
Sends document content to ChatGPT and asks ChatGPT to extract the "author", "title", "description" from the document and then adds them as document tags.
curl -X POST "https://<FORMKIQ_API>/documents/{documentId}/actions?siteId=yourSiteId" \
-H "Authorization: YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "DOCUMENTTAGGING",
"parameters": {
"engine": "chatgpt",
"tags": "author,title,description"
}
}'
WEBHOOK Action
Sends webhook request to external system.
curl -X POST "https://<FORMKIQ_API>/documents/{documentId}/actions?siteId=yourSiteId" \
-H "Authorization: YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "WEBHOOK",
"parameters": {
"url": "https://yourdomain.com/webhook-endpoint"
}
}'
Notification Action
Send email notification action.
curl -X POST "https://<FORMKIQ_API>/documents/{documentId}/actions?siteId=yourSiteId" \
-H "Authorization: YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "NOTIFICATION",
"parameters": {
"notificationType": "email",
"notificationToCc": "email@yourdomain.com",
"notificationToBcc": "email@yourdomain.com",
"notificationSubject": "Email Subject",
"notificationText": "Email Text",
"notificationHtml": "<p>Email HTML Text</p>"
}
}'
Intelligent Document Processing
Runs a Intelligent Document Processing mapping process against a document.
curl -X POST "https://<FORMKIQ_API>/documents/{documentId}/actions?siteId=yourSiteId" \
-H "Authorization: YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "IDP",
"parameters": {
"mappingId": "a1009cbc-53f4-447a-baee-1adb6518c30f"
}
}'
EventBridge Notification
Sends an EventBridge notification. See full EventBridge documentation here
curl -X POST "https://<FORMKIQ_API>/documents/{documentId}/actions?siteId=yourSiteId" \
-H "Authorization: YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "EVENTBRIDGE",
"parameters": {
"eventBusName": "event-bus-name or event-bus-arn"
}
}'
Antivirus Action (Anti-Malware Scan)
Requests Antivirus / anti-malware scan on a document. Document and S3 object will be tagged with the results.
curl -X POST "https://<FORMKIQ_API>/documents/{documentId}/actions?siteId=yourSiteId" \
-H "Authorization: YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "ANTIVIRUS"
}'