Events & Integration
Realtime streams
Connect to WS /jql-streams for authenticated realtime JQL events and understand related notification streams.
Antly exposes a WebSocket route at:
WS /jql-streamsThe consumer is authenticated through the same web application session context. Anonymous users are disconnected. On connect, the client joins the JQL room and receives a welcome message.
Message shape
Clients send a message with a type and event. The type maps to the channel handler name, such as on_create, on_update, on_delete, on_service, or on_controller.
1{
2 "type": "on_update",
3 "event": {
4 "namespace": "objects.Record",
5 "id": 123,
6 "data": {
7 "status": "approved"
8 }
9 }
10}The consumer forwards the event to the room and sends received events back as JSON.
1{
2 "namespace": "objects.Record",
3 "id": 123,
4 "data": {
5 "status": "approved"
6 }
7}Related streams
Iris progress streams piggyback on the existing realtime transport. Notifications use MQTT through AWS IoT Core rather than this WebSocket route.
Use /jql-streams for authenticated app realtime behavior. Use outbound webhooks for durable server-to-server delivery. See /developer/outbound-webhooks for delivery logs and retries.
Browser example
1const protocol = window.location.protocol === "https:" ? "wss" : "ws";
2const socket = new WebSocket(`${protocol}://${window.location.host}/jql-streams`);
3
4socket.addEventListener("message", event => {
5 const payload = JSON.parse(event.data);
6 console.log("Realtime event", payload);
7});
8
9socket.addEventListener("open", () => {
10 socket.send(JSON.stringify({
11 type: "on_service",
12 event: { name: "client-ready" }
13 }));
14});For data reads after receiving an event, refresh a useJql query rather than trusting a partial event as the full record. See /developer/data-hooks.