Details about Push API

I really like the Zammad concept but it’s disappointing to see there is no mobile client. Since that is important to us I’d like to contribute to the project by creating a PWA app based on React, as that should not be hard to do and is something I have experience with.

The API basics are well documented it seems, but I couldn’t find anything about the Push API (receiving realtime events). Can you please point me to a document that describes it?

Thanks,
Udo

1 Like

…I’m talking about the Push API that Zammad already provides and thst’s use by the existing web client.

Are you talking about the API used to do things like notifications? In this case, I think you need this https://docs.zammad.org/en/latest/api-notification.html.

Judging from that site, it is about polling the list of notifications.

Instead, I’m asking for a HTTP PUSH (or similar) interface that gives me realtime events (new ticket, new reply), so that the UI can be updated accordingly, without needing to continuously poll the server. The default web UI offers that functionality AFAIK.

Ideally there would be even a Android/iOS Push (allowing to show notifications even when the app is closed), but that most probably doesn’t exist yet as there is no Android/iOS Client yet.

No interest in a mobile (Android/iPhone) client…? Nobody can give me a hint?

Maybe @thorsteneckel can help here, but to be honest, I doubt we have something like a real PUSH-Notification thingie right now.

I wonder how the current web UI is able to receive realtime updates then!?

Maybe web hooks would be interesting, also. But AFAIK they are stuck as a feature request

Hi Udo! Wow - so cool that you want to contribute. We’d love to see something like this. Zammad currently uses Websocket events. Unfortunately there is currently no list of events or a documentation. Let me know if we can support you any further information (notify me via @thorsteneckel - otherwise I won’t get an email) .

@thorsteneckel
Great! Maybe you could find some time to write down details about the websocket events, authentication of them and so on?

Unfortunately I’m not familiar at all with the Ruby language.

That would be a great starting point, so I can begin with a sort of gateway server that implements WebPush API (for notifications) and all the rest needed for a fully fledged PWA that’s just as good as a native app. Later that functionality can be integrated in the Zammad server itself, perhaps.

For the app itself I’m thinking of a sort-of responsive clone of the current UI.

Anyway, the push notifications are essential, so any help here is greatly appreciated.

I will gather information over the next days and share them here.

1 Like

So I got some basic information which already might help you. First of all I’d recommend to run a local test instance in development mode (default) because the websocket server will then log everything that is send and received additionally to processing information.

However, after a websocket connection is established (on /ws or port 6042, depending on your setup) various events are send end received. For each of those events a backend module exists which processes it. The names should be pretty self explaining in the domain of Zammad - if not let me know.

I think the most interesting one for you right now is the login event which takes a HTTP session (id) and upgrades/authenticates your WS connection.

Let me know if you got thinks working and what your next questions are.

1 Like