Moodle Setup
GamiBot requires Moodle 4.4 or later and two plugins: local_gamibot_manager (configuration and ingestion) and block_gamibot (the chat interface).
Install or upgrade the plugins
- Download the GamiBot Manager plugin and the GamiBot Chat block.
- Sign in as a site administrator. Under Site administration > Plugins > Install plugins, install or upgrade both ZIPs and complete Moodle's upgrade prompts. The Manager plugin version documented here is
2026091802; the Chat block requires the same Moodle 4.4 baseline. - Confirm that Moodle cron runs at least once per minute and that Synchronise GamiBot resource availability is enabled under Site administration > Server > Tasks > Scheduled tasks.
You can run the normal Moodle upgrade from the command line after deploying both plugins:
php admin/cli/upgrade.php --non-interactiveIf an earlier Manager build stopped with Undefined constant "XMLDB_TYPE_INT", deploy the corrected package and retry the upgrade. That failure occurred before the queue table was created or the upgrade savepoint was recorded; no manual database cleanup is needed.
Older versions could also fail the hourly Reset Gamibot manager user usage data task with SELECT DISTINCT FROM ... when no tenant column was configured. After upgrading, run it once from the Moodle root to confirm the fix:
php admin/cli/scheduled_task.php --execute='\local_gamibot_manager\task\reset_user_usage'Configure the Manager plugin
Open Site administration > Plugins > Local plugins > GamiBot Manager > Basic settings.
- Langflow API key: Enter one key for Clarify, Summarize and Quiz. This is a masked Moodle setting shared by all Langflow purposes and tenants. Request credentials if you use the CIP/INOV-Norte service.
- Gami API endpoint and secret: Configure these separately for gamification. They are not the Langflow key.
- Ingestion endpoint and webhook secret: Configure the receiver for course files. The webhook secret is sent in the JSON payload; it is separate from the Langflow key and Gami API secret.
- Ingestion requests per cron run: Defaults to 5 delivery steps (range 1–100); each step sends at most one request.
- Minimum ingestion request interval: Defaults to 5 seconds between request starts (range 1–3600), across all courses and workers.
- Verify SSL certificates, timeout for requests and number of quiz questions remain available. Keep SSL verification enabled for production connections.
Save the settings. New installations automatically get the three Langflow purposes; there is no need to create tool instances or enter a key, endpoint and input IDs for each purpose. The GamiBot navigation page shows their configuration status. “Configured” means local settings are present, not that a live service test succeeded.
The plugin maintains these flow definitions in code for its standard connections:
| Purpose | Langflow endpoint |
|---|---|
| Clarify | https://langflow.hub.inov-norte.ipp.pt/api/v1/run/f0be7594-16a8-459e-ae96-8b79637fcbbb |
| Summarize | https://langflow.hub.inov-norte.ipp.pt/api/v1/run/28ec36b5-0432-4072-8293-607a6efe1c09 |
| Quiz | https://langflow.hub.inov-norte.ipp.pt/api/v1/run/5fad50dc-438b-4deb-ad6d-274e5d1b8a6b |
All three use Domain TextInput-1NWCq, Course TextInput-8xdUH and Additional TextInput-VXxfq. The Additional input currently carries the configured question count for Quiz. These values belong to the plugin version, not to the normal administrator setup form.
Existing installations
The upgrade retains existing tool records, tenant assignments, disabled purposes, custom endpoints and custom input IDs. Standard connections are brought up to date without changing their record IDs. If all existing Langflow connections use one non-empty key, it is migrated to the shared setting. If they use different keys, existing connections continue using their own credentials and the administrator is prompted to choose a shared key; saving it applies it to all Langflow connections. Review custom connections before doing so.
Standard connections are maintained by the plugin and cannot be edited or deleted through the old instance page. Existing custom connections and legacy assignments remain accessible. Only site administrators can edit custom Langflow endpoints, because those endpoints receive the shared credential.
Configure the Chat block and enable a course
Under Site administration > Plugins > Blocks > GamiBot Chat, set the floating button page types, optional help-button replacement and colour theme as needed.
To enable a course, open its Settings, expand GamiBot functionalities, select Add a GamiBot Chat to this course, and save. This adds a course-level block and queues existing eligible File and Folder activities for gradual synchronisation. Removing the last course-level GamiBot block queues their removal. A site-wide or category-level floating button does not enable that course's ingestion.
Uploads and edits in enabled courses use the same global queue. See Data ingestion for pacing, visibility rules, retries and status commands, then test GamiBot.