Skip to main content

Project Templates Guide

Project templates are blueprints for creating new Kodexa projects with predefined structures, configurations, and workflows. This guide helps you understand, build, and deploy effective project templates.

What You’ll Learn

This guide covers everything you need to know about project templates:
  • Understanding what project templates are and when to use them
  • Building templates from scratch with practical examples
  • Configuring all available components and settings
  • Testing and deploying templates effectively
  • Troubleshooting common issues and problems

Documentation Structure

1. Building Project Templates

A practical, hands-on guide that walks you through creating project templates with real-world examples. Best for:
  • Learning by doing
  • Building your first template
  • Understanding common patterns
  • Practical implementation guidance
Covers:
  • Quick start with minimal examples
  • Step-by-step template building
  • Common patterns and techniques
  • Testing and deployment workflows
  • Troubleshooting guide

2. Project Template Structure Reference

Comprehensive reference documentation covering every property, component, and configuration option. Best for:
  • Looking up specific properties
  • Understanding component relationships
  • Reference during development
  • Complete API documentation
Covers:
  • Complete property reference
  • All component types in detail
  • Relationships between components
  • Variable substitution
  • Best practices

3. Project Templates Overview

Conceptual introduction to project templates and their role in Kodexa. Best for:
  • Understanding the big picture
  • Getting started quickly
  • Basic examples
  • Key concepts

Getting Started

New to Project Templates?

Start here:
  1. Read: Project Templates Overview - Understand the basics
  2. Build: Building Project Templates - Follow the step-by-step guide
  3. Reference: Structure Reference - Look up details as needed

Already Familiar?

Jump straight to:
  • Building Guide - For practical examples and patterns
  • Structure Reference - For detailed property documentation
  • Troubleshooting - If you’re encountering issues

Quick Example

Here’s the simplest possible project template:
slug: my-template
orgSlug: my-org
version: 1.0.0
name: My First Template
type: projectTemplate
description: A simple document processing template

stores:
  - slug: "${project.id}-documents"
    name: "Documents"
    description: "Document storage"
    storeType: DOCUMENT
    storePurpose: OPERATIONAL

workspaces:
  - name: Main Workspace
    slug: main
    workspaceStorage:
      availablePanels:
        documentStores: true
      overview: "Upload documents to get started"
Deploy with:
kdx deploy my-template.yaml

Use Cases

Project templates are ideal for:

Document Processing Workflows

Create templates for:
  • Invoice processing and data extraction
  • Contract review and approval
  • Medical records processing
  • Legal document analysis

Industry-Specific Solutions

Build templates for:
  • Financial services (loan processing, compliance)
  • Healthcare (claims processing, patient records)
  • Legal (contract management, e-discovery)
  • Retail (product catalog, inventory)

Standardized Processes

Template use cases:
  • Onboarding new teams with consistent setup
  • Replicating successful workflows across departments
  • Deploying customer-specific configurations
  • Creating multi-tenant solutions

Key Concepts

Template Components

A project template can define:
  • Stores: Document and data repositories
  • Assistants: AI-powered automation
  • Taxonomies: Classification systems
  • Data Forms: Structured data entry
  • Workspaces: User interface configurations
  • Statuses: Workflow states
  • Options: User-configurable settings
  • Knowledge Sets: Business rules

Variable Substitution

Use variables for dynamic configuration:
stores:
  - slug: "${project.id}-documents"    # Unique per project
    name: "Documents for ${project.name}"
Available variables:
  • ${project.id} - Unique project identifier
  • ${project.name} - Project display name
  • ${project.slug} - Project slug
  • ${orgSlug} - Organization slug

Component Relationships

Components can reference each other:
# Assistant connects to store
assistants:
  - name: PDF Parser
    connections:
      - sourceType: STORE
        sourceRef: "${orgSlug}/${project.id}-documents:1.0.0"

Best Practices

1. Start Simple, Add Complexity

Begin with a minimal template:
Stores → Workspace → Assistants → Forms → Taxonomies

2. Use Descriptive Names

# Good
slug: invoice-processing-template
name: Invoice Processing Template
description: Automated AP invoice processing with OCR

# Not as good
slug: template1
name: Template
description: A template

3. Test Before Production

Always test templates:
  1. Validate YAML syntax
  2. Create test project
  3. Verify all components work
  4. Test with real data
  5. Deploy to production

4. Document Your Templates

Include helpful information:
helpUrl: https://docs.example.com/template-guide

workspaces:
  - workspaceStorage:
      overview: |
        # Getting Started
        1. Upload documents
        2. Review processed results
        3. Export validated data

Common Patterns

Multi-Stage Pipeline

assistants:
  - name: Stage 1 - Parse
    priorityHint: 10
  - name: Stage 2 - Extract
    priorityHint: 5
  - name: Stage 3 - Validate
    priorityHint: 3

Exception Handling

stores:
  - slug: "${project.id}-intake"
    name: Intake
  - slug: "${project.id}-processed"
    name: Processed
  - slug: "${project.id}-exceptions"
    name: Exceptions

Role-Based Workspaces

workspaces:
  - name: Data Entry
    slug: entry
  - name: Review
    slug: review
  - name: Admin
    slug: admin

Resources

Documentation

API Reference

Support

Next Steps

Choose your path:

I’m New to Templates

→ Start with Project Templates Overview

I Want to Build a Template

→ Follow Building Project Templates

I Need Reference Details

→ See Structure Reference

I’m Troubleshooting

→ Check Troubleshooting Section
Ready to build your first template? Let’s get started with the Building Guide.