Click or drag to resize

Welcome

ReadySuite Scripting API

The ReadySuite Scripting API allows you to build custom workflows for adding, modifying, and managing documents within a ReadySuite project. Scripts are written in C# and run inside the ReadySuite host application, giving you full control over document data, fields, and resources.

Project Types

ReadySuite has two project types, each designed for a different kind of data:

  • Document Projects are the standard project type. Documents represent load files and productions with associated resources — natives, pages (images), and text (extracted or OCR content). Most of the scripting API (field data, resources, families, progress tracking) applies to document projects.

  • Chat Projects model conversational data from platforms like Slack, Microsoft Teams, or other messaging systems. Instead of resource files, the data is organized as participants, conversations, and events (messages, joins, reactions, attachments). Each chat event is still backed by a DocumentItem, so the document loop works the same way — but the rich chat data is accessed through a separate ChatProjectItem API. See Chat Projects for details.

Scripts work across both project types. Use ProjectItem.IsChatProject to detect which type you are working with at runtime.

Getting Started

You can write scripts using the built-in script editor inside ReadySuite, which already has the scripting API referenced and ready to go.

If you prefer to work in an external IDE such as Visual Studio or VS Code, reference the Compiled.EDD.Scripting.dll assembly in your project. This assembly contains all the public types, interfaces, and attributes needed to author scripts.

Script Types

Document Scripts extend ScriptContainer and operate across documents in a project. Use these to add new documents, update field values, manipulate file resources, restructure document families, or build custom reporting workflows.

Field Scripts extend FieldContainer (where T is string, int, float, DateTime, or bool) and compute a value for a single field on each document. Use these when you need a calculated or derived field.

Key Concepts
  • A DocumentItem represents a single document in the project. Documents have field data, and may have associated resources (natives, pages, text).
  • A FieldItem represents a field definition. Fields have a name, type (Text, Memo, Boolean, Number, Decimal, Date, Time, DateTime), and scope. System fields are built-in and read-only. User fields are fields you add to a project and can be read, written, renamed, or deleted by scripts.
  • Resources include NativeItem (the original file), PageItem (images/pages), and TextItem (extracted or OCR text).
  • The IScriptContext interface is your primary API during script execution, providing document iteration, document lifecycle management, field management, logging, and cancellation support.
Topics
TopicDescription
Building a ScriptScript structure, required attributes, options, reports, and external references
UI & OptionsProperty grid controls, field pickers, validation, and all available UI elements
Working with DocumentsDocument iteration, committing changes, creating/removing documents, and progress tracking
Choice FieldsCreating and managing single-choice and multi-choice fields
Working with ResourcesNatives, pages, and text — reading, replacing, and managing file resources
Working with FamiliesParent-child relationships, attachments, and family restructuring
Built-in UtilitiesScriptUtil and PdfUtil helper methods for files, encoding, and PDF processing
Chat ProjectsWorking with chat data — participants, conversations, messages, reactions, and attachments
Usage PatternsCommon code patterns for field data, error handling, cancellation, and more