ReSOLVE Facilities

User
Manual

Complete guide to the multi-tenant request and operations management platform — every feature, screen and setting.

Version May 2026
Support support@resolve-facilities.com
Chapter 1

About ReSOLVE Facilities

ReSOLVE Facilities is a multi-tenant platform for managing service requests, technical teams and maintenance operations. Built for condominiums, hotels, hospitals, schools, data centers and any organization with units, sectors and field teams.

What the platform does

Each ReSOLVE customer — called a tenant — has its own isolated workspace: users, service categories, organizational units (sectors), infrastructure (properties / floors / rooms), assignment rules and request data. No tenant ever sees another tenant's data.

Within each tenant, users create requests (service orders): a water leak in a room, a broken piece of equipment, a transport to schedule, an event to prepare. Each request follows a lifecycle — Open → In progress → Resolved — with priority, resolution deadline (SLA), assignment to a unit and a responsible technician.

Who it is built for

Essential concepts

Tenant (organization)
The customer that subscribes to the platform. Each tenant has its own users, configuration and data.
Unit (sector)
Organizational sub-division inside a tenant — e.g. "Maintenance", "Cleaning", "Reception". Every request is assigned to a unit.
Infrastructure
The physical hierarchy where requests happen: property → floor → room. Lets you pinpoint where the issue is.
Category and subcategory
Request type (Cleaning, Electrical, Transport, Event…). Configurable per tenant. Can include extra dynamic fields (dates, headcount, etc.).
Request (service request)
The core unit of work. Has title, description, category, location, priority, SLA deadline, responsible technician, history, attachments and an associated message thread.
SLA
"Service Level Agreement" — maximum resolution time by category and priority. Available on Growth and higher plans.
Plan
Free, Starter, Growth, Enterprise or Custom. Defines limits (users, units, requests) and features (AI, SLAs, white-label).
Best practice

Before inviting the team, spend 15 minutes setting up units, infrastructure and categories. A well-configured tenant from day one cuts assignment errors and speeds up daily work.

Chapter 2

Creating an account

Sign-up is self-service at app.resolve-facilities.com/signup. Every choice you make in this flow defines how your tenant is provisioned — from plan limits to the default category catalog.

Before you start

You need:

Sign-up walk-through

  1. Organization type — pick from the dropdown (condominium, hotel, hospital, etc.). The list is automatically translated to the interface language.
  2. Plan — click the card of the plan you want. Free and 14-day Trial don't require a card; Starter, Growth, Enterprise and Custom open Stripe Checkout after the next step.
  3. Organization details — fill in:
    • Company name
    • Administrator name (will be the first user)
    • Email (will be the login)
    • Password (8+ characters recommended)
    • System language (PT / EN / FR / ES)
  4. Consent — accept the Terms and Privacy Policy (linked at resolve-facilities.com/termos.html and /privacidade.html).
  5. Submit — the system creates the authentication account, provisions the tenant and loads the appropriate category catalog. If the plan is paid, you are redirected to Stripe Checkout; if it is Free or Trial, you go straight to the Dashboard.
  6. Email confirmation — you will receive a welcome email from no-reply@resolve-facilities.com with next steps.

What each choice loads

Creating the account runs an atomic server transaction that creates several data rows at once. The table below summarises what is loaded based on your choices:

Choice What is created / loaded
Organization type Initial category and subcategory catalog tailored to the sector. For example, a hotel gets categories like "Rooms / Cleaning" and "Events"; a hospital gets "Biomedical maintenance" and "Clinical hygiene".
System language The category catalog above is loaded in the chosen language. Transactional emails (welcome, invitations, dunning) are also sent in this language.
Plan Tenant limits: max users, max units, max requests per month. Features enabled: AI, SLAs, white-label, integrations (see chapter 19).
14-day Trial Creates the account with Starter limits (5 users, 1 unit, 1000 requests) for 14 days. On day 15, if no paid plan has been activated, the account is suspended (it does not auto-downgrade to Free — moving to Free is an explicit choice).
Organization name Appears in invoices, emails, and on the Dashboard until you upload your own logo (white-label, Enterprise+).
Administrator name + email The first user is created with role SYSTEM_ADMIN. You can invite more users later.
Default unit A "General" unit is automatically created (rename it later) to receive requests until you configure specific sectors.
Heads-up — Trial

At the end of the 14-day trial, the account is suspended and users lose access until they subscribe to a plan. Data is preserved but work stops. We recommend setting an alarm for day 12 and deciding in time.

Custom plan

The Custom plan is for organizations that don't fit the fixed tiers. When you pick Custom during sign-up, you go to a calculator where you specify:

The price is calculated in real time based on marginal per-user tiers (€4 for the first 199 users, €3.75 between 200 and 499, €3.50 above 500) multiplied by an organizational complexity factor (more units per user = more operational isolation = more support overhead). Includes AI, SLAs, white-label, email support and assisted onboarding.

Above 1000 users, self-service sign-up is not available — email support@resolve-facilities.com and we will prepare a tailored quote.

Accepting an invitation

If you were invited to an existing organization, you receive an email from no-reply@resolve-facilities.com with the subject "You have been added to [Organization] on Resolve Facilities" and a "Sign in now" button. Clicking that button:

  1. Opens the login screen in the email's language.
  2. You sign in with your usual email (or the account is created if this is your first tenant).
  3. If you already belong to other organizations, the organization picker (chapter 3.3) appears with the new entry available.

Your administrator sets the role (admin, supervisor, technician, user, resident) — you can request a role change directly from whoever invited you.

Chapter 3

Signing in and recovering your password

Access to the platform is at app.resolve-facilities.com. The flow has two steps (email first, password second) and supports multiple organizations per user.

Sign in

  1. Go to app.resolve-facilities.com.
  2. Enter the email and click Continue.
  3. Enter the password. You can tick "Keep me signed in" to avoid repeating the login on every visit.
  4. After authentication, you are taken to the Dashboard. If you belong to several organizations, the organization picker is shown first.

Recover password

If you forgot your password:

  1. On the login screen, click Forgot password?.
  2. Enter the email tied to the account and submit.
  3. You will receive an email with a recovery link. The link is time-limited and can be used only once.
  4. Click the link. You are taken to a recovery page that automatically sets the language you requested the reset in and forwards you to the new-password screen.
  5. Set the new password (8+ characters recommended), confirm and submit. You are sent back to the login automatically.
Expired link

If the recovery link has expired or has already been used, you'll see a clear message — just repeat the request from "Forgot password?".

Multiple organizations

The same email can belong to several organizations (for example, a technician servicing two condominiums). In that case, after login the Organization picker appears:

Did you know…

The password is unique per user (not per organization). If you change the password, it remains valid for every organization you belong to.

Chapter 4

Installing on mobile

ReSOLVE Facilities is a Progressive Web App (PWA). It is not in the Apple or Google stores — install it directly from the browser in a few seconds. Works like a native app: icon on the home screen, full-screen with no URL bar, push notifications.

iOS (Safari)

iPhone and iPad
  1. Open Safari (mandatory — does not work on Chrome or Firefox on iOS).
  2. Navigate to app.resolve-facilities.com.
  3. Sign in (recommended, to make sure the icon is tied to your account).
  4. Tap the Share button in the bottom bar (square with an up arrow).
  5. Scroll down and pick Add to Home Screen.
  6. Confirm the name ("ReSOLVE") and tap Add.
  7. The icon appears on the home screen — open it like any other app.
Android
  1. Open Chrome.
  2. Navigate to app.resolve-facilities.com.
  3. Sign in.
  4. An "Install app" prompt appears automatically — tap to accept.
  5. Alternatively: Chrome menu (three dots) → Install app.
  6. Confirm — the icon is added to the app drawer and to the home screen.

Android (Chrome)

Android is the most direct path: Chrome automatically detects that the app is installable and shows a prompt. If the prompt disappears or never showed up:

  1. Tap the three dots in the top-right of Chrome.
  2. Pick Install app (or Add to Home Screen, depending on the version).
  3. Confirm.
Tip for tablets

On iPads and Android tablets, the procedure is identical. On iPad, the Share bar is in the top-right of Safari, not in the bottom bar.

Allow notifications

After installing and signing in for the first time, the browser asks if you want to allow notifications. Accept — notifications are key to receiving alerts about new requests, assignments and real-time messages.

Important for iOS

On iPhone, push notifications only work if the app was installed on the home screen (steps above). On Safari opened as a web page, iOS does not allow push. If you don't receive notifications on iPhone, make sure you are opening the app from the home-screen icon and not from Safari.

To manage notifications after accepting, go to Settings → Notifications inside the app (chapter 10.3) or to the operating system settings (iPhone Settings / Android → Notifications → ReSOLVE).

Working without a connection

The app keeps a copy of the data already loaded on the device, so you can keep consulting requests, assets and plans when the network drops — the typical case in basements, plant rooms and car parks. A bar at the top of the screen always tells you where your changes stand:

The queue covers the most common field actions: changing a request's status, writing a note, attaching a file, signing the service sheet, creating a request and sending a chat message.

Wait for the green bar before leaving the site

The queue lives on the device: uninstalling the app or clearing the browser data before the network returns loses whatever was pending. Wait for Everything synced.

Chapter 5

Dashboard

The Dashboard is the home page after sign-in. It shows the day's operational health at a glance: active requests, critical ones, overdue ones, distribution by category and team workload.

Greeting and logo

At the top a greeting adapts to the time of day (Good morning / Good afternoon / Good evening) followed by the organization's logo. If you have an Enterprise+ plan and configured white-label (chapter 18), your own logo appears.

Key indicators (KPIs)

Active
Sum of requests in state Open, In progress and Delayed. The best instantaneous read of "open work".
Critical
Subset of active requests with CRITICAL priority. Must be handled immediately.
Delayed
Requests whose SLA countdown is past its deadline (chapter 17). Only shown if SLAs are configured (Growth+).
Resolved this month
Count of requests resolved in the current month — a productivity metric.
Assigned to me
Visible to technicians and supervisors: requests where you are the assigned responsible and are still active.

Distribution chart

Shows the composition of active requests in a doughnut-style chart, with a dropdown to choose the grouping criterion:

Team workload

Visible only to users with role ADMIN, SYSTEM_ADMIN or SUPERVISOR. A horizontal bar chart with the number of active requests per technician — useful to spot overload or imbalanced distribution.

Onboarding checklist

For new organizations, a checklist of six steps appears to accelerate initial configuration:

  1. Invite first user
  2. Create first unit (sector)
  3. Review categories
  4. Create first request
  5. Assign a technician
  6. Explore the Dashboard

You can Dismiss the checklist at any time — it does not block any feature. It reappears if manually restored.

Chapter 6

Requests

The Requests screen is the operational hub: it lists every request you can see, filtered in eight tabs. Visibility depends on your role and the scope defined in Permissions (chapter 16).

The eight tabs

Tab Shows
AllEvery request visible to your user.
Assigned to meActive requests where you are the assigned technician.
OpenStatus Open and Delayed.
In progressStatus In progress (technician has started work).
CriticalPriority CRITICAL and still active.
DelayedPast the SLA deadline (Growth+).
ResolvedSuccessfully closed.
CancelledCancelled or rejected.

Request card

Each request appears as a card with:

Two extras: orders generated by maintenance plans carry the Preventive badge (violet — chapter 22), and in the header you can switch between the card view and the condensed view (one line per request, 2-3× more items per screen). The choice is remembered per device and also exists on the Assets, Plans and Conversations lists.

CSV export

The Export CSV button downloads all requests visible in the current tab in CSV format. Useful for external analysis (Excel, BI, accounting). Columns included:

Performance analysis

Combining "Resolution time" and "SLA defined" in Excel or BI makes it easy to spot categories or units consistently missing deadlines — the basis for continuous-improvement conversations.

Calendar and scheduling

In the Requests header you can swap the list for the calendar view. Each day shows the requests with a scheduled date (Scheduled tag) and those whose SLA deadline falls on that day (Deadline tag), in the category colour. Whatever is filtered — tab, search, location, assignee and sector — applies to the calendar too.

Next to it sits the To schedule tray, with the requests that still have no date. Drag a request onto a day to schedule it, or back to the tray to remove the date; a tap without dragging opens the request. Only technical and management staff can drag, and past days are blocked.

The SLA starts at scheduling

The resolution deadline is born — or moves — with the scheduled date: rescheduling adjusts the deadline. While a request has no date, no countdown runs against the team.

Orders generated by maintenance plans follow two extra rules: they cannot be left without a date (the tray rejects them, in red) and they can only be rescheduled within their cycle — a monthly task due on 15 March accepts any day up to 14 April, and no further. Whenever the app refuses, it explains why.

Performance reports

The Reports menu produces a PDF with the operational picture of a period. Pick the range (this month, last 30 days, last 90 days or custom dates) and, if you want, filter by sector and by assignee before generating. The document carries the period indicators — requests created, resolved, pending and delayed, SLA compliance and median resolution time —, the breakdown by category, the evolution over the period, the list of pending requests and the totals per building and per sector.

The scope follows your role: an administrator sees the whole organisation, a supervisor sees their sector. The PDF header always states the period and the filters applied, so the document does not lose context once printed.

The report distinguishes two universes, and says so in the footer to avoid confusion: created counts requests opened in the period; resolved, median time and cost count the ones that closed in the period, even if they were opened earlier. That is the honest reading — work that closed in August counts for August, even if it started in July.

Beyond the classic indicators, the document carries the planned vs reactive split (preventive against corrective, the indicator that shows whether maintenance is gaining ground or firefighting), the cost of the period and a table by asset — number of requests, preventive/corrective mix, median time and cost — that answers "which piece of equipment is eating the team". The on-screen preview now also shows the evolution chart, which used to appear only in the PDF.

Chapter 7

Creating a request

The New Request screen gathers everything needed to open a service order. The form has five expandable sections — you can fill them in any order.

Photo and AI analysis

This is the first section of the form. You can attach a photo through:

AI analysis Starter+

After attaching a photo, the AI analysis button appears. When clicked:

  1. The image is sent to the AI service (Google Gemini).
  2. The AI suggests the category, subcategory and a recommended description.
  3. You can accept (fills the fields), edit or ignore.
Feature by plan

AI analysis is available on the Starter, Growth, Enterprise and Custom plans. It is not included in Free.

Main information

Category (required)
Pick from the catalog configured by your organization (see chapter 12).
Subcategory
List filtered by the picked category. Can be empty if the category has no subcategories.
Title (required)
A short, descriptive sentence. Appears on the cards in the list.
Description (required)
Free detail. Include anything the technician needs to know: symptoms, perceived urgency, context, contacts.

Location

Three hierarchical levels:

  1. Property — building or general location.
  2. Floor — floor within the property (if the property has floors).
  3. Room — specific space within the floor (if the floor has rooms).

The location structure is defined in Admin → Infrastructure (chapter 13). If your organization did not configure floors or rooms, those levels show as "N/A".

Priority

When the request is linked to a high-criticality asset (chapter 22), the priority arrives suggested as High — or Critical, if the equipment is stopped. It is a suggestion with a visible hint under the buttons: whoever opens the request can always change it, and once they do the platform stops suggesting.

Dynamic fields

Some categories carry extra fields adapted to the request type. They appear automatically when you pick the matching category:

Transport
Departure date and time, return date and time, destination, passenger count, flight notes (if applicable).
Event
Event date, headcount, setup requirements.
Technical (with severity)
Equipment identification, technical severity selector (NORMAL / HIGH).

The configuration of these fields is done per category in Admin → Categories (chapter 12).

Automatic assignment

If your organization configured assignment rules (chapter 15), the request can be automatically assigned to a unit on submission — for example, all "Electrical" requests go to the "Maintenance" unit. If there is no rule, the request goes into "Awaiting assignment".

Scanning the equipment QR code

With the asset module active (chapter 22), the form shows the Scan equipment QR button: point the camera at the label and the request is linked to that asset, with the location filled in from its record. It is the fastest — and safest — way to raise a corrective right next to the machine, with no identification mistakes.

Labels from another organisation are ignored with a warning: the scanner only recognises assets from your own register.

Chapter 8

Request detail

Clicking a request card in the list opens the detail screen. This is where practically all the work happens: comments, attachments, status changes, reassignments, history.

Screen anatomy

SectionContent
Header Title, priority badge, status, SLA countdown (if applicable).
Information Category, subcategory, description, attached photo, dynamic fields (transport, event, etc.).
Location Property / floor / room.
Responsible unit Assigned sector. "Transfer" button to reassign.
Technician Avatar + technician name. Dropdown to reassign.
History Chronological timeline: creation, status changes, reassignments, notes. Each entry shows who did what and when.
Notes and attachments Field to add a note or attachment. Notes are visible to every authorized user.
Action buttons Vary by role and current state (see below).

Actions by role

Available actions depend on your role and the request's state. Summary:

ActionWho canWhen
StartAssigned technician, AdminStatus = Open
ResolveAssigned technician, AdminStatus = In progress
Reassign unitAdmin, SupervisorAny active state
Reassign technicianAdmin, SupervisorAny active state
CancelAdmin, request authorActive state
DeleteSYSTEM_ADMINAny state

What the platform chains on its own

So the screen doesn't demand a click sequence nobody performs in practice, three links are automatic:

The assignee can be changed or removed only by sector administrators (Remove assignee in the assignment dialog). For every other profile the existing assignment is final — it stops two technicians from swapping mid-job.

History and notes

The history is immutable — every status change, reassignment or note addition is logged with a timestamp and author. Useful for:

SLA countdown

If the category has an SLA configured (Growth+ plans, see chapter 17), the header shows a badge with:

Requests that miss the deadline move to Delayed (visible in the "Delayed" tab) and count towards the Dashboard's "Delayed" KPI.

Attachments and service sheet

The Attachments section of the request accepts photos taken on the spot and files (PDF, images, documents) — before, during and after the intervention. They are stored privately and open through a temporary secure link.

The Service sheet collects the technician's and the client's signatures on screen (finger or stylus). Both are optional — you can close a request without signing — and they are printed on the request PDF, with the name and date. When you resolve a request the app offers to sign there and then; you can also collect the signature later, with the Sign sheet button.

Put on hold (the SLA clock stops)

Not all the time a request takes is the team's responsibility. The part ships from abroad and takes three weeks, the quote is waiting for approval, the contractor hasn't shown up. If the clock keeps running, the report ends up saying the team is slow when the problem is somewhere else.

In the request detail, the Put on hold button asks for a reason — awaiting parts, awaiting approval or awaiting third party — and an optional note. From then on:

When you click Resume, the paused time is given back to the deadline: a request that waited 48 hours for a part gains 48 hours of effective deadline. Every hold and resume is recorded in the history, with who did it and for how long — the conversation with the client stops being about memory.

Resolving: failure cause, hours and cost

When you mark a request as Resolved, the platform opens a short dialog to capture what matters later:

The problem and cause lists come from the organisation's catalogue (section 22.14) and, when the request is linked to an asset, they arrive already filtered by that equipment's type. All fields are optional — whoever is in a hurry closes and moves on; whoever records gets, after a few months, the answer to "why does this equipment give us so much trouble".

With the labour rate set (section 22.15), the hours become a labour cost, stored on the request at closing time. The detail then shows the intervention cost: labour plus the value of the parts consumed, minus the ones returned.

Chapter 9

Communication

The Communication screen is the organization's operational chat — real-time conversations between technicians, supervisors, teams and residents. Replaces WhatsApp and email for internal coordination.

Conversation types

Messages and attachments

You can send:

Messages arrive in real time (push notification, if authorized). Each conversation shows how many unread messages it has.

Creating a group

To create a new conversation:

  1. Click the + Create group button at the top of the conversation list.
  2. Pick the type (direct, area, location, request).
  3. Select members (autocomplete over the user list).
  4. Give it a name (except for direct conversations, which use the other user's name).
  5. Submit — the group appears immediately for every member.
Chapter 10

Personal settings

The Settings screen bundles everything tied to the individual account: avatar, name, language, theme, notifications, privacy and sign-out. For users with administrative roles, it is also the entry point to the organization's configuration menus.

Profile and status

Avatar
User photo (JPEG, PNG, WebP or GIF; 2 MB max). Appears in messages, request cards and team lists.
Name
Display name. Editable at any time.
Email
Read-only — the email is the account's unique identifier. To change it, contact your administrator.
Status
Online — available to be assigned.
Busy — requires a reason (in a meeting, out of office, etc.).
Offline — unavailable; the system avoids automatic assignments.

Language and theme

Interface language
Portuguese, English, French or Spanish. The change is instant — no need to sign out. The language is also used for external links (privacy policy) and transactional emails.
Theme
Light or dark. Stored on the device (not synced across devices).

Notifications

Shows the current notification permission state:

The Test subscription button confirms that your device is properly registered. It shows the tail of the subscription endpoint.

iOS

On iPhone, push notifications only work if you installed the app on the home screen (see chapter 4). The Settings screen shows a specific warning if it detects you are using the app in Safari without having installed it.

Privacy

Clicking Privacy policy opens the up-to-date document at resolve-facilities.com/privacidade.html in the chosen language. For GDPR requests (data access, export, deletion), email support@resolve-facilities.com.

Sign out

The Sign out button at the bottom of the screen ends the current session. If "Keep me signed in" was ticked, it is cleared on this device as well.

Connecting to your phone's calendar

In Settings → Calendar, the Get my link button creates a personal link you can subscribe to in your phone's calendar. Requests assigned to you that have a scheduled date then show up among your appointments and update themselves when the date changes or the work is done.

Phones refresh subscribed calendars every so often (typically hourly) — it is not instant.

The link is personal

It works like a password: anyone holding it sees your requests. Do not share it — and if it does leak, use Generate new link: the previous one stops working immediately.

Chapter 11

Team — users, job functions, technical areas

The Team menu bundles all people management: invite users, assign roles and technical areas, manage multi-tenant membership. Accessible only to users with an administrative role.

Inviting users

  1. Click the Invite user button.
  2. Fill in the invitee's email.
  3. Pick the initial role (Admin, Supervisor, Technician, Auxiliary, User, Resident).
  4. Submit — the system automatically sends an email with the acceptance link.

If the email already belongs to a platform user (in other organizations), they get a "You have been added to [Organization]" email letting them know a new organization is available in the picker. If this is their first tenant, a new account is created and they get a welcome email.

Job functions

Distinct from system roles (Admin/Supervisor/etc.), job functions describe the professional role: Electrician, Carpenter, Receptionist, Manager, etc. They help filter the team list and assign requests with more clarity.

To manage: Team → Job functions. Add, edit or remove entries at any time.

Technical areas

Technical areas are operational domains — Cleaning, Maintenance, IT, Security, etc. A user can belong to one or more areas. They enable:

Each area can have its own icon (picked from a Material Symbols library).

Multiple organizations

A user can belong to multiple organizations. In the team list, multi-tenant users are flagged with a badge. Each organization sees only this user's role within the organization itself — roles and data are not shared across tenants.

External customer (Customer Portal)

The CUSTOMER role (CLIENTE) is for people outside your internal team who need to interact with the platform — typically an end customer, a resident in a third-party-managed condominium, or an external partner. It's the gateway to the Customer Portal: a deliberately narrowed view of the app that keeps the customer focused on their own requests without exposing the organisation's internal structure.

What the Customer can do

What the Customer cannot see

How to invite a customer

  1. In Team → Invite user, enter the customer's email.
  2. In the role dropdown, pick CLIENTE (Customer).
  3. (Optional) Tie them to a unit — useful if you want their requests to follow that unit's automatic routing rule.
  4. Submit. The system sends the invite by email; once accepted, the customer creates an account (if new) or gains access to this organisation (if they already had one elsewhere).
Automatic support conversation

When the invite is processed, the platform automatically creates a direct conversation between the customer and the organisation's SYSTEM_ADMIN. It appears immediately in Communication with the administrator's name, giving the customer a guaranteed support channel without having to search for one.

Differences vs. the USER role

Operational permissions (create, start, resolve own and assigned requests) are identical. What sets the Customer apart is the communication filter — they don't see the team or collective groups, only their requests and the direct channel with the admin. Use USER (UTILIZADOR) for internal non-technical staff; use CLIENTE for third parties.

Deactivating, reactivating and removing members

Whoever holds the SYSTEM_ADMIN role manages each member's lifecycle from their record in Team:

If the member had access to the maintenance module, deactivating or removing them also frees that seat (chapter 22.1).

Chapter 12

Categories and subcategories

Categories define the types of request your organization processes. They are initially loaded based on the organization type picked at sign-up, but you can edit, add or remove them freely.

Structure

Dynamic fields

Each category can enable extra fields in the request form (see chapter 7.5):

Requires transport data
Enables: departure date, return date, destination, passenger count.
Requires event data
Enables: event date, headcount, requirements.
Is technical
Enables: equipment identification, severity selector.

Automatic assignment

You can tie a category to a default unit. When a user creates a request in that category, it is automatically assigned to the unit. See chapter 15 for finer multi-condition rules.

Deleting a category

Deleting a category that has linked requests is blocked — you must reclassify those requests first. Categories with no requests can be deleted without restriction.

Chapter 13

Infrastructure — properties, floors and rooms

Infrastructure defines the physical hierarchy where requests happen. The more detailed it is, the more precise the records and the more useful the location-based analyses.

Hierarchy

  1. Property — building, complex, facility (name + optional address).
  2. Floor — floor within the property. Can be left blank if the structure is single-level.
  3. Room — specific space within the floor (apartment 3F, server room, suite 204…).

GPS coordinates and map

Each property can store latitude, longitude and altitude. While editing, the Capture GPS position button reads the device's own position (handy when you are on site) and shows the accuracy obtained; alternatively you type the coordinates in. Open in map confirms the point before saving.

From the list, View on map opens every property on a single map, with the active filters applied; a note tells you how many were left out for having no coordinates. The same fields exist on assets (chapter 22.3) — that is what lets you send a crew to a substation or a pumping station with no useful street address.

Best practices

Deleting a space: what happens next

Deleting a building, a floor or a room has consequences outside this screen — there are assets, maintenance plans and spare part links pointing at that space. So, before you confirm, the platform counts the impact and shows it: how many floors and rooms go down with it, and how many assets, plans and links lose that location.

On confirmation: the floors and rooms of the deleted space go with it, and the assets that were there are left without a location — they do not point at a ghost space. Assets, plans and request history are not deleted. Old requests keep the place name exactly as it was on the day of the intervention, because that is history and should not change.

Chapter 14

Units (sectors)

Units are the teams / sectors that receive requests. Every request is assigned to a unit. The number of units is capped by the plan (1 on Free and Starter, 3 on Growth, 10 on Enterprise, configurable on Custom).

Create and manage

In Admin → Units:

Delete

Deleting a unit that has assigned requests requires confirmation — the requests move back to "Awaiting assignment" and you must reassign them manually.

Limits per plan

Free: 1 unit · Starter: 1 unit · Growth: 3 units · Enterprise: 10 units · Custom: tailored (minimum 3, always less than the number of users).

Chapter 15

Automatic assignment rules

Rules automate the routing of requests to units, removing the manual step and cutting the time to the technician's first touch.

How it works

Each rule defines: "When a request has [condition], assign to unit [X]". Supported conditions:

Rules are evaluated in order (top-down). The first match wins; the rest are ignored for that request. You can drag to reorder.

Fallback rule

Put a "Generic → General unit" rule at the bottom of the list to make sure no request ends up orphaned. The earlier rules catch the specific cases; the fallback catches the rest.

Chapter 16

Permissions and roles

The permissions matrix defines what each role can do: create, view, edit, change state, delete, transfer, assign and manage configuration.

Available roles

RoleWho they typically are
SYSTEM_ADMINPrimary administrator of the organization. Full control over the tenant.
ADMINDelegated administrator. Operational configuration.
SUPERVISORTeam manager. Distributes requests, monitors SLAs.
TECNICOExecutes assigned requests.
AUXILIARTechnical support, without responsibility for assigned requests.
UTILIZADORCreates requests, sees their own.
MORADORCreates requests in a condominium context.
CLIENTEExternal customer. Same operational permissions as UTILIZADOR but communication limited to the SYSTEM_ADMIN — see chapter 11.5.

Scope

Each permission has a scope:

Where to see the matrix

The Admin → Permissions screen shows the full matrix read-only. Changes are centrally managed by the ReSOLVE team — to request adjustments to your organization's permission profile, contact support@resolve-facilities.com.

Chapter 17

Custom SLAs Growth+

SLAs (Service Level Agreements) define the maximum resolution time by category and priority. They let you measure operational performance, flag delayed requests and give customers visibility on the expected response time.

How it works

For each category you set two values:

Application

Once configured:

Availability

Custom SLAs are included on the Growth, Enterprise and Custom plans. On Free and Starter, requests have no SLA and the "Delayed" tab is hidden.

Chapter 18

White-label Enterprise+

White-label lets you customize the platform's look with your organization's logo and primary color — useful for premium condominiums, hotels, hospitals and any customer that wants to project their brand to end users.

What to customize

Logo
Replaces the ReSOLVE logo on the Dashboard, on the login screen (if accessed directly to the organization) and in transactional emails. PNG, SVG or JPEG format, 2 MB max.
Primary color
Defines the color of buttons, links and highlights. Applies across the app. Can be entered as a hex value or picked from the color picker.

Application

White-label changes apply immediately to every user in the organization — no need to sign out / in. The Reset button restores the default ReSOLVE logo and color.

Availability

White-label is included on the Enterprise and Custom plans. On Free, Starter and Growth, this menu shows only an upgrade prompt.

Chapter 19

Billing and plans

All the organization's financial management is concentrated in Settings → Billing: current plan, plan changes, payment method, invoice history and refunds.

Plan comparison

Free Starter Growth Enterprise Custom
Monthly price (EUR)€0€19€109€439variable
Annual price (EUR)€0€190€1090€4390variable
Max users3525100tailored
Max units11310tailored
Requests / month201000unlimitedunlimitedunlimited
AI suggestions (Gemini)
Push notifications
Custom SLAs
White-label
Assisted onboarding
Assets and Preventive module (add-on)+€250/month+€850/month+€9/user
SupportCommunityEmailEmailEmailEmail
Annual vs monthly

Annual billing gives you roughly 2 months free compared to monthly (€190 vs €228 annual on Starter, for instance). The cycle is chosen at subscription time and can be changed later (chapter 19.2).

Changing plan

In Settings → Billing, click Change plan. The plan table appears with clickable cards.

Stripe billing portal

The Manage billing button opens Stripe's secure portal — outside our platform — where you can:

Invoices and refunds

The "Invoice history" table shows the last 12 charges, with:

Refunded invoices (total or partial) appear with a clear badge, avoiding confusion with paid invoices.

14-day trial

The trial is an explicit choice at sign-up: it grants 14 days with Starter limits (5 users, 1 unit, 1000 requests, AI on). On day 15:

Important

The trial does not auto-migrate to Free at the end. Free is an explicit choice made at sign-up — those who want Free pick Free from the start. Those who picked Trial made a commitment to evaluate the paid product.

Add-ons — additional modules

On top of the base plan, the organization can activate additional modules on the same subscription. The first one available is Asset Management and Preventive Maintenance (chapter 22):

To activate: Settings → Billing → Add-ons → Activate module (requires an active subscription). The module switches on in seconds; the prorated amount for the current period lands on the next invoice (Stripe proration — no immediate charge). To remove it, use Remove module on the same card: access switches off immediately and the prorated credit lands on the next invoice. Data is never deleted — when you reactivate, everything comes back as it was.

Manual offer

Organizations with special terms can have the module activated directly by the ReSOLVE team — in that case the card shows the Offer badge, with no charge and no removal button.

Chapter 20

Supported languages

The platform is translated into four languages: Portuguese, English, French and Spanish. The change is instant and propagates across the whole app.

Available languages

Where to switch

There are three places where the language selector appears:

  1. Login screen — top-right. Useful before signing in.
  2. Settings → Language — after sign-in.
  3. Sign-up — chosen when the organization is created (also sets the language of the initial catalog and emails).

What changes

What does not change

Automatic detection

When a user accesses the site for the first time (with no stored preference), the platform tries to detect the browser language. If it is one of the four supported, it is used; otherwise it falls back to English.

Chapter 21

Push notifications

Push notifications alert you to important events even when the app is closed — assigned requests, new messages, critical status changes.

How they work

  1. When you sign in, the browser asks for notification permission. Accept it.
  2. The device registers itself on the server (push subscription).
  3. When there is an event that concerns you, the server sends the notification to the device (even with the app closed).
  4. Tapping the notification opens the app on the relevant screen (e.g. the request in question).

Events that trigger notifications

Each person controls what they receive in Settings → Notifications: push in the browser and in the installed app, chat message notifications and email alerts — three independent switches.

Manage permissions

To change the permission after accepting/rejecting:

Browser (desktop)
Padlock next to the URL → Permissions → Notifications.
iOS
iPhone Settings → Notifications → ReSOLVE → enable / disable.
Android
Settings → Apps → ReSOLVE → Notifications.
iOS — no install, no push

Repeating the warning from chapter 4: on iPhone, without "Add to Home Screen" in Safari, there are no push notifications. It is an iOS restriction, not ours. Install the app on the home screen before accepting notifications.

Chapter 22

Asset Management and Preventive Maintenance Add-on · Growth+

Add-on module that brings equipment registration with QR labels, planned preventive maintenance and spare parts management to the platform: plans automatically generate work orders, with a step-by-step procedure and non-conformity detection. Managed in Settings → Asset Management.

Activation and pricing

The module is a paid add-on on top of the base plan (chapter 19.6): Growth +€250/month, Enterprise +€850/month, Custom +€9/user/month (annual billing with ~2 months free). Activate it in Settings → Billing → Add-ons; it requires an active subscription on a Growth or higher plan. When you remove it, the data is kept — reading stays available, creating and editing are blocked — and reactivating brings everything back as it was.

The size of the module is independent from the base plan: an organisation with 100 users does not have to pay for 100 in the maintenance module. You pick the size in Billing and then grant access person by person, in Team → member record → Maintenance, where the counter reads "X of Y seats assigned". With no free seats the assignment is refused — increase the module size or take the access away from someone else. People without a seat keep using the platform normally; they simply do not see assets, plans or preventive orders.

Types and families

Before registering assets, define the catalog in Asset Management → Types and Families — for example, the HVAC type with the Chillers, AHUs and Splits families. Types feed the filters, the groupings and the scope of preventive plans. A type with linked assets or plans cannot be deleted (update them first).

Renaming a family is safe: the platform propagates the new name, in the same operation, to the assets in that family, to the maintenance plans scoped to the family and to the parts linked by family — and confirms on screen how many records it updated. Without that, a simple name fix would leave plans generating nothing and parts vanishing from the asset detail, silently.

Asset registration

Each asset has: name, type and family, location (property / floor / room), responsible sector, manufacturer, model, serial number, purchase and warranty dates, criticality (low / medium / high), notes and a photo (stored privately — only members of the organization can see it). The state follows the lifecycle:

The list has search, filters (state, criticality, property), cascading groupings (type → family, location → floor, state) and a condensed view. An asset with linked requests cannot be deleted — set its state to Decommissioned, which preserves the history. Deleting an asset also deletes that asset's specific preventive plans.

Each record also stores GPS coordinates with altitude (captured on site or typed in, with View on map to confirm) and files — manuals, wiring diagrams, certificates, photos of the nameplate —, stored privately and opened through a temporary secure link. From the asset list, View on map shows every asset that has coordinates.

QR labels and scanning

Labels come in two formats, chosen when printing: an A4 sheet with 21 labels per page (63.5×38.1 mm stickers, Avery L7160 type) or a 50×30 mm label, one per page, in series, for roll printers. Both carry the QR code, the asset code, the description and the organisation logo.

Generate sticker labels as a PDF (one per asset, with QR code and identification) and apply them to the equipment. Any team member points the phone camera at the QR — it opens the asset sheet directly, with the intervention history and the plans. From the sheet, the Create request button opens a corrective request already linked to the asset and with the location pre-filled.

Bulk import

In Asset Management → Assets → Import, download the CSV template (it includes a guidance row per column), fill it in and import hundreds of assets at once. Validation is row by row — a row with an error does not block the rest, and a second click on Import only retries the rows that failed. An equivalent importer exists for maintenance plans.

Preventive maintenance plans

A plan defines what, where, when and how:

Plan cards show the next date and the number of tasks; clicking opens read-only, the pencil edits. Editing the procedure does not change orders already generated — each order keeps its own copy.

A plan whose scope is a single asset can be duplicated to several assets at once, and the One-off request button raises an order for one asset in scope without touching the plan's calendar (useful for an out-of-cycle job).

Meters and readings

A meter is a quantity read on an asset over time. You create it on the asset record, under Meters and readings, with a type, a name and a unit. There are two behaviours:

Readings arrive two ways. By hand, with the Record reading button on the asset record — in practice, by scanning the equipment's QR label with the phone, which opens the right record straight away. Or through the procedure: a measurement task in the plan can be linked to a meter and, when the technician fills it in while carrying out the order, the value goes into the asset's series on its own. That is the loop that matters — the 250-hour service records the hours as it is performed, and that reading is what brings on the next one.

Any team member with module access can record readings; creating and deleting meters is for administrators. Mistakes are corrected with a new reading and a note (the recent readings open on the row itself); deleting a wrong reading is an administrator action.

How a meter-based plan decides

The first time it runs, the plan stores the current reading as its starting mark and generates nothing — adopting a plan on a generator with 12,230 h does not flood your pending list with retroactive services. From then on it raises the order when current reading − reading at the last trigger ≥ interval. A large jump in the reading produces one order, not several overdue ones. And since an idle asset never accumulates hours, the plan accepts a calendar ceiling: 250 hours or 6 months at most, whichever comes first.

On broad scopes the plan editor tells you how many assets in scope actually have that meter ("3 of 5") — the others are simply left out, with no error. On parameter meters, the asset record shows which plans are watching them and with what threshold.

Generated preventive orders

Every day the platform generates the due orders as regular requests with the Preventive badge — they enter the usual flow (assignment, SLA, chat, reports). Calendar plans are processed at 05:00 and meter-based plans at 05:10 (UTC); condition-based plans do not wait for the next day — the order appears as soon as a reading breaches the threshold. Each sector gets one push notification and one email a day, summarising everything generated for it, instead of one alert per order. Managers need not wait for the small hours either: the Generate now button on the plans screen runs the generator on the spot. On the request detail, the technician runs the procedure task by task; answers can be saved at any time, without changing the request's status.

Non-conformities

If an inspection records Degraded / Failure, or a question is answered No, the platform offers to immediately create a corrective request linked to the same asset — the automatic bridge between preventive and corrective work.

A stopped plan (module deactivated, plan inactive) does not pile up overdue orders: when it resumes, it generates one catch-up order and skips to the next future date.

Orders that were never carried out close themselves

A recurring task should not fill the pending list with duplicates: when the next cycle appears, the previous order that never left Open is closed as cancelled, with a "not carried out within its period" note in the history. Orders the team actually started (they went through In progress) are spared — those stay open, because there is work to record. The sector's daily email states how many were closed this way.

Exception: legal plans

On plans with a Legal basis (22.6), an overdue order never closes itself — a regulatory duty would otherwise be dropped without a trace. The order stays open, marked § Legal on the plan card, the request and the calendar, and the administrators get a daily alert until it is carried out. On completion, the app reminds you to attach the inspection certificate or report.

Automatic module alerts

Besides the orders, the module watches four things for you and warns whoever needs to know:

Printouts (PDF)

Spare parts: records and stock

The module includes warehouse management for spare parts — the material consumed during interventions: filters, belts, bearings, lamps, seals. You will find it under Assets → Parts, available to anyone holding a seat in the module (section 22.1).

One rule governs everything else: stock is never typed in by hand. The quantity you see is always the result of recorded movements — entries, usage, adjustments, returns and swaps. That is what lets you answer, months later, "where did those 12 filters go?".

Fields on a part record

Designation
The name the team searches by — for example, G4 filter 592×592. Required.
Internal code
Your own or the supplier's reference. If filled in it must be unique across the organisation: that is what prevents two records for the same part.
Manufacturer and model
To tell equivalents from different brands apart at purchase time.
Unit
How the part is counted: pc, kg, L, m, box. It shows next to every quantity.
Minimum stock
The restocking threshold. Leave it empty not to watch this part.
Warehouse location
Where it physically sits — shelf, cabinet, room. Free text, printed on the label.

Creating a part

  1. Open Assets → Parts and click New part.
  2. Fill in the designation and, if you use references, the internal code. The rest can wait.
  3. Set the unit and, if you want to be warned when it runs out, the minimum stock.
  4. Save. The part starts at zero stock and gets its own reference (SPR-…) — physical existence comes in the next step.
  5. On the record that opens, use Entry to post the quantity you have in the warehouse.

Entries, adjustments and history

There are two manual movements, with deliberately different permissions:

The part's history lists every movement newest first, with date, user, quantity, note and the linked request when there is one. It is immutable: a wrong posting is neither deleted nor rewritten — it is corrected with an adjustment (or, if it was usage on a work order, with the return described in 22.12).

QR codes and labels

Every part has its own QR code, in the same two formats as assets: an A4 sheet of 21 labels or a 50×30 mm label for roll printers (section 22.4). Stick the label on the shelf or the box: pointing a phone camera at it opens the part record with the current stock in plain sight — the fastest way to check quantities during a count.

Minimum stock alert

When usage or an adjustment makes stock drop below the minimum, the sector responsible for the request — or the administrators, when the movement did not come from a request — receives a push notification and an email with the current quantity and the defined minimum.

The alert fires at the moment it crosses the threshold and does not repeat while stock stays low, so it never floods the team's phones. It re-arms on its own as soon as an entry brings the level back above the minimum.

Parts on a request: usage and returns

Material consumed is recorded inside the work order, under Spare parts used. Each record deducts stock on the spot, lands in the request's history and in the part's, and appears on the intervention's PDF report — closing the loop between maintenance and the warehouse.

Compatible parts

So that nobody has to hunt through a list of hundreds, the platform filters parts by the links defined on the part record. A part can be linked, non-exclusively, to:

A part with no links is treated as universal and always appears. On the asset record, the Compatible parts section shows the reverse view: which parts exist for that equipment, and with what stock.

Recording a part used

  1. Open the work order and scroll to Spare parts used. Click Record part.
  2. The list shows the parts compatible with the request's asset. If the one you used is not there, switch on All parts or search by name, code or reference.
  3. Pick the part — available stock is shown next to each one.
  4. Enter the quantity and, if useful, a note ("replaced due to leak").
  5. Confirm. Stock drops immediately and the line joins both the order and the part's history.

If you ask for more than exists, the record is refused and the message states how much is available — stock never goes negative. Closed orders (resolved, cancelled or rejected) accept no new records.

Removing a part recorded by mistake

Mistakes happen: the wrong part, twice the quantity, the wrong order. Instead of touching stock by hand, remove the record on the order itself.

  1. Under Spare parts used, click the undo icon (↩) on the line in question.
  2. The quantity returns to the part's stock immediately.
  3. The line is struck through and marked as returned, and stops counting on the order's PDF report.

The original record does not disappear — it stays visible, with the return beside it, in both the request's and the part's history. That is deliberate: whoever audits later sees what happened rather than a gap. Each usage can be returned only once, and returning requires the order to still be open.

Reserve units and full replacement

Some equipment is not repaired in place: the faulty unit is swapped for a standby one and the repair happens later, on the bench or at the supplier. A UPS, a pump, a motor. The platform handles this without inventing a new entity.

A reserve unit is a normal asset, with its own record, QR code, history and plans — simply linked to a part as its reserve. That way, when it enters service it already carries everything worth knowing about it. Each asset can be the reserve of only one part.

Registering a reserve unit

  1. Register the standby equipment as an asset (section 22.3), typically as Inactive while it sits in the warehouse.
  2. Open the matching part record and go to Reserve units.
  3. Click Link reserve and pick the asset from the list.

Performing the replacement

  1. On the part record, under Reserve units, click Swap in on the unit you are installing.
  2. Choose the asset to replace — the faulty equipment going out of service.
  3. Set the state of the replaced unit: Inactive (out of service) or Under maintenance (heading for repair). In both cases its automatic plans are suspended.
  4. Add a note with the reason if you wish, and confirm.

In a single step the reserve becomes Active and inherits the location and responsible sector of the equipment it replaced — it takes its place for all purposes. The reserve link disappears (it is no longer in the warehouse) and the movement is recorded in the part's history with both units identified.

Mind plans scoped to a "specific asset"

A preventive plan pointed at that particular asset is suspended along with it and does not migrate to the reserve unit — the platform cannot guess whether the plan followed the equipment or the place. If maintenance must continue, create the plan for the reserve or, better, use type, family or location scopes (section 22.6): those cover the reserve automatically, with no intervention.

Failure codes: problem and cause

A free-text history does not answer "why does this break". Two short lists do. In Asset Management › Failure codes, the administrator keeps the organisation's catalogue in two tabs: Problems (the symptom) and Causes (the root).

  1. If the list is empty, the Load suggested catalogue button installs ~22 facilities codes in the organisation's language. It is a starting point — everything is editable.
  2. Each code can be general (applies to every asset type) or limited to a type — so the lift technician doesn't scroll through HVAC codes.
  3. Codes that no longer make sense are deactivated rather than deleted: they keep explaining old history, but no longer appear on new requests.

Codes are picked when resolving a request (section 8.7). On preventive orders with a non-conformity, the problem "Inspection non-conformity" comes pre-selected.

Costs: labour rate and part values

For the platform to answer "how much does this equipment cost to keep", two numbers are missing that only the organisation knows:

From there everything computes itself: each part consumption stores the price of the moment (a price rise tomorrow does not rewrite yesterday's history), a return reverses exactly the value that left, and the asset detail shows the accumulated maintenance cost. The performance report carries the cost of the period.

No accounting, and that's on purpose

This is not a general ledger: there are no cost centres, no depreciation, no ERP integration. It is the operating cost per intervention and per piece of equipment — the number that decides between repairing again or replacing.

Export to a spreadsheet (CSV)

On the Assets and Spare parts screens, the Export CSV button downloads whatever is filtered on screen — the same filters you are looking at, not the whole database.

The assets file uses exactly the columns of the import template (section 22.5). That enables the full loop: export, fix dozens of rows with the comfort of a spreadsheet, and import again. The parts file carries stock, minimum, storage location and unit cost with the organisation's currency.

The files open directly in Excel, Numbers or Google Sheets (UTF-8, semicolon separator). And they answer, without promises, the question "what if one day I want to take my data with me?".

Chapter 23

Condominium Portal

The official channel between management and residents: notices, meetings with automatic reminders, minutes and documents — on each resident's phone, without informal messaging groups.

Activation

The portal switches on automatically for organizations created with the Condominium type (chapter 2) — it is included in the plan, at no extra cost. For other organization types, contact support.

For the manager

In Settings → Condominium, four tabs:

Each publication has a scope: general (the whole condominium) or a specific building — each resident only sees what concerns them. Accepted files: PDF, images, Word (.docx) and Excel (.xlsx), up to 10 MB, stored privately and opened via a temporary secure link.

For the resident

Residents get a Condominium entry in the main navigation, in read-only mode: they browse the notices, meetings, minutes and documents of the general scope and of their building, and download the files securely. (Creating maintenance requests stays in the normal flow — chapter 7.)

Meeting reminders

The day before each meeting (around 08:00), the covered residents receive a push notification and an email with the title, date, time and place. If the meeting is postponed, the reminder automatically re-arms for the day before the new date.

Last-minute meetings

Meetings created after the day-before send has already gone out (for example, today for tomorrow morning) may not get an automatic reminder — in that case, publish a notice as well.

Chapter 24

Glossary

Definitions of the main terms used in this platform and in this manual.

Tenant
Platform customer — an organization with its own isolated space of users, configuration and data. Every ReSOLVE customer is a tenant.
Unit (sector)
Organizational sub-division inside a tenant: Maintenance, Cleaning, Reception, IT. Every request belongs to a unit.
Asset (equipment)
Equipment or installation registered in the Asset Management module — chiller, elevator, electrical panel… Identified by a QR label and with its own intervention history (chapter 22).
Preventive maintenance plan
Rule that generates automatic work orders at a defined frequency, for a scope of assets (one asset, a type, a family or a location), with a step-by-step procedure.
Preventive order
Request generated automatically by a maintenance plan — it carries the "Preventive" badge and the procedure to execute.
Non-conformity
Negative answer on a procedure task (failure, degraded, "no"). Triggers the proposal of a corrective request linked to the asset.
Add-on
Paid additional module on top of the base plan — for example, Asset Management and Preventive Maintenance. Activated in Settings → Billing.
Category
Request type (Cleaning, Electrical, Transport). Configurable by the administrator.
Subcategory
Sub-type within a category (Breakdowns, Leaks — inside Maintenance).
SLA
"Service Level Agreement" — maximum resolution time by category and priority. Available from the Growth plan onwards.
Request (service request)
Service order opened by a user. Lifecycle: Open → In progress → Resolved / Cancelled.
Technical area
Operational domain a user belongs to (Cleaning, IT, Security…). Enables assignment rules and communication groups.
Job function
The user's professional role (Electrician, Carpenter, Receptionist). Different from the system role (Admin / Technician / etc.).
PWA
"Progressive Web App" — an application that installs from the browser and runs like a native app, without going through the App Store or Google Play.
White-label
Visual customization of the platform (logo + color) with the customer's brand. Available Enterprise+.
Custom plan
Plan with limits and price tailored to the number of users and units. Available self-service up to 1000 users; above that, via sales contact.
Proration
Time-proportional calculation. Applies when you upgrade mid-cycle — you only pay the difference for the remaining time.
Stripe Checkout / Portal
Stripe tools (our payments partner) where the initial subscription is created (Checkout) and managed afterwards (Portal: change card, download invoices).
Dunning
Sequence of automatic warnings when a payment fails. The platform sends emails before suspending service to give time to fix the problem.
Chapter 25

Frequently asked questions

The most common doubts from new users.

I don't get notifications on iPhone.

Make sure you opened the app from the home-screen icon, not from Safari. If you haven't installed it yet, go to chapter 4 and follow the "Add to Home Screen" steps. iOS does not allow push notifications without that installation.

I forgot my password.

On the login screen, click Forgot password?, enter your email and follow the link you receive. The link is time-limited — if expired, just repeat the request.

Can I use the same email across multiple organizations?

Yes. After login, the organization picker is shown (chapter 3.3). The role may be different in each organization (e.g. admin in one, technician in another).

How do I download invoices?

In Settings → Billing, in the history table, click the "PDF" link on each invoice. Alternatively, open the Stripe Portal (Manage billing) for access to every historical invoice.

I want to downgrade the plan.

Self-service downgrades are blocked. Cancel the current subscription (stays active until the end of the paid cycle) and subscribe to the lower plan afterwards, or contact support@resolve-facilities.com for support.

The category catalog is incomplete or doesn't match my business.

The initial catalog was loaded based on the organization type picked at sign-up. You can edit freely: add, rename, delete categories and subcategories in Admin → Categories (chapter 12).

How do I delete personal data (GDPR)?

GDPR requests should be submitted in writing to support@resolve-facilities.com. The organization's administrator can delete users in Team; for full deletion of the tenant and its data, a formal request is required.

How much does each plan cost and what is included?

See chapter 19.1 (Plan comparison). Summary: Free €0, Starter €19/mo, Growth €109/mo, Enterprise €439/mo, Custom variable. Billing in EUR, processed by Stripe.

Can I pay in another currency?

No — we sell exclusively in EUR. Stripe may auto-convert at the customer's card depending on the issuing bank, but invoices are issued in EUR.

Support and contacts

For any operational doubts, technical issues, suggestions or formal data-protection requests, get in touch. We respond during business hours (Mon–Fri, 9 am–6 pm Lisbon time) and critical requests are prioritised.

ReSOLVE Facilities support@resolve-facilities.com resolve-facilities.com app.resolve-facilities.com

© 2026 ReSOLVE Facilities. All rights reserved.
This manual describes the current version of the platform. Features and screens may evolve.