Raise an issue from your phone

⏱️ 6 minutes · Beginner · Works offline · Last updated 2026-05-23

You're walking the site and spot a fire damper installed back-to-front. This tutorial shows you how to capture the problem, attach a photo, drop a GPS pin, and route the issue to the right person — all from your phone, even if you have no signal.

Before you start: you need the Planscape mobile app installed and signed in, with at least one project on your account. See Mobile app onboarding if you haven't done that yet.

What you'll build

By the end of this tutorial you'll have:


Step 1 — Open the project

Launch the app. If you're already signed in, the project picker shows. Tap the project you're on site for.

If this is your first visit, the app may prompt you to pre-sync. Tap Skip for now — you can still raise issues without pre-syncing.

Step 2 — Start a new issue

You have three ways to start a new issue. Pick whichever matches your situation:

From the issue list

Bottom tab bar → Issues → tap the orange + button in the bottom right.

From the GPS site map

Bottom tab bar → Map → long-press anywhere on the map. The new-issue form opens with the tapped point's GPS coordinates pre-filled.

From the camera

Quick-action: hold the floating camera button on the home screen for 1 second. Takes a photo and goes straight to the new-issue form with the photo attached.

Tip: If you're standing right where the problem is, the GPS-pin route is fastest — coordinates are already set.

Step 3 — Fill in the issue

The new-issue form has these fields:

FieldWhat to enter
TitleOne line. "Fire damper FD-103 installed back-to-front"
TypeQuality / Safety / Coordination / RFI / NCR. Tap to pick.
PriorityLow / Medium / High / Critical
DescriptionFree-text. Voice-to-text icon if typing on site is awkward.
LocationAuto-filled if you used the GPS-pin route. Otherwise tap "Use my location".
Linked elementOptional. Tap "Link element" → QR-scan the asset, or pick from a list.
AssigneeTap to pick from the project's team list.
Due dateOptional.

Step 4 — Attach a photo

Tap the + Add photo button. You get three options:

You can attach up to 10 photos and 5 voice notes per issue. Photos are automatically thumbnailed and geotagged.

Privacy note: Photos taken inside the app are not saved to your phone's camera roll unless you explicitly tap "Save to camera roll" in the photo viewer. This avoids leaking client work into your personal photo backup.

Step 5 — Link to an element (optional but recommended)

Tying an issue to a specific element in the federated model is what makes it actionable for the BIM author. Three ways to link:

QR scan

Tap Link element → Scan QR. Point your camera at a printed STING tag on the asset. The element loads automatically with its full tag history.

Pick from view

Tap Link element → From map view. The 2D plan view of your current level opens. Tap the element you want to link.

Search by tag

Tap Link element → Search tag. Type any segment of the ISO 19650 tag (e.g. HVAC-FD-0103). Matching elements appear.

Step 6 — Assign & save

Tap Assignee → pick a teammate. They'll get a push notification (when they're next online).

Hit Save. If you're online, the issue posts and you see "✓ Issue raised" briefly. If you're offline, you see "Queued — will sync when online" instead.

Step 7 — Verify it synced

Back on the issue list, your new issue appears at the top. If you're offline, it shows a small yellow chip with the queue count.

The status indicator at the top right of the screen tells you the queue state:


What happened behind the scenes

For the curious — here's what the app did:

  1. Saved the issue to the local SQLite database with a status of pending.
  2. Saved photos and voice notes to local storage with a foreign key to the issue.
  3. If online: posted POST /api/projects/{projectId}/issues with the issue body, then uploaded each photo to POST /api/projects/{projectId}/photos (multipart). Marked all as synced.
  4. If offline: kept everything pending; a background task retries when network state changes.
  5. Once synced server-side, SignalR broadcast the new issue to all connected project members — they get a push notification within a few seconds.

Common mistakes

What's next?