---
title: Mobile app – service request management (Juniper)
description: Learn about service request management in the Juniper mobile app.
---

[Skip to content](https://knowledge.spark.re/mobile-service-request-app-juniper#main-content)

[More support](https://knowledge.spark.re/kb-tickets/new?hsLang=en)

![spark\_re\_logo\_wht](https://knowledge.spark.re/hs-fs/hubfs/spark_re_logo_wht.png?width=150&height=48&name=spark_re_logo_wht.png)

Open main navigation

Close main navigation

- [More support](https://knowledge.spark.re/kb-tickets/new)

 Hello. How can we help you?

- There are no suggestions because the search field is empty.

1. [Knowledge Base](https://knowledge.spark.re/?hsLang=en)
2. [Juniper by Spark](https://knowledge.spark.re/juniper-by-spark?hsLang=en)
3. [Service Requests](https://knowledge.spark.re/juniper-by-spark?hsLang=en#service-requests)

# Mobile app – service request management (Juniper)

## Service request management in the Juniper mobile app lets service providers, real‑estate developers, and vendors review and action warranty and walkthrough tickets while onsite. Changes sync instantly to the Juniper web app and are visible to homeowners through the homeowner portal.

### Roles & Access

| **Role** | **What they can see** | **Key Actions** |
| --- | --- | --- |
| **Property Developer** | All requests across assigned properties | Full management |
| **Service Provider** | Tickets assigned to them | Update status, add notes, schedule work |
| **Service Manager** | All requests across assigned properties | Limited management |

 

**Note:** The *Service Provider* filter is hidden for users in the Service provider role because they already see only their own tickets.

### Default View

When you open **Service Requests** you see all *open* tickets for your role, ordered by newest first. Closed or resolved tickets are hidden until you turn on the *Closed* filter.

Each ticket card shows:

- Unit number and area/room
- Property name
- Homeowner name
- Current status badge
- Calendar icon if an appointment is scheduled
- Paper‑clip icon if photos are attached
- Filled cloud icon if the ticket is cached for offline use
- Yellow *Awaiting Upload* indicator if local changes have not yet synced

#### How to Sort Tickets

1. Tap Sort.
2. Choose Created date (default), Scheduled date, Description, or Status.
3. Select ascending ▲ or descending ▼ order.

#### How to Filter Tickets

Tap **Filters** to combine any of the following filters:

| **Filter** | **Description** |
| --- | --- |
| Available offline | Tickets cached to your device |
| Closed | Display resolved/closed tickets |
| Date created | Ticket submission range |
| Date scheduled | Appointment range |
| Property | The property the ticket was created in |
| Suite | The suite the ticket was created for; choose after selecting a property |
| Service provider | The service provider the ticket is assigned to; hidden for Service Provider and Vendor roles |
| Status | One or more ticket status values |
| Type | Walkthrough or Warranty |
| Area | The affected area, e.g. kitchen, living room, etc |
| Item | The specific inventory item the ticket refers to |

 

**Note:** Filters reset when you quit the app.

#### How to Search Tickets

Use the search bar to look up keywords across homeowner name, unit, ticket number, description, area, item, type, status, and property. Enter at least three characters; fuzzy matching handles partial terms.

 

### Ticket detail view

Open a ticket to see:

- Property name, unit, and ticket number
- Submission date/time and any scheduled appointment
- Homeowner name and profile photo
- Current status
- Sections for **Activity**, **Messages**, **Notes**, and **Attachments**

#### How to edit the ticket description

Tap the description to open the edit modal, update the text, and save.

#### How to contact the homeowner

- **Call** – launches your phone dialler.
- **Text** – opens your SMS app.

**Note:** For an auditable record, send in‑app Messages instead; Juniper emails the homeowner and logs the thread for your whole team.

 

#### How to send a message

1. Tap **Messages**.
2. Tap **Compose.**
3. Write your message.
4. Tap **Send**.

Messages sync in real‑time to the web app and homeowner portal.

#### How to add notes

1. Tap **Notes**.
2. Add your desired note text
3. Choose whether the note should be **Internal** or **Visible to Homeowner**.
4. (Optional) Attach photos.
5. Click **Save**

#### How to add or markup photos

1. Tap **Attachments → Add**.
2. Choose **Take photo** or **Choose from gallery**.
3. (Optional) Tap the markup tool to draw on the image.
4. Click **Save**.

Photos stream from the server and need a connection to view. You can add new photos offline; they upload automatically once you reconnect.

#### How to change status

1. Tap the Status dropdown.
2. Select the appropriate status (options reflect your role and account settings).

##### Common Statuses

| **Status** | **When to use it** |
| --- | --- |
| **In Progress** | Technician is actively working |
| **On Hold** | Waiting on parts or other blocker |
| **Under Review** | Assessing the request before action |
| **Resolved** | Work complete (moves ticket off default list |
| **Approved** | Completed work has been accepted |

 

#### How to save changes

Tap **Save** in the top‑right corner. The button turns blue when unsaved edits exist. If you try to leave with unsaved work, the app warns you first.

### Offline mode

The app is built for low‑connectivity environments.

- Tickets cached to your device, marked with a **filled cloud**, are fully accessible offline.
- Changes made offline sync automatically once you reconnect.
- Photos aren’t cached for viewing, but you can attach new photos offline.

#### How to cache tickets manually

1. Tap **Select**.
2. Choose up to 10 tickets.
3. Tap **Download**.

To remove cached tickets, use **Select** and tap **Remove**.

### Auto‑sync

Juniper uploads pending changes and refreshes data whenever a connection is available. **Pull down** on the ticket list to force a refresh. Tickets waiting to upload appear with a yellow background and **Awaiting Upload**.

### Need help?

Email [juniper‑support@spark.re](mailto:juniper‑support@spark.re) and our team will be happy to assist.

- [Contacts](https://knowledge.spark.re/contacts?hsLang=en#main-content)

    - [Contact Management](https://knowledge.spark.re/contacts?hsLang=en#contact-management)
    - [Interactions](https://knowledge.spark.re/contacts?hsLang=en#interactions)
    - [Groups](https://knowledge.spark.re/contacts?hsLang=en#groups)
- [Inventory](https://knowledge.spark.re/inventory?hsLang=en)
- [Contracts](https://knowledge.spark.re/contracts?hsLang=en#main-content)

    - [Disclosures & Amendments](https://knowledge.spark.re/contracts?hsLang=en#disclosures-amendments)
    - [Contract Management](https://knowledge.spark.re/contracts?hsLang=en#contract-management)
    - [Deposits](https://knowledge.spark.re/contracts?hsLang=en#deposits)
    - [Files](https://knowledge.spark.re/contracts?hsLang=en#files)
    - [Commissions](https://knowledge.spark.re/contracts?hsLang=en#commissions)
- [Conveyancing](https://knowledge.spark.re/conveyancing?hsLang=en#main-content)

    - [Deposits](https://knowledge.spark.re/conveyancing?hsLang=en#deposits)
    - [Commissions](https://knowledge.spark.re/conveyancing?hsLang=en#commissions)
- [Emails](https://knowledge.spark.re/emails?hsLang=en#main-content)

    - [Email Templates](https://knowledge.spark.re/emails?hsLang=en#email-templates)
    - [Email Campaigns](https://knowledge.spark.re/emails?hsLang=en#email-campaigns)
    - [Contract Emails](https://knowledge.spark.re/emails?hsLang=en#contract-emails)
    - [Email Sync](https://knowledge.spark.re/emails?hsLang=en#email-sync)
- [RSVP](https://knowledge.spark.re/rsvp?hsLang=en)
- [Calendar & Events](https://knowledge.spark.re/calendar-events?hsLang=en)
- [Parking & Storage](https://knowledge.spark.re/parking-storage?hsLang=en#main-content)

    - [Parking](https://knowledge.spark.re/parking-storage?hsLang=en#parking)
    - [Storage](https://knowledge.spark.re/parking-storage?hsLang=en#storage)
- [Files](https://knowledge.spark.re/files?hsLang=en)
- [Forms](https://knowledge.spark.re/forms?hsLang=en#main-content)

    - [Registration Forms](https://knowledge.spark.re/forms?hsLang=en#registration-forms)
    - [Project Questions (Q&A)](https://knowledge.spark.re/forms?hsLang=en#project-questions-qa)
    - [Request Forms](https://knowledge.spark.re/forms?hsLang=en#request-forms)
- [Project Settings](https://knowledge.spark.re/project-settings?hsLang=en#main-content)

    - [Team](https://knowledge.spark.re/project-settings?hsLang=en#team)
    - [API](https://knowledge.spark.re/project-settings?hsLang=en#api)
    - [Contacts](https://knowledge.spark.re/project-settings?hsLang=en#contacts)
    - [Inventory](https://knowledge.spark.re/project-settings?hsLang=en#inventory)
    - [Contracts](https://knowledge.spark.re/project-settings?hsLang=en#contracts)
    - [Conveyancing](https://knowledge.spark.re/project-settings?hsLang=en#conveyancing)
    - [Communications](https://knowledge.spark.re/project-settings?hsLang=en#communications)
- [Analytics](https://knowledge.spark.re/analytics?hsLang=en)
- [Integrations](https://knowledge.spark.re/integrations?hsLang=en#main-content)

    - [Calls & Messages](https://knowledge.spark.re/integrations?hsLang=en#calls-messages)
    - [Email](https://knowledge.spark.re/integrations?hsLang=en#email)
- [Juniper by Spark](https://knowledge.spark.re/juniper-by-spark?hsLang=en#main-content)

    - [Catalog](https://knowledge.spark.re/juniper-by-spark?hsLang=en#catalog)
    - [Home Inspection App](https://knowledge.spark.re/juniper-by-spark?hsLang=en#home-inspection-app)
    - [Integrations](https://knowledge.spark.re/juniper-by-spark?hsLang=en#integrations)
    - [Users](https://knowledge.spark.re/juniper-by-spark?hsLang=en#users)
    - [Service Requests](https://knowledge.spark.re/juniper-by-spark?hsLang=en#service-requests)
- [Company Settings](https://knowledge.spark.re/company-settings?hsLang=en#main-content)

    - [Contacts](https://knowledge.spark.re/company-settings?hsLang=en#contacts)
    - [Brokerages](https://knowledge.spark.re/company-settings?hsLang=en#brokerages)
    - [Communications](https://knowledge.spark.re/company-settings?hsLang=en#communications)
- [Webinars](https://knowledge.spark.re/webinars?hsLang=en#main-content)

    - [Spark Lunch & Learns](https://knowledge.spark.re/webinars?hsLang=en#spark-lunch-learns)
    - [Product Webinars](https://knowledge.spark.re/webinars?hsLang=en#product-webinars)
- [General](https://knowledge.spark.re/general?hsLang=en#main-content)

    - [Account Settings](https://knowledge.spark.re/general?hsLang=en#account-settings)
- [Beta](https://knowledge.spark.re/beta?hsLang=en#main-content)

    - [Contact Page](https://knowledge.spark.re/beta?hsLang=en#contact-page)

[![\_Mark + Logotype](https://knowledge.spark.re/hs-fs/hubfs/_Mark%20+%20Logotype.png?width=150&height=48&name=_Mark%20+%20Logotype.png "_Mark + Logotype")](https://www.spark.re)

[Still need help? Contact us.](https://knowledge.spark.re/kb-tickets/new?hsLang=en)

Copyright © 2025, Spark