FIT CTU KOS
Education & LMSConnect AI agents to KOSapi, the study information system of the Czech Technical University in Prague. Agents list courses, parallels, exam terms, semesters, and programmes and look up rooms and teachers so academic catalog data flows into schedules and reports.
What This Integration Enables
KOSapi is the REST interface to the study information system of the Czech Technical University in Prague, and this connector reads it. Twelve operations, all reads: courses and their credits and completion types, the parallels that make up lectures, tutorials, and laboratories, exam terms with rooms and examiners and enrollment counts, semesters, study programmes, organizational divisions, rooms, and teacher directory records. KOSapi returns Atom XML; the connector parses it into clean JSON so a flow can work with it without an XML step.
Two properties are worth stating plainly. The connector is read-only, so it cannot change anything in the university's system. And its scope is deliberately narrow on the people side: Get Teacher exposes staff directory information, not private student data. Authentication is application-scoped rather than per-user, using an OAuth2 client credentials grant against the CTU authorization server, which is why the catalog lists it as a custom auth shape rather than a standard user connection.
What that leaves is a source of authoritative academic reference data that other flows can build on: timetable automations, enrollment reports, room utilization dashboards, and course catalog syncs. Because the connector writes nothing, every consequence of using it happens somewhere else, and that is where the human-in-the-loop design has to sit.
Without FlowRunner
With FlowRunner
Use Case Scenarios
Timetable and exam term sync
A department wants its course timetable mirrored where staff already work. The agent calls Get Semester with the value current, then calls List Course Parallels and List Course Exams for each tracked course code within that semester. It writes the resulting slots into Google Calendar as departmental events, including room, teacher, and capacity. On the next run it compares against the previous snapshot and reports only what moved.
Capacity monitoring during enrollment
During the enrollment window, parallels fill unevenly. The agent calls List Parallels for the semester with an RSQL filter, reads capacity against occupied seats, and posts a short summary to the department channel in Slack when a group is close to full or a laboratory has stayed empty. The study coordinator sees the pressure while there is still time to open a group, rather than after the window closes.
Course catalog reporting
An annual review needs course credits, completion types, and owning departments across a set of programs. The agent calls List Programmes and Get Programme to resolve the programs in scope, List Divisions to interpret each course's owning department, and List Courses with an RSQL filter and pagination to walk the catalog. The output lands in Google Sheets with the semester code and the retrieval timestamp attached to every row, so a reader can tell exactly which snapshot they are looking at.
Human-in-Loop Highlight
This connector cannot break anything in KOS, because it only reads. The risk it carries is that it can be quietly wrong, and a wrong answer here gets forwarded to students. Parallels and exam terms are semester-specific. When a semester is not supplied, the query still succeeds and still returns well-formed data; it is simply data for a semester nobody asked about. A flow written in the spring keeps returning spring exam terms in October, and the failure looks exactly like success.
So the gate goes on the downstream act, not on a write the connector does not have. When a flow is about to send a room or exam-time change to a cohort, the agent first shows its work. It posts to the timetable coordinator the semester code it resolved, whether that code came from Get Semester with the value current or from a parameter someone hardcoded, and the specific rows that changed since the last snapshot: "Detected 4 exam term changes for BI-PA1. Semester resolved as B241 from Get Semester current, retrieved 06:14 today. Two of the four moved room, one moved date, one changed examiner. Send the notice to the 118 enrolled students, send only the date change, or hold?" A person confirms the scope and the content once. Everything upstream of that, the polling, the diffing, and the formatting, runs without anyone watching.
Agent Capabilities
12 actionsCourses
5- List Courses Lists courses taught at the university with RSQL filtering, semester scoping, ordering, and pagination. Each item carries the course code, localized name, credits, completion type, and a self reference.
- Get Course Retrieves one course by its code, returning the full record including annotation and owning department. Supplying a semester adds semester-specific instance data such as capacity where available.
- List Course Parallels Lists the lecture, tutorial, and laboratory groups of a course for a semester, with number, type, capacity, occupied seats, teachers, and timetable slots. A semester is strongly recommended because parallels are semester-specific.
- List Course Exams Lists exam terms for a course in a semester, with date and time, room, examiner, capacity, and enrolled student counts. As with parallels, the semester determines whether the answer is the one you meant.
- List Parallels Lists parallels across courses for a semester with optional RSQL filtering. Used when a flow wants to query timetable groups directly rather than course by course, for example a capacity sweep across a department.
Semesters
2- List Semesters Lists the academic semesters defined in the system with code, season, and start and end dates.
- Get Semester Retrieves one semester by code, and accepts the value current to resolve the semester that is active today. This is the first call in almost every well-built flow on this connector.
Programmes
2- List Programmes Lists study programmes with RSQL filtering and pagination, each with code, localized name, type, and study form.
- Get Programme Retrieves one study programme by code, returning its localized name, type, study form, standard length, and faculty division.
Organization
2- List Divisions Lists organizational divisions, meaning departments and faculties, with code, localized name, and type. Used to interpret the owning department recorded on a course.
- List Rooms Lists rooms including lecture halls, laboratories, and offices, with RSQL filtering and pagination. Each item carries the room code, type, and division.
People
1- Get Teacher Retrieves a teacher record by CTU username, returning name, titles, email, and owning division. This is staff directory information, not private student data.
Frequently Asked Questions
What can FlowRunner do with FIT CTU KOS?
FlowRunner agents can run List Courses, Get Course, and List Course Parallels in FIT CTU KOS, plus 9 more actions.
Does connecting FIT CTU KOS to FlowRunner require OAuth?
FIT CTU KOS uses a custom authentication method to connect to FlowRunner.
Can FIT CTU KOS trigger a FlowRunner workflow automatically?
FIT CTU KOS doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.
Start building with FIT CTU KOS
$100 in credits. No card required. Connect in minutes.