Complete guide to the multi-tenant request and operations management platform — every feature, screen and setting.
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.
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.
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.
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.
You need:
resolve-facilities.com/termos.html and /privacidade.html).no-reply@resolve-facilities.com with next steps.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. |
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.
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.
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:
Your administrator sets the role (admin, supervisor, technician, user, resident) — you can request a role change directly from whoever invited you.
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.
If you forgot your password:
If the recovery link has expired or has already been used, you'll see a clear message — just repeat the request from "Forgot password?".
The same email can belong to several organizations (for example, a technician servicing two condominiums). In that case, after login the Organization picker appears:
The password is unique per user (not per organization). If you change the password, it remains valid for every organization you belong to.
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.
app.resolve-facilities.com.app.resolve-facilities.com.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:
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.
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.
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).
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.
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.
Shows the composition of active requests in a doughnut-style chart, with a dropdown to choose the grouping criterion:
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.
For new organizations, a checklist of six steps appears to accelerate initial configuration:
You can Dismiss the checklist at any time — it does not block any feature. It reappears if manually restored.
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).
| Tab | Shows |
|---|---|
| All | Every request visible to your user. |
| Assigned to me | Active requests where you are the assigned technician. |
| Open | Status Open and Delayed. |
| In progress | Status In progress (technician has started work). |
| Critical | Priority CRITICAL and still active. |
| Delayed | Past the SLA deadline (Growth+). |
| Resolved | Successfully closed. |
| Cancelled | Cancelled or rejected. |
Each request appears as a card with:
The Export CSV button downloads all requests visible in the current tab in CSV format. Useful for external analysis (Excel, BI, accounting). Columns included:
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.
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.
This is the first section of the form. You can attach a photo through:
After attaching a photo, the AI analysis button appears. When clicked:
AI analysis is available on the Starter, Growth, Enterprise and Custom plans. It is not included in Free.
Three hierarchical levels:
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".
Some categories carry extra fields adapted to the request type. They appear automatically when you pick the matching category:
The configuration of these fields is done per category in Admin → Categories (chapter 12).
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".
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.
| Section | Content |
|---|---|
| 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). |
Available actions depend on your role and the request's state. Summary:
| Action | Who can | When |
|---|---|---|
| Start | Assigned technician, Admin | Status = Open |
| Resolve | Assigned technician, Admin | Status = In progress |
| Reassign unit | Admin, Supervisor | Any active state |
| Reassign technician | Admin, Supervisor | Any active state |
| Cancel | Admin, request author | Active state |
| Delete | SYSTEM_ADMIN | Any state |
The history is immutable — every status change, reassignment or note addition is logged with a timestamp and author. Useful for:
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.
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.
You can send:
Messages arrive in real time (push notification, if authorized). Each conversation shows how many unread messages it has.
To create a new conversation:
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.
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.
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.
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.
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.
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.
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.
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 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).
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.
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.
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.
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.
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.
Each category can enable extra fields in the request form (see chapter 7.5):
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 that has linked requests is blocked — you must reclassify those requests first. Categories with no requests can be deleted without restriction.
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.
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).
In Admin → Units:
Deleting a unit that has assigned requests requires confirmation — the requests move back to "Awaiting assignment" and you must reassign them manually.
Free: 1 unit · Starter: 1 unit · Growth: 3 units · Enterprise: 10 units · Custom: tailored (minimum 3, always less than the number of users).
Rules automate the routing of requests to units, removing the manual step and cutting the time to the technician's first touch.
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.
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.
The permissions matrix defines what each role can do: create, view, edit, change state, delete, transfer, assign and manage configuration.
| Role | Who they typically are |
|---|---|
| SYSTEM_ADMIN | Primary administrator of the organization. Full control over the tenant. |
| ADMIN | Delegated administrator. Operational configuration. |
| SUPERVISOR | Team manager. Distributes requests, monitors SLAs. |
| TECNICO | Executes assigned requests. |
| AUXILIAR | Technical support, without responsibility for assigned requests. |
| UTILIZADOR | Creates requests, sees their own. |
| MORADOR | Creates requests in a condominium context. |
| CLIENTE | External customer. Same operational permissions as UTILIZADOR but communication limited to the SYSTEM_ADMIN — see chapter 11.5. |
Each permission has a scope:
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.
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.
For each category you set two values:
Once configured:
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.
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.
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.
White-label is included on the Enterprise and Custom plans. On Free, Starter and Growth, this menu shows only an upgrade prompt.
All the organization's financial management is concentrated in Settings → Billing: current plan, plan changes, payment method, invoice history and refunds.
| Free | Starter | Growth | Enterprise | Custom | |
|---|---|---|---|---|---|
| Monthly price (EUR) | €0 | €19 | €109 | €439 | variable |
| Annual price (EUR) | €0 | €190 | €1090 | €4390 | variable |
| Max users | 3 | 5 | 25 | 100 | tailored |
| Max units | 1 | 1 | 3 | 10 | tailored |
| Requests / month | 20 | 1000 | unlimited | unlimited | unlimited |
| AI suggestions (Gemini) | — | ✓ | ✓ | ✓ | ✓ |
| Push notifications | ✓ | ✓ | ✓ | ✓ | ✓ |
| Custom SLAs | — | — | ✓ | ✓ | ✓ |
| White-label | — | — | — | ✓ | ✓ |
| Assisted onboarding | — | — | — | ✓ | ✓ |
| Support | Community |
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).
In Settings → Billing, click Change plan. The plan table appears with clickable cards.
The Manage billing button opens Stripe's secure portal — outside our platform — where you can:
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.
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:
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.
The platform is translated into four languages: Portuguese, English, French and Spanish. The change is instant and propagates across the whole app.
There are three places where the language selector appears:
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.
Push notifications alert you to important events even when the app is closed — assigned requests, new messages, critical status changes.
To change the permission after accepting/rejecting:
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.
Definitions of the main terms used in this platform and in this manual.
The most common doubts from new users.
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.
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.
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).
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.
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 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).
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.
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.
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.

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.
© 2026 ReSOLVE Facilities. All rights reserved.
This manual describes the current version of the platform. Features and screens may evolve.