To get full access to the Kademi Hub existing customers can login here, or new customers can register here.
AI Agents
| Name | Description |
|---|---|
| AgentDef | Immutable definition of an AI agent, parsed from an XML file. |
| AgentDefEventHandler | Definition of a single event handler an agent responds to, firing its instructions when a matching event occurs. |
| AgentDefEventHandlerSet | The event handlers an account has added to an agent definition, as one file. |
| AgentDefTimer | |
| AgentSkillDef | One reference document an agent can pull into context when it judges the task needs it. |
| AgentSkillSet | A file of skills, as an account may add to an agent without taking a copy of the whole definition. |
| AgentWorkflowDef | Definition of a single named workflow an agent can run: a series of steps, similar to a journey but much simpler. |
| AgentWorkflowStep | A single step within an AgentWorkflowDef: instructions for the AI to carry out, plus a completion type that decides when the step is finished and whic... |
| ChatCompletionResponse | Deserialised response from OpenAI's Chat Completions endpoint (POST /v1/chat/completions), returned by OpenAiClient.getChatCompletion. |
| DecisionAgentWorkflowStepCompletionType | Completion type that asks the AI to choose between a list of named choices, using a prompt to decide. |
| DecisionChoice | A single named option within a DecisionAgentWorkflowStepCompletionType, with a description that helps the AI decide whether to take it, and the comple... |
| EndWorkflowStepCompletionType | Completion type that marks the workflow as finished. |
| FunctionCallAgentWorkflowStepCompletionType | Completion type that finishes a step once a named function has been successfully called, for example when a sales claim is submitted. |
| ImmediateAgentWorkflowStepCompletionType | Completion type that progresses the workflow to the next step immediately, with no required actions. |
| LlmInferenceInfo | Records the parameters, timing and outcome of a single invokeInference call, built by LlmManager before the call and updated after it completes. |
| PromptAgentWorkflowStepCompletionType | Completion type that runs one or more prompts against the AI and then defers to an inner completion type to decide what happens next. |
| Responses | Deserialised response from OpenAI's Responses endpoint (POST /v1/responses), returned by OpenAiClient.doResponses. |
| UserConfirmsAgentWorkflowStepCompletionType | Completion type that waits for the user to confirm before proceeding, then defers to an inner completion type. |
| ValidationAgentWorkflowStepCompletionType | Completion type that wraps another completion type so it only completes once one or more validation criteria are met. |
Account Settings
| Name | Description |
|---|---|
| AccountConfigSnapshot | Portable, point-in-time capture of an account's app configuration, used to detect and review configuration drift. |
| AppDeltas | Groups the config deltas for a single app, further split out by config item type. |
| AppTypeAction | Records that a group of config item changes (an AppTypeDeltas) has been actioned during deployment review, who actioned it, when, and how, using one o... |
| AppTypeDeltas | Holds the config item deltas of one type, such as settings, within a single app's AppDeltas. |
| ConfigDelta | Represents the difference between one portable config item in a source snapshot and the same item in a destination snapshot. |
| ConfigDiff | Represents the full set of differences between two account configuration snapshots, grouped by app and then by config item type. |
| ConfigItem | Represents a single portable item of app configuration captured into an AccountConfigSnapshot, such as an app's settings or an entity contributed by a... |
| IgnoredConfigItem | Records a single config item, or a wider group of config items, excluded from configuration diffs and deployments for a tenant account. |
| IgnoredConfigItemList | The full list of config items excluded from configuration diffs and deployments for a tenant account. |
Addresses
| Name | Description |
|---|---|
| AddressBean | Portable postal address, used as a nested property when building organisation, user and shopping cart addresses. |
App Definitions
| Name | Description |
|---|---|
| AppMenuItem | One item in the Kademi admin menu, contributed by an app through a menu element in its controllers.xml. |
| AttsMap | A map of default component attributes, built with a fluent add(...) method so callers can chain calls when constructing the defaultAtts argument for t... |
| ComponentBean | A KEditor component registered by an app: a draggable, configurable block (e.g. |
| ControllerMapping | Maps a URL path pattern to a logical controller registered by an app, with the list of methods that can be invoked against it based on the HTTP method... |
| ControllerMappingList | Registration API a repository app's server side JavaScript uses to declare everything the app contributes to the platform. |
| ControllerMethod | Binds one HTTP method, such as GET or POST, on a ControllerMapping to the JS function that handles it, an optional required request parameter, and the... |
| Dependency | Represents one repository app that another app depends on, identified by app id and an optional branch or version, with a flag for whether the depende... |
| PaymentProviderDetails | Registration that marks an app as a payment provider, holding the function names and payment form it offers to shopping carts. |
| RepoAppJourneyFieldV2 | Version two app field, evaluated either by calling a JavaScript function or by reading a bean property from the parent object. |
| RepoAppQuery | Saved search query contributed by an app, registered with addQuery from a JSON file in the app repository. |
Asset Types
| Name | Description |
|---|---|
| AndMatcher | Combines a list of asset interaction matchers with logical AND, matching an asset only when every child matcher matches it. |
| OrMatcher | Combines a list of asset interaction matchers with logical OR, matching an asset if any one of the child matchers matches it. |
| PathMapping | Maps a URL path pattern to an asset view within an asset type, used to route content delivery requests to the right view or to a new-instance form. |
| RequestContentTypeMatcher | Matches when the current request's Content-Type header starts with a configured value. |
| RequestMethodMatcher | Matches when the current request's HTTP method equals a configured method, such as GET or POST. |
| RequestParamMatcher | Matches when the current request carries a configured parameter, optionally with a specific value. |
| TrueMatcher | A matcher that always matches, regardless of the asset or the current request. |
Assets
| Name | Description |
|---|---|
| Asset | Represents one item in the asset library, such as an image, video, block of text or content item. |
| BinaryAsset | An asset whose content is a stored file, such as an uploaded document, image or video. |
| ContentItemAsset | An asset which is a combination of fields and relationships to other assets rather than a stored file. |
| ImageAsset | An image file in the asset library, with the pixel dimensions recorded alongside the stored file. |
| VideoAsset | A video file in the asset library, with its playback duration and frame size recorded alongside the stored file. |
| VisualAsset | A binary asset that has visible dimensions, being the shared parent of images and videos. |
Builders
| Name | Description |
|---|---|
| AbstractRecognitionBuilder | Base fluent builder for the properties shared by every kind of recognition (level or badge): display title, image, colour, the free-form field1 to fie... |
| AcceptReferralBuilder | Fluent builder for accepting a referral. |
| AgentDefBuilder | Fluent builder for an AgentDef, obtained from AgentManager.newAgentDefBuilder(). |
| AlertBuilder | Fluent builder for creating a new Alert, obtained from AlertsManager.newAlertBuilder. |
| ArrayBuilder | Fluent builder for a JSON array, used together with MapBuilder to assemble nested document bodies such as Elasticsearch index requests. |
| ArticleBuilder | Fluent builder for creating a new blog article with optional category, tags, images, files and audience filtering set in one call. |
| AssetViewsBuilder | Builds the AssetView instances used by content-type scripts to control how a matched request is rendered. |
| AuctionBuilder | Fluent builder for creating a new auction with optional images, access restrictions, bidding rules and page body content. |
| AuditItemSearchBuilder | Fluent builder for a filtered, paginated search over AuditItem records belonging to one tenant organisation. |
| AuthHandlerBuilder | Fluent builder for registering a custom Milton authentication handler backed by JS functions, reached from controllerMappings.authenticationHandler(). |
| BaseCriteriaBuilder | Base fluent builder for Hibernate criteria restrictions, exposed to JS as the chainable methods available on a query and on its AND/OR sub-blocks. |
| Builder | Fluent builder for a FraudContext, the description of the operation a fraud rule is asked to score. |
| CacheBuilder | Fluent builder for declaring an app-scoped, in-memory cache, reached from controllerMappings.cacheBuilder(). |
| CartItemBuilder | Fluent builder for adding a product SKU to a cart, or updating the existing line item for that SKU. |
| ChartBuilder | Fluent builder for a chart's title, axis labels, dimensions, orientation and data points. |
| CheckoutLineItemBuilder | Fluent builder for constructing a CustomCheckoutRuleLineItem, used by custom checkout rule implementations (including JS-based rule scripts) to add pr... |
| CheckoutRuleTypeBuilder | Builds a custom shopping cart checkout rule type contributed by this app. |
| ColumnMetaBuilder | Fluent builder for a single ColumnMeta, used to set a column's title, width, sort and visibility, and CSS classes or attributes before it is built as... |
| CommentPostBuilder | Builds a new comment against a blog article or a content resource, optionally as a reply to an existing comment and with extra request parameters atta... |
| ComponentBuilder | Builds a KEditor component declaration, which is a drag and drop block content editors can place on a page. |
| ConfigItemListBuilder | Builder used by an app's appendConfig implementation to add the app's config items, such as settings or app-specific entities, into an AccountConfigSn... |
| ControllerMappingBuilder | Fluent builder for registering a URL to controller mapping for a custom app, reached from controllerMappings.adminController() for admin screens or co... |
| CookieBuilder | Fluent builder for a single cookie, obtained from HttpWrapper.cookieBuilder(name). |
| DataSeriesExtraFieldBuilder | Fluent builder for adding a single extra field to a sales data series. |
| DebugSessionBuilder | Fluent builder for configuring a new DebugSession before it is started. |
| DefaultKSearchRequestBuilder | Fluent builder for one Elasticsearch search request, wrapping the native SearchRequestBuilder behind the KSearchRequestBuilder API. |
| DependencyMappingBuilder | Fluent builder for accumulating a list of Dependency entries. |
| DocumentAnalysisBuilder | Fluent builder for the options passed to an AWS Textract document analysis, configuring which features Textract runs and, for the queries feature, whi... |
| EmailItemBuilder | Fluent builder for composing a single outbound email and queuing it for delivery, obtained in JS from applications.email.emailBuilder(). |
| EmailSenderDetailsBuilder | Fluent builder for configuring the JS function an app uses to send outgoing email. |
| ESFieldBuilder | Per-field configuration for a single Elasticsearch mapping field, created by one of ESMappingsBuilder's newX methods and completed with a call to buil... |
| ESMappingsBuilder | Fluent builder for Elasticsearch index mappings, used by AppIndexer implementations to describe how a field is stored and searched. |
| EventBuilder | Fluent builder for assembling and firing a custom repository app trigger event, obtained by calling EventWrapper.eventBuilder and used from GraalJS vi... |
| FieldV2Builder | Builds a version two field, which is a typed value an app contributes for use in segments, journeys and queries. |
| FilePostBuilder | Describes one file attached to a forum post, wall post or comment: its name, content hash, content type, size and display order. |
| ForumPostBuilder | Builds a new forum post or forum reply within a specific forum. |
| FunnelActionTypeBuilder | Builds a funnel action type, which is a step an automation can perform when it runs. |
| FunnelTriggerTypeBuilder | Builds a funnel trigger type, which lets an automation be started by an event raised by this app. |
| IdpDynamicPathsBuilder | Builder for registering a set of URL paths that an app handles as a dynamic identity provider endpoint. |
| ImageGenerationOptionsBuilder | Fluent builder for assembling ImageGenerationOptions before calling ImageGenerationManager.generateImage. |
| IndexItemBuilder | Fluent builder for assembling an IndexItem to add to a website's vector search index. |
| InvoicePaymentBuilder | Fluent builder for creating and saving an InvoicePayment. |
| JoinTableBuilder | Fluent builder for a JoinTable, which combines rows from two other registered tables on a matching key column. |
| JsImplementationBuilder | Fluent builder for registering a JS object as an app's implementation of a named platform extension point, reached from controllerMappings.newImplemen... |
| JsMetricTypeBuilder | Fluent builder for a JsMetricType, obtained from an app's controllerMappings.newMetricTypeBuilder(). |
| JsonSchemaResponseFormatBuilder | Fluent builder for the OpenAI-style json_schema response format map that forces a language model to return output matching a specific structure. |
| JsServiceBuilder | Builds a named JavaScript service that this app publishes for other apps to call. |
| JsTableActionHandlerBuilder | Fluent builder for a JsTableActionHandler, exposed to app and library JS code as controllerMappings.newTableActionHandlerBuilder(). |
| JunctionCriteriaBuilder | A nested AND/OR block within a Hibernate criteria query, created by calling conjunction() or disjunction() on a BaseCriteriaBuilder. |
| KCriteriaBuilder | Builder and query factory for a single persistent entity type, scoped to the current admin organisation. |
| LoginNonceSearchBuilder | Fluent, JS-facing query builder for LoginNonce records, the login session tracking rows created each time a user authenticates. |
| MailboxMappingBuilder | Fluent builder for a mailbox mapping, letting a custom app capture incoming email for its website domain. |
| MapBuilder | Fluent builder for a nested map of string to object, used to assemble JSON-shaped documents such as Elasticsearch index bodies. |
| McpMappingBuilder | Fluent builder for registering a Model Context Protocol server contributed by an app, reached from controllerMappings.websiteMcpController for a serve... |
| MenuMappingBuilder | Fluent builder for a MenuMapping, letting an app contribute or modify menu items at runtime rather than declaring them statically in controllers.xml. |
| MetricBuilder | Fluent builder for a Metric, obtained from newMetricBuilder or QueryManager.newMetricBuilder. |
| ModuleStatusBuilder | Fluent builder for creating a new module status or updating an existing one, obtained from LearningManager.newModuleStatusBuilder(). |
| NotificationBuilder | Fluent builder for the VAPID keys, subscriber subscription and payload needed to send a web push notification through HttpPushManager.sendNotification... |
| OrganisationBuilder | Fluent builder for creating a new Organisation, produced by newOrganisationBuilder(). |
| ParticipantSearchBuilder | Builder for a search that finds the profiles or organisations eligible to participate in a promotion (a Reward), used to page and filter that particip... |
| PaymentProviderDetailsBuilder | Builds the payment provider registration for an app, so the app can take payments for shopping cart checkouts. |
| PipelineBuilder | Builds and saves a simple export-only pipeline for an endpoint: a transaction step wrapping either a query export step or a table uploader step, writt... |
| PointsAllocationSourceBuilder | Fluent builder for configuring and creating a points allocation source on a sales data series - the rule set that turns a series' sales records into r... |
| PointsExpiryRuleTypeBuilder | Fluent builder for a points expiry rule type contributed by an app, reached from controllerMappings.pointsExpiryRuleTypeBuilder(id, title). |
| PointsRuleTypeBuilder | Builds a points rule type, which decides whether a sales record earns points and how many. |
| PointStatementBuilder | Fluent builder that assembles and persists a PointStatement, a periodic snapshot of a participant's points balance for a reward. |
| PointsTransactionsSearchBuilder | Fluent builder for searching a tenant's points transactions, ie its Points and PointsDebit records. |
| PortletMappingBuilder | Fluent builder for an admin or website portlet contributed by an app, reached from controllerMappings.adminPortletController for admin pages or contro... |
| PostAttachmentBuilder | Describes one file attached to a forum post or comment: its name, content hash, content type, size, an optional note and its display order. |
| PostBuilder | Base builder for creating a post, comment or reply: holds the common comment text, poster, posted date, website and branch, and any file attachments,... |
| ProductBuilder | Fluent builder for creating a new catalogue Product, letting callers set its pricing, categories, images and parameters before persisting it in one ca... |
| ProductParameterBuilder | Fluent builder for a single variant parameter of a product being built, such as size or colour, together with its selectable options. |
| ProductSearchBuilder | Fluent builder for searching products in the catalogue. |
| ProductSkuBuilder | Fluent builder that creates or updates a SKU for a given product and SKU code. |
| ProfileBuilder | Fluent builder for creating a profile together with its memberships, custom field values and addresses in one go. |
| ProfileTabsBuilder | Fluent builder for an extra tab, and optionally a summary panel, added to an admin profile or organisation page, reached from controllerMappings.admin... |
| PromotionBuilder | Fluent builder for constructing and persisting a new promotion (a Reward). |
| PromotionMechanicTypeBuilder | Builds a promotion mechanic type, which is the behaviour behind a promotion such as a prize draw or an instant win. |
| QrCodeBuilder | Fluent builder for rendering a QR code image, obtained via BarcodeManager.qrCode(). |
| QueryParameterBuilder | Fluent builder for a QueryParameter, created via QueryParameter.newQueryParameterBuilder with the parameter's name and type, then configured with an o... |
| RecognitionBadgeBuilder | Fluent builder for creating a recognition badge, extending the common recognition properties defined on AbstractRecognitionBuilder. |
| RecognitionLevelBuilder | Fluent builder for creating a recognition level: extends the common recognition properties with a fixed level amount, an optional lookup-table name, a... |
| RecognitionTopicBuilder | Builds a new recognition topic for the current tenant organisation. |
| RecordMatcherBuilder | Fluent builder for creating and persisting a new record matcher on a sales data series. |
| ReferralBuilder | Fluent builder for sending a referral invitation. |
| RegressionBuilder | Accumulates a time series of dated observations and builds an AnomalyDetectionModel or ForecastModel from them. |
| RepoAppEventDefBuilder | Fluent builder for declaring a repository app event, reached from ControllerMappingList.newEventDefinitionBuilder. |
| RepoEsMappingsBuilder | Fluent builder for declaring an app's Elasticsearch index mappings for one of its own databases. |
| RewardCategoryBuilder | Fluent builder for constructing and persisting a new RewardCategory. |
| RewardEntryBuilder | Fluent builder for constructing and submitting a new RewardEntry, recording that a profile has entered or been awarded a promotion. |
| RunBuilder | Collects the settings for one agent turn, obtained from AgentOrchestratorManager.newRun and run by calling execute. |
| SearchParametersBuilder | Fluent builder for assembling the SearchParameters used to run a vector search. |
| SeriesBuilder | Collects a metric time series a bucket at a time, so a script can stream histogram buckets in without building Java collections itself. |
| SigninProviderBuilder | Builds a single alternative sign in provider entry, such as an SSO button, for a repository app's admin console or website sign in page. |
| SigninProviderDetailsBuilder | Registers a function that dynamically produces the full list of alternative sign in providers for a repository app's admin console or website, as an a... |
| SkuSearchBuilder | Fluent builder for the criteria used to search or look up product SKUs in the catalogue. |
| SmsProviderDetailsBuilder | Registers a repository app as an SMS provider, by declaring the function names used to send a message and to supply the provider's settings. |
| SseMappingBuilder | Registers a Server-Sent Events (SSE) connection type for a repository app, so browsers can open a persistent event stream of that type and have the ap... |
| StreamEventBeanBuilder | Fluent builder that assembles a StreamEventBean and appends it to a profile's or lead's activity timeline. |
| TableViewMetaBuilder | Fluent builder for a TableViewMeta, used to assemble a table's paginator, records, columns and CSS classes step by step in a template or controller be... |
| TemplateDefBuilder | Builds a page or email template definition contributed by an app, so content editors can create pages from it. |
| ThumbnailBuilder | Fluent builder for generating a thumbnail from an uploaded image or PDF and saving it into content storage. |
| TriggerTypeBuilder | Registers a repository app automation trigger, which adds an entry to the automation page that a user can configure and that fires a format function w... |
| VoucherAllocationBuilder | Fluent builder for allocating a single voucher, either a specific voucher passed via voucher(Voucher) or, if none is given, the first available unallo... |
| VoucherStatusBuilder | Fluent builder for changing a voucher's status, recording who made the change, when, at which organisation and with what notes. |
| VoucherTypeAllocationBuilder | Fluent builder for allocating one or more vouchers of a given voucher type. |
| VoucherTypeBuilder | Fluent builder for creating a new voucher type, or updating an existing one, on the current tenant organisation. |
| WallPostBuilder | Collects the data needed to post a comment onto an organisation's or profile's wall: the target entity, the comment text or a triggering ShareableItem... |
| WebsocketMappingBuilder | Fluent builder for one app-defined websocket data type, configuring its connect, disconnect and message handler functions and whether it is restricted... |
| ZipBuilder | Adds entries to a zip file being written by exportToZip. |
Content
| Name | Description |
|---|---|
| AltFormatMatcher | Matches an asset interaction against a request's "format" query parameter, used to serve alternate rendered formats of an asset such as a transcoded v... |
| ContentTypes | Holds the content-type configuration for a tenant: the asset type definitions loaded from the content-types repository, and the paths to the JS source... |
| EditAssetAction | Default form-submit action for asset types: creates or updates the underlying content item from posted form fields. |
| JsAssetAction | Form-submit action that delegates to a named JavaScript function registered with the content type system. |
| LogAssetAction | Form-submit action that logs the submission for debugging and otherwise does nothing. |
| MultiAssetAction | Form-submit action that chains a list of other actions together and runs each of them on the same submission. |
| NewAssetMatcher | Matches an asset interaction only while the asset is newly instantiated, ie created in memory but not yet persisted. |
| RedirectAssetAction | Form-submit action that redirects to a URL built from an MVEL template. |
| StartJourneyAssetAction | Form-submit action that enrols the current user into a marketing journey (funnel) when a form is submitted. |
Custom Fields
| Name | Description |
|---|---|
| ExtraField | Defines a single configurable field on an entity such as a lead, an automation trigger, or a metric - name, title, type, options and validation, plus... |
| ExtraFieldRenderer | Fluent builder for rendering an ExtraField as an HTML form control, with the value, CSS classes, name attributes and kcode selection flag configured t... |
| GroupExtraField | An extra field definition that renders as an editable group select drop down, letting a form present a choice of groups as one of the configurable cus... |
| ProfileIdentifierExtraField | Marks an extra field as a unique profile identifier, letting a profile be looked up by that field's value instead of by username. |
Database Entities
| Name | Description |
|---|---|
| AccessBlock | Records a restriction on access for one entity, either a profile or an organisation, within an account. |
| Address | A postal address stored against a Kademi account, made up of the usual two address lines, city, state, postcode and country. |
| AddressBook | An AddressBook is a Repository which can have linked contact records. |
| Agent | A running instance of an agent definition for one particular user. |
| AgentMemory | One durable fact an agent has recorded about the person it works for. |
| AgentRun | Execution state for one run of an Agent's gather, plan, act and verify loop, as driven by the AgentOrchestrator. |
| AgentTarget | Links an Agent to the thing it is paying attention to, so an agent can be given a set of profiles or organisations to work on. |
| AgentWorkflow | The current state of one piece of work an AI agent is carrying out, much as a Lead is the state of one profile's progress through a journey. |
| Alert | A message shown on the dashboard of a website or of the admin console, optionally narrowed to a particular audience. |
| AlertAck | Records one member's relationship with an alert: that the alert has been activated for them, and, once they dismiss it, that they have acknowledged it... |
| AppRating | A single star rating and written review left by a profile against a marketplace item. |
| AppRepository | A repository holding the source of one app, theme, library or recipe installed into an organisation. |
| AsyncJob | One unit of background work in the platform's asynchronous job queue, such as an import, an export or a bulk update. |
| AsyncJobStatus | Holds the current progress of a background job, so a client can poll it while the job is still running. |
| AttendeeRequest | One person's invitation to, or registration for, a CalEvent, along with the participation status saying whether they have accepted. |
| Auction | A single item put up for bidding on a website, with its bidding window, starting price and current leading bid. |
| AuctionBid | One bid placed on an auction, recording the amount, who placed it, when, and the IP address it came from. |
| AuctionGroup | Gives the members of a user group access to an auction, so they can view it and bid. |
| AuctionImage | An image shown for an auction, for example a photo of the item being auctioned. |
| AuctionOrganisation | Gives an organisation access to an auction, so the people in it can view the auction and bid. |
| AuctionSet | A named group of auctions run together as one event, holding the auctions and the default start and end dates new ones inherit. |
| AuditItem | One recorded change to an audited record, holding what changed, who changed it and the record's previous state so the change can be reverted. |
| AuditRestorePoint | Marks a moment in an organisation's audit history that its configuration can be rolled back to. |
| BackupRecord | Tracks one backup taken of an organisation's data, from the moment it is requested through to the file it produces. |
| BaseEmailCategory | Named category used to file email jobs under an organisation so administrators can group and browse them. |
| BaseEmailJob | Base class for every email job in an account: scheduled emails, one-off group emails and email triggers. |
| BaseRecognition | Common definition shared by the two kinds of recognition a profile can earn: a badge and a level. |
| Blog | A blog on a website, holding its articles along with the tags and categories used to organise them. |
| BlogArticle | Represents a blog article. |
| BlogArticleTag | Links a blog article to one of the tags available on its blog, so the article can be found by topic. |
| BlogCategory | A category available on a blog, such as news or promotion, which an article can be filed under. |
| BlogFile | A file attached to a blog article, such as a document offered for download, created when the article is approved from the meta fields in its content f... |
| BlogImage | An image belonging to a blog article, created when the article is approved from the meta fields in its content file. |
| BlogTag | A topic tag available on a blog, such as health or humour, which articles can be tagged with. |
| BlogTagProfile | Records that a reader is interested in a blog tag, so articles on that topic can be promoted to them. |
| Branch | A Commit is a link between a Repository and an TreeItem The TreeItem linked to is a directory, and its members are the members of the Repository for t... |
| Calendar | A calendar belonging to an organisation or a profile, holding the CalEvent rows shown to its users. |
| CalEvent | A single dated event on a Calendar, holding its timing, location and description as well as the registration settings that decide whether people may s... |
| CalEventProduct | Links a calendar event to the product that is sold to attend it, such as a seat at a training course. |
| Cart | Represents a shopping cart, the customer's in-progress or completed order for one or more products. |
| CartInPromotion | Records that a promotion has been applied to a shopping cart, keeping the code the shopper entered as well as the promotion it resolved to. |
| Category | A grouping of products within one organisation, used to organise a reward store or product catalogue. |
| Certificate | Represents a certificate, which can be associated with a module A certificate is basically a piece of templated text and a background image. |
| Comment | A comment left on a content item, such as a page, an article or a profile wall. |
| Commit | A Commit is a link between a Repository and an TreeItem The TreeItem linked to is a directory, and its members are the members of the Repository for t... |
| Contact | Search optimised copy of a contact that lives in an address book, holding just enough of the person's details to find them quickly. |
| ContactExtendedProperty | Holds one extra named value against a contact, for details that do not have their own column on the contact record. |
| ContactRequest | Represents a single submission of a website contact form, storing the visitor's details and message. |
| ContactRequestAttachment | A file uploaded with a contact form submission, held against the contact request it came in with. |
| ContactRequestField | One extra name and value pair captured with a contact form submission, holding a field which the built-in contact request properties do not cover. |
| CpdAward | Records an award of a number of CPD (continuing professional development) training points to a member for completing a module. |
| CustomReport | An administrator defined CSV report over one source of data, held against an organisation. |
| DueTransaction | One instalment of a recurring transaction that has fallen due, tracking that single payment through however many attempts it takes to succeed or fail. |
| ECommerceStore | A shop front within a website, holding the products offered for sale and the pricing defaults applied to them. |
| EmailAttachment | A single file attached to an EmailItem, referencing the file's content by hash rather than storing it directly on the entity. |
| EmailControl | Account level controls over outbound email, holding the sending kill switch, the rate limit rules and the sender identity mode for one account. |
| EmailItem | Represents a single email message: an outbound send that is queued, retrying, completed or failed, or an inbound email received into a profile's inter... |
| EmailJobAttachment | An attachment specification for an email job. |
| EmailSendAttempt | Records one attempt at sending a single email, successful or not. |
| EmailTrigger | An automation rule which fires whenever a named event occurs in an organisation, and performs one or more configured actions. |
| Enrolement | Grants a group access to a training programme, or to a single course within a programme, on one website. |
| EntityAddress | Attaches an Address to a profile or organisation, with a type saying what the address is used for. |
| FanoutEntry | One child hash within a fanout, linking a FanoutHash to the next level down in the content graph. |
| FanoutHash | Represents either a list of other fanout hashes, or a list of blob hashes Generally a file will have a hash which is used to locate the file fanout. |
| FileAttachment | A file attached to some other item, such as a comment or a blog post, holding the file's metadata and the hash used to fetch its content. |
| FolderLink | Maps a folder in one content repository onto a folder in another, so the same content appears in both. |
| Forum | A discussion forum on a website, holding the topics (forum posts) that members start within it. |
| ForumPost | A topic started in a forum, ie the opening post of a discussion thread. |
| ForumReply | A reply to a forum post, stored as a kind of post so it shares the poster, post date, website and soft delete behaviour of every other post. |
| FraudEvent | A fraud evaluation that scored high enough to be worth keeping, one row per scored operation. |
| FunnelEdm | Links a funnel node's outgoing email or SMS message to the lead and funnel repository it was sent from, so that later delivery and interaction events... |
| FunnelRepository | A versioned content repository that holds one funnel, the definition of a journey that leads are pushed through. |
| Group | A user group, is a list of users and other groups. |
| GroupCalendar | Links a group to a calendar, so that the calendar is shared with every member of that group. |
| GroupEmailJob | A one-off bulk email sent to a set of groups or organisations, or a reusable template for such an email. |
| GroupFolder | |
| GroupInWebsite | Creates a link between a program and a website, which makes that program available on that website. |
| GroupMembership | Records that a profile is a member of a group within a particular organisation, which is how nearly all permissions and group-driven behaviour are ass... |
| GroupMembershipApplication | A pending request to join a closed group, created instead of a group membership until an admin decides. |
| GroupRecipient | Attaches a group to an email job or an SMS job as an audience, so everyone in the group is a recipient of that job. |
| GroupReward | Makes a reward accessible to the members of a user group, which is how access to a rewards programme is granted. |
| GroupRole | A GroupRole is a well known identifier for a set of permissions. |
| GroupSmsJob | A bulk SMS send addressed to one or more groups of profiles, the SMS equivalent of a group email job. |
| InventoryLocation | A physical place that stock is held in, such as a warehouse, a store room or a branch. |
| Invoice | A bill issued to a customer, holding the line items being charged for and the date payment falls due. |
| InvoicePayment | A payment intended to be applied to invoices. |
| InvoicePaymentLink | Links an Invoice to an InvoicePayment. |
| ItemImage | A single image file that can be attached to a catalogue item, most commonly a product through ProductImage. |
| JobStatus | Tracks the progress of a long running background job so a user interface can poll it and show state. |
| JourneyAutomation | Records that a journey automation fired for a profile or organisation, so that a journey can be replayed and so that once-only automations can tell th... |
| JsonDatabase | A named collection of JSON documents (JsonDocument rows) owned by an organisation and optionally scoped to a website. |
| JsonDocument | A single named JSON record stored inside a JsonDatabase, the platform's schemaless store for app data. |
| JsSchedule | A scheduled call to a server side JavaScript function in an app, run by the platform's timer scanner. |
| Language | A language an organisation has made available, so content and translations can be offered in it. |
| Lead | One prospect or deal moving through a funnel, holding who it is for, where it has got to, and what it is worth. |
| LeadFile | A file attached to a lead, such as a photo, quote or signed document, held by content hash rather than as bytes on the row. |
| LeadFork | A parallel branch of a lead's progress through a journey, tracking its own current goal and its own timeout timer independently of the lead. |
| LeadFormEventLog | Records an event on a form that a lead was asked to complete, such as the form being submitted. |
| LeadJourneyTransition | One step of a lead moving from one journey node to the next, written every time a node is attained. |
| LeadNote | A single entry in the activity timeline of a lead, such as a phone call, an email or a typed note. |
| LeadParticipant | Persists a single custom-role participant assignment on a Lead - ie a participant filling a role beyond the 4 legacy system roles (customer/customer_o... |
| LeadProduct | One line item joining a product to a lead, with an optional quantity, so a lead can record what the prospect is interested in or has been quoted. |
| LeadStage | A LeadStage represents a lead reaching a stage in a marketing or sales pipeline. |
| LineItem | One charge line on a quote, invoice, purchase order or other payment item list. |
| LlmConversation | A single chat session between a person and an AI assistant, recorded so conversations can be listed, resumed and counted per organisation. |
| MarketPlaceItem | The marketplace listing for an app, theme, recipe or library: the name it is installed by, the blurb and images shown on its listing page, and the ver... |
| MarketPlacePublishedItem | One published version of a marketplace app, theme, library or recipe, holding the listing details and the git branch that version's code lives on. |
| ModuleCalEvent | Schedules a learning module by tying a calendar event to a particular programme, course and module on a website, optionally for one cohort. |
| ModuleCompletion | Records that a learner has completed a single learning module, scored as a percentage where the module is assessed. |
| ModuleStatus | Tracks one learner's progress through one module, identified by website plus programme, course and module code. |
| ModuleStatusField | One extra named value captured against a learner's progress through a module, for anything the fixed ModuleStatus columns do not cover. |
| NamedCounter | A named counter provides a means of generating monotonically increasing series, such as order or invoice numbers. |
| NotifyPreference | Holds whether a person wants to receive notification emails from a given website. |
| NvPair | A NvPair is to allow data capture for entities such as users, groups and organisations Every NvPair is associated with a NvSet. |
| NvSet | A set of NvPair name and value pairs describing one item, used both to define which fields to collect and to hold the values that were collected. |
| OptIn | Offers one group as an optional subscription to the members of another group. |
| OrderAttachment | A file attached to a product order, such as a proof, an artwork file or a receipt image. |
| Organisation | An organisation contains users and websites. |
| OrganisationRecipient | Attaches an organisation to an email job or an SMS job as an audience, so people within that organisation are recipients of the job. |
| OrgType | A type of organisation, which is used to limit what organisations a group is permitted to signup to. |
| ParameterOption | One selectable value of a product parameter, for example Black or White for a "Colour" parameter. |
| PasswordPolicy | Defines the password complexity rules that members of a group must satisfy, such as minimum length and required character classes. |
| PaymentItemList | Base class for the money documents a payment item list can be: an invoice, a quote or a purchase order. |
| PaymentItemListAttachment | A file attachment held against a payment item list, such as an invoice, quote or purchase order. |
| PaymentTransaction | Records one attempt to take a payment through a payment provider, successful or not. |
| PipelineExecution | One run of an integration pipeline, recording whether it succeeded and every message logged while it ran. |
| PipelineSchedule | A recurring timer that runs one integration pipeline on a fixed interval, such as every three days or every month. |
| Points | Represents a single credit of points issued to a profile or organisation under a reward, such as a prize draw or a set of gift vouchers. |
| PointsAllocation | Records one allocation of points made by the points engine, linking the credit or debit it created back to whatever caused it. |
| PointsAllocationRule | Defines one rule that transforms a points allocation, by adding to it, multiplying it, or transferring the points to another profile or organisation. |
| PointsAllocationSource | Rule which turns records in a sales data series into points allocations, deciding which records count, how many points they are worth and who receives... |
| PointsBalance | The running points total held by one profile or organisation under one reward, kept as a stored value so a balance can be read without summing the who... |
| PointsDebit | Records points being taken off a balance in a rewards programme, because they were spent or because they expired. |
| PointsDebitLink | Links a points debit to the points credit it was taken from, so a spend can be traced back to the reward and points tag the points were originally iss... |
| PointsTag | A label that points credits and debits can be grouped under, so an account can separate its points into named pools. |
| PointStatement | A snapshot of one participant's points balance under a single reward, taken on a given statement date. |
| Post | Base of everything members write into the social features: comments, forum topics and forum replies. |
| PostFollower | Records that a profile is following one piece of content on a website, so they can be notified when it is commented on or updated. |
| PostTag | Records that a person was tagged into a post, which is how mentions in a comment, question or reply are tracked. |
| Product | A product in an organisation's catalogue: anything that can be ordered or redeemed, such as physical goods, vouchers or calendar bookings. |
| ProductImage | Attaches an image to a product, so a product can show a gallery of pictures in the store. |
| ProductInCategory | Places one product in one category, forming the many to many link between products and the catalogue tree. |
| ProductInEComStore | Lists one product in one e-commerce store, and carries the pricing and ordering that apply to it in that store only. |
| ProductInLocation | The stock level of one product SKU held at one inventory location. |
| ProductOrder | Represents a single line item within a customer's order or shopping cart, recording the product purchased, its quantity and cost breakdown. |
| ProductOrderOption | The answer a customer gave to one of a product's ordering questions when placing an order, such as the name to engrave or a delivery instruction. |
| ProductOrderStatus | Records one step in the lifecycle history of a ProductOrder, such as being added to a cart, ordered, shipped or cancelled. |
| ProductParameter | Represents a variation of a product which can be requested by a purchaser For example, for a shirt product, there might be a variation of size which c... |
| ProductSku | Represents a stock keeping unit: one product, or one specific combination of a product's option values, that can be ordered and stocked. |
| ProductSkuOptions | Links a product SKU to one of the parameter options that define it, for example the colour black or the size large. |
| Profile | A user profile is defined within an organisation. |
| ProfileIdentifier | An alternative, unique way of identifying a member within an organisation, such as a payroll number, a dealer code or an external system's customer id... |
| Proposal | Groups the quotes offered to a customer for one piece of business, and records which of them was accepted. |
| PurchasedApp | Records that an organisation has acquired a marketplace app, and pins which version of it they are on. |
| QuizAnswer | Represents the answer a user gave for a particular question when submitting a quiz. |
| QuizAttempt | One submission of a set of answers to a quiz. |
| Quote | A priced offer made to a customer, holding the line items being quoted and the date the offer lapses. |
| Receipt | Acknowledges a payment made against an invoice, naming who paid, who was paid, how much was paid and what the invoice came to. |
| RecognitionAward | Records that a badge or a level was awarded to a profile or an organisation. |
| RecognitionBadge | A badge people can be nominated for in a recognition programme, such as a values or long service award. |
| RecognitionLevel | A tier a profile can reach on the metric its recognition topic measures, such as Bronze, Silver and Gold. |
| RecognitionLevelNotification | Records a deferred recognition level notification for one participant, either a close-to-level warning or an achieved-level announcement. |
| RecognitionNomination | One member's nomination of another member for a recognition badge, awaiting a decision from an approver. |
| RecognitionPeriod | One run of a recognition programme for a topic, such as a monthly or quarterly award round. |
| RecognitionPeriodResult | One participant's outcome for one recognition period, holding the value they achieved and the level they reached. |
| RecognitionTopic | A container for a set of recognition badges and levels within an organisation, and the metric its levels are measured against. |
| RecordMatch | A single matched group produced by a RecordMatcher, eg one bundle instance or one role-split instance. |
| RecordMatcher | Defines a rule that scans a sales data series for sets of matching records and generates destination records representing each match. |
| RecordMatchLink | Links a SalesDataRecord to a RecordMatch group, either as one of the records consumed to produce the match (SOURCE) or as one of the records generated... |
| RecurringTransaction | Represents a recurring payment schedule, such as a subscription or instalment plan, that bills a stored customer token on a fixed cycle. |
| RecurringTransactionResult | Records one run of a recurring transaction, so the payment history of a subscription can be followed. |
| Referral | An invitation sent by one person to another, either to join the site as a new member or to join a specific group or organisation. |
| ReferralAcceptance | Records that someone took up a referral, linking the Referral that invited them to the profile that accepted it. |
| ReferralProgram | A refer a friend programme on a website, holding how referrals are sent, activated, rewarded and fraud checked. |
| Reminder | A scheduled reminder email for a CalEvent, sent a set period before the event starts. |
| Repository | A repository |
| RepositoryCategory | |
| RestApiApp | A third party application registered against an account so it can use the Kademi REST API through OAuth2. |
| RestApiAuthorization | A single-use OAuth2 authorisation code issued to a RestApiApp after a profile has approved its access request. |
| RestoreRecord | Tracks one restore of an organisation's data from a backup file, from the moment it is started through to the moment it finishes. |
| Reward | Represents an incentive program, such as a prize draw, gift voucher, or points bucket, that an organisation runs for its members. |
| RewardCategory | A grouping that rewards can be filed under so a rewards catalogue can be browsed by category, for example Travel or Electronics. |
| RewardEntry | A single incentive awarded to a person, such as a gift voucher issued or an entry into a prize draw. |
| RewardQuizSubmission | One profile's submission of the quiz attached to a reward, holding every attempt they made at that quiz. |
| SalesDataRecord | Represents a single row of sales performance data recorded against a sales data series, covering one participant and one reporting period. |
| SalesDataSeries | Definition of a recurring set of sales figures collected from participants, such as monthly revenue per dealer. |
| SalesDataSeriesCategory | A grouping for sales data series, used to organise an account's series into sections in reporting and admin screens. |
| ScheduledEmail | A recurring email job which sends itself again at a fixed frequency, such as a weekly digest or a monthly statement. |
| ScheduledEmailResult | Records one execution of a scheduled email, from the moment the run started to the moment it finished. |
| SiteVisitor | Links a browser tracking id to the profile it belongs to, so anonymous visits can be attributed once the visitor is known. |
| SmsItem | One outbound SMS message: who it is going to, what it says, and how far the SMS provider has got with sending it. |
| SmsReplyItem | An inbound SMS received in reply to a message Kademi sent, linked back to the SmsItem that was sent out. |
| SmsSendAttempt | Records one attempt to hand an SMS message to the SMS provider, together with the status the provider gave back. |
| SocialInteraction | A single action taken on a social media post, such as a like, comment or share, imported into Kademi so it can be attributed to a profile. |
| SocialPosterSetting | Enables one social network as a posting destination for an organisation and records how to post to it. |
| SoftwareProduct | A licensable piece of software that people can register against, defining how long a licence lasts and which profile properties are written into the g... |
| SoftwareRegistration | Records that a person has been issued a licence for a software product, and holds the licence text that was generated for them. |
| Subordinate | Represents a Profile which is a subordinate to an organisation. |
| SubOrg | Represents an organisation which is subordinate to another. |
| SyncStatus | Tracks the synchronisation state of one object shared between Kademi and an external system, so an integration can tell what has already been synced a... |
| Task | An item of work for a person or team to do, such as following up a lead, running a project step or completing a funnel action. |
| TimesheetBatch | Groups the TimesheetEntry rows a member worked over a period into a single unit that is submitted and approved together. |
| TimesheetEntry | Records a block of time worked by a profile on a given day, optionally against a lead, a task or a free text label. |
| Translation | Holds the translated text for one field of one source record in one language. |
| TriggerTimer | A pending delayed firing of an EmailTrigger, created when a trigger with the create-timer action runs and due to fire once its delay has elapsed. |
| Version | Records one saved version of a content resource, linking it to the version that came before it. |
| Vote | One member's vote on a post, comment or forum reply, recording who voted, when, and by how much. |
| Voucher | A single issued voucher, such as a gift card, discount code or entitlement, belonging to one voucher type. |
| VoucherStatusChange | One step in a voucher's life, recording that it moved to a given status, when, by whom and from which IP address. |
| VoucherType | Defines a kind of voucher an organisation issues, and acts as the template every individual Voucher of that kind is created from. |
| Website | A website served by Kademi, holding the DNS name it answers to and, as a Repository, the versioned content it publishes. |
Debugging
| Name | Description |
|---|---|
| CacheStoreStats | Accumulates cache miss counts and total lookup duration recorded during a single operation, for a blob store or hash store cache. |
| DebugSession | Configuration and state for one tenant's debug session, a short-lived capture of matching web requests and/or async tasks. |
| DebugSessionInfo | Summary information for a debug session, active or closed, used to list a tenant's sessions without loading their full captured operations and logs. |
| DebugSessions | Immutable, XML-persisted registry of all currently active debug sessions across every tenant on this server instance. |
| JobOperationStartedDetails | Captured details of a single asynchronous job or other background task recorded by an active debug session. |
| LlmInferenceStats | Collects the LLM inference calls made during a single operation, for display in a debug session. |
| OperationDetails | Holds the captured details of a single operation - a web request, an asynchronous job, or another background task - recorded by an active debug sessio... |
| WebOperationStartedDetails | Captured details of a single HTTP request recorded by an active debug session, including the requested URL, method, parameters and headers, and any au... |
E-commerce
| Name | Description |
|---|---|
| AbstractCheckoutRuleContext | Base context passed to a checkout rule's JavaScript functions, carrying the rule, cart, purchaser and store that the function is operating on. |
| AbstractShippingProvider | Base class for shipping providers, holding the common configuration and cost/weight calculations that concrete providers build on. |
| CheckItemsCheckoutRuleContext | Context passed to a checkout rule's check-items function, giving it the cart's current line items, available and activated promotions, and a builder f... |
| CheckoutRules | Serialisable settings bean holding the set of custom checkout rules configured for a store. |
| CustomCheckoutRule | Configured instance of a custom checkout rule, pairing a CheckoutRuleType with the parameters and title an admin has set up for it in a store's checko... |
| DefaultShippingProvider | Default shipping provider implementation, calculating freight from a combination of a fixed per-cart cost, a fixed per-item cost, and per-item weight... |
| DefaultTaxCalcProvider | Default tax calculation provider, looking up a tax rate by the sale's country with a configurable fallback rate. |
| ExpressionShippingProvider | A shipping provider that calculates freight by evaluating an MVEL expression against the weight and quantity of each cart line, giving administrators... |
| PricingConfiguration | Holds the store-level pricing settings for an e-commerce store: currency, shipping and tax providers, points bucket names, inventory control, promotio... |
| ProcessCheckoutRuleContext | Context passed to a checkout rule's process-checkout function when a matching line item is committed, giving it the line item to commit or adjust. |
| PromotionalAvailability | Links a product category to a promotion, defining a window in which that promotion is available to products in that category. |
IDP Rules
Actions
| Name | Description |
|---|---|
| AbortRequestIDPAction | Terminal IDP action that stops rule processing and rejects the current request or email outright. |
| AccessBlockIDPAction | IDP action that places a temporary access block on the current user, or, on a failed login attempt, on the username that was attempted, preventing fur... |
| AddKnownIpIDPAction | IDP action that adds the client's IP address to a named known-IP list, for other rules to later test membership of. |
| ContinueIDPAction | Terminal IDP action that accepts the current request and stops evaluating any further IDP rules, effectively whitelisting it for this pass. |
| LogRequestIDPAction | Writes the matched request to the IDP log, either as a compact single line or as full detail including headers and parameters, without granting or den... |
| MultiIDPAction | IDP action that runs a list of child actions in order, for combining several side effects or checks into one action slot on a rule. |
| NotifyAdminIDPAction | IDP action that queues a notification to the account's administrators, for alerting on suspicious or noteworthy requests without blocking them. |
| ResponseBodyIDPAction | Writes a fixed response body straight to the client and sends it immediately, for use as a terminal IDP action such as a maintenance page or a custom... |
| ResponseCodeIDPAction | Sets the HTTP response status returned to the client, as either one of the standard named statuses or an arbitrary numeric code for cases the standard... |
| SaveToDataSeriesIDPAction | Records matching requests into a Kademi data series for reporting, using a configured field mapping to pull values from the request (eg remote IP, URL... |
| SetHeaderIDPAction | Sets a response header to a fixed configured value. |
| TelemetryIDPAction | Pushes an account telemetry event via IDPManager.pushTelemetry when a rule matches. |
HTTP Expressions
| Name | Description |
|---|---|
| AndIDPExpression | Boolean IDP condition that is true only when every one of its child expressions evaluates to true. |
| CompareIDPExpression | Boolean IDP condition that compares the values of two child expressions using a configured comparator (less than, less-or-equal, equal, greater-or-equ... |
| ConstIDPExpression | Wraps a fixed literal value as an IDP expression, so a constant such as a threshold number or an expected string can be used as one side of a CompareI... |
| DateRangeIDPExpression | Returns true while the current time is inside the given range, so a rule can be scheduled and stop applying on its own once the range has passed. |
| DynamicPathIDPExpression | Boolean IDP condition that matches when the current request's path starts with one of the dynamic path prefixes registered for a given path type by th... |
| FormParamIDPExpression | Matches on form parameter values |
| GeoLocationIDPExpression | Tests whether the client's IP address geolocates to one of a configured list of country codes, for use as a condition in IDP rules that block or flag... |
| GroupMembershipExpression | Tests whether the current user is a member of one of a configured list of groups, for use as a condition in IDP rules that restrict or vary access by... |
| HeaderIDPExpression | Tests a request header's value against a regular expression, for use as a condition in IDP rules that react to specific header values such as a user a... |
| HostIDPExpression | Tests whether the requested Host header matches a configured host name, for use as a condition in IDP rules that apply only to a specific domain. |
| KnownIpIDPExpression | Tests whether the client's IP address is a member of a named known-IP list, for use as a condition in IDP rules such as allow-listing or block-listing... |
| KnownIpRangesIDPExpression | Tests whether the client's IP address falls within one of a configured list of CIDR ranges, for use as a condition in IDP rules that allow or block tr... |
| KnownIpsIDPExpression | Returns true if the request IP is in the named known-IP list, or matches one of the given singular IPs, or falls inside one of the given CIDR ranges. |
| LookupMetricIDPExpression | IDP condition that looks up the current value of a named metric defined on the policy's Metrics tab, for use as one side of a CompareIDPExpression or... |
| MethodIDPExpression | IDP condition that is true when the request's HTTP method exactly matches a configured method name, eg POST. |
| MetricBasedLimiterIDPExpression | IDP condition that enforces a rate limit which scales with another metric, rejecting requests once a counting metric exceeds a rate that is linearly i... |
| NotIDPExpression | IDP condition that negates a single child condition, evaluating to true exactly when the wrapped expression is false. |
| OrIDPExpression | Boolean IDP condition that is true when at least one of its child expressions evaluates to true. |
| PathIDPExpression | IDP condition that matches the request path against any combination of a prefix list, a suffix list and a contained-text list, optionally restricted t... |
| PropertyIDPExpression | IDP condition that reads a single named value from the current request, for use as one side of a CompareIDPExpression or similar comparison. |
| SourceIpIDPExpression | Boolean IDP rule condition that matches when the client's IP address starts with a configured prefix, eg to match a subnet such as "10.0.". |
| ValidCsrfTokenIDPExpression | Boolean IDP rule condition that checks whether the request carries a valid CSRF token in the K-CSRF header. |
| WebsiteIpWhitelistIDPExpression | Returns true when the requested host and the client IP match a website IP whitelist that is active right now. |
Metrics
| Name | Description |
|---|---|
| AverageResponseTimeMetric | Tracks the average response time in milliseconds for requests to the same URL over a rolling time window, for use as a condition in IDP rules that rea... |
| FraudScoreIDPMetric | Exposes recent fraud scores to IDP so an account can escalate beyond Kademi's own built-in response to a high fraud score. |
| LoginsMetric | IDP metric that counts failed or successful login attempts per user within a rolling time window, for use as a condition in brute-force and account-ab... |
| RequestCountMetric | Counts requests to the same URL over a rolling time window, for use as a condition in IDP rate-limiting and abuse-detection rules. |
| RequestMatchMetric | Wraps another metric and only invokes it for requests that match a configured path and/or HTTP method, letting a general-purpose metric such as a stat... |
| StatusCodeMetric | Counts responses whose HTTP status is in a configured set, over a rolling time window, for use as a condition in IDP rules such as detecting a burst o... |
Other
| Name | Description |
|---|---|
| IDPContentAccess | Configures whether content under a path is specifically included in or excluded from the content viewing role, optionally restricted to particular gro... |
Integrations
| Name | Description |
|---|---|
| EndPointMapping | Configuration for one inbound or outbound integration endpoint, matching an address pattern to the pipeline that processes it. |
Journeys
Events
| Name | Description |
|---|---|
| AuctionBidEvent | Fired whenever a bid is processed on an auction, covering both a brand new bid and a change in who is leading. |
| AuctionClosedEvent | Fired when an auction closes, once for the outcome and again for every bidder who did not win. |
| ContactFormSubmittedFunnelEvent | Fired after a contact form or landing page submission has been saved, carrying the resulting contact request. |
| CredentialSetFunnelEvent | Fired when a new website credential, a password, e-signature or two-factor secret key, is created for a profile. |
| CredentialUpdatedEvent | Fired when a profile's credential is created or changed, covering both passwords (raised from PasswordManager) and signatures (raised from UserManager... |
| EmailDeliveryFunnelEvent | Wraps a platform EmailDeliveryEvent as a FunnelEvent so an email being delivered, failing, opened or converted can drive a marketing funnel. |
| EmailSendFunnelEvent | Wraps the creation of an outgoing email item as a FunnelEvent so a marketing funnel can react to an email being sent. |
| FileUploadEvent | Fired whenever a resource is uploaded to a website via a WebDAV PUT, so automation triggers configured with a "fileUploadTrigger" can react to the new... |
| FormSubmittedEvent | Fired when a lead submits the form on a funnel form node, identifying which lead and which form node the submission belongs to. |
| ForumTopicCreatedEvent | Fired via FunnelManager when a new forum topic (question) is created, carrying the organisation the forum belongs to and the forum post that was just... |
| GoFunnelEvent | Fired manually to release a lead that is waiting at a StopGoGoal node, letting the journey continue past the stop/go gate. |
| KademiSubscriptionEvent | Fired when a Kademi platform subscription changes state - started, payment due, payment failed, payment succeeded or expired. |
| LeadClosedEvent | Fired when a lead is closed, either because it completed or because it was cancelled. |
| LeadCreatedEvent | Fired when a new lead is created. |
| LeadEndedEvent | Fired when a lead is ended, either because it completed or because it was cancelled. |
| LeadUpdatedEvent | Fired when a funnel lead has been changed, after its lead scores have been recalculated, so listeners can react and search indexes can be updated. |
| LoginEvent | Fired when a profile has passed authentication but before the login is finalised, giving listeners a chance to veto it. |
| ModuleProgressEvent | Fired when a learner's progress on a learning module changes, for example starting, completing, saving, languishing without completion, renewing, expi... |
| NewCommentEvent | Fired when a comment or forum reply is posted on a website, identified by the event id "newComment". |
| PageHitFunnelEvent | Fired when a page or other resource within a website is requested, so a funnel can advance a lead based on the pages a visitor views. |
| ProfileUpdatedEvent | Fired when a profile is created, updated or effectively removed from an organisation, so the search index and any listening funnel journeys can react. |
| QuoteAcceptedEvent | Fired when a quote is accepted, either directly or as part of accepting a proposal. |
| QuoteRejectedEvent | Fired when a quote is rejected by its customer. |
| QuoteSentEvent | Fired when a quote is sent to its customer. |
| RecognitionCloseToLevelEvent | Fired when a participant gets close to the next recognition level and the settle period elapses without them reaching it or dropping back. |
| RecognitionEvent | Fired when a RecognitionAward is made, ie a participant reaches a recognition level or otherwise earns points. |
| RecognitionLevelAchievedEvent | Fired when a participant's achieved recognition level has settled, ie the settle period elapsed and they are still at a level. |
| RecognitionLostEvent | Fired when an award is lost, eg when a user goes down a level. |
| ReferralEvent | Fired at each step of a referral's lifecycle: when it is sent, and again when it converts to a signup. |
| RepoAppFunnelEvent | A funnel event fired by a marketplace app's own custom code to signal that something app-specific happened to a lead. |
| RewardDebitedFunnelEvent | Fans out a RewardDebitedEvent to a single profile associated with the debited entity, for funnel processing. |
| RewardGrantedFunnelEvent | Fans out a RewardGrantedEvent to a single profile associated with the awarded entity, for funnel processing. |
| SalesDataRecodFunnelEvent | Fired whenever a sales data record is created, updated or deleted, so funnels can react to sales activity. |
| SalesRecordCreatedFunnelEvent | Fired when a new sales data record is created, so funnels can react to fresh sales activity. |
| ScanJobEvent | Fired by OCRManager when a document scan submitted to the OCR service completes or fails. |
| ShoppingCartFulfillmentStatusEvent | Fired when a cart's fulfilment status changes, eg to shipped or delivered. |
| ShoppingCartFunnelEvent | Adapts a platform-wide shopping cart event, such as an item added to cart, checkout completed or payment pending, into the funnels engine's event mode... |
| SmsDeliveryFunnelEvent | Wraps an SMS item and its delivery status, sent to provider, delivered to handset, or failed, as a funnel event so it can be matched against SmsResult... |
| SocialInteractionEvent | Funnel event fired when a profile performs a social interaction, such as liking, commenting on or sharing a social post. |
| SubscriptionFunnelEvent | Wraps a SubscriptionEvent as a FunnelEvent so a group membership change (subscribed, accepted, rejected, pending, removed, lapsed, payment overdue or... |
| TaskCompleteFunnelEvent | Fired when a lead management Task is completed, so funnel goals such as TaskCompleteGoal and TaskGoal can advance a lead through a funnel based on whi... |
| UserVisitEvent | Fired when a profile makes its first request to a website since at least 24 hours after their previous visit. |
| VotedEvent | Fired when a profile casts a vote on a post or comment. |
| VoteReceivedEvent | Fired when a profile receives a vote on their post or comment. |
| VoucherFunnelEvent | Wraps a voucher lifecycle change as a FunnelEvent, so a funnel can be driven by a voucher being issued to a profile or changing state (for example bei... |
Triggers
| Name | Description |
|---|---|
| AuctionBidFunnelTrigger | Fires when an auction bid is placed or the lead's bid is outbid, matching against a specific action and an optional website. |
| AuctionClosedFunnelTrigger | Fires when an auction closes, matching against a specific close action and an optional website. |
| CommentFunnelTrigger | A funnel trigger fired when a lead posts a comment, forum post, or reply on the site, optionally scoped to a specific website and to a range of the le... |
| ContactFormFunnelTrigger | A funnel trigger fired when a lead submits a contact form, optionally scoped to a specific website and to a specific contact form path. |
| CredentialDisabledFunnelTrigger | A funnel trigger fired when a profile's password or e-signature credential is disabled, optionally scoped to one credential type. |
| CredentialUpdatedFunnelTrigger | A funnel trigger fired when a profile's password or e-signature credential is updated, optionally scoped to one credential type. |
| DateFilterFunnelTrigger | A funnel trigger that wraps another trigger and rate-limits how often it is allowed to activate for the same lead within a rolling window of days. |
| FileUploadFunnelTrigger | Funnel trigger that fires when a file is uploaded to a website, optionally filtered by website name and by matching the uploaded resource's path. |
| ModuleFunnelTrigger | Funnel trigger that fires on elearning module progress events, optionally filtered by website and by program, course or module code. |
| OneShotFunnelTrigger | Funnel trigger that wraps another trigger and restricts it to firing at most once per lead, or optionally once per item for that lead. |
| PageViewedFunnelTrigger | Funnel automation trigger that fires when a page matching a configured path, website and resource type is viewed. |
| ProfileUpdatedFunnelTrigger | Funnel automation trigger that fires when a profile's details are updated, optionally filtered by website and by whether the profile now has a photo a... |
| RecognitionCloseToLevelFunnelTrigger | Automation trigger which fires when a participant gets close to (but has not yet reached) a recognition level. |
| RecognitionFunnelTrigger | Funnel automation trigger that fires when a recognition award (such as a badge or level) matching a configured recognition name and topic is granted,... |
| RecognitionLevelAchievedFunnelTrigger | Automation trigger which fires when a participant's achieved recognition level has settled. |
| RecognitionLostFunnelTrigger | Automation trigger that fires when a profile or organisation loses a recognition award, such as when a level or badge tier drops. |
| RepoAppFunnelTrigger | Automation trigger that delegates its matching behaviour to a custom trigger type registered by a marketplace app, via FunnelTriggerTypeBuilder. |
| RewardGrantedFunnelTrigger | Automation trigger that fires when points are granted into a specific points bucket, matched on a RewardGrantedEvent or RewardGrantedFunnelEvent. |
| SalesRecordCreatedFunnelTrigger | Automation trigger that fires when a sales record is created in a specific sales data series, identified by series name. |
| ShoppingCartFunnelTrigger | Funnel trigger fired when a shopping cart event occurs on a website, matched against one of three configured actions: item added to cart, payment pend... |
| UserVisitFunnelTrigger | Funnel trigger fired when a lead visits a website, optionally scoped to a specific website by name. |
| VotesFunnelTrigger | Funnel trigger fired when a lead makes or receives a vote (for example on a forum post), optionally scoped to a specific website and to a range of the... |
Trigger Types
| Name | Description |
|---|---|
| AuctionBidFunnelTriggerType | FunnelTriggerType descriptor that registers the "Auction bid" trigger with the automation engine. |
| AuctionClosedFunnelTriggerType | FunnelTriggerType descriptor that registers the "Auction closed" trigger with the automation engine. |
| CommentFunnelTriggerType | Describes the comment funnel trigger for the funnel automation admin UI and builds new instances of it from submitted form data. |
| ContactFormFunnelTriggerType | Describes the contact form funnel trigger for the funnel automation admin UI and builds new instances of it from submitted form data. |
| CredentialDisabledFunnelTriggerType | Describes the credential disabled funnel trigger for the funnel automation admin UI and builds new instances of it from submitted form data. |
| CredentialUpdatedFunnelTriggerType | Describes the credential updated funnel trigger for the funnel automation admin UI and builds new instances of it from submitted form data. |
| DateFilterFunnelTriggerType | Describes the date filter funnel trigger for the funnel automation admin UI and builds new instances of it from submitted form data. |
| FileUploadFunnelTriggerType | Registers the "fileUploadTrigger" funnel trigger type, letting a funnel automation be configured to fire when a file is uploaded to a website. |
| ModuleFunnelTriggerType | Registers the "moduleTrigger" funnel trigger type, letting a funnel automation be configured to fire on elearning module progress events. |
| OneShotFunnelTriggerType | Registers the "oneShotTrigger" funnel trigger type, letting a funnel automation be configured to restrict another trigger to firing at most once per u... |
| PageViewedFunnelTriggerType | Registers the "page viewed" trigger type, describing it to the journey automation editor and constructing a PageViewedFunnelTrigger from submitted for... |
| ProfileUpdatedFunnelTriggerType | Registers the "profile updated" trigger type, describing it to the journey automation editor and constructing a ProfileUpdatedFunnelTrigger from submi... |
| RecognitionCloseToLevelFunnelTriggerType | Registers the "recognition close to level" trigger type, describing it to the journey automation editor and constructing a RecognitionCloseToLevelFunn... |
| RecognitionFunnelTriggerType | Registers the "recognition awarded" trigger type, describing it to the journey automation editor and constructing a RecognitionFunnelTrigger from subm... |
| RecognitionLevelAchievedFunnelTriggerType | Registers the "recognition level achieved (settled)" trigger type, describing it to the journey automation editor and constructing a RecognitionLevelA... |
| RecognitionLostFunnelTriggerType | Registers the "recognition lost" trigger type in the automation trigger catalogue, providing its id, display title and description and constructing ne... |
| RepoAppFunnelTriggerType | Runtime representation of a custom automation trigger type contributed by a marketplace app, built by FunnelTriggerTypeBuilder.build() when the app's... |
| RewardGrantedFunnelTriggerType | Registers the "reward granted" trigger type in the automation trigger catalogue, providing its id, display title and description and constructing new... |
| SalesRecordCreatedFunnelTriggerType | Registers the "sales record created" trigger type in the automation trigger catalogue, providing its id, display title and description and constructin... |
| ShoppingCartFunnelTriggerType | Describes the shopping cart funnel trigger for the funnel automation admin UI and builds new instances of it from submitted form data. |
| UserVisitFunnelTriggerType | Describes the user-visit funnel trigger for the funnel automation admin UI and builds new instances of it from submitted form data. |
| VotesFunnelTriggerType | Describes the votes funnel trigger for the funnel automation admin UI and builds new instances of it from submitted form data. |
Actions
| Name | Description |
|---|---|
| ActivateAlertFunnelAction | Funnel automation action that activates or acknowledges an Alert on the profile of the lead that triggered the automation. |
| BadgeAwardFunnelAction | Funnel automation action that awards a recognition badge to the lead associated with the triggering event. |
| BadgeRevokeFunnelAction | Funnel automation action that revokes a previously awarded recognition badge from the lead associated with the triggering event. |
| DebitPointsFunnelAction | Funnel action that debits a number of points from a profile's or organisation's balance in a named points bucket. |
| GrantRewardsFunnelAction | Funnel action that awards a fixed or dynamically calculated number of points to a profile or organisation in a named points bucket. |
| RepoAppFunnelAction | Automation action that delegates its behaviour to a custom action type registered by a marketplace app, via FunnelActionTypeBuilder. |
| SendEmailFunnelAction | Funnel action that sends the email associated with a SendEmailGoalAction journey node when a funnel automation fires. |
Action Types
| Name | Description |
|---|---|
| ActivateAlertFunnelActionType | FunnelActionType descriptor that registers the "Activate alert" action with the automation engine. |
| BadgeAwardFunnelActionType | FunnelActionType descriptor that registers the "Badge award" action with the automation engine. |
| BadgeRevokeFunnelActionType | FunnelActionType descriptor that registers the "Revoke Badge award" action with the automation engine. |
| DebitPointsFunnelActionType | Registers the "debitPoints" funnel action type, letting a funnel automation be configured to debit points from a user. |
| GrantRewardsFunnelActionType | Registers the "grantRewards" funnel action type, letting a funnel automation be configured to award points to a user. |
| RepoAppFunnelActionType | Runtime representation of a custom automation action type contributed by a marketplace app, built by FunnelActionTypeBuilder.build() when the app's co... |
| SendEmailFunnelActionType | Describes the send-email funnel action for the funnel automation admin UI and builds new instances of it from submitted form data. |
Nodes
| Name | Description |
|---|---|
| Begin | Entry node of a journey funnel, from which a lead's path through the funnel starts. |
Goals
| Name | Description |
|---|---|
| AcceptQuoteGoal | Journey goal that is achieved when a quote linked to the lead is accepted. |
| ActivateAlertAction | Journey action that activates or acknowledges an alert on the lead's profile. |
| AddToGroupGoalAction | Journey action that adds the lead's profile to one or more groups. |
| AddToOrgTypeGoalAction | Journey action that adds an organisation type to an organisation associated with the lead's profile. |
| AllocateVoucherGoalAction | Journey action that allocates one voucher of a configured type to a profile. |
| AssignToGoalAction | Journey action that assigns a lead's group, team and/or handling profile from literal values or evaluated expressions. |
| AttachLeadFileGoalAction | Journey action that attaches one or more files to the lead. |
| AuctionBidGoal | Journey goal that is achieved when a bid is placed on, or an outbid occurs against, an auction. |
| BranchGoal | A goal which is linked to multiple other goals. |
| CancelGoalAction | Funnel action that cancels the lead's run through the funnel when the journey enters this node. |
| ContactFormGoal | Funnel trigger that matches when a lead submits a contact form or landing page identified by contactFormPath. |
| CopyLeadFileGoalAction | Funnel action that copies an existing lead file to a new file, evaluating the source and target file names via MVEL or using them literally. |
| CreateCalendarEventGoalAction | Funnel action that creates a calendar event for the lead, optionally scheduling a reminder email ahead of it. |
| CreateDataSeriesRecordGoalAction | Funnel action that records a new data point against a named sales data series, evaluating the amount and date from configured expressions. |
| CreateNoteGoalAction | Funnel action that creates a note on the lead from a rendered MVEL template. |
| CreateTaskGoalAction | Funnel action that creates a task for the lead, either from a configured TaskDef or, in legacy mode, as a freestanding task with its own due date and... |
| CredentialSetGoal | Journey goal that is achieved when a lead's website credential, a password or an e-signature, is created or disabled. |
| DataSeriesValueGoal | Journey goal that is achieved when a sales data record pushes a named data series' running total, summed for the profile that made the sale, past a co... |
| DebitPointsGoalAction | Journey action that debits reward points from a lead's associated recipient when the goal is entered. |
| EmailInteractionGoal | Journey goal that branches based on how a lead interacted with the last email sent to them through this funnel. |
| EmailResultGoal | Journey goal that branches based on the delivery result of the last email sent to a lead through this funnel. |
| EmailSendGoal | Journey goal that is achieved when the funnel sends an email whose subject matches a configured pattern, regardless of whether that email is later del... |
| EndGoalAction | Terminal action node ("end") that closes or cancels the lead when the journey reaches it. |
| ForkGoalAction | Action node ("fork") that splits a lead's journey into parallel branches. |
| FormGoal | Journey goal achieved when the lead submits the form at this node. |
| GrantRewardsGoalAction | A journey action that awards reward points from a named points bucket when a lead reaches this node. |
| GroupGoal | Waits for a profile's membership status in a named group to change, and branches the journey to a different next node depending on whether the change... |
| KademiSubscriptionGoal | Matches on a Kademi platform subscription changing state - started, entering its payment-due window, a failed or successful payment, or expiry - and t... |
| LeadUpdatedGoal | A funnel goal that is attained when a lead's stage is set to one of a configured list of stage names. |
| ModuleExpiryGoal | A funnel goal that is attained when a learning module a lead is enrolled in expires, or enters its renewal window. |
| ModuleProgressGoal | A funnel goal that is attained when a lead's progress on a learning module matches a configured action, such as starting, completing or renewing. |
| OrderStatusGoal | A funnel goal that is attained when a shopping cart's fulfilment status changes to a configured value. |
| OtherJourneyProgressGoal | A funnel goal that is attained when another lead, in a specified funnel, is created or closed for the same assigned profile. |
| PageViewedGoal | A funnel goal that is attained when a page matching a configured path pattern is viewed on a configured website. |
| PointsTransactionAddedGoal | A funnel goal that is attained when a points reward is credited to, or debited from, a profile. |
| PointsValueReachedGoal | A funnel goal that is achieved when a lead's points balance in a named rewards bucket reaches a configured threshold. |
| ProcessMembershipGoalAction | A funnel action that approves or rejects all of a lead's pending group membership applications when the node is entered. |
| ProfileUpdatedGoal | A funnel goal that is achieved when a lead's profile is updated while it belongs to a configured group. |
| PromotionEntryGoal | A funnel goal that is achieved when a lead is granted a promotion/reward entry matching a configured name and status. |
| ReferralSentGoal | Journey goal that is achieved when a referral is sent. |
| ReferralSignupGoal | Journey goal that is achieved when a referral converts to a signup. |
| RemoveFromGroupGoalAction | A funnel action that removes a lead's profile from a named group when the node is entered. |
| RemoveOrgTypeGoalAction | A funnel action that removes an organisation type from an organisation associated with the lead when the node is entered. |
| RemoveProfileGoalAction | A funnel action that removes or disables a lead's profile, or removes it from a single group, when the node is entered. |
| RepoAppAction | A funnel action that lets a marketplace app supply its own custom logic to run when the node is entered. |
| RepoAppEventGoal | A funnel goal that lets a marketplace app supply its own custom matching logic for when the node is achieved. |
| SalesRecordCreatedGoal | Goal that matches when a sales record is created in a configured data series, optionally requiring up to three custom field values to also match. |
| SendEmailGoalAction | Funnel action that sends an email to a lead's profile, or another resolved recipient, using content read from a repository file or resolved from an as... |
| SendSmsAction | Funnel action that sends an SMS message, via a configured SMS provider, to the lead's profile or another resolved recipient. |
| SentQuoteGoal | Goal that matches when a quote has been sent to the lead, optionally attaching a PDF copy of the quote to the lead on entry. |
| SetFieldGoalAction | Funnel action that sets one or more custom field values on a lead when it enters the node. |
| SetSourceLeadGoalAction | Journey action that records which lead this one was spawned from, by evaluating an MVEL expression to a lead id and storing the referenced lead as thi... |
| ShoppingCartGoal | Journey goal that advances a lead when a shopping cart or auction event occurs: an item is added to cart, checkout completes, payment goes pending, or... |
| SmsResultGoal | Journey goal that advances a lead based on an SMS's delivery status: sent to the provider, delivered to the handset, or failed to send. |
| SocialInteractionGoal | Journey goal that advances a lead when a social interaction event occurs, such as a like, comment or share. |
| StartAndWaitFunnelGoal | Journey goal that starts a lead in another funnel and pauses this journey until that started lead ends. |
| StartFunnelGoalAction | Journey action that starts a new lead in another funnel when this node is entered, without waiting for it to finish. |
| StopGoGoal | Journey goal that halts a lead at a manual gate until an admin explicitly releases it with the "go" action. |
| TaskCompleteGoal | Funnel goal attained when a lead completes one or more tasks, matched either by legacy task name or by the modern matchTaskName, matchTaskCategory or... |
| TaskGoal | Funnel goal that creates a Task when a lead reaches it, then waits for a TaskCompleteFunnelEvent naming a matching outcome before advancing to that ou... |
| TaskReminderDef | Configures a reminder that fires a set time before a task's due date, computed as periodMultiples frequency units subtracted from the due date, with a... |
| TimerGoal | Funnel wait node that delays a lead for a configured period before advancing to timeoutNode, using the timeout fields inherited from Goal (timeoutMult... |
| UserVisitGoal | Funnel goal attained when a profile visits a site, optionally restricted to profiles who are a member of a configured group. |
| VoucherStateGoal | Goal that advances a funnel lead when a voucher of a matching type is issued, or changes to a configured status. |
Other
| Name | Description |
|---|---|
| CustomerAction | A configurable, suggested activity type for logging contact with a lead, such as a call or an email. |
| DecisionAction | Journey action that branches a lead to a different next node based on the first matching rule expression. |
| Funnel | Configuration and runtime graph for a sales/marketing journey: the set of stages, journey nodes (goals and actions), scoring, automations, exports and... |
| FunnelTag | A tag or category label attached to a Funnel, used to organise and filter funnels in listing and search screens. |
| LeadRoleDef | Defines a role a participant can fill on a Lead, in addition to the fixed system roles implied by Lead's own profile/organisation/assignedToOrg/assign... |
| NumericTaskOutcomeFieldValidation | Validates that a lead field's value is a number within an optional minimum and maximum. |
| Stage | Represents one named step in a funnel's sequential lead-progression pipeline, for example cold, then warm, then hot. |
| StringTaskOutcomeFieldValidation | Validates that a lead field's value is a string within an optional minimum and maximum length. |
| TaskDef | Configuration for one task a funnel creates on a lead, defining when it becomes due, who it is assigned to, and its title and description templates. |
| TaskOutcome | One possible completion outcome for a TaskGoal's task: which lead fields are collected, which validation rules must pass, and which funnel node to adv... |
| TestSplitAction | Randomly splits leads between two funnel branches for A/B testing, sending a configurable percentage down the test branch and the rest down the normal... |
Managers
| Name | Description |
|---|---|
| AccountManager | Manages the lifecycle of a Kademi account (organisation): creation, admin domain and URL resolution, and moving an account between parent organisation... |
| AgentManager | Owns AI agent definitions and the Agent instances, timers and event handlers built from them. |
| AgentMemoryManager | What an agent has learned about the person it works for, exposed to scripts as services.agentMemoryManager. |
| AgentOrchestratorManager | The JS-facing entry point to the Java agent orchestrator, exposed as services.agentOrchestratorManager. |
| AlertsManager | Manages dashboard alerts - short messages shown to users in an organisation, optionally targeted by group or organisation type, with a start date and... |
| AnomalyManager | The anomaly detection service, as scripts see it. |
| Applications | Read-only, JS-facing view of the applications currently active for the current tenant, exposed as the applications variable. |
| ApplicationServices | Registry of named platform services, exposed to templates and scripts as the "services" variable and reachable from Java code via the root context. |
| AssetManager | Central manager for content assets - images, videos, binary files, text snippets, content items and saved queries. |
| AsyncJobManager | Manages the lifecycle of background AsyncJob tasks across the platform: submitting new JS and map/reduce jobs to the queue, finding and searching exis... |
| AuctionManager | Creates, updates and queries auctions and auction bids for the current organisation. |
| AuditManager | Owns audit trail lookups and record restoration for the current tenant. |
| AwsJsManager | Exposes AWS-backed website features to server-side JS, registered as the awsManager service. |
| BarcodeManager | Generates barcode images, currently limited to QR codes, for embedding in emails, pages and authenticator enrolment flows. |
| BlogManager | Owns blog and blog article content: creating blogs and articles, managing their category/tag/audience taxonomy, the publish/unpublish workflow, and co... |
| CalendarManager | Manages calendars and calendar events, including creating, copying and moving events and building their iCalendar representation. |
| CaptchaManager | Provides captcha verification to GraalJS controller code, reached from JS as the registered captcha manager. |
| CartManager | Manages shopping carts (Cart) and their checkout, covering cart creation and lookup, adding and removing line items, applying voucher and promotion co... |
| CatalogManager | Manages the product catalogue for an account: products, SKUs, product parameters and their options, categories, ecommerce stores and inventory locatio... |
| ChartManager | Renders bar and line charts as PNG images using JFreeChart, and builds regression-based forecasts and anomaly detectors from time series data. |
| ComponentMetadataService | Provides a structured settings schema for KEditor components, since neither the settings form nor the component's JS carries a declarative schema on i... |
| ContactFormService | Processes contact-us form submissions into persisted ContactRequest records: matches the submitting profile to an existing account or creates one, fil... |
| ControllerSecurityManager | Provides the security and profile-lookup operations available to app controller scripts, wrapping KademiSecurityManager for the currently running requ... |
| ConversationFileManager | Whole binary files that belong to an agent conversation, exposed to scripts as services.conversationFileManager. |
| CookieManager | Applies platform-wide security defaults to outgoing cookies before they are written to the response. |
| CounterManager | Provides access to named counters, a simple transactional counter mechanism scoped to the current admin organisation. |
| CryptoImpl | Cryptography helper providing hashing, HMAC-style key derivation, symmetric encryption and Diffie-Hellman key exchange for templates and scripts. |
| DataSeriesManager | Manages sales data series and the sales data records logged against them, and the points allocation sources that turn those records into reward points... |
| DateManagerV1 | Central date and time service for templates and GraalJS scripts, registered as the "dateManagerV1" application service and reachable in scripts via se... |
| DebugManager | Manages debug sessions for the current tenant: short-lived captures of web requests, async tasks and their operation logs, used to diagnose problems i... |
| EmailManager | Owns creation, sending and tracking of EmailItems, and is reached from server-side JS as services.emailManager. |
| EntityLockManager | Grants short-lived, key-based locks so callers can serialise access to an entity or other resource, either within this server (local) or across the cl... |
| EventWrapper | Fires custom funnel goals and repository app trigger events from GraalJS, and hands out EventBuilder instances for assembling more complex trigger eve... |
| FileManager | Utility for reading and writing content-addressed files, and for parsing CSV, Excel, XML and PDF documents. |
| FileStorageManager | Manages file content stored on a per-tenant basis in the local file system, keyed by directory and content name. |
| Formatter | Utility helpers exposed to Velocity templates and server-side JavaScript as the formatter variable. |
| ForumManager | Owns forum, wall post and comment operations for the current organisation: creating and finding posts, forum questions and comments, voting, tagging,... |
| FraudLocationService | Where a profile has been seen before, from the web hit index. |
| FraudManager | Fraud scoring, as scripts see it. |
| FtpManager | Manages FTP and SFTP connections opened by app scripts, enforcing a per-tenant limit on concurrent connections. |
| FunnelManager | Owns the journey/funnel engine: creates and stores Funnel (journey) definitions, matches inbound platform events against a Funnel's entry points and g... |
| GeoManager | Request-level and general-purpose geography helpers built on top of GeoIPService: resolving the current request's location, looking up an ISO country... |
| HttpPushManager | Dispatches HTTP push notifications through a named HttpPushService implementation, defaulting to the service configured when this manager was created. |
| HttpWrapper | Gives app scripts access to the current HTTP request and response, and to reading and writing cookies. |
| ImageGenerationManager | Manages AI image generation across registered image providers, giving app developers a single entry point to discover available models and request gen... |
| ImageManager | Reads image metadata and generates thumbnails for uploaded content. |
| IntegrationManager | Manages data integration endpoints and their pipelines for a website: email, HTTP, (S)FTP and upload-only endpoints that export or import data, plus t... |
| InvoiceManager | Owns invoices, quotes and payment lists for the current organisation: looks them up, counts them and starts new ones via builders. |
| JWTManager | Creates and parses JSON Web Tokens (JWTs) and JSON Web Keys (JWKs) for an account, and generates RSA key pairs for signing them. |
| KCriteriaBuilders | Registry of KCriteriaBuilder instances, one per persistent entity type, exposed to server-side JS and Velocity as services.criteriaBuilders for buildi... |
| KSearchResponse | The result of running a search, giving access to the matching hits, the total match count and any aggregations that were requested. |
| LeadManager | Owns the lifecycle of leads (Kademi's CRM/sales-pipeline records) and their related tasks, files, notes, products and participant role assignments. |
| LearningManager | Owns the learning domain for a website: enrolments, module status progress and completion, expiry, renewal, and completion actions such as certificate... |
| LlmManager | Owns access to language model inference for the current tenant, registered for GraalJS scripts as llmManager. |
| LogsManager | Searches and tails the current tenant's rolling server log files, backing the admin View Logs screen. |
| MarketPlaceManager | Provides marketplace browsing, install and enable operations for apps, libs, themes and recipes. |
| OCRManager | Submits documents to the OCR service for scanning and dispatches ScanJobEvent when a scan completes or fails. |
| OrganisationManager | Owns the organisation (org) domain: creating, updating, deleting, searching and merging orgs, and managing the custom organisation types attached to t... |
| PathMatch | One file within a repository branch whose content contains the searched-for text, together with the line numbers it was found on. |
| PaymentManager | Manages the lifecycle of quotes, invoices, purchase orders and other PaymentItemList records, including creation, cloning, status transitions and PDF... |
| PointsManager | Manages loyalty points: creating points buckets, crediting and debiting balances, and calculating expiry and balance history. |
| PriceManager | Calculates prices for products, shipping and checkout in the e-commerce store, applying pricing rules, promotions and store-level configuration. |
| PricingRulesService | Manages ecommerce pricing rules: tiered pricing, promotional discounts, checkout rules and per-store shipping and tax configuration for a store's prod... |
| ProjectManager | Manages projects, which are running instances of task recipes such as setup wizards or onboarding checklists, together with the tasks that make up the... |
| PromotionsManager | Manages promotions and points buckets, both modelled by the Reward entity, plus reward categories and reward entries awarded to participants. |
| QueryManager | Facade for the reporting and metrics subsystem, covering saved queries, tables, metrics and the organisation and supplier filters used to scope a repo... |
| RecipeManager | Owns the lifecycle of app recipes: starting a recipe for a new account and progressing it as project tasks are completed. |
| RecognitionManager | Owns the recognition domain: topics, levels, badges, periods, awards, points allocations and nominations that make up Kademi's gamification and leader... |
| RecordMatchingManager | Scans a SalesDataSeries for sets of records matching a RecordMatcher's configured type, and generates corresponding destination SalesDataRecords. |
| ReferralManager | Owns the referral and invitation domain: referral programs, invitations sent to prospective members, and the acceptance of those invitations into a gr... |
| RepoSearchManager | Searches for a literal string in the file content of repository branches, returning the paths and line numbers it was found on. |
| RepositoryManager | Manages the hashsplit4j-backed content repositories used to store website, app and other branch-versioned file content across the platform. |
| ResultSetManager | Line-oriented storage for large tool result sets, exposed to scripts as services.resultSetManager. |
| SearchManager | Owns full-text search and search-index management for a tenant, backed by Elasticsearch. |
| SelectorManager | Manages selector lists that scope things like reward eligibility and recognition nominations to a set of users, groups, organisations or org types. |
| SmsManager | Sends SMS messages to profiles and tracks their delivery status, delegating the actual sending to whichever SMS provider app is installed and enabled... |
| SseManager | High-level API for sending Server-Sent Events (SSE) to clients connected to a repository app, without the caller needing to manage connections or mess... |
| TableUploadManager | Owns the table upload and spreadsheet import feature: saved spreadsheets, their analytics configuration, saved field mappings, and the registered befo... |
| TeamManager | Resolves and manages sales and dealer teams: which organisation is the "team" for a given profile, which teams exist for the configured team organisat... |
| TemplatingManager | Registered as the "templatingManager" service, reachable from Velocity templates and GraalJS as services.templatingManager. |
| TextFromHtmlService | Converts HTML content into plain text, used to build search index text, plain-text email bodies and notification snippets from HTML pages, comments an... |
| TimesheetManager | Manages timesheet entries and batches for the current organisation, allowing a worker to log hours against a lead or task and to submit a period's ent... |
| TokeniserManager | Encodes text into tokens, decodes tokens back into text, and counts tokens, delegating to the first registered TokeniserService. |
| TranslationService | Manages translations of user-facing content - products, page HTML, emails and UI labels - for the current organisation. |
| UserManager | Manages profiles, groups and memberships for the current account, and is the main entry point for user administration from apps. |
| UserPrefsManager | Per user preferences: small, non-sensitive settings a user has chosen for themselves, such as which admin menu they want. |
| VectorSearchManager | Owns vector search indexing and querying for websites, delegating the actual work to a VectorSearchService. |
| VideoManager | Tracks per-profile video playback position and completion status across the platform. |
| VoucherManager | Owns the voucher domain: creating voucher types and vouchers, allocating vouchers to profiles, redeeming them and tracking their status history. |
| WebFetchManager | Retrieves remote web pages and converts HTML to Markdown for AI/machine consumption, so callers get readable content and metadata instead of raw marku... |
| WebsiteManager | Manages websites in the current account: creation, publishing, and branch and app lifecycle. |
Pipelines
| Name | Description |
|---|---|
| Column | Maps a single input value onto a named field of a pipeline row, for use by database and file output steps. |
| NextSheetStep | Routes one sheet from the enclosing ExcelInputStep's workbook, identified by name or index, to a next step, either as a whole Sheet object or as indiv... |
| RowWriter | Lets a row-processing script forward a row of values to this step's next step. |
Queries
| Name | Description |
|---|---|
| ComparisonLookupTableField | A match field that tests a numeric row value against a set of candidate values using a comparison operator (gt, gte, lt or lte), where the candidate v... |
| DataSeriesContent | Configuration for how the record-editing UI presents a single named sales data series, such as a promotion's sales records or a recognition topic's da... |
| DataSeriesFieldConfig | Configuration for a single custom field on a sales data series record-editing form, one entry within a DataSeriesContent's field list. |
| JsMetricType | A MetricType whose calculation is delegated to a JS function, registered by an app through controllerMappings.newMetricTypeBuilder(). |
| LookupTableBean | A CSV-backed lookup table used to resolve output values (for example, a recognition level) from a set of matching input criteria evaluated against a p... |
| Metric | Defines a single measure shown in a dashboard, report or reward, combining a reference to a MetricType (which knows how to calculate the value) with t... |
| MetricCacheConfig | Caching settings attached to a Metric, controlling how calculated values are bucketed by time period and whether the requested date range is honoured... |
| MetricPrecalcConfig | Configuration for pre-calculating a Metric's value ahead of time on a schedule, rather than computing it on demand. |
| OutputTableField | A field which represents an output from the lookup process, that is, what is being looked up. |
| PersistedLookupTableField | Base class for a lookup table field that is persisted as part of a lookup table definition, holding the field's name, type and the zero-based CSV colu... |
| ProductCategoryContent | Configuration for how the record-editing UI presents products within a named product category. |
| ProductCategoryFieldConfig | Configuration for a single custom field on a product category's record-editing form, one entry within a ProductCategoryContent's field list. |
| QueryService | Persists and runs a tenant's saved elastic search queries, reports, lookup tables and calculated metrics. |
| TermLookupTableField | A match field that tests an exact value against the row, where the acceptable input values are supplied by evaluating a kcode expression. |
Recipes
| Name | Description |
|---|---|
| MultiNextRecipeStep | A recipe step that fans out to several next steps at once, rather than a single successor. |
| Project | Represents one instance of a task recipe running for an organisation, such as a store setup wizard or an onboarding checklist, together with the param... |
| Recipe | An ordered set of stages and steps that an app declares to guide an account through configuring itself after setup. |
| RecipeStage | A named, ordered group of steps within a Recipe, representing one phase of an account's setup checklist. |
| TaskRecipeStep | A recipe step that creates a Task for the account admin to complete, optionally offering a choice of outcomes that each lead to a different next step. |
| TaskRecipeStepOutcome | One possible outcome an admin can select when completing a TaskRecipeStep's task, carrying the next step to enter and the JS functions that drive its... |
Recognition
| Name | Description |
|---|---|
| JsRecognitionPointsRuleType | A RecognitionPointsRuleType whose points calculation is implemented as a JS function, allowing apps to define custom points rules without adding Java... |
Reports
| Name | Description |
|---|---|
| AppReport | Defines a single custom report registered by an app, produced either from a query table or from a JS function that writes the export content. |
Resources
Resources
| Name | Description |
|---|---|
| TemplatedHtmlPage | A resource whose content is generated entirely by rendering a Velocity template, for pages that need nothing beyond a name, a parent and a template pa... |
Other
| Name | Description |
|---|---|
| AbstractManageAssetResource | Serves the "manage" resource for a single asset in the asset manager, rendering its edit page and handling the update, delete and tagging form posts m... |
| AbstractResource | Base class for almost every resource type in the platform's WebDAV resource tree, providing shared behaviour for authentication, authorisation, lockin... |
| AssetsFolder | Serves the account-wide "assets" folder that holds every uploaded asset, providing upload, search and asset-delivery child lookup. |
| BlogArticleFolder | Represents a single article in a blog, exposed as both a webpage and a folder for the article's uploaded images and files. |
| BlogFolder | Represents a single blog as a content resource, appearing in the site tree as a folder whose children are the blog's articles. |
| CalendarFolder | Represents a single calendar as a CalDAV collection resource, listing its events as children and serving the calendar and event management pages for b... |
| CalEventResource | Represents a single calendar event as a WebDAV resource under a CalendarFolder, ie an event invitation. |
| ControllerResource | Serves the response for a single request matched against a ControllerMapping, running the mapping's JS handler function for the request method and ren... |
| CourseFolder | Represents a single course within a program: a directory resource whose children are the course's module folders. |
| DashboardAlertPage | Represents a single dashboard alert as a web resource, at "alert-{id}" under an organisation or website folder, and serves both the manage-alert admin... |
| DirectoryResource | A folder in the WebDAV / URL tree of a repository, backed by a directory node in the content-versioned repository snapshot. |
| FileResource | Represents a file, such as an image, video, or HTML page, within a website or admin content branch. |
| JsonDatabaseFolder | A single KongoDB database, exposed as a Milton folder resource whose children are the JSON documents it contains. |
| JsonDocumentResource | A single JSON document stored in a KongoDB database, exposed as both a Milton resource and a java.util.Map over its parsed JSON content so admin templ... |
| ManageJsonDatabaseFolder | Administration view of a single KongoDB database, extending the read-only JsonDatabaseFolder with the management actions available on the admin databa... |
| ModuleFolder | Represents a single learning module within a course, exposed as a WebDAV/HTTP resource nested under a CourseFolder. |
| OrganisationRootFolder | Root WebDAV and HTTP resource for one organisation's admin site, the entry point through which that organisation's users, websites and other admin-dom... |
| ProgramFolder | Represents a single learning program: a directory resource holding a set of course folders, plus enrolment and completion information for the current... |
| RootFolder | Common contract for the top-level resource that anchors an organisation or website branch to a domain, implemented by OrganisationRootFolder and Websi... |
| ShoppingCartFolder | Renders the order-detail page for a single cart or order, appearing as a child of ShoppingCartsFolder at a URL such as /shopping-carts/{cartId}. |
| ShoppingCartItemResource | Contract implemented by resources that can be purchased through the shopping cart, such as products. |
| UserResource | Represents a single user account as a node in the WebDAV resource tree, served under a users folder such as /users/{userId}/. |
| VoucherPage | Milton resource for a single voucher, reached as a child of its VoucherTypeFolder using the voucher's id. |
| WebResource | Represents a single web resource declaration parsed out of the head of a theme or content template - typically a script, link or meta tag, or a raw HT... |
| WebsiteRootFolder | Represents the root of a website. |
Rewards
| Name | Description |
|---|---|
| JsPointsExpiryRuleType | A PointsExpiryRuleType implemented in JS, configured per-account via the Queries repo's points-expiry-rules.xml. |
| JsPointsRuleType | A PointsRuleType implemented in JS, configured per-account via the Queries repo's points-rules.xml. |
| JsRecordMatcherType | A RecordMatcherType implemented in JS, configured per-account as a "record-matcher" element in the Queries repo's record-matchers.xml - lets an accoun... |
| JsVoucherExpiryRuleType | A VoucherExpiryRuleType implemented in JS, configured per-account via the Queries repo's voucher-expiry-rules.xml. |
| PointStatementDef | Root of the XML document that configures the extra custom fields computed onto a reward's point statements. |
| PointStatementFieldDef | Defines one custom field computed onto a reward's point statements, evaluated when a statement is generated. |
Search
| Name | Description |
|---|---|
| RecentQuery | A single Elasticsearch query that was recently run against a tenant, kept in a rolling in-memory list so the admin debug UI can show what search traff... |
Server Monitoring
| Name | Description |
|---|---|
| ChildStopWatch | Pairs a nested stopwatch with the time it was registered as a child, relative to its parent. |
| CurrentOp | Tracks a single operation - an HTTP request or an async job - while it is running on this server, so it can be inspected and killed from the server mo... |
| KStopWatch | Hierarchical timer for measuring how long an operation takes, with nested child timers and named lap checkpoints. |
| Lap | A single named checkpoint recorded against a running stopwatch, together with the time it was recorded. |
| OpAction | Records what a running operation is currently doing, eg executing a SQL statement or an Elasticsearch call, so it can be inspected from the server mon... |
| OperationInfo | Identifying details of a running or completed operation - its type, source and item ID - used both while an operation is running (see CurrentOp) and a... |
| SimpleLogEvent | A simplified, read-only view of a log4j LogEvent, exposing just its formatted message and level. |
| StopWatchItem | One row of an aggregated stopwatch report: a name together with the number of times it occurred and the total duration accumulated across all occurren... |
Subscriptions
| Name | Description |
|---|---|
| UsageFactor | Defines a single billable metric, such as profiles or emails sent, that subscription usage is measured and priced against. |
Table Uploads
| Name | Description |
|---|---|
| ActionHandlerConfigBean | Configuration for a single table action handler attached to a field mapping, identifying the handler by id and carrying the free-form parameter values... |
| FieldMapping | A saved, reusable column-to-field mapping for a TableUploader, letting a user re-run the same spreadsheet import without re-selecting which source col... |
Views
| Name | Description |
|---|---|
| BinaryView | Writes raw bytes to the response under a caller-chosen content type, from either a byte array or an input stream. |
| ContentEditorView | Renders the built-in Kademi content editor page, the rich editor used to edit a page's content in place. |
| ContentFileView | Streams a stored content item to the response, looked up by content name and an optional storage directory. |
| CsvView | Renders a list of rows as text/csv, converting each row's values to text with the current Formatter. |
| FileHashView | Streams a file that is stored as a content-addressed hash split across the blob store, reassembling it from its fanout of chunk hashes. |
| JsonView | Renders an object as JSON. |
| RedirectView | Sends the browser to another URL instead of writing a response body. |
| RowsResultCsvView | Renders a table query result (RowsResult) as text/csv, delegating to QueryTableFolder's CSV writer. |
| SearchResponseView | Writes an Elasticsearch search response directly to the output stream as pretty-printed JSON. |
| TemplateView | Renders an HTML page from a Velocity template, using the current resource as the model. |
| TextTemplateView | Renders a Velocity template as plain text under a caller-chosen content type, for output such as CSV, XML, JSON or an email body. |
| TextView | Renders a fixed string of text as the response body, with an optional content type. |
| ViewsBuilder | Factory for the View objects a controller returns to render a response, plus helpers for building JsonResult objects and throwing common HTTP error re... |
| ZipView | Streams a zip archive to the response, built on the fly by a content provider callback. |
| ZipViewHelper | Passed to a ZipView's content provider callback to add entries to the archive currently being streamed. |
Website Settings
| Name | Description |
|---|---|
| AppSettingsBean | Immutable record of a single app's enabled state and settings within a website's WebsiteSettings, serialised as an "app" element in settings.xml. |
| WebsiteSettings | Holds a website's per-app settings and theme, loaded from the settings.xml file under WEB-INF in the website's repository and cached by WebsiteSetting... |
Events
| Name | Description |
|---|---|
| BeforeSignupEvent | Fired while a registration is being processed, before the profile is created, so that an app can refuse it. |
| BeforeVoucherRedemptionEvent | Fired while a voucher is being redeemed, before the status changes, so that an app can refuse it. |
| CalendarEventAccepted | Fired when a profile accepts an invitation to a calendar event, raised from CalendarManager.accept once the attendee's participation status has been u... |
| CalendarEventDeclined | Fired when a profile declines an invitation to a calendar event, raised from CalendarManager.decline once the attendee's participation status has been... |
| ContactEvent | Fired when a user submits a contact-us form. |
| DefaultShareableItemEvent | Default implementation of ShareableItemEvent, used by apps to report a user achievement worth posting to the social wall. |
| EmailDeliveryEvent | Fired for a change in the delivery status of a single email: delivered, failed, opened, or a click converted to a goal. |
| EmailReceivedEvent | Fired when a user receives an email, whether sent from within Kademi or via an inbound mail integration. |
| ExecuteAgentEvent | Fired to hand one agent's pending work over to the JS layer for execution: a buffered set of matched events, a due timer, or a user-assigned task with... |
| FraudScoreEvent | Fired every time an operation is scored for fraud at or above the watch threshold. |
| GroupRegistrationEvent | Fired when a visitor successfully submits a group registration form, immediately after the group membership record has been created. |
| PaymentEvent | Fired when a payment attempt finishes, whether for a one-off eWay purchase, an eWay recurring sign-up, or a scheduled recurring instalment retry. |
| PipelineProcessEvent | Fired when an integration pipeline starts running, completes or fails, so apps can react to the outcome of a data import or export. |
| PointsExpiredEvent | Fired when a batch of a profile's reward points expires because it has passed its expiry date. |
| PostTagReceivedEvent | Fired when a profile is tagged in a forum post or comment. |
| ProfileActiveEvent | Fired when a profile becomes associated with the current request without logging in, eg after submitting a contact form or checking out as a guest. |
| QueryTableExportEvent | Fired when a report query table export job finishes writing its CSV output to content storage. |
| QuizAttemptEvent | Fired when a learner submits an attempt at a quiz within a learning module, whether the attempt passed or failed. |
| RepositoryAppTriggerEvent | Carries the data for one firing of a repository app automation trigger, ready to be matched against configured triggers and used to build notification... |
| RewardDebitedEvent | Fired when points are debited from a profile or organisation against a reward, for example when redeeming points or reversing a previously granted rew... |
| RewardGrantedEvent | Fired when points are granted to a profile or organisation against a reward, for example completing a module, a manual award, or a promotion entry. |
| ShoppingCartEvent | Fired at points in the shopping cart and checkout lifecycle: item added, payment pending, checkout completed, or checkout about to happen. |
| SubscriptionEvent | Fired at points in a profile's membership lifecycle for a group: subscribed, pending approval, rejected, accepted, removed, lapsed, payment overdue or... |
| TestTriggerEvent | TriggerEvent implementation used to test or preview an EmailTrigger, wrapping its configured trigger condition fields and website as if they had been... |
| TriggerEvent | Marks an event that can be matched against a configured email trigger and used to drive the platform's trigger-based automation, such as sending an em... |
| TriggerFiredEvent | Fired when an EmailTrigger completes, wrapping the profile, the trigger that fired, and the original event that caused it. |
| TriggerTimerEvent | TriggerEvent implementation used to re-fire the trigger matching logic when a delayed TriggerTimer elapses. |
| WebsiteSettingsLoadedEvent | Fired after WebsiteSettings has finished reading the ".settings.xml" files under a website's WEB-INF folder. |
Roles
| Name | Description |
|---|---|
| AccountingRole | Grants access to view and manage payment resources - invoices, quotes and purchase orders - to a profile within an organisation. |
| AuctionViewerRole | Grants read access to view and bid on auctions. |
| BloggerRole | Grants authoring access to blogs and blog articles, without approval or publishing rights. |
| BlogReaderRole | Grants read-only access to blog content within an organisation. |
| ContentAuthorRole | Grants full edit access to content within a website repository, covering content items, binary, text, image and video assets, and the query tables bui... |
| ContentViewerRole | Grants read-only access to content resources, including anything tagged as content, resources whose controller grants this role a privilege, and resou... |
| DownloadCustomerDataRole | Grants access to download the customer data CSV export produced by the repeating payments report. |
| FraudManagerRole | Full control of fraud prevention: retuning, disabling and resetting rules, and setting the account's score thresholds. |
| FraudViewerRole | Grants read-only access to fraud prevention: which rules are in force, and what has been scored. |
| FulfillmentRole | Grants a profile permission to view and manage order fulfilment for resources implementing CommonFulfillmentResource within the granted organisation. |
| IntegrationExecutorRole | Grants read and write access to integration endpoints, letting a profile run integration jobs against them. |
| IntegrationManagerRole | Grants read and write access to integration endpoints, together with the ability to manage integration configuration, not just run existing jobs. |
| LearnerRole | Grants read-only access to learning content to any member of a group carrying this role. |
| PointsAdministratorRole | Grants full read and write access to points information within an organisation, and to the points reward table uploader. |
| PointsAdminViewerRole | Grants read-only access to points information within an organisation, and to the points reward table uploader. |
| ProductManagerRole | Grants read, write, read-content and write-content access to product resources and to the product manager pages. |
| ProductViewerRole | Grants read-only access to product resources within the granted organisation, for admin users who need to view products in the admin console without b... |
| RedeemerRole | Grants a profile the ability to redeem reward store products and gifts within an organisation. |
| ReportingAccessRole | Marker role, registered under "ReportingAccess", that permits access to reporting data for the organisation it is granted on. |
| ReportRunnerRole | Grants read-only access to reports registered under the "ReportsViewer" role name. |
| ReportsManagerRole | Grants full management of reporting artifacts - index queries, dashboards and kcodes - regardless of who created them. |
| RepositoryAppRole | Security role declared by an app in controllers.xml, granting a set of privileges over the app's controller resources. |
| RepositoryAppV2Role | A role defined declaratively by a repository app v2 manifest, granting configured privileges to controller resources whose matching role or resource t... |
| SalesDataEditor | Grants a profile read and write access to sales data records and series within an organisation. |
| SalesDataViewer | Grants a profile read-only access to sales data records and series within an organisation. |
| SalesManagerRole | Grants a sales manager read-write access to lead management resources across their team, without requiring the lead or task to be assigned to them per... |
| SalesRole | Grants a sales person read-write access to leads and tasks assigned to themself, and read access to profiles and organisations within their team hiera... |
| SalesTeamViewerRole | Grants read-only visibility of leads and other lead manager resources across a user's team, without the write access that SalesManagerRole carries. |
| StoreViewerRole | Grants a profile permission to view and purchase products in an eCommerce store within the granted organisation. |
| SubscriptionAdminRole | Grants a profile permission to view and manage Kademi subscription records within an organisation. |
| SupplierFilterRole | Filters sales and product data by supplier, rather than granting access to screens. |
| TakeLeadRole | Grants read-write access to leads, and tasks related to leads, that have not yet been assigned to anyone, so a user holding this role can see and clai... |
| VoucherRedeemerRole | Grants read and write-content access to voucher resources, for the cashier who accepts vouchers for purchase and marks them off as redeemed. |
| VoucherSupervisorRole | Grants access to view the status of voucher programs, for people supervising voucher issuing and redemption. |
Applications
| Name | Description |
|---|---|
| AlertsApp | Adds the dashboard alerts feature: banner messages shown at the top or bottom of the admin dashboard or a website, targeted by organisation, group and... |
| AuctionApp | Registers the Auctions application, which lets an organisation run points-based auctions where profiles bid reward points to win a prize. |
| ContentApp | Provides the core content viewing and authoring features for a website: file and folder resources, asset management, page rendering, menus, templates,... |
| EwayApp | Integrates the eWay payment gateway as a purchasable payment option, supporting one-off card purchases and recurring subscription billing. |
| IntegrationApp | Adds data import and export services to a website, moving data between a Kademi account and external systems over HTTP, FTP, SFTP or email. |
| LearningApp | Registers the e-learning ("Learning") application, which adds structured programs, courses, modules and quizzes to a website. |
| ManualPaymentApp | Payment provider that completes a purchase without collecting any online payment details, generating an invoice instead of charging a card. |
| PaymentApp | Adds financial payment functionality to a website or organisation: invoicing, quoting, purchase orders and proposal preparation. |
| ReportingApp | Adds web traffic reporting and analytics to an organisation, logging every HTTP request and exposing the resulting data through saved queries, dashboa... |
| RepositoryApp | Represents one installed instance of a repository-backed marketplace app, dispatching platform callbacks to its JavaScript logic in controllers.xml. |
| SalesDataApp | Registers the sales data application, which lets an organisation record recurring or one-off amounts, such as sales figures, against profiles or other... |
| ShoppingCartApp | Application providing the shopping cart and checkout used to purchase products, including those opted into reward programs and paid for with accumulat... |
| VouchersApp | Kademi application that adds gift voucher issuing and redemption to the account. |
Pipeline Steps
| Name | Description |
|---|---|
| CsvInput | Parses an incoming CSV file into rows and feeds them to the next pipeline step, one row at a time or all together as a list. |
| CsvOutput | Writes incoming rows to the pipeline's output stream as CSV, for use as the final step in a pipeline whose output is downloaded or emailed to a user. |
| DatabaseSourceStep | Runs a query against a registered database table provider and feeds each resulting row to the next pipeline step. |
| DatabaseUpdateStep | Receives rows and inserts, updates, deletes or upserts them into a registered database table provider, according to its configured mode. |
| DecisionStep | Branches a pipeline by selecting which of several configured next steps to run, based on a value from the current row. |
| ExcelInputStep | Parses an incoming Excel workbook and passes its rows, sheets, or the whole workbook to the next step. |
| ExcelOutputStep | Builds an Excel workbook from incoming pipeline rows and writes it to the pipeline's output. |
| FixedWidthInput | Parses an incoming fixed-width text file into rows of column values for a next step to process. |
| JsRowStep | Executes a configured JavaScript function for each incoming pipeline row, and optionally around prepare and finish. |
| MapReduceStep | Splits incoming data into batches and processes them in parallel as an asynchronous map/reduce job. |
| MapStep | Builds a lookup map of values keyed by an expression, storing it as a pipeline attribute for later steps. |
| MultiStep | Runs a fixed set of next steps, each given the same input. |
| PersistAsTableStep | Pipeline step that saves the incoming rows to the table upload service and passes the resulting table's hash and the table itself on to the next step. |
| QueryExportStep | Pipeline step that runs a saved query or an index query and streams its results to the next step, one column header row followed by the data rows. |
| RecordExecutionStep | Wraps processing in a transaction and commits it in the finished phase This allows executions to be tagged with an execution ID, which is intended to... |
| ReIndexPipelineStep | Pipeline step that re-indexes one or more configured search indexers for the pipeline's organisation. |
| ResultEmailPipelineStep | Pipeline step that emails a summary of the pipeline's failures, warnings and informational messages to a list of recipients once the run finishes. |
| RunPointsAllocationSourcesPipelineStep | Pipeline step that runs the configured points allocation sources for a sales data series once the pipeline finishes. |
| SalesDataInserter | Pipeline step that inserts, updates or upserts an incoming row as a sales data record in a configured series. |
| SetAttributesStep | Pipeline step that copies values out of the incoming row into pipeline attributes, then passes the row through to the next step unchanged. |
| TableUploaderStep | Imports incoming tabular data through a saved table uploader and field mapping, passing the resulting async job to the next step. |
| TemplateOutput | Renders a Velocity template into the pipeline output, making the pipeline's attributes and the incoming arguments available to it as data model variab... |
| TransactionStep | Wraps the next step in a database transaction, committing it when the pipeline finishes or rolling it back on failure. |
| VelocityOutputStep | Renders a Velocity template to HTML and writes the result to the pipeline output as the terminal response content. |
| WebServiceStep | Placeholder pipeline step reserved for a future web service call; currently its prepare, exec and finished methods do nothing and it simply passes the... |
Asset Views
| Name | Description |
|---|---|
| AltFormatContentView | Renders a pre-generated alternate format of a binary asset, such as a transcoded video rendition or a resized image, identified by the given format sp... |
| EditContentItemView | Renders the platform's default HTML edit form for a content item, used when a content type has not configured its own edit view. |
| EditFormContentItemAssetView | Renders the shared standard asset edit form for a content item. |
| PageTemplateContentItemAssetView | Renders an HTML page for a content item from a configurable page template path. |
| StandardBinaryContentView | Renders the original, unmodified bytes of a binary asset, such as an uploaded image or document. |
Engagement Scoring Factor Types
| Name | Description |
|---|---|
| CommentEngagementScoringFactorType | Engagement scoring factor which scores a lead's profile by the dates it posted comments, forum posts or replies. |
| ContactFormEngagementScoringFactorType | Scores lead engagement based on submission of a contact us form, one of the pluggable factor types a funnel's engagement scoring can use. |
| CredentialEngagementScoringFactorType | Scores lead engagement based on the profile creating a new credential (eg completing a course or earning a badge), one of the pluggable factor types a... |
| EmailResponseEngagementScoringFactorType | Scores lead engagement based on email response, ie whether a lead has opened an email (the open-tracking pixel was hit) or converted from it (clicked... |
| ProductOrdersEngagementScoringFactorType | Scores a lead's engagement based on the products they have ordered, treating the date of each order as an engagement event. |
| RepoAppEngagementScoringFactorType | Engagement scoring factor contributed by an app, which supplies the dates on which a lead engaged so a score can be calculated. |
| WebEngagementScoringFactorType | Scores lead engagement from tracked website visits, based on the SiteVisitor records held against the lead's profile. |
Tables
| Name | Description |
|---|---|
| EntityAddressesTable | Reporting Table which lists the postal addresses stored against users and organisations in the current account. |
| ExpiringPointsTable | Table listing participants who have points expiring within the next 90 days, one row per participant with a set of expiry columns repeated for each re... |
| ExpiringPointsTableV2 | Table listing points expiring within the next 90 days, one row per participant and reward combination rather than one row per participant. |
| FunnelExportTable | Wraps one export configuration of a funnel as a Table, so it can be read through the reporting and query engine. |
| JoinTable | Joins two registered tables on a key column and outputs a chosen subset of fields from each side, computed in memory. |
| KCriteriaTable | Table implementation backed by a registered KCriteria builder, rendering the result of running that criteria query as rows with one column per configu... |
| PointsDebitsLinkTable | Table listing points debits reconciled against their originating credits, one row per participant, reward and points tag combination with the net poin... |
| QueryTable | A query table registered via Queries.addTableDef. |
| QueryWrapperTable | Table implementation that wraps a saved QueryBean, exposing either its raw search results or one of its configured aggregations as rows. |
| RepoQueryTable | A query table exposed by this app, populated by calling the row-producing JavaScript function declared for it in the app's controllers.xml. |
| RewardEntriesSummaryTable | Table summarising promotion entries by reward, one row per reward showing its total entry count and the number of distinct profiles who entered. |
| RewardEntriesTable | Table listing every promotion entry recorded for the current organisation, one row per entry showing the entrant's identifying details. |
Database Table Providers
| Name | Description |
|---|---|
| CategoryTableProvider | Import-pipeline table provider for product categories, inserting, updating, deleting or upserting Category rows as an import pipeline runs. |
| DataSeriesProvider | Import-pipeline table provider that reads SalesDataRecord rows for a named SalesDataSeries, for use as a DatabaseSourceStep query source. |
| FastPointsDebitRowProvider | Import-pipeline table provider that inserts PointsDebit rows, debiting points from a profile or organisation as an import pipeline runs. |
| FastPointsRowProvider | Import-pipeline table provider that inserts Points rows, awarding points to a profile or organisation as an import pipeline runs. |
| GroupMembershipTableProvider | Import-pipeline table provider that creates or updates GroupMembership records, and their owning Profile, as an import pipeline runs. |
| OrganisationTableProvider | Import-pipeline table provider that creates or updates child organisations of the current account as an import pipeline runs. |
| PointsRowProvider | Import-pipeline table provider that awards Points against a Reward (points bucket) as an import pipeline runs. |
| ProductInCategoryTableProvider | Import-pipeline table provider that links products to categories, inserting, updating or deleting ProductInCategory rows as an import pipeline runs. |
| ProductOptionsTable | Import-pipeline table provider that inserts and updates product parameter options, commonly called product variants. |
| ProductsTable | Import-pipeline table provider for products, inserting, updating, upserting and soft-deleting Product rows as an import pipeline runs. |
| ProfileTableProvider | Import-pipeline table provider that creates or updates Profile records and their group memberships as an import pipeline runs. |
| SurveyRowProvider | Import-pipeline source provider that reads RewardQuizSubmission survey submissions for reporting or export. |
Other
| Name | Description |
|---|---|
| AccessLogBean | Represents a single logged HTTP request against a Kademi website - one row of the access log. |
| AccountUsage | Reports resource usage for a single account, produced by accountUsage() for the current tenant. |
| AchievementsSummary | A participant's achievements across every recognition topic in the account: every badge and level they have been awarded, plus the highest level reach... |
| ActivePoints | Tracks a single Points credit record as it is progressively consumed by later debit transactions during a calc() run, recording how much has been debi... |
| ActivityParticipant | Pairs a learner's progress through a module (ModuleStatus) with their invitation and response to a specific scheduled activity (AttendeeRequest). |
| AggBucket | One bucket of an aggregation (facet) result - a distinct value found in the search results, together with how many documents matched it. |
| AlertBean | Wraps a persisted Alert as a read-only, display-ready view for rendering on the admin dashboard or a website page. |
| AltFormatBean | Read-only snapshot of an AltFormat entity, describing one derived rendition (such as a thumbnail) of a binary asset's source file. |
| AnomalyAlarmService | The alarm lifecycle: turns a stream of per-bucket verdicts into incidents, and says which events to fire. |
| AnomalyAlarmState | A detector's persisted position: what state it is in, how it got there, and what it has seen. |
| AnomalyAlarmTransition | What the state machine decided, and therefore which events the caller should fire. |
| AnomalyDataPoint | One bucket of a metric time series: the instant the bucket starts, and the aggregated value in it. |
| AnomalyDetectionModel | Detects anomalies in a time series of dated observations, using Yahoo EGADS' adaptive kernel density change point detector. |
| AnomalyDetector | Decides whether a bucket of a metric time series is abnormal, and can explain why in one sentence. |
| AnomalyHistoryEntry | One evaluated bucket, kept so that a detector's behaviour can be reviewed after the fact. |
| AnomalyInterval | Represents a single anomaly detected by AnomalyDetectionModel: the time interval where the actual values diverged from the predicted ones. |
| AnomalyResult | What the detector concluded about one bucket, and why. |
| AnomalyScanResult | Everything one scan of one detector produced: what the bucket looked like, what the lifecycle decided, and where the detector now stands. |
| AnomalyStore | Where a tenant's detector customisations and alarm state live. |
| AnomalyThreshold | When a deviation from normal is worth telling somebody about. |
| AnomalyTripConfig | How many abnormal buckets make an incident, how many good ones end it, and how often to say so while it is open. |
| AppControlAppSettings | Combines an app's organisation-level settings with an optional website-level override, backed directly by AppControl and AppSetting persistence rows. |
| AppControlBean | A single row in the manage-apps admin page, pairing an Application with whether it is currently enabled for a given organisation or website branch. |
| AppIndexerField | One custom field registered against a repo app's search index via Queries.addAppIndexedField. |
| ApplyConfigContext | Carries the mutable state passed through a single account configuration deployment, from AccountManager.applyAccountConfigConfiguration down into each... |
| AppsPageHelper | Backs the manage-apps and available-updates admin pages: enabling and disabling apps, applying per-app settings, and reporting which installed apps, t... |
| AppTransactionManager | Lets a custom app manage its own Hibernate transaction and per-entity locking from JS, exposed as the transactionManager variable. |
| AssetContentType | Wraps an asset together with one specific content type it has been assigned, so that the content-type-field evaluators can render field values belongi... |
| AssetContentTypes | Wraps a single asset for use as the base value of the "assetType-*" content type fields, letting a field expression navigate from the asset to one of... |
| AttachmentBean | Represents a single file attached to a contact request, either uploaded with the submission or attached by a directive on the form. |
| AttendeeGuest | Carries the name, email and organisation of a guest that an attendee brings to a calendar event. |
| AuctionBidBean | Read-only view of a single AuctionBid, used to display bid history and the leading or winning bid on an auction's admin and website pages. |
| AuctionBidSimpleBean | Flattened, JSON-friendly snapshot of a bid event, broadcast over the auctionBid websocket so connected clients can update an auction's leading bid liv... |
| BaseBucket | A single named count bucket, such as one lead stage's total within a team, serialised to JSON via toXContent for dashboard views. |
| BlogsResourceList | A ResourceList specialised for blog articles, adding sorting and filtering helpers on top of the standard list. |
| BonusPointsRuleType | Built-in PointsRuleType that awards bonus points calculated from another points allocation source's own result for the same sales record, rather than... |
| Calc | Calculator bound to a fixed list of resources, providing MVEL-expression-based filtering and summing for templates. |
| CalcContext | Carries per-calculation state through a single call to QueryService.calcMetric, including cache and recursion controls and a scratch attribute bag tha... |
| CartShippingAddress | Read-only view of the delivery address held on a cart, exposed as the shipping address for the order. |
| CashCurrency | Currency implementation representing payment by real money through a configured payment gateway, rather than a stored account balance. |
| CategoryBean | Lightweight, template-friendly view of a Category, used to render category names, titles and images on category and product listing pages. |
| CategoryDataPoint | Represents one bar chart data point: a value plotted against a category label, optionally grouped into a named series for the legend. |
| CertAndKey | Bundles an X.509 certificate, its issuing chain and the matching private key extracted from a PKCS12 keystore. |
| ChangedProperty | Holds the source and destination value of one changed config property, plus static helpers used to apply it to a domain object. |
| CheckoutItems | Represents the priced line items of a shopping cart, combining physical items the user added with virtual items that checkout rules added automaticall... |
| CheckoutLineItem | Represents one priced line in a cart's checkout, such as a purchased product, a redeemed voucher or a free gift. |
| CheckoutRuleType | Defines a pluggable custom checkout rule, evaluated during checkout to add or adjust cart line items and, when a resulting line item is committed, to... |
| ChildrenOfTypeMap | Read-only map view over a ResourceList that filters the list by resource type on each lookup. |
| ColumnInfo | Describes one mapped source column of a table import: its zero-based column index, the destination field name it is mapped to, and that field's displa... |
| ColumnMeta | Describes one column of a TableViewMeta table: its heading, whether it can be sorted, and the CSS classes and attributes to render on it. |
| ColumnsHelper | Provides typed, null-safe access to a pipeline row's column values, and is the object exposed as "columns" to MVEL column expressions. |
| CommentBean | Represents a single comment or reply posted against a piece of content, such as a blog article, forum post, question or website page. |
| CommonList | A general-purpose list of resources with extra convenience operations for templates and JS controllers. |
| CompletionsUsage | Token usage OpenAI reports for a chat completion request, covering the prompt and completion token counts and their combined total. |
| CompletionTokenDetails | Breakdown of the completion token usage OpenAI returns for a chat completion, distinguishing tokens spent on reasoning, audio and predicted-output han... |
| ComponentHtmlTemplater | Renders HTML pages by combining a theme's chrome with a page's own template, then expanding any dynamic components in the merged markup. |
| ConfigDeltaBean | JSON-serialisable snapshot of a ConfigDelta, used to pass a config item's changes to an app's applyConfig implementation and to render it in the confi... |
| ConfigMessage | Warning or error about an app's configuration, for display on an admin page. |
| ConfigSnapshotInfo | Summarises one account configuration snapshot file previously saved for a tenant account, for listing in the config deployment admin UI without having... |
| ConnectedDebit | Records how much of a credit line item was consumed by one particular debit, and links back to that debit's own line item. |
| ConnectedTx | Records that a number of points were transferred between two line items during matching: how much of a credit was applied to consume a debit, or vice... |
| ConstExpression | An Expression that always evaluates to a single, pre-configured value. |
| ContactRequestBean | Wraps a ContactRequest entity as a plain data bean for use in templates and JSON output, carrying the submitter's details, the submitted message, and... |
| ContentAssetData | A lazily-evaluated, read-only map view over a content item asset, resolving field values, relations and core metadata by property name for use in temp... |
| CountryCode | A single ISO 3166-1 country record: its English and French short names, alpha-2 code, alpha-3 code and numeric code. |
| CountryCodes | Provides lookup of ISO 3166-1 country data by alpha-2 code, alpha-3 code or locale. |
| CpdAwardBean | Read-only view of a single CPD (continuing professional development) award, wrapping the persisted CpdAward entity for use in templates. |
| CreateEmbeddingsResponse | Deserialised response from OpenAI's Embeddings endpoint (POST /v1/embeddings), returned by OpenAiClient.createEmbeddings. |
| CredentialsBean | Immutable eWay API credentials for a single organisation or website: the API key, its password, and whether to use eWay's sandbox environment. |
| Currency | Represents a type of currency that can be used to make payments in the shopping cart. |
| CustomCheckoutRuleLineItem | A checkout line item contributed by a CustomCheckoutRule, such as a points reward or reseller-specific charge, built with fixed price, tax and descrip... |
| CustomFieldDuplicateProfileMatchMethod | Finds duplicate profiles which share the same value for a given custom field. |
| DashboardAlertSafeHelper | Safe helper used internally by AlertsManager to resolve alerts across organisation boundaries when building the current user's alert lists. |
| DataCaptureField | A single custom data capture field configured on a sales data series, wrapping its display order, name and raw configuration string for rendering in t... |
| DataPoint | Marker interface for a single value plotted on a chart built via ChartManager.ChartBuilder. |
| DataSeriesExtraFieldBuilderV2 | Builder for adding multiple extra fields to a sales data series in a single fieldset update. |
| DataSeriesLeaderBoard | Ranks the records of a sales data series, optionally restricted to a date range, to find the highest or lowest results. |
| DateDataPoint | Represents a single dated observation: a value at a point in time, with an index used as the independent variable for forecasting. |
| DateOnlyTemporalParser | TemporalParser for a date-only numeric pattern, such as DD/MM/YYYY or MM-DD-YY, restricted to a matching or excluded country as configured on the encl... |
| DatePoint | One point in a daily hit-count time series, pairing a calendar day with the number of hits recorded on it. |
| DateTimeTemporalParser | TemporalParser for a date-and-time numeric pattern, such as DD/MM/YYYY HH:mm or MM-DD-YY HH:mm, restricted to a matching or excluded country as config... |
| DealsInfo | A count and total value of leads closed in a given period, returned by Lead.countClosed. |
| DefaultCheckoutLineItem | Standard checkout line item backing a purchased product or service, sourced from a cart's ProductOrder and, where available, an ItemisedPrice computed... |
| DefaultKSearchResponse | Result of one Elasticsearch search, wrapping the native SearchResponse behind the KSearchResponse API. |
| DefaultMappingMetaData | Field mapping metadata for one document type, as returned by getMappings. |
| DependantField | Declares how selecting a Param affects another field on the same contact (e.g. |
| DerivedFunnelField | A funnel field whose value is calculated dynamically rather than stored, by running a JavaScript function against a lead. |
| DiffieHellmanModule | Performs a Diffie-Hellman key exchange: generates a local key pair, combines it with a peer's public key to agree a shared secret, and exposes the pub... |
| DiscountPromotionItem | Represents a discount applied to an existing shopping cart line item by a promotion or reward. |
| DocItem | A single matching document returned by a vector search, with its relevance score and highlighted paragraphs. |
| DuplicateList | One group of organisations within the current account that share the same title, produced by findDuplicates(MergeDestMode) for review before merging. |
| DuplicateProfilesList | Holds one set of profiles which share a duplicated value, as found by UserManager.findDuplicates. |
| EmailContent | Holds the HTML and plain text body of an email, as returned by an EmailContentService lookup. |
| EmailContentService | Stores and retrieves the HTML and plain text body of an EmailItem, decoupled from where that content is actually kept. |
| EmailDuplicateProfileMatchMethod | Finds duplicate profiles which share the same email address. |
| EmailItemBean | Lightweight, read-only view of an email item built from a search index hit, used to render rows in the "manage email items" history listing without lo... |
| EmailNotificationTableActionHandler | Standard table-upload action that emails a summary notification once an import job finishes. |
| EmailSenderDetails | Holds the name of the JS function an app uses to send its outgoing email. |
| EmailStats | Summarises email delivery and engagement outcomes for a date range, as counts and derived percentage rates. |
| EmailStatusCounts | Holds aggregated counts of email items for a job, as returned by emailStatsDb or emailStats: the total number of items, how many were read, how many c... |
| EmailValidationRequest | Records a request to verify a profile's email address before a sign-up or group membership application can proceed. |
| Embedding | A single embedding vector OpenAI generated for one input text, as returned in the data list of CreateEmbeddingsResponse. |
| EmbeddingUsage | Token usage OpenAI reports for an embeddings request. |
| EngagementScoringFactor | One rule in a funnel's engagement scoring configuration, pairing an EngagementScoringFactorType with the boost, decay and stage-activation settings us... |
| EngagementScoringFactorType | A kind of lead engagement that funnel scoring rules can reference, such as email responses, comments or form submissions. |
| EngagementScoringProperty | One extra configuration field a scoring factor type exposes, so its admin editor can prompt for values that are stored in an EngagementScoringFactor's... |
| EnrolementModel | Pairs an enrolment with the program folder it belongs to, and exposes convenience accessors used when listing a group's training enrolments. |
| EntityAndPoints | Pairs a profile or organisation with a total number of points, used to summarise points earned per participant, for example in a leaderboard for a rew... |
| EntityBean | Common contract for lightweight beans that wrap a persisted domain entity for use in templates and JS controllers. |
| ESFieldMeta | Metadata describing one field of an Elasticsearch mapping - its name, display title, description, type and any sub-field - captured when an ESFieldBui... |
| EsStatistics | Compares the number of items in a primary data store against the number indexed into Elasticsearch for a single index, so a discrepancy between the tw... |
| ExpiringPointsList | A list of points balances that are due to expire, with helper methods to summarise the remaining amounts by month or day so they can be charted or lis... |
| ExtendedStatField | Describes one extra statistic a TableUploader reports alongside a table import, such as a running total, average or earliest/latest date, beyond the s... |
| ExtProfileBean | Admin-facing view of a profile: extends ProfileBean with fields visible only to staff, such as email, phone, birth date, notes and visit history. |
| ExtUrl | Holds a fully qualified, externally reachable URL together with the exact domain name it was built for. |
| Facet | Represents one facet (a filterable, aggregated dimension) of a report or a faceted admin listing, such as reward, tag, organisation or group, together... |
| FacetsReport | Marks a report as able to produce faceted breakdowns of its data, such as by reward, tag or other dimension, for a given organisation, website and dat... |
| FailBatchSanityCheckTableActionHandler | Row sanity check action that aborts the entire import batch when its configured rule matches a row. |
| FederatedLoginProviderBean | Base bean for a configured federated login provider that a website or organisation can use for social login. |
| Field | A single mergeable data field that can be looked up by id, such as firstName or ageYears, and evaluated against a profile to produce a value for kcode... |
| FieldBean | JSON-serializable snapshot of a Field, produced by FieldsService for sending field metadata to the admin UI. |
| FieldsService | Aggregates the fields contributed by every active FieldProviderApplication and resolves kcode template placeholders and funnel rule queries against th... |
| FifoList | A list with a fixed maximum size that discards its oldest element whenever a new one is added past that limit. |
| FileSpec | Describes one entry returned by FtpSession.listFiles - a single file or subdirectory found in the directory that was listed. |
| FileUtils | Zip, unzip and image-manipulation helper built on Kademi's content-addressed blob and hash store. |
| Filter | Describes which connected SSE clients should receive a message, built with a fluent API from SseManager.newFilter(). |
| FirstLastNameDuplicateProfileMatchMethod | Finds duplicate profiles which share the same first name and last name. |
| ForeachContext | Per-iteration state passed to the callback function on each pass of a foreach loop in templates and GraalJS scripts, exposing the current zero-based i... |
| ForecastModel | Forecasts future values for a time series of dated observations, using openforecast's double exponential smoothing model. |
| FormContext | Wraps the parameters and uploaded files of a single form submission, giving controllers and JS controller functions typed, cleaned access to request d... |
| FormData | Builds a multipart form body for use with XMLHttpRequest.send(), mirroring the browser FormData API for app scripts that need to post multipart/form-d... |
| FraudContext | The operation being scored, and everything a rule might need to score it. |
| FraudDecision | The outcome of scoring one operation: what the score was, what it means, and why. |
| FraudPolicyStore | Stores an account's fraud rule customisations, one JSON document per rule, in a fraud directory in the account's queries repository. |
| FraudScoreStore | Holds recent fraud scores in memory so that intrusion detection can act on them. |
| FraudSignal | Represents one rule's contribution to a fraud score, built via its Builder. |
| FraudThresholds | Holds an account's fraud score band boundaries, and whether blocking is switched on at all. |
| FreeGiftCheckoutLineItem | Checkout line item representing a free gift added to the cart by a promotion, via FreeGiftCheckoutRule. |
| FtpSession | An open connection to a remote FTP or SFTP server, returned by FtpManager.openFtp or FtpManager.openSFtp for an app script to transfer files with. |
| FunnelActionTypesList | List of automation action types registered by a repository app, passed into the app's dynamic action types JS function so it can add its own entries. |
| FunnelAutomation | A trigger/action rule attached to a funnel, run whenever a matching event occurs on one of its leads. |
| FunnelExport | A named, reusable set of lead fields that leads for a funnel can be exported with, for example as CSV. |
| FunnelTester | Overrides a goal's timeout delay for leads whose profile email matches a given domain, so that test accounts (eg mailinator.com addresses) do not have... |
| FunnelTriggerTypesList | List of automation trigger types registered by a repository app, passed into the app's dynamic trigger types JS function so it can add its own entries... |
| GeoIPService | Resolves an IP address to geographic and network information using local MaxMind GeoIP2 databases (city-level location and ASN/network owner), without... |
| GeoIpWrapper | A Wrapper for the MaxMind Geo IP2 lookup |
| GeoLoc | An immutable latitude/longitude pair, serialised to JSON via toXContent for map dashboards. |
| GiftPromotionItem | Represents a free gift product sku awarded by a promotion or reward. |
| GroupInWebsiteItem | Pairs a group's membership of a website with its resources directory, one row in the group resources listing. |
| GroupSignupStat | Holds a single group's sign-up count for a reporting period. |
| GuestBean | Wraps the display details of a guest attending a calendar event on behalf of an invited attendee. |
| HlsPrimaryBean | Read-only snapshot of a HLS (HTTP Live Streaming) primary playlist, wrapping the persisted HlsPrimary entity and its programs and segments for use by... |
| HlsProgramBean | Read-only snapshot of a single HLS program, wrapping a persisted HlsProgram entity. |
| HlsSegmentBean | Read-only snapshot of a single HLS segment, wrapping a persisted HlsSegment entity. |
| HomeOrgInfo | Lightweight view of a profile's home account - its id, admin domain, path and title - which is otherwise unreadable when that account is a different t... |
| IgnoreRowSanityCheckTableActionHandler | Row sanity check action that drops a row from the import when its configured rule matches. |
| Image | An image that has been assigned to an auction, with an optional orientation such as square or vertical. |
| ImageGenerationOptions | Immutable set of parameters for a single image generation request, built via ImageGenerationOptionsBuilder and passed to ImageGenerationManager.genera... |
| ImageLocation | A single generated image returned by OpenAI's Image Generation endpoint, delivered as either a URL or inline base64-encoded data depending on how the... |
| ImageModel | Describes a single AI image generation model offered by a provider, including its name, owning provider and the image sizes it supports. |
| ImageResponse | Deserialised response from OpenAI's Image Generation endpoint (POST /v1/images/generations), returned by OpenAiClient.getImageGeneration. |
| ImportContextV2 | Carries the shared state for one table import run, from the first row to the last, including the field mappings, request parameters, accumulated exten... |
| IndexItem | A single document to be added to a website's vector search index. |
| IndexItemBean | Immutable, plain implementation of IndexItem holding a document's fields ready to be indexed for vector search. |
| InstalledUser | Represents one organisation that has installed a repository app, as shown on the app's installed-users listing page. |
| InvoiceBean | Represents an invoice raised for a customer, extending the generic payment list with an invoice status and a due date. |
| InvoicingService | Creates invoices and purchase orders on behalf of whichever InvoicingApplication is currently active for the organisation, and builds a PaymentAddress... |
| IpHit | Number of access log hits recorded from a single source IP address for a given profile, broken down by user and host, for security and activity report... |
| ItemCount | Pairs a name with a count of how many times it occurs, used to report tag and category frequencies for a blog. |
| ItemisedPrice | Breakdown of the factors that make up a product line's final price: list price, tax, quantity, and any promotional adjustment. |
| JobContext | Provides safe, limited access to a running job's state for use from JavaScript job functions. |
| JobSearchHit | Represents one text match found while searching a job's input, output or log lines for a search expression. |
| JourneyFunnelFieldsList | List of the configuration fields an administrator fills in for a funnel trigger or action type, passed into the app's fields JS function so it can dec... |
| JsAuthHandlerMapping | Immutable set of JS function names implementing Milton's AuthenticationHandler contract for one app, built by AuthHandlerBuilder and held on the app's... |
| JsonMarketPlaceItem | Adapts a raw JSON map, as returned by the remote marketplace catalog API, to the IMarketPlaceItem interface. |
| JsonResult | Generic value object representing the outcome of an operation - a status flag, human-readable messages, optional field-level validation messages and a... |
| JsProcessable | Represents a single asynchronous JavaScript task queued through JsScheduler.executeAsyncTask and its FIFO and callback variants, tracking its progress... |
| JsScheduleBean | Read-only snapshot of a JsSchedule, returned to app JavaScript by JsScheduler's schedule, getSchedule, find and getSchedules methods. |
| JsScheduler | Schedules recurring and one-off JavaScript function calls for a repo app, and submits asynchronous background tasks for the app to process off the req... |
| JsStatusInfo | Tracks progress for a single JsProcessable task and, once marked complete, invokes the app's callback function if one was registered on the task. |
| JsTableActionHandler | Table-upload action handler whose lifecycle hooks are implemented in JavaScript rather than Java. |
| KademiArrayList | An ArrayList with convenience methods for use in templates and scripts, such as getting a random element, a reversed copy, or a truncated sub-list. |
| KademiRequest | Wraps Grizzly's HTTP request for Milton.io, sanitising header values and uploaded file field names before they reach application code. |
| KademiResponse | Wraps Grizzly's HTTP response for Milton.io, applying Kademi's cookie security defaults whenever a cookie is written. |
| KademiSseConnection | Represents one live Server-Sent Events connection from a browser client, scoped to a single SSE type and host. |
| KademiWebsocketWrapper | Entry point for app JavaScript to send and broadcast websocket messages and query connected sockets, bound into the JS engine context as the global we... |
| KCriteria | Fluent Hibernate criteria query builder for a single entity type, returned by KCriteriaBuilder.build(). |
| KnownLocations | A profile's location history, as far as the index knows it. |
| KQueryField | A single field-scoped search term parsed from a query string, pairing a field name with the value it must (or must not) equal. |
| KSearchHit | Kademi's abstraction over Elasticsearch SearchHit to enable pluggable implementations. |
| KSearchHitField | Kademi's abstraction over Elasticsearch SearchHitField to enable pluggable implementations. |
| KSearchHits | Kademi's abstraction over Elasticsearch SearchHits to enable pluggable implementations. |
| KSearchQuery | Parses a simple search-box query string into structured must/must-not terms, splitting free text from field:value clauses (for example title:foo -tag:... |
| KSelectorItem | Represents a single entry in a generalised org, user, group or org type selector, used together with the jquery.kselector widget to build inclusion or... |
| LeadBean | A flattened, JSON-friendly snapshot of a Lead, produced by the toBean factory method for AJAX list and detail responses. |
| LeaderboardRanking | A single ranked entry in a leaderboard, attributing an amount to a participant. |
| LeadFields | Marker value bound as the template root when a page reads a lead's custom fields. |
| LeadManSearchHelperV1 | Builds and runs the Elasticsearch queries for lead-related profile, organisation and combined (omni) search. |
| LeadManSearchHelperV2 | Builds and runs the Elasticsearch queries behind lead management search and filtering. |
| LeadmanService | Owns lead-management business logic that sits above the raw Lead and Task entities: team and task statistics for dashboards, lead and note creation, l... |
| LeadSearchCriteria | Filter criteria for searching leads within a funnel, used to build a scoped search against the lead search index. |
| LeadsList | Lazily loaded, filterable list of Leads, used as a merge field value so templates and reports can list and filter a customer's or assignee's leads. |
| LearningTemplateHelper | Template helper exposing a profile's e-learning progress, CPD points and CPD awards to Velocity templates. |
| LevelStatus | Snapshot of a participant's progress through a RecognitionTopic's levels, as calculated by RecognitionService. |
| LevelSummary | The full level ladder for a participant in a topic, optionally scoped to a period: every level the topic defines, each paired with the next level up,... |
| LevelSummaryItem | One level in a participant's level ladder: a level paired with the next level up, the participant's current value, and the points calculated for reach... |
| ListAndCount | A page of results from a search or query, paired with the total number of matching rows across all pages. |
| ListOptionType | An OptionType backed by a fixed list of choices, rendered as an HTML select element. |
| LlmModel | Describes a single language model available for inference, whether registered globally or scoped to a tenant. |
| LlmModelTier | What a model is being asked to do, rather than which model to use. |
| LoginNonceBean | Immutable, request-safe snapshot of a LoginNonce. |
| LongRangeFacetBucket | A facet bucket for a numeric range, carrying the inclusive or exclusive start and finish of the range covered and the count of documents falling withi... |
| LookupESField | Field metadata for a value resolved to a display label by calling a lookup function directly, rather than through a relation to another AppIndexer's i... |
| MailboxMapping | Configuration for one mailbox mapping built via MailboxMappingBuilder, pairing a custom app's verify and store email callbacks. |
| ManageUsersResultDbDTO | Wraps a Profile entity loaded directly from the database as a manage-users search result, adapting it to the common IManageUsersResultDTO shape used b... |
| ManageUsersResultElasticDTO | Wraps a search hit from the Elastic search index as a manage-users search result, adapting it to the common IManageUsersResultDTO shape used by the ma... |
| MapReduceSubTask | Describes one sub-task produced by a MapReduceProcessable's map or onMappedTasksComplete method. |
| MembershipApplicationRequest | Carries the details of a pending group membership application, either to join an existing organisation or to register a new one. |
| MembershipBean | Read-oriented view of a profile's membership to a group, wrapping a GroupMembership entity for use in templates and scripting. |
| MembershipList | A list of MembershipBean objects, with a variety of filtering, grouping and CSV summary methods for working with a profile's or a report's set of memb... |
| MenuConfigItem | Represents one entry in an account's saved menu customisation (menu.json), matched by id to a menu item an app contributed. |
| MenuItem | One node in the platform's navigation menu tree, built fresh per user and root folder and cached briefly by MenuManager. |
| MenuItemList | An ordered list of MenuItem nodes, used both as the children of a menu item and as a scratch list when building a filtered view such as the active ite... |
| MenuManager | Builds each user's menu tree, merging what every installed app contributes with the account's saved menu customisations. |
| MenuMapping | A single dynamically registered menu entry, built by MenuMappingBuilder and evaluated by RepositoryApp when it lays out the admin or website menu for... |
| MetricUsageData | Measured usage for a single usage factor over the license period. |
| MetricUsageDataList | Per-subscription list of measured usage against each of the account's configured usage factors, over a license period. |
| ModuleCompleteAction | Configures one action to run when a profile completes a learning module: either issuing a certificate with a number of CPD points, or granting a rewar... |
| ModulesList | A list of ModuleStatus records for a profile, with filtering helpers for narrowing down to a program, course, module or completion state. |
| MultiplierRecognitionPointsRuleType | Built-in RecognitionPointsRuleType which awards points as a simple multiple of the participant's achieved value, plus an optional flat amount. |
| MvelExpression | An Expression that evaluates an MVEL script against the current lead, journey node, funnel and any provided variables. |
| MyAttachment | A single email attachment captured from an incoming message, with its content stored in the VFS blob store and indexed by hash. |
| MyPointsDebitInfo | Read-only view of a single points debit (points spent or otherwise deducted) for display in a participant's own rewards summary. |
| MyPointsInfo | Read-only view of a single points award (points credited to a participant) for display in a participant's own rewards summary. |
| MyRewardEntry | Read-only view of a single RewardEntry (a non-points incentive such as a gift voucher or a prize draw entry) for display in a participant's own reward... |
| MyRewardInfo | Deprecated aggregate view of a single participant's own progress in a reward: their points history and reward entries, and how those compare to their... |
| Narrative | An ordered collection of narrative items (short translated messages) built up while processing a request, such as validation failures or status notes,... |
| NarrativeItem | A single message within a Narrative, holding message text, optional substitution arguments and an optional translation code. |
| NextStep | Wraps a reference to the running pipeline and the next step in it, so a pipeline script can trigger the next step itself instead of relying on the pip... |
| NodeTypeBean | A simple, immutable NodeType registration pairing a journey node type name with the Velocity template that renders its JS builder component. |
| NotifyAdminRowSanityCheckTableActionHandler | Row sanity check action that emails admins a consolidated report of every row that matched a configured rule. |
| NotifyAdminUploadSanityCheckTableActionHandler | Upload sanity check action that emails admins when a configured rule matches the aggregate results of a completed import. |
| OAuth2Details | Snapshot of the remote profile details captured when a user connected a social login provider to their account. |
| OAuth2ProviderTemplates | Registry of the built-in social login provider templates that seed the "add social login provider" admin UI. |
| OmniResult | The result of a cross-application omni search: the raw Elasticsearch response plus the list of active OmniSearchApplications that contributed to the q... |
| OmniSearchRequest | A configurable request for the cross-application "omni search" used by the admin search box. |
| OnReindexProgressEvent | Reports progress while a JSON database is being reindexed into Elasticsearch, delivered to the callback passed to reindex or updateAnalyzers after eac... |
| OnSearchReindexProgressEvent | Progress notification passed to the callback supplied to SearchManager's reindex methods, reported once for each document written to the new index. |
| OrderBean | Lightweight, template-friendly view of a ProductOrder, used to render a profile's past orders for a product, including the answers they gave to any or... |
| OrgCustomFieldsList | Marker value bound as the template root when a page reads an organisation's custom fields. |
| OrgDashboardStats | Aggregate usage counts for the current account, produced by orgDashboardStats() and shown on the admin dashboard. |
| OrgData | Represents an organisation, and allows access to information about members of that organisation You can get the OrgData for the organisation which own... |
| OrgDataList | A list of OrgData objects, with methods for filtering, grouping and converting that list. |
| OrgExtraField | Marks an extra field as an organisation picker, rendering as a text input with autocomplete against the organisation search endpoint rather than a pla... |
| OrgMatchRequest | Builds a set of match criteria for finding organisations, used by OrganisationManager.findMatching and OrganisationManager.findMatchingES. |
| OrgModulesStats | Module completion statistics for the current user's primary organisation, the organisation that the user's primary membership belongs to, optionally s... |
| OrgSearchResultES | A single row in the organisations search/listing results table on the Manage Organisations admin page. |
| OrgTypeBean | Lightweight, read-only snapshot of an organisation type (OrgType), exposed to GraalJS and used wherever an organisation's assigned types are listed or... |
| OverageData | Measured usage for a single usage factor together with the quota included in the license, used to report how far the subscription has gone over its pl... |
| Paginator | A request driven paging helper for a listing already loaded into memory, exposed to templates and scripts as "paginator" via Formatter. |
| Paginator2 | A request driven paging helper like Paginator, but for a listing that is expensive to load: instead of taking a pre-loaded records list, it is constru... |
| ParagraphItem | A single highlighted fragment of a document's content, showing where a search query matched. |
| Param | A single selectable value for a dropdown extra param. |
| PaymentAddress | A postal address captured for an invoice, quote or purchase order, such as a billing or delivery address. |
| PaymentLineItemBean | A single priced line item on an invoice, quote or purchase order, such as a product, fee or service charge. |
| PaymentListBean | A list of priced line items with billing and delivery addresses, forming the shared base for invoices, quotes and purchase orders. |
| PaymentListLineItemAttachment | A file attached to a line item on a payment list, such as a supporting document, identified by its stored content hash. |
| PaymentResult | Outcome of a call to a payment provider's process method. |
| PaymentTransactionBean | Read-only snapshot of a payment attempt made through an external payment provider such as eWay, including its outcome and provider response codes. |
| PdfContent | Bean pairing extracted PDF text content with a map of document metadata. |
| PdfDocument | Thin wrapper around a PDFBox PDDocument for a single loaded PDF, exposing page access, AcroForm field reading and writing, and document metadata. |
| PdfManager | Generates, reads and rasterises PDF documents for the platform's stored files, wrapping PDFBox behind the platform's blob store and hash store. |
| Period | A billing or usage period defined by a start and end date, used when calculating subscription usage and generating invoice line items. |
| PeriodProjectedResult | Projects a participant's likely final value and level for a recognition period from their actual value so far and the proportion of the period that ha... |
| Pipeline | Runs one execution of a configured integration pipeline: a chain of PipelineStep instances built from an account's pipeline XML by PipelineManager and... |
| PipelineBean | Contains summary information about the execution of a pipeline. |
| PointsAccount | Represents a participant's points balance within a single points bucket (Reward). |
| PointsCount | Holds the total points issued or debited for one grouping tag, over a date range. |
| PointsRequest | Mutable request bean for awarding or debiting reward points to a participant. |
| PointsStats | Summary of points credit and debit counts for an entity, reward and date range, as produced by PointsManager.pointsStats. |
| PointsTransaction | Represents a single row in a participant's points history: either a points credit (award) or a points debit (spend). |
| PortletMapping | Registers a JS function and template to render into a named section of an admin or website page, created by PortletMappingBuilder.build. |
| PostBean | JSON-serialisable summary of a single post, used to answer forum and comment search requests. |
| PostMatchRequest | Builds a criteria query for finding forum posts, comments and replies, combining criteria such as post ids, poster, website, forum, date range and fre... |
| PreRenderEvent | Fired immediately before a page is rendered, so an app can act on the page or opt it out of compiled dependencies. |
| PricingManagerRuleType | Points allocation rule that computes points from a sales record's amount, optionally multiplied by a fixed factor and by a named ecommerce store's pri... |
| PricingRule | A single pricing or promotion rule: a set of match criteria (user, group, organisation, org type, vendor org type, product, category, brand, quantity... |
| PricingRulesSet | Combines a store's pricing rules with its resolved shipping providers, tax calc providers, promotional availabilities and checkout rules into one immu... |
| ProcessedHit | A single processed search result row, with its field values enriched by resolving any joined fields. |
| ProcessedHitField | A single field value within a ProcessedHit, equivalent to a KSearchHitField. |
| ProductBean | Lightweight, template-friendly view of a Product, used to render product listings, product detail pages and shopping cart lines without exposing the f... |
| ProductInCategoryBean | Wraps a product's membership in a category, pairing the product's summary with the category it belongs to. |
| ProductOptionBean | Wraps a single purchase option value of a product parameter, such as one colour or size choice, for use in product templates. |
| ProductOrderBean | Read-only view of a single ProductOrder line item within a cart, built from the persisted entity for use in templates and JSON responses. |
| ProductOrderOptionBean | Read-only view of a single answered parameter option on a product order, built from the persisted ProductOrderOption entity, for example a selected si... |
| ProductParameterBean | Wraps a single purchase parameter of a product, such as "Colour" or "Size", together with its available option values, for use in product templates. |
| ProductSkuBean | Read-only summary of a ProductSku, exposing just its id, name, title and owning product id for display in sales data records and reports. |
| ProfileActionBean | A profile-specific timeline event, extending StreamEventBean with a flag for whether the action was inbound (from the user to the platform) or outboun... |
| ProfileAndField | Holds one profile's identity together with the value of a single custom field, for a particular group membership. |
| ProfileBean | Lightweight, JS-facing view of a user profile: id, username, display name, href and photo hash. |
| ProfileMatchRequest | Fluent query builder for finding profiles by name, contact details, group and organisation membership, and other criteria. |
| ProfileTab | An additional tab shown on the manage user profile page, backed by a named portlet that renders the tab's content. |
| ProfileTabMapping | Registers an extra tab, and optionally a matching summary panel, added to an admin profile or organisation page, created by ProfileTabsBuilder.build. |
| ProfileTimelineMapping | Holds the JavaScript function a repository app registers to contribute stream items to a profile's or an organisation's timeline. |
| ProgramsModel | Wraps the program folders on a website's branch and provides lookups for programs, courses and modules by their codes. |
| PromoCodeResult | Outcome of applying a single promo code to a cart, reported back by CartManager.applyPromoCodes. |
| PromotionBean | Read-only view over a promotion's stored configuration properties - entry codes, discount and gift settings, quiz and upload options, and qualifying p... |
| PromotionService | Determines which promotions (Reward objects used for checkout/cart offers) a purchaser or cart currently qualifies for, and resolves a promotion's sto... |
| PromotionsList | A collection of Reward (promotion) objects with convenience methods for narrowing the list down by website or by whether the promotion is featured. |
| PromptTokenDetails | Breakdown of the prompt token usage OpenAI can return for a request, distinguishing tokens served from the prompt cache, tokens written to it, and tok... |
| PurchaseAmount | Represents an amount of a specific currency required to purchase something, pairing a monetary amount with the Currency it is denominated in. |
| PurchaseItem | Represents one line item being purchased through a payment provider, carrying its quantity, unit cost, tax and final price. |
| Queries | Cached, parsed representation of a tenant's query configuration repository: elastic search query definitions, reports, lookup tables, metrics, custom... |
| QueryBean | One saved elastic search query definition, typically loaded from a ".query.json" file in an account's or app's query repository. |
| QueryBuilderBean | Configuration for a query as edited through the visual query builder UI, and the elastic search request it produces. |
| QueryField | One field that a user can filter on in the visual query builder UI. |
| QueryParameter | Describes one parameter that can be substituted into a saved query, such as startDate or the currently selected organisations. |
| QuizInfo | Holds the parsed content and settings of one quiz page: its title, marking rules and correct answers, plus the raw quiz HTML for looking up question a... |
| QuizResult | Reports the outcome of a quiz attempt or attempt-limit check back to the caller as JSON data. |
| RankAndPoints | A participant's position and points in one of MyRewardInfo's leaderboards, as returned by rank, rankInTeam and getMyRank. |
| RecipeStep | A single step within a recipe stage, the unit of work an account works through while completing a recipe. |
| RecognitionLevelsRuleType | Points allocation rule that awards points based on a participant's current level within a recognition topic. |
| RecognitionPeriodLeaderboard | A leaderboard helper for a single recognition period: pages through ranked results and looks up the current user's own ranking, caching each lookup so... |
| RecognitionPointsRuleType | Defines a pluggable strategy for calculating how many recognition points a participant earns towards a RecognitionAward. |
| RecognitionService | Owns the persistence and calculation logic for Kademi's recognition domain: topics, levels, badges, periods, awards and points. |
| RecordBean | Read-only summary of a single SalesDataRecord for display and reporting - the sale amount, its period, who entered it, who and which team the sale is... |
| ReferralProfile | Identifies an existing profile that matches a referral's recipient email, found by ReferralManager.findMatchingProfiles. |
| RelationalESField | Field metadata for a value that is a foreign key into another AppIndexer's index - typically an entity ID - so its raw indexed value can be resolved t... |
| RenderValue | Holds a raw indexed value together with its formatted, display-ready representation, as produced by ESFieldMeta.formattedValues. |
| RepoAppActionNodeType | Journey node type that runs a named JavaScript function on a repository app when a lead reaches it, registered through ControllerMappingList.addAction... |
| RepoAppCustomCheckoutRuleType | Custom checkout rule contributed by a repository app, registered through controllerMappings and run by the e-commerce checkout process to add or adjus... |
| RepoAppEventDef | A definition of an event type for a repository app, declared with newEventDefinitionBuilder and raised with triggerEvent. |
| RepoAppEventListener | A registered listener for a repository app event, created by ControllerMappingList.addEventListener or addEventListenerForType. |
| RepoAppGoalNodeType | Journey node type that lets a lead pass only once a JavaScript condition is met, registered through ControllerMappingList.addGoalNodeType. |
| RepoAppMcpMapping | A Model Context Protocol server contributed by a repository app, built by McpMappingBuilder and reached through controllerMappings.websiteMcpControlle... |
| RepoAppMcpToolMapping | A tool statically registered on a repository app's MCP server through McpMappingBuilder, pairing the tool's wire-format spec with the JavaScript funct... |
| RepoAppPaymentResult | Outcome of a payment processed by a repository app's custom payment provider, populated by the app's JavaScript payment function and returned to the e... |
| RepoAppSettings | A settings page a repository app registers for its admin configuration screen, pairing a template path with either a named or an actual JavaScript fun... |
| RepoAppsEventManager | Listens for platform events and passes each one on to the repository apps active for the relevant website or organisation. |
| RepoAppWebsocket | Wraps a live websocket connection for use from app JavaScript, exposing the item id, connection attributes and profile of the connected user, and meth... |
| RepoAppWebsocketMapping | Holds the configuration for one app-defined websocket data type: its connect, disconnect and message JavaScript handler functions, and whether it is r... |
| RepoMailboxStandardMessage | A parsed representation of an incoming email captured by a mailbox mapping, holding the sender, recipients, subject, body and attachments extracted fr... |
| RepoQueryTableDef | Definition of one app-registered query table: the JavaScript function that loads its rows, its column headings and whether it supports pagination. |
| ReportBean | Represents a custom repository report loaded from a report descriptor file (named with a .report.json suffix) and parsed by QueryService. |
| ReportParams | Parses and holds the common request parameters shared by report pages: date range, selected organisations, selected filter terms and whether to includ... |
| RepositoryAppTheme | Adapts a repository app to the Theme interface, letting a repository app be selected and rendered as a website theme. |
| RepoSmsSettingsBean | Holds the SMS provider settings an app supplies for an organisation: the provider username and the sender phone number. |
| RequestLogBean | Data container capturing the details of one outbound HTTP request that has passed through the request interceptor chain: the host, URL, HTTP method, t... |
| ResourceBean | A lightweight, serialisable summary of a WebDAV resource (a file or a folder), used to pass basic identifying information about a resource to template... |
| ResourceBeanList | Accumulates ResourceBean entries describing the files and folders found while browsing a location. |
| ResourceList | Holds an ordered collection of resources with convenience operations for filtering, excluding, grouping and sorting, used throughout Velocity template... |
| ResponsesUsage | Token usage counters for a single OpenAI Responses API call, nested inside Responses. |
| ResultRows | General purpose accumulator for building a list of table rows one cell at a time. |
| RewardBean | Read-only snapshot of a Reward (a promotion or points bucket), copying its display and scheduling fields into a plain bean for use in templates and ot... |
| RewardCurrency | A shopping cart Currency backed by a reward's points balance, letting a profile pay for cart items with points instead of, or as well as, real money. |
| RewardTransactionItem | Represents a single transaction line item against a reward's points balance, either a points credit (Points) or a points debit (PointsDebit). |
| Role | A user is assigned roles by being put into a group. |
| Row | A single row of a table result: an ordered list of cell values, with an optional reference back to the source object the row was built from. |
| RowContext | Carries the state needed to process a single row of a table import, including the raw row data, the field mappings and destination fields shared acros... |
| RowSanityCheckTableActionHandler | Base class for table-upload actions that evaluate a configurable rule against each imported row. |
| RowsResult | Holds the outcome of reading rows from a Table: the rows themselves (each a list of cell values), the total number of matching rows, the column header... |
| SearchParameters | Immutable set of parameters controlling a vector search, such as the search terms, paging and highlighting. |
| SearchResult | Represents a single hit in a search result page, with the matching item's location, title, matched text snippets and metadata. |
| SearchResults | Represents one page of search results, combining the total hit count, the requested page window and the matching SearchResult items. |
| SeoContentBean | Carries per-page search engine optimisation metadata for a renderable resource, such as a meta description, keywords, canonical URL and structured dat... |
| SeriesBean | Wraps a sales data series and the current user's records within it for rendering in the sales data entry form and its JSON view. |
| SharingApplication | Provides items to the social wall, ie information that a user might want to share with friends or colleagues. |
| ShippingAddress | Represents a physical address that a purchase can be shipped to. |
| ShippingAddressBean | Simple mutable data holder for a shipping address, implementing the ShippingAddress contract. |
| ShippingProvider | Calculates the freight cost for a store and decides whether it can be offered for a given cart. |
| ShoppingCartBean | Read-only projection of a Cart entity, exposing the order's contact, address and fulfilment details. |
| ShoppingCartItemBean | Read-only line item for the shopping cart, holding the quantity, pricing and product details for one item being purchased. |
| SigninProvidersList | A list of alternative sign-in providers (eg SSO or social login options) offered on the login page, gathered from apps' appendSigninProviders/appendWe... |
| SignupLog | Records a profile joining or leaving a group within an organisation, along with who or what triggered the change, where it happened, and its previous... |
| SimpleHtmlTemplater | Renders a page by combining a theme's chrome with a single template body, using the TextTemplater to process the Velocity template and then running th... |
| SimplePointsRuleType | General purpose points allocation rule that computes points as a sales record's amount, optionally multiplied and/or added to by fixed configured valu... |
| SimpleTemporalParser | TemporalParser backed directly by a java.time.DateTimeFormatter, used for the built-in ISO and RFC formats that do not need a locale-specific numeric... |
| SizesHelper | Calculates the responsive width of a Bootstrap 3 grid element as a percentage of the viewport at each screen breakpoint, for use in the HTML "sizes" a... |
| SkipRowsTableActionHandler | Standard table-upload action that skips a row when a configured column is blank. |
| SmsProviderDetails | Holds the names of the two functions a repository app registers to act as its SMS provider: one to send a message, and one to supply the SMS settings... |
| SmsStats | Summary statistics for SMS messages sent by an account, covering total volume, total cost and delivery success rate. |
| SpliffyContentGenerator | Milton.io ContentGenerator that renders a themed HTML error page instead of Milton's plain default response body. |
| SseEventMessage | Represents a single Server-Sent Events message conforming to the W3C EventSource specification, holding the event type, data payload, id and retry int... |
| Stack | Small last-in-first-out collection for templates and scripts, created via Formatter's newStack helper and exported to GraalJS. |
| StatusInfo | Snapshot of a tracked job's progress and outcome, shared between the async processing framework and JS job functions via TrackedProcessable.getStatusI... |
| StreamEventBean | Represents a single event on a profile's activity timeline, such as an enrolment, a purchase, or an email being sent. |
| SubmissionBean | Read-only snapshot of a single profile's submission to a reward poll, survey or competition, copying the submitted date, quiz attempt outcome and give... |
| SubTaskList | Collects the sub tasks that a map-reduce pipeline job splits its work into, built up by a script's map function. |
| SummaryPanel | A summary card shown on the manage-profile (or manage-org) admin page, giving an at-a-glance view of something the owning app tracks for that profile... |
| SyntheticExpiredTransaction | A stand-in transaction created when an active credit expires unused, so the expiry shows up as a debit-like entry in the line item history even though... |
| Table | Represents a tabular data source that can be listed, paged and rendered as rows of cells for Kademi's reporting and query engine. |
| TableDir | Represents a single folder of saved spreadsheets, scoped to a path under the tenant's spreadsheets tree. |
| TableViewMeta | Holds everything a table template needs to render one page of records: the row data, the column definitions, the paginator and a set of CSS classes fo... |
| TaskOutcomeFieldValidation | Base class for a validation rule checked against one of a lead's fields when a TaskOutcome is selected on task completion. |
| TaskStats | Task completion statistics for a profile or team over a given period: how many tasks were completed by their due date, how many were completed in tota... |
| TaxCalcProvider | Calculates the appropriate tax rate to apply to a sale. |
| TeamBucket | One team's row in the leads geo/map dashboard: the team's name and location, and its leads broken down into one BaseBucket per stage. |
| TeamMember | Pairs one sales team member's profile with a snapshot of their active, closed and cancelled deal counts, as shown in a single row of the team roster p... |
| TeamMemberPoints | A single entry in one of MyRewardInfo's leaderboards: a participant and their points total for the containing reward. |
| TeamStats | Lead and deal statistics for a sales team over a given period: the count and estimated value of active leads, the number of tasks due soon, and the co... |
| Temp2FAData | Holds a freshly generated two factor authentication secret key and its QR code, produced by userManager.temp2FACode. |
| TemplateDef | Describes one page or content template that an app makes available for creating new resources, found via TemplatingApplication.appendTemplates and Tem... |
| TemporalParser | Pluggable strategy for parsing and formatting date and date-time values against one specific pattern or standard, such as an ISO format or a locale-sp... |
| TermFacetBucket | A facet bucket for a single term (a discrete value such as a reward id or tag name), carrying the term's display title and, optionally, a nested list... |
| TextOptionType | An OptionType backed by a free text input, rendered as an HTML text field. |
| ThemeBean | Immutable, in-memory implementation of Theme used for the built-in themes registered directly by ThemeManager (for example the "admin" and "admin2" ad... |
| ThemeDependentHtmlTemplater | Dispatching implementation of HtmlTemplater that delegates every call to the HtmlTemplater of the current or a named theme, resolved via ThemeManager. |
| Timesheet | A read-only weekly (or other period) view of a worker's logged hours, built by TimesheetManager. |
| TopicAchievementSummary | A single topic's achievement status for one participant: their current level status within the topic, and their result for whichever period is current... |
| TriggerTypeMapping | Represents one registered repository app automation trigger, holding the trigger's identifier, its user-facing description, the format function used t... |
| Update | One row in the available-updates panel: an installed app, theme or lib together with the version currently in use and the version currently published... |
| UpdatesSummary | The headline figures for the available updates panel, so that the page doesn't have to aggregate over the list of updates in Velocity. |
| UploadSanityCheckTableActionHandler | Base class for table-upload actions that evaluate a configurable rule against the aggregate results of a completed import. |
| UserAgentParserWrapper | Wraps the uadetector UserAgentStringParser to parse browser user agent strings into structured details such as browser name, version and operating sys... |
| UserLeadInfo | A per-profile breakdown of lead counts by status, returned by Lead.findLeadStatsForProfile. |
| UserNameDuplicateProfileMatchMethod | Matches duplicate profiles by their user name. |
| ValidationContext | Validates named form parameters against an expected type, presence and constraints, collecting field and form level error messages as it goes. |
| Variant | Represents one row of a product's variant matrix: a specific combination of parameter options (for example a particular size and colour) together with... |
| VectorSearchResult | Outcome of a vector search: the matching documents, and any errors encountered while running it. |
| VelocityHtmlTemplater | Renders pages by combining a theme with a content template using Apache Velocity, and is the default HtmlTemplater implementation used to serve websit... |
| VoucherBean | Read-only view of a Voucher entity, flattened for use in Velocity templates and JSON responses. |
| VoucherCheckoutLineItem | Checkout line item representing a voucher redeemed against a cart, adding a negative-priced credit for the voucher's cash value. |
| VoucherStateSummary | Aggregate count and cash total for vouchers of one voucher type in one status. |
| VoucherStatusChangeBean | Read-only view of a single VoucherStatusChange entry, for use in templates and JSON responses. |
| VoucherTypeSummary | Aggregate voucher counts and cash totals for one voucher type, broken down by status. |
| WebPushNotificationResponse | Immutable wrapper around the HTTP response returned by the push service when a web push notification is sent, letting callers check whether delivery s... |
| WebPushService | Sends web push notifications to browser subscribers using the Web Push protocol with VAPID authentication, via the underlying nl.martijndwars webpush... |
| XMLHttpRequest | Makes outbound HTTP requests from app scripts, mirroring the browser XMLHttpRequest API so existing client-side knowledge carries over. |
| XYDataPoint | Represents one line chart data point: an x value and a y value. |