Supergood | Alfresco API
Programmatically access documents, folders, sites, metadata, versions, workflows, search, and records governance in Alfresco with a stable REST API. Supergood builds and operates production-grade, unofficial Alfresco integrations so your team can automate DMS and ECM workflows without heavy custom engineering.
Plain English: Alfresco is document and content management software used by law firms to store, organize, and govern matter files—documents, emails, PDFs, and records—with version control, granular permissions, search, workflow approvals, and retention policies. An unofficial API lets you pull documents, metadata, versions, comments, tasks, and audit events—and push new or updated files, set properties, drive reviews, and declare records for compliance.
For a tech company integrating with Alfresco—especially a legaltech startup fitting into the workflow of a customer who uses iManage—this means you can sync iManage workspace structure to Alfresco sites and folders, ingest and enrich documents with matter metadata, initiate reviews and approvals, and publish decisions back. You can build features like matter-centric dashboards that span iManage and Alfresco, cross-repository search, automated classification and retention enforcement, AI drafting assistants that file outputs directly into the correct matter, and unified audit trails across both systems.
What is Alfresco?
Alfresco (https://www.alfresco.com) is an enterprise content management (ECM) and content services platform. It provides secure repositories, collaboration tools, and governance capabilities for managing digital content at scale. Law firms use Alfresco to support matter-centric file organization, versioning, structured metadata, workflow-driven review, and records management.
Core product areas include:
- Document & Email Management (nodes, folders, sites, versioning, check-in/out)
- Metadata & Taxonomy (aspects, properties, tags, categories, smart folders)
- Workflows & Tasks (document review, approvals, routing, escalations)
- Search & Discovery (full-text search via Solr, facets, saved searches)
- Records Management (declaration, retention schedules, legal holds, disposition)
- Security & Permissions (users, groups, roles, ACLs, audit)
- Transformation & Renditions (PDF generation, thumbnails, OCR ingest)
- Integrations & APIs (CMIS, REST, web scripts, SSO/IdP)
Common data entities:
- Nodes (files and folders: id, name, type, path, content, mimeType)
- Sites & Libraries (matter/repository containers, visibility, roles)
- Versions (labels, comments, major/minor revisions)
- Metadata (properties and aspects: client, matter, doc type, classification)
- Tags & Categories (taxonomy for search and organization)
- Workflows & Tasks (process instances, assignees, due dates, decisions)
- Records & Holds (declaration status, retention category, legal hold status)
- Users & Groups (permissions, roles, memberships)
- Audit Events (who did what, when, before/after)
The Alfresco Integration Challenge
Legal teams rely on iManage and Alfresco daily, but turning portal-first document work into API-driven automation can be challenging:
- Matter mapping: Aligning iManage workspaces and folders to Alfresco sites/libraries with consistent keys and hierarchy
- Version semantics: Reconciling check-in/out, major/minor versions, and conflict resolution across systems
- Metadata normalization: Converging properties and taxonomies (client, matter, doc type) into a shared schema
- Large file ingest: Handling big PDFs and email packages with chunked uploads and backpressure
- Workflow orchestration: Starting and tracking multi-stage review/approval processes asynchronously
- Entitlements & SSO: Operating behind SSO/MFA while respecting ACLs, roles, and ethical walls
- Records rigor: Declarative records, holds, and disposition require traceability and immutable audit
How Supergood Creates Alfresco APIs
Supergood reverse-engineers authenticated browser flows and network interactions to deliver a resilient API endpoint layer for your Alfresco tenant.
- Handles username/password, SSO/OAuth, and MFA (SMS, email, TOTP) securely
- Maintains session continuity with automated refresh and change detection
- Normalizes node, metadata, version, workflow, and record objects so you can integrate once and rely on consistent schemas
- Aligns with customer entitlements and role-based permissions to ensure compliant access
- Supports high-volume operations (bulk uploads, metadata updates) with polling or webhooks for long-running jobs
Use Cases
Matter-Centric Document Sync (iManage + Alfresco)
- Mirror iManage workspaces to Alfresco sites and folders
- Ingest and update documents with client/matter metadata
- Keep versions and permissions in sync with audit continuity
Document Review & Approvals
- Initiate multi-step review workflows on new filings
- Capture decisions, comments, and attachments
- Notify assignees and escalate on deadline breaches
Cross-Repository Search & Analytics
- Full-text search across iManage and Alfresco with unified facets
- Build dashboards for matter activity, reviewers, and version velocity
- Export normalized results for analytics or eDiscovery pipelines
Records Management & Retention
- Declare records, assign retention categories, and place legal holds
- Automate disposition decisions with approvals
- Keep immutable audit logs for compliance and client reporting
Available Endpoints
Authentication
POST /sessions: Establish a session using credentials. Supergood manages MFA (SMS, email, TOTP) and SSO/OAuth when enabled. Returns a short-lived auth token maintained by the platform.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/sessions \
--header 'Authorization: Basic <Base64 encoded token>' \
--header 'Content-Type: application/json' \
--data '{
"username": "[email protected]",
"password": "<password>",
"mfa": { "type": "totp", "code": "123456" }
}'
Example response
{
"authToken": "eyJhbGciOi...",
"expiresIn": 3600,
"user": {
"id": "u_alf_6f21c9",
"name": "DMS Administrator",
"entitlements": ["sites", "nodes", "search", "workflows", "records"]
}
}
POST /sessions/refresh: Refresh an existing token to keep sessions uninterrupted.
Documents
POST /documents: Create or update a document (with optional versioning) and set matter metadata.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/documents \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"externalId": "imanage:W12345:D98765",
"siteId": "site_matter_w12345",
"parentFolderId": "fld_0a9c12",
"name": "Engagement Letter.pdf",
"mimeType": "application/pdf",
"upload": { "uploadToken": "upl_7fa223" },
"version": { "type": "major", "comment": "Client-signed version" },
"metadata": {
"clientName": "Acme Holdings Ltd.",
"matterNumber": "W12345",
"docType": "Engagement Letter",
"classification": "Confidential"
},
"tags": ["engagement", "signed"],
"aspects": ["rm:recordable", "cm:titled"]
}'
Example response
{
"documentId": "doc_41a8f1",
"nodeId": "nd_41a8f1",
"versionLabel": "1.0",
"path": "/Sites/W12345/documentLibrary/Engagement Letter.pdf",
"createdAt": "2026-01-21T10:03:11Z"
}
PATCH /documents/{documentId}/metadata: Update properties, tags, or apply legal hold.
curl --request PATCH \
--url https://api.supergood.ai/integrations/<integration_id>/documents/doc_41a8f1/metadata \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"metadata": {
"docType": "Engagement Letter",
"classification": "Highly Confidential",
"billingPhase": "Initial"
},
"tags": ["engagement", "signed", "client-approved"],
"records": { "legalHold": true, "retentionCategory": "Matter File - Client Docs" }
}'
Example response
{
"documentId": "doc_41a8f1",
"updatedAt": "2026-01-22T08:15:12Z",
"metadata": {
"docType": "Engagement Letter",
"classification": "Highly Confidential",
"billingPhase": "Initial"
},
"records": { "legalHold": true, "retentionCategory": "Matter File - Client Docs" }
}
Search
GET /search: Full-text and metadata search with matter-centric filters.
Query parameters
- q: full-text query string
- siteId: Alfresco site/matter id
- folderId: restrict to folder
- tags: comma-separated list
- mimeTypes: comma-separated list (e.g., application/pdf, application/msword)
- createdFrom, createdTo: ISO 8601 timestamps
- modifiedFrom, modifiedTo: ISO 8601 timestamps
- page, pageSize: integers for pagination
Example response
{
"items": [
{
"nodeId": "nd_41a8f1",
"type": "document",
"name": "Engagement Letter.pdf",
"mimeType": "application/pdf",
"siteId": "site_matter_w12345",
"path": "/Sites/W12345/documentLibrary/Engagement Letter.pdf",
"versionLabel": "1.0",
"tags": ["engagement", "signed"],
"metadata": {
"clientName": "Acme Holdings Ltd.",
"matterNumber": "W12345",
"docType": "Engagement Letter"
},
"createdAt": "2026-01-21T10:03:11Z",
"modifiedAt": "2026-01-21T11:21:03Z"
}
],
"page": 1,
"pageSize": 50,
"total": 1
}
Workflows
POST /workflows: Start a document review or approval workflow with assignees and due dates.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/workflows \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"template": "document_review",
"name": "Client Engagement Approval",
"documentId": "doc_41a8f1",
"assignees": [
{"userId": "u_partner_9823", "role": "approver"},
{"userId": "u_associate_5521", "role": "reviewer"}
],
"dueDate": "2026-01-25T17:00:00Z",
"escalation": {"afterHours": 48, "toGroup": "RiskCommittee"},
"metadata": {"matterNumber": "W12345", "phase": "Engagement"}
}'
Example response
{
"workflowId": "wf_b1e720",
"status": "running",
"documentId": "doc_41a8f1",
"tasks": [
{
"taskId": "tsk_9042c1",
"name": "Partner Approval",
"assignee": {"userId": "u_partner_9823", "name": "Partner A"},
"dueDate": "2026-01-25T17:00:00Z",
"status": "open"
}
],
"createdAt": "2026-01-21T11:21:03Z"
}
Technical Specifications
- Authentication: Username/password with MFA (SMS, email, TOTP) and SSO/OAuth where enabled; supports service accounts or customer-managed credentials
- Response format: JSON with consistent resource schemas and pagination across modules
- Rate limits: Tuned for enterprise throughput while honoring customer entitlements and usage controls
- Session management: Automatic reauth and cookie/session rotation with health checks
- Data freshness: Near real-time retrieval of nodes, metadata, versions, workflows, search results, and records status
- Security: Encrypted transport, scoped tokens, and audit logging; respects Alfresco role-based permissions and ethical walls
- Webhooks: Optional asynchronous delivery for long-running workflows (e.g., approvals, bulk uploads) and repository events (created/updated/declared record)
Performance Characteristics
- Latency: Sub-second responses for list/detail queries under normal load; workflow completion reflects underlying platform behavior
- Throughput: Designed for high-volume document ingestion and search synchronization
- Reliability: Retry logic, backoff, and idempotency keys minimize duplicates and support at-least-once processing
- Adaptation: Continuous monitoring for UI/API changes with rapid adapter updates
Getting Started
- Schedule Integration Assessment
Book a 30-minute session to confirm your modules, licensing, and authentication model.
- Supergood Builds and Validates Your API
We deliver a hardened Alfresco adapter tailored to your workflows and entitlements.
- Deploy with Monitoring
Go live with continuous monitoring and automatic adjustments as Alfresco evolves.
Frequently Asked Questions
Q: Which Alfresco modules can this integration cover?
Supergood supports workflows commonly used for ECM/DMS, including Documents & Folders (nodes, sites), Metadata & Tags, Search, Workflows & Tasks, and Records Management (declaration, legal holds), subject to your licensing and entitlements. We scope coverage during integration assessment.
Q: How are MFA and SSO handled for automation?
We support username/password + MFA (SMS, email, TOTP) and can operate behind SSO/OAuth when enabled. Sessions are refreshed automatically with secure challenge handling and monitoring for session expiry.
Q: Do you support bulk uploads and migrations from iManage?
Yes. We support high-volume ingestion with chunked uploads, path resolution, and normalized per-document results. We can map iManage workspace/folder structures to Alfresco sites and libraries while preserving version history and metadata.
Q: How do you standardize metadata across iManage and Alfresco?
We normalize common properties (client, matter, doc type, classification) into a consistent schema while preserving raw source fields. We provide configurable mappings and validation to prevent drift.
Q: Can we declare records, place legal holds, and maintain an audit trail?
Yes. We support record declaration via API, retention category assignment, legal holds, and immutable audit capture of who did what and when, including before/after property values.
Related Integrations
iManage API - Programmatically access the iManage DMS with Supergood
Ready to automate your Alfresco workflows?
Supergood can have your Alfresco integration live in days with no ongoing engineering maintenance.