Integreat mostly provides one way communication (except for e-mail addresses provided in feedback forms). We want to extend that functionality with a digital counseling solution that enables continuous bi-directional communication between app users and region managers/counselors.
Proposed Solution
The Integreat app search functionality is being extended to act like a chat. Messages are sent to the CMS API.
The able to fetch responses from the API.
Zammad acts as a back end (database) for storing messages. Messages (Strings) are sent from the app to an API endpoint of the CMS. The CMS stores the message in Zammad via the Zammad API.
The Integreat CMS is responsible for mapping the app (temporary chat ID?) to Zammad ticket IDs. App users can close and start a new chat which will delete the ID on the app.
Except for a region setting to enable the functionality and set a Zammad URL, no GUI in the CMS is required for this feature.
To prevent abuse, an IP based rate limit has to be implemented.
The Integreat CMS is a proxy for messages between the Integreat app and Zammad (per region).
In the future the Integreat CMS can query other components (automatic translation services, a content search engine & LLMs) to create automated responses and translation services.
If automatic responses are sent to the user, a copy is also attached to the Zammad ticket.
To sum up:
We need to implement a pull and post messages API endpoint.
The CMS needs a new model to store a map of device IDs to Zammad ticket IDs.
The CMS uses Zammad issues to store messages.
Flow for posting messages from the app:
The app sends a message (string + device ID) to the CMS
The CMS looks in its mapping model if there already is an existing Zammad issue
If not, a new issues is created and the message is stored
if a ticket exists, the new message is appended
Flow for getting answers:
the app sends a device ID
The CMS maps the device ID into a Zammad ticket ID
If the ticket exists, all messages are returned to the app
Alternatives
N/A
User Story
As a migrant I want to directly chat with regional counseling services to avoid having to physically travel to a help desk.
I added the "question" label because we still need a discussion on what exactly and when exactly it needs to be done. This will be discussed in the next backlog grooming session.
Motivation
Integreat mostly provides one way communication (except for e-mail addresses provided in feedback forms). We want to extend that functionality with a digital counseling solution that enables continuous bi-directional communication between app users and region managers/counselors.
Proposed Solution
To sum up:
Flow for posting messages from the app:
Flow for getting answers:
Alternatives
User Story
As a migrant I want to directly chat with regional counseling services to avoid having to physically travel to a help desk.
Additional Context
Design Requirements