FAQ Ingestion

The FAQ Ingestion feature streams the content of the Rexpondo FAQ knowledge base into the AI platform so it can be used as a Retrieval-Augmented Generation (RAG) source by the other AI features (Chat, Answer Suggestion, Categorization).

The integration is driven by FAQ events: every time a FAQ item is created, updated or deleted, a thin event handler delegates to the dedicated service, which builds the JSON payload and pushes it to the Margot Ingestion API via HTTP POST..

Delete operations use a separate id so that the create/update and delete pipelines on the AI side can be wired to different tools.

Enable the Feature

  1. Contact E-Time to purchase and activate the AI integration for your subscription.

  2. Make sure the calling user is allowed to use AI features.

  3. Set the event module FAQ::EventModule###9900-MargotIngestion to valid (it is shipped invalid by default).

  4. Deploy the System Configuration.

After enabling, any existing FAQ item can be re-ingested by simply opening it and saving it again (which triggers the update event).

Settings Reference

SysConfig key

Default

Description

FAQ::EventModule###9900-MargotIngestion

Module=Kernel::System::FAQ::Event::MargotIngestion, Event=FAQCreate|FAQUpdate|FAQDelete, Transaction=1

Event module registration. Shipped invalid: switch to valid to activate the ingestion pipeline.

How Ingestion Works

On FAQCreate and FAQUpdate events the service:

  1. Loads the FAQ item and its attachments through Kernel::System::FAQ.

  2. Renames each attachment as FAQ-<ItemID>-<OriginalFilename>.

  3. Builds a JSON payload with the textual fields plus the list of attachment names and posts it to the URL stored in ToolID.

  4. For every attachment, builds a second payload with the Base64-encoded content and posts it to the same endpoint.

On FAQDelete events the service:

  1. Receives the FAQNumber captured before deletion (the record is already removed from the database at that point).

  2. Builds a minimal delete payload and posts it to the endpoint stored in DeleteToolID.