diff --git a/api-reference/workflow/destinations/filenet.mdx b/api-reference/workflow/destinations/filenet.mdx
new file mode 100644
index 00000000..e33037db
--- /dev/null
+++ b/api-reference/workflow/destinations/filenet.mdx
@@ -0,0 +1,36 @@
+---
+title: FileNet
+---
+
+import FirstTimeAPIDestinationConnector from '/snippets/general-shared-text/first-time-api-destination-connector.mdx';
+
+
+
+Send processed data from Unstructured to {{filenet}}.
+
+The requirements are as follows.
+
+import FileNetPrerequisites from '/snippets/general-shared-text/filenet.mdx';
+
+
+
+To create an {{filenet}} destination connector, see the following examples.
+
+import FileNetSDK from '/snippets/destination_connectors/filenet_sdk.mdx';
+import FileNetAPIRESTCreate from '/snippets/destination_connectors/filenet_rest_create.mdx';
+
+
+
+
+
+
+Replace the preceding placeholders as follows:
+
+import FileNetAPIPlaceholders from '/snippets/general-shared-text/filenet-api-placeholders.mdx';
+
+
+
+## Learn more
+
+- [Couchbase Integration in Unstructured Platform](https://unstructured.io/blog/couchbase-integration-in-unstructured-platform)
+
diff --git a/api-reference/workflow/sources/filenet.mdx b/api-reference/workflow/sources/filenet.mdx
new file mode 100644
index 00000000..9fdb7d81
--- /dev/null
+++ b/api-reference/workflow/sources/filenet.mdx
@@ -0,0 +1,35 @@
+---
+title: FileNet
+---
+
+import FirstTimeAPISourceConnector from '/snippets/general-shared-text/first-time-api-source-connector.mdx';
+
+
+
+Ingest your files into Unstructured from {{filenet}}.
+
+The requirements are as follows.
+
+import FileNetPrerequisites from '/snippets/general-shared-text/filenet.mdx';
+
+
+
+To create an {{filenet}} source connector, see the following examples.
+
+import FileNetSDK from '/snippets/source_connectors/filenet_sdk.mdx';
+import FileNetAPIRESTCreate from '/snippets/source_connectors/filenet_rest_create.mdx';
+
+
+
+
+
+
+Replace the preceding placeholders as follows:
+
+import FileNetAPIPlaceholders from '/snippets/general-shared-text/filenet-api-placeholders.mdx';
+
+
+
+## Learn more
+
+- [Couchbase Integration in Unstructured Platform](https://unstructured.io/blog/couchbase-integration-in-unstructured-platform)
\ No newline at end of file
diff --git a/docs.json b/docs.json
index 6f8763a9..2c7eff85 100644
--- a/docs.json
+++ b/docs.json
@@ -49,6 +49,7 @@
"ui/sources/databricks-volumes",
"ui/sources/dropbox",
"ui/sources/elasticsearch",
+ "ui/sources/filenet",
"ui/sources/google-cloud",
"ui/sources/google-drive",
"ui/sources/jira",
@@ -80,6 +81,7 @@
"ui/destinations/delta-table",
"ui/destinations/databricks-delta-table",
"ui/destinations/elasticsearch",
+ "ui/destinations/filenet",
"ui/destinations/google-cloud",
"ui/destinations/ibm-watsonxdata",
"ui/destinations/kafka",
@@ -165,6 +167,7 @@
"api-reference/workflow/sources/databricks-volumes",
"api-reference/workflow/sources/dropbox",
"api-reference/workflow/sources/elasticsearch",
+ "api-reference/workflow/sources/filenet",
"api-reference/workflow/sources/google-cloud",
"api-reference/workflow/sources/google-drive",
"api-reference/workflow/sources/jira",
@@ -196,6 +199,7 @@
"api-reference/workflow/destinations/delta-table",
"api-reference/workflow/destinations/databricks-delta-table",
"api-reference/workflow/destinations/elasticsearch",
+ "api-reference/workflow/destinations/filenet",
"api-reference/workflow/destinations/google-cloud",
"api-reference/workflow/destinations/ibm-watsonxdata",
"api-reference/workflow/destinations/kafka",
@@ -433,6 +437,7 @@
"open-source/ingestion/source-connectors/discord",
"open-source/ingestion/source-connectors/dropbox",
"open-source/ingestion/source-connectors/elastic-search",
+ "open-source/ingestion/source-connectors/filenet",
"open-source/ingestion/source-connectors/github",
"open-source/ingestion/source-connectors/gitlab",
"open-source/ingestion/source-connectors/google-cloud-storage",
@@ -474,6 +479,7 @@
"open-source/ingestion/destination-connectors/dropbox",
"open-source/ingestion/destination-connectors/duckdb",
"open-source/ingestion/destination-connectors/elasticsearch",
+ "open-source/ingestion/destination-connectors/filenet",
"open-source/ingestion/destination-connectors/google-cloud-service",
"open-source/ingestion/destination-connectors/ibm-watsonxdata",
"open-source/ingestion/destination-connectors/kafka",
@@ -698,6 +704,9 @@
"tagId": "GTM-KJQHTZ6F"
}
},
+ "variables": {
+ "filenet": "IBM FileNet"
+ },
"redirects": [
{
"source": "/api-reference/api-services/accessing-unstructured-api",
diff --git a/open-source/ingestion/destination-connectors/filenet.mdx b/open-source/ingestion/destination-connectors/filenet.mdx
new file mode 100644
index 00000000..64f78538
--- /dev/null
+++ b/open-source/ingestion/destination-connectors/filenet.mdx
@@ -0,0 +1,25 @@
+---
+title: FileNet
+---
+
+import SharedFileNet from '/snippets/dc-shared-text/filenet-cli-api.mdx';
+
+
+
+Now call the Unstructured Ingest CLI or the Unstructured Ingest Python library. The source connector can be any of the ones supported. This example uses the local source connector.
+
+This example sends files to Unstructured for processing by default. To process files locally instead, see the instructions at the end of this page.
+
+[//]: # (tech-review: need to verify these samples for sh and python)
+
+import FileNetAPISh from '/snippets/destination_connectors/filenet.sh.mdx';
+import FileNetAPIPyV2 from '/snippets/destination_connectors/filenet.v2.py.mdx';
+
+
+
+
+
+
+import SharedPartitionByAPIOSS from '/snippets/ingest-configuration-shared/partition-by-api-oss.mdx';
+
+
\ No newline at end of file
diff --git a/open-source/ingestion/source-connectors/filenet.mdx b/open-source/ingestion/source-connectors/filenet.mdx
new file mode 100644
index 00000000..64a6fc3e
--- /dev/null
+++ b/open-source/ingestion/source-connectors/filenet.mdx
@@ -0,0 +1,24 @@
+---
+title: FileNet
+---
+
+import SharedFileNet from '/snippets/sc-shared-text/filenet-cli-api.mdx';
+
+
+
+Now call the Unstructured CLI or Python. The destination connector can be any of the ones supported. This example uses the local destination connector:
+
+This example sends data to Unstructured for processing by default. To process files locally instead, see the instructions at the end of this page.
+
+import FileNetSh from '/snippets/source_connectors/filenet.sh.mdx';
+import FileNetPyV2 from '/snippets/source_connectors/filenet.v2.py.mdx';
+
+
+
+
+
+
+
+import SharedPartitionByAPIOSS from '/snippets/ingest-configuration-shared/partition-by-api-oss.mdx';
+
+
\ No newline at end of file
diff --git a/snippets/dc-shared-text/filenet-cli-api.mdx b/snippets/dc-shared-text/filenet-cli-api.mdx
new file mode 100644
index 00000000..a19c15b5
--- /dev/null
+++ b/snippets/dc-shared-text/filenet-cli-api.mdx
@@ -0,0 +1,13 @@
+FileNet
+
+[Couchbase](https://couchbase.com) is a Distributed NoSQL Cloud Database. Couchbase embraces AI with coding assistance for developers, and vector search for their applications.
+
+Batch process all your records to store structured outputs in a Couchbase database.
+
+The requirements are as follows.
+
+import FileNetShared from '/snippets/general-shared-text/filenet.mdx';
+import FileNetSharedCLIAPI from '/snippets/general-shared-text/filenet-cli-api.mdx';
+
+
+
\ No newline at end of file
diff --git a/snippets/destination_connectors/filenet.sh.mdx b/snippets/destination_connectors/filenet.sh.mdx
new file mode 100644
index 00000000..e30a6ea3
--- /dev/null
+++ b/snippets/destination_connectors/filenet.sh.mdx
@@ -0,0 +1,29 @@
+```bash CLI
+#!/usr/bin/env bash
+
+# Chunking and embedding are optional.
+
+unstructured-ingest \
+ local \
+ --input-path $LOCAL_FILE_INPUT_DIR \
+ --output-dir $LOCAL_FILE_OUTPUT_DIR \
+ --strategy hi_res \
+ --chunk-elements \
+ --embedding-provider huggingface \
+ --num-processes 2 \
+ --verbose \
+ --partition-by-api \
+ --api-key $UNSTRUCTURED_API_KEY \
+ --partition-endpoint $UNSTRUCTURED_API_URL \
+ --additional-partition-args="{\"split_pdf_page\":\"true\", \"split_pdf_allow_failed\":\"true\", \"split_pdf_concurrency_level\": 15}" \
+ filenet \
+ --username $FILENET_USERNAME \
+ --password $FILENET_PASSWORD \
+ --server-url $FILENET_SERVER_URL \
+ --object-store $FILENET_OBJECT_STORE \
+ --folder-path $FILENET_FOLDER_PATH \
+ --document-class $FILENET_DOCUMENT_CLASS \
+ --recursive $FILENET_RECURSIVE \
+ --num-processes 2 \
+ --batch-size 80
+```
\ No newline at end of file
diff --git a/snippets/destination_connectors/filenet.v2.py.mdx b/snippets/destination_connectors/filenet.v2.py.mdx
new file mode 100644
index 00000000..ebacce1c
--- /dev/null
+++ b/snippets/destination_connectors/filenet.v2.py.mdx
@@ -0,0 +1,56 @@
+```python Python Ingest
+import os
+
+from unstructured_ingest.pipeline.pipeline import Pipeline
+from unstructured_ingest.interfaces import ProcessorConfig
+
+from unstructured_ingest.processes.connectors.filenet import (
+ CouchbaseAccessConfig,
+ CouchbaseConnectionConfig,
+ CouchbaseUploadStagerConfig,
+ CouchbaseUploaderConfig
+)
+from unstructured_ingest.processes.connectors.local import (
+ LocalIndexerConfig,
+ LocalConnectionConfig,
+ LocalDownloaderConfig
+)
+from unstructured_ingest.processes.partitioner import PartitionerConfig
+from unstructured_ingest.processes.chunker import ChunkerConfig
+from unstructured_ingest.processes.embedder import EmbedderConfig
+
+# Chunking and embedding are optional.
+
+if __name__ == "__main__":
+ Pipeline.from_configs(
+ context=ProcessorConfig(),
+ indexer_config=LocalIndexerConfig(input_path=os.getenv("LOCAL_FILE_INPUT_DIR")),
+ downloader_config=LocalDownloaderConfig(),
+ source_connection_config=LocalConnectionConfig(),
+ partitioner_config=PartitionerConfig(
+ partition_by_api=True,
+ api_key=os.getenv("UNSTRUCTURED_API_KEY"),
+ partition_endpoint=os.getenv("UNSTRUCTURED_API_URL"),
+ strategy="hi_res",
+ additional_partition_args={
+ "split_pdf_page": True,
+ "split_pdf_allow_failed": True,
+ "split_pdf_concurrency_level": 15
+ }
+ ),
+ chunker_config=ChunkerConfig(chunking_strategy="by_title"),
+ embedder_config=EmbedderConfig(embedding_provider="huggingface"),
+ destination_connection_config=CouchbaseConnectionConfig(
+ access_config=CouchbaseAccessConfig(
+ password=os.getenv("CB_PASSWORD"),
+ ),
+ connection_string=os.getenv("CB_CONN_STR"),
+ username=os.getenv("CB_USERNAME"),
+ bucket=os.getenv("CB_BUCKET"),
+ scope=os.getenv("CB_SCOPE"),
+ collection=os.getenv("CB_COLLECTION")
+ ),
+ stager_config=CouchbaseUploadStagerConfig(),
+ uploader_config=CouchbaseUploaderConfig(batch_size=100)
+ ).run()
+```
\ No newline at end of file
diff --git a/snippets/destination_connectors/filenet_rest_create.mdx b/snippets/destination_connectors/filenet_rest_create.mdx
new file mode 100644
index 00000000..dede2c17
--- /dev/null
+++ b/snippets/destination_connectors/filenet_rest_create.mdx
@@ -0,0 +1,21 @@
+```bash curl
+curl --request 'POST' --location \
+"$UNSTRUCTURED_API_URL/destinations" \
+--header 'accept: application/json' \
+--header "unstructured-api-key: $UNSTRUCTURED_API_KEY" \
+--header 'content-type: application/json' \
+--data \
+'{
+ "name": "",
+ "type": "filenet",
+ "config": {
+ "server_url": "",
+ "object_store": "",
+ "folder_path": "",
+ "document_class": "",
+ "recursive": ,
+ "username": "",
+ "password": ""
+ }
+}'
+```
\ No newline at end of file
diff --git a/snippets/destination_connectors/filenet_sdk.mdx b/snippets/destination_connectors/filenet_sdk.mdx
new file mode 100644
index 00000000..b707d353
--- /dev/null
+++ b/snippets/destination_connectors/filenet_sdk.mdx
@@ -0,0 +1,29 @@
+```python Python SDK
+import os
+
+from unstructured_client import UnstructuredClient
+from unstructured_client.models.operations import CreateDestinationRequest
+from unstructured_client.models.shared import CreateDestinationConnector
+
+with UnstructuredClient(api_key_auth=os.getenv("UNSTRUCTURED_API_KEY")) as client:
+ response = client.destinations.create_destination(
+ request=CreateDestinationRequest(
+ create_destination_connector=CreateDestinationConnector(
+ name="",
+ type="filenet",
+ config={
+ "server_url": "",
+ "object_store": "",
+ "folder_path": "",
+ "document_class": "",
+ "recursive": ,
+ "username": "",
+ "password": ""
+ }
+ )
+ )
+ )
+
+ print(response.destination_connector_information)
+# ...
+```
\ No newline at end of file
diff --git a/snippets/general-shared-text/filenet-api-placeholders.mdx b/snippets/general-shared-text/filenet-api-placeholders.mdx
new file mode 100644
index 00000000..7d981cad
--- /dev/null
+++ b/snippets/general-shared-text/filenet-api-placeholders.mdx
@@ -0,0 +1,8 @@
+- `` (_required_) - A unique name for this connector.
+- `` (_required_) - The base URL of your {{filenet}} server, containing both the IBM domain and your company's subdomain. For example, `https://.automationcloud.ibm.com`.
+- `` - (_required_) - The name of the object store to connect within the content platform engine.
+- `` (_required_) - The path of the folder to connect to within the object store.
+- `` The class of documents to include.
+- `` Set to `true` to include documents contained in any subfolders.
+- `` - (_required_) - The username of the IBM Cloud Pak for Business Automation as a Service account to use.
+- `` (_required_) - The password for the corresponding username.
\ No newline at end of file
diff --git a/snippets/general-shared-text/filenet-cli-api.mdx b/snippets/general-shared-text/filenet-cli-api.mdx
new file mode 100644
index 00000000..33816c91
--- /dev/null
+++ b/snippets/general-shared-text/filenet-cli-api.mdx
@@ -0,0 +1,29 @@
+The FileNet connector dependencies:
+
+```bash CLI, Python
+pip install "unstructured-ingest[filenet]"
+```
+
+import AdditionalIngestDependencies from '/snippets/general-shared-text/ingest-dependencies.mdx';
+
+
+
+These environment variables are required for the {{filenet}} connector:
+
+[//]: # (tech-review: confirm the names of these FILENET variables)
+
+- `FILENET_SERVER_URL` - The URL of your Content Platform Engine,, represented by `--server-url` (CLI) or `server_url` (Python).
+- `FILENET_OBJECT_STORE` - The name of object store in the {{filenet}} server, represented by `--object-store` (CLI) or `object_store` (Python).
+- `FILENET_FOLDER_PATH` - The path of the folder within the object store, represented by `--folder-path` (CLI) or `folder_path` (Python).
+- `FILENET_DOCUMENT_CLASS` - The document class of documents contained in the folder, represented by `--document-class` (CLI) or `document_class` (Python).
+- `FILENET_RECURSIVE` - `true` to include subfolders, represented by `--recursive` (CLI) or `recursive` (Python).
+- `FILENET_USERNAME` - The username for the IBM Cloud Pak for Business Automation as a Service account, represented by `--username` (CLI) or `username` (Python).
+- `FILENET_PASSWORD` - The password for the corresponding username, represented by `--password` (CLI) or `password` (Python).
+
+Additional available settings include:
+
+[//]: # (tech-review: is this setting available for FileNet?)
+
+- `--collection-id` (CLI) or `collection_id` in `CouchbaseDownloaderConfig` (Python) - Optional for the source connector. The
+ unique key of the ID field in the collection. The default is `id` if not otherwise specified.
+ [Learn more](https://docs.couchbase.com/server/current/learn/services-and-indexes/indexes/indexing-and-query-perf.html#introduction-document-keys).
\ No newline at end of file
diff --git a/snippets/general-shared-text/filenet-platform.mdx b/snippets/general-shared-text/filenet-platform.mdx
new file mode 100644
index 00000000..6409ff31
--- /dev/null
+++ b/snippets/general-shared-text/filenet-platform.mdx
@@ -0,0 +1,10 @@
+Fill in the following fields:
+
+- **Name** (_required_): A unique name for this connector.
+- **Server URL** (_required_): The base URL of your {{filenet}} server, containing both the IBM domain and your company's subdomain. For example, `https://.automationcloud.ibm.com`.
+- **Object Store** (_required_): The name of the object store to connect within the server.
+- **Folder Path** (_required_): The path of the folder to connect to within the object store.
+- **Document Class**: The class of documents to include.
+- **Recursive**: Select to include documents contained in any subfolders.
+- **Username** (_required_): The username of the IBM Cloud Pak for Business Automation as a Service account to use.
+- **Password** (_required_): The password for the corresponding username.
\ No newline at end of file
diff --git a/snippets/general-shared-text/filenet.mdx b/snippets/general-shared-text/filenet.mdx
new file mode 100644
index 00000000..e98072c0
--- /dev/null
+++ b/snippets/general-shared-text/filenet.mdx
@@ -0,0 +1,25 @@
+- An [IBM Cloud Pak for Business Automation as a Service](https://www.ibm.com/products/cloud-pak-for-business-automation) account with access to the {{filenet}} [Content Platform Engine server](https://www.ibm.com/docs/en/filenet-p8-platform/5.7.0?topic=architecture-content-platform-engine) object store to which you want to connect. {{filenet}} is a component of IBM Cloud Pak for Business Automation as a Service.
+
+To access the information you'll need to configure the connector:
+
+1. Log into your [account](https://www.automationcloud.ibm.com/auth/index.jsp).
+
+2. Choose the **Navigator** tile.
+
+ The [IBM Navigator](https://www.ibm.com/docs/en/content-navigator/3.2.0) launches in a separate browser window, and provides a view of your object stores and content. You can use the IBM Navigator views to find the information necessary to create a connection to Unstructured.
+
+ For the URL of your {{filenet}} server:
+
+ - The server URL displays in the browser address bar. You only need the base URL that specifies the company and domain. For example, `https://.automationcloud.ibm.com`.
+
+ For [object store](https://www.ibm.com/docs/en/filenet-p8-platform/5.7.0?topic=infrastructure-defining-object-stores) names and folder paths:
+
+ - Select the folder in the left pane. The full folder path is displayed at the top of the main detail pane, in the following format: `//etc`.
+
+ For the document class:
+
+ - Right-click the document and select **Properties**.
+
+ For the account username:
+
+ - Right-click the profile icon on the upper right in the top menu.
diff --git a/snippets/sc-shared-text/filenet-cli-api.mdx b/snippets/sc-shared-text/filenet-cli-api.mdx
new file mode 100644
index 00000000..b3aa46b3
--- /dev/null
+++ b/snippets/sc-shared-text/filenet-cli-api.mdx
@@ -0,0 +1,9 @@
+{{filenet}} is an enterprise content management system that enables organizations store, manage, secure, and automate documents and business content at scale.
+
+The requirements are as follows.
+
+import SharedFileNet from '/snippets/general-shared-text/filenet.mdx';
+import SharedFileNetCLIAPI from '/snippets/general-shared-text/filenet-cli-api.mdx';
+
+
+
diff --git a/snippets/source_connectors/filenet.sh.mdx b/snippets/source_connectors/filenet.sh.mdx
new file mode 100644
index 00000000..09776a95
--- /dev/null
+++ b/snippets/source_connectors/filenet.sh.mdx
@@ -0,0 +1,19 @@
+```bash CLI
+#!/usr/bin/env bash
+
+unstructured-ingest \
+ filenet \
+ --username $FILENET_USERNAME \
+ --password $FILENET_PASSWORD \
+ --server-url $FILENET_SERVER_URL \
+ --object-store $FILENET_OBJECT_STORE \
+ --folder-path $FILENET_FOLDER_PATH \
+ --document-class $FILENET_DOCUMENT_CLASS \
+ --recursive $FILENET_RECURSIVE \
+ --output-dir $LOCAL_FILE_OUTPUT_DIR \
+ --num-processes 2 \
+ --partition-by-api \
+ --api-key $UNSTRUCTURED_API_KEY \
+ --partition-endpoint $UNSTRUCTURED_API_URL \
+ --strategy hi_res \
+```
diff --git a/snippets/source_connectors/filenet.v2.py.mdx b/snippets/source_connectors/filenet.v2.py.mdx
new file mode 100644
index 00000000..0af2c0bb
--- /dev/null
+++ b/snippets/source_connectors/filenet.v2.py.mdx
@@ -0,0 +1,53 @@
+```python Python Ingest
+import os
+
+from unstructured_ingest.pipeline.pipeline import Pipeline
+from unstructured_ingest.interfaces import ProcessorConfig
+
+from unstructured_ingest.processes.connectors.filenet import (
+ CouchbaseIndexerConfig,
+ CouchbaseDownloaderConfig,
+ CouchbaseConnectionConfig,
+ CouchbaseAccessConfig,
+)
+
+from unstructured_ingest.processes.connectors.local import (
+ LocalConnectionConfig
+)
+from unstructured_ingest.processes.partitioner import PartitionerConfig
+from unstructured_ingest.processes.chunker import ChunkerConfig
+from unstructured_ingest.processes.embedder import EmbedderConfig
+
+# Chunking and embedding are optional.
+
+if __name__ == "__main__":
+ Pipeline.from_configs(
+ context=ProcessorConfig(),
+ indexer_config=CouchbaseIndexerConfig(batch_size=100),
+ downloader_config=CouchbaseDownloaderConfig(download_dir=os.getenv("LOCAL_FILE_DOWNLOAD_DIR")),
+ source_connection_config=CouchbaseConnectionConfig(
+ access_config=CouchbaseAccessConfig(
+ password=os.getenv("CB_PASSWORD")
+ ),
+ username=os.getenv("CB_USERNAME"),
+ connection_string=os.getenv("CB_CONN_STR"),
+ bucket=os.getenv("CB_BUCKET"),
+ scope=os.getenv("CB_SCOPE"),
+ collection=os.getenv("CB_COLLECTION")
+ ),
+ partitioner_config=PartitionerConfig(
+ partition_by_api=True,
+ api_key=os.getenv("UNSTRUCTURED_API_KEY"),
+ partition_endpoint=os.getenv("UNSTRUCTURED_API_URL"),
+ strategy="hi_res",
+ additional_partition_args={
+ "split_pdf_page": True,
+ "split_pdf_allow_failed": True,
+ "split_pdf_concurrency_level": 15
+ }
+ ),
+ chunker_config=ChunkerConfig(chunking_strategy="by_title"),
+ embedder_config=EmbedderConfig(embedding_provider="huggingface"),
+ destination_connection_config=LocalConnectionConfig()
+ ).run()
+```
\ No newline at end of file
diff --git a/snippets/source_connectors/filenet_rest_create.mdx b/snippets/source_connectors/filenet_rest_create.mdx
new file mode 100644
index 00000000..bbee3edb
--- /dev/null
+++ b/snippets/source_connectors/filenet_rest_create.mdx
@@ -0,0 +1,21 @@
+```bash curl
+curl --request 'POST' --location \
+"$UNSTRUCTURED_API_URL/sources" \
+--header 'accept: application/json' \
+--header "unstructured-api-key: $UNSTRUCTURED_API_KEY" \
+--header 'content-type: application/json' \
+--data \
+'{
+ "name": "",
+ "type": "filenet",
+ "config": {
+ "server_url": "",
+ "object_store": "",
+ "folder_path": "",
+ "document_class": "",
+ "recursive": ,
+ "username": "",
+ "password": ""
+ }
+}'
+```
\ No newline at end of file
diff --git a/snippets/source_connectors/filenet_sdk.mdx b/snippets/source_connectors/filenet_sdk.mdx
new file mode 100644
index 00000000..5472c394
--- /dev/null
+++ b/snippets/source_connectors/filenet_sdk.mdx
@@ -0,0 +1,28 @@
+```python Python SDK
+import os
+
+from unstructured_client import UnstructuredClient
+from unstructured_client.models.operations import CreateSourceRequest
+from unstructured_client.models.shared import CreateSourceConnector
+
+with UnstructuredClient(api_key_auth=os.getenv("UNSTRUCTURED_API_KEY")) as client:
+ response = client.sources.create_source(
+ request=CreateSourceRequest(
+ create_source_connector=CreateSourceConnector(
+ name="",
+ type="filenet",
+ config={
+ "server_url": "",
+ "object_store": "",
+ "folder_path": "",
+ "document_class": "",
+ "recursive": ,
+ "username": "",
+ "password": ""
+ }
+ )
+ )
+ )
+
+ print(response.source_connector_information)
+```
\ No newline at end of file
diff --git a/ui/destinations/filenet.mdx b/ui/destinations/filenet.mdx
new file mode 100644
index 00000000..e3fb9ff2
--- /dev/null
+++ b/ui/destinations/filenet.mdx
@@ -0,0 +1,36 @@
+---
+title: FileNet
+---
+
+{{filenet}} is an enterprise content management (ECM) system that enables organizations store, manage, secure, and automate documents and business content at scale.
+
+import FirstTimeUIDestinationConnector from '/snippets/general-shared-text/first-time-ui-destination-connector.mdx';
+
+
+
+Send processed data from Unstructured to {{filenet}}.
+
+The requirements are as follows.
+
+import FileNetPrerequisites from '/snippets/general-shared-text/filenet.mdx';
+
+
+
+To create the destination connector:
+
+1. On the sidebar, click **Connectors**.
+2. Click **Destinations**.
+3. Cick **New** or **Create Connector**.
+4. Give the connector some unique **Name**.
+5. In the **Provider** area, click **FileNet**.
+6. Click **Continue**.
+7. Follow the on-screen instructions to fill in the fields as described later on this page.
+8. Click **Save and Test**.
+
+[//]: # (tech-review: any chance we can reorder the UI fields to reflect the heirachy of the resources here?)
+[//]: # (tech-review: meaning, server > object store > folder path > document type > recursive)
+[//]: # (tech-review: also, does the Document Type field do anything in destination connectors?)
+
+import FileNetFields from '/snippets/general-shared-text/filenet-platform.mdx';
+
+
\ No newline at end of file
diff --git a/ui/sources/filenet.mdx b/ui/sources/filenet.mdx
new file mode 100644
index 00000000..591e4b46
--- /dev/null
+++ b/ui/sources/filenet.mdx
@@ -0,0 +1,32 @@
+---
+title: FileNet
+---
+
+{{filenet}} is an enterprise content management system that enables organizations store, manage, secure, and automate documents and business content at scale.
+
+import FirstTimeUISourceConnector from '/snippets/general-shared-text/first-time-ui-source-connector.mdx';
+
+
+
+Ingest your files into Unstructured from {{filenet}}.
+
+The requirements are as follows.
+
+import FileNetPrerequisites from '/snippets/general-shared-text/filenet.mdx';
+
+
+
+To create the source connector:
+
+1. On the sidebar, click **Connectors**.
+2. Click **Sources**.
+3. Cick **New** or **Create Connector**.
+4. Give the connector some unique **Name**.
+5. In the **Provider** area, click **{{filenet}}**.
+6. Click **Continue**.
+7. Follow the on-screen instructions to fill in the fields as described later on this page.
+8. Click **Save and Test**.
+
+import FileNetFields from '/snippets/general-shared-text/filenet-platform.mdx';
+
+