pearsley

byMeghna Rajawat

build this

LandingLoginSign UpReceiptsRent CollectionEligibilityDashboardIntegrationsTenanciesApprovalsCleaningViewingsGuest SupportContractsExceptionsInboxSearch
Landing

Comments (0)

No comments yet. Be the first!

System Requirements

System Requirements Document for pearsley

1. Introduction

Build the product described in Pearlstay_AI_Developer_Specification_v2_10_EN.pdf. The project name is pearsley.

Page 1 of 193

1.1 Source overview

PEARLSTAY / CORPORATE AI

01 / DEVELOPER SPECIFICATION

Pearlstay Corporate AI

Workflows, data and mandatory system rules

Basis for implementing the WhatsApp AI for prospective and existing guests. This document consolidates

the three concept PDFs dated 20 August 2026 with the jointly agreed changes of 24 and 25 September

Applicability and scope

automation, integration proof, measurable acceptance and full Pearlstay operational ownership.

1

Contract process, Beds24 maintenance and viewings

Consolidated specification - Version 2.5 - 14 October 2026

Version 2.5 integrates the approved automation architecture and replaces the affected manual steps.

Pages 22-31 define mandatory implementation, policy and delivery controls. Unchanged business rules

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-31

Version 2.5 - 14 October 2026 - Developer specification

Page 2 of 193

Consolidated specification - Version 2.6 - 15 October 2026

Version 2.6 integrates the approved automation architecture and replaces the affected manual steps.

Pages 22-32 define mandatory implementation, policy and delivery controls. Unchanged business rules

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-32

Version 2.6 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.7 - 15 October 2026

Version 2.7 integrates the approved automation architecture and replaces the affected manual steps.

Pages 22-33 define mandatory implementation, policy and delivery controls. Unchanged business rules

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-33

Version 2.7 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.7 - 15 October 2026

Version 2.7 integrates the approved automation architecture and replaces the affected manual steps.

Pages 22-33 define mandatory implementation, policy and delivery controls. Unchanged business rules

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-33

Version 2.7 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.8 - 15 October 2026

Page 3 of 193

Version 2.8 integrates the approved automation architecture and replaces the affected manual steps.

Version 2.8 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.8 - 15 October 2026

Version 2.8 integrates the approved automation architecture and replaces the affected manual steps.

Version 2.8 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.8 - 15 October 2026

Version 2.8 integrates the approved automation architecture and replaces the affected manual steps.

Version 2.8 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.8 - 15 October 2026

Version 2.8 integrates the approved automation architecture and replaces the affected manual steps.

Version 2.9 integrates the approved automation architecture and replaces the affected manual steps.

Version 2.9 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.9 - 15 October 2026

Version 2.9 integrates the approved automation architecture and replaces the affected manual steps.

Version 2.9 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.9 - 15 October 2026

Page 4 of 193

Version 2.9 integrates the approved automation architecture and replaces the affected manual steps.

Pages 22-35 define mandatory implementation, policy and delivery controls. Unchanged business rules

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-35

Version 2.9 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.9 - 15 October 2026

Version 2.9 integrates the approved automation architecture and replaces the affected manual steps.

Consolidated specification - Version 2.10 - 15 October 2026

Version 2.10 integrates the approved automation architecture and replaces the affected manual steps.

Pages 22-36 define mandatory implementation, policy and delivery controls. Unchanged business rules

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-36

Version 2.10 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.10 - 15 October 2026

Version 2.10 integrates the approved automation architecture and replaces the affected manual steps.

Pages 22-36 define mandatory implementation, policy and delivery controls. Unchanged business rules

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-36

Version 2.10 - 15 October 2026 - Developer specification

Page 5 of 193

Consolidated specification - Version 2.10 - 15 October 2026

Version 2.10 integrates the approved automation architecture and replaces the affected manual steps.

Pages 22-36 define mandatory implementation, policy and delivery controls. Unchanged business rules

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-36

Version 2.10 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.10 - 15 October 2026

Version 2.10 integrates the approved automation architecture and replaces the affected manual steps.

Pages 22-36 define mandatory implementation, policy and delivery controls. Unchanged business rules

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-36

Version 2.10 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.10 - 15 October 2026

Version 2.10 integrates the approved automation architecture and replaces the affected manual steps.

Version 2.10 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.10 - 15 October 2026

Version 2.10 integrates the approved automation architecture and replaces the affected manual steps.

Version 2.10 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.10 - 15 October 2026

Page 6 of 193

Version 2.10 integrates the approved automation architecture and replaces the affected manual steps.

Pages 22-36 define mandatory implementation, policy and delivery controls. Unchanged business rules

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-36

Version 2.10 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.10 - 15 October 2026

Version 2.10 integrates the approved automation architecture and replaces the affected manual steps.

Pages 22-36 define mandatory implementation, policy and delivery controls. Unchanged business rules

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-36

Version 2.10 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.10 - 15 October 2026

Version 2.10 integrates the approved automation architecture and replaces the affected manual steps.

Pages 22-36 define mandatory implementation, policy and delivery controls. Unchanged business rules

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-36

Version 2.10 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.10 - 15 October 2026

Version 2.10 integrates the approved automation architecture and replaces the affected manual steps.

Page 7 of 193

Pages 22-36 define mandatory implementation, policy and delivery controls. Unchanged business rules

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-36

Version 2.10 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.10 - 15 October 2026

Version 2.10 integrates the approved automation architecture and replaces the affected manual steps.

Pages 22-36 define mandatory implementation, policy and delivery controls. Unchanged business rules

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-36

Version 2.10 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.10 - 15 October 2026

Version 2.10 integrates the approved automation architecture and replaces the affected manual steps.

Pages 22-36 define mandatory implementation, policy and delivery controls. Unchanged business rules

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-36

Version 2.10 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.10 - 15 October 2026

Version 2.10 integrates the approved automation architecture and replaces the affected manual steps.

Version 2.10 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.10 - 15 October 2026

Page 8 of 193

Version 2.10 integrates the approved automation architecture and replaces the affected manual steps.

Version 2.10 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.10 - 15 October 2026

Version 2.10 integrates the approved automation architecture and replaces the affected manual steps.

Pages 22-36 define mandatory implementation, policy and delivery controls. Unchanged business rules

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-36

Version 2.10 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.10 - 15 October 2026

Version 2.10 integrates the approved automation architecture and replaces the affected manual steps.

Pages 22-36 define mandatory implementation, policy and delivery controls. Unchanged business rules

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-36

Version 2.10 - 15 October 2026 - Developer specification

PEARLSTAY / CORPORATE AI

02 / DEVELOPER SPECIFICATION

Version 2.5 - 14 October 2026 - Developer specification

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Page 9 of 193

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Page 10 of 193

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

PEARLSTAY / CORPORATE AI

03 / DEVELOPER SPECIFICATION

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Page 11 of 193

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

PEARLSTAY / CORPORATE AI

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Page 12 of 193

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Page 13 of 193

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

6

Version 2.5 - 14 October 2026 - Developer specification

Version 2.6 - 15 October 2026 - Developer specification

Page 14 of 193

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Page 15 of 193

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

PEARLSTAY / CORPORATE AI

Version 2.5 - 14 October 2026 - Developer specification

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Page 16 of 193

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Page 17 of 193

PEARLSTAY / CORPORATE AI

08 / DEVELOPER SPECIFICATION

Calendar, extensions and termination

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Page 18 of 193

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.5 - 14 October 2026 - Developer specification

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Page 19 of 193

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

PEARLSTAY / CORPORATE AI

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Page 20 of 193

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Page 21 of 193

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

PEARLSTAY / CORPORATE AI

11 / DEVELOPER SPECIFICATION

11

Version 2.5 - 14 October 2026 - Developer specification

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Page 22 of 193

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

PEARLSTAY / CORPORATE AI

12 / DEVELOPER SPECIFICATION

Page 23 of 193

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

PEARLSTAY / CORPORATE AI

13 / DEVELOPER SPECIFICATION

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Page 24 of 193

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Page 25 of 193

PEARLSTAY / CORPORATE AI

14 / DEVELOPER SPECIFICATION

14

Version 2.5 - 14 October 2026 - Developer specification

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Page 26 of 193

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

PEARLSTAY / CORPORATE AI

15 / DEVELOPER SPECIFICATION

Sending, timers and traceability

15

Version 2.5 - 14 October 2026 - Developer specification

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Page 27 of 193

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Page 28 of 193

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

PEARLSTAY / CORPORATE AI

16 / DEVELOPER SPECIFICATION

Version 2.5 - 14 October 2026 - Developer specification

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Page 29 of 193

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Page 30 of 193

PEARLSTAY / CORPORATE AI

17 / DEVELOPER SPECIFICATION

Implementation and remaining technical

details

Version 2.5 - 14 October 2026 - Developer specification

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

verified or configured before activation. Pages 22-33 add architecture, integration proof and acceptance gates.

Version 2.7 - 15 October 2026 - Developer specification

verified or configured before activation. Pages 22-34 add architecture, integration proof and acceptance gates.

Version 2.8 - 15 October 2026 - Developer specification

verified or configured before activation. Pages 22-34 add architecture, integration proof and acceptance gates.

Version 2.8 - 15 October 2026 - Developer specification

verified or configured before activation. Pages 22-34 add architecture, integration proof and acceptance gates.

Version 2.8 - 15 October 2026 - Developer specification

verified or configured before activation. Pages 22-34 add architecture, integration proof and acceptance gates.

Version 2.8 - 15 October 2026 - Developer specification

Page 31 of 193

verified or configured before activation. Pages 22-35 add architecture, integration proof and acceptance gates.

Version 2.9 - 15 October 2026 - Developer specification

verified or configured before activation. Pages 22-35 add architecture, integration proof and acceptance gates.

Version 2.9 - 15 October 2026 - Developer specification

verified or configured before activation. Pages 22-35 add architecture, integration proof and acceptance gates.

Version 2.9 - 15 October 2026 - Developer specification

verified or configured before activation. Pages 22-35 add architecture, integration proof and acceptance gates.

Version 2.9 - 15 October 2026 - Developer specification

verified or configured before activation. Pages 22-35 add architecture, integration proof and acceptance gates.

Version 2.9 - 15 October 2026 - Developer specification

verified or configured before activation. Pages 22-35 add architecture, integration proof and acceptance gates.

Version 2.9 - 15 October 2026 - Developer specification

verified or configured before activation. Pages 22-35 add architecture, integration proof and acceptance gates.

Version 2.9 - 15 October 2026 - Developer specification

verified or configured before activation. Pages 22-35 add architecture, integration proof and acceptance gates.

Version 2.9 - 15 October 2026 - Developer specification

Page 32 of 193

verified or configured before activation. Pages 22-36 add architecture, integration proof and acceptance gates.

Version 2.10 - 15 October 2026 - Developer specification

verified or configured before activation. Pages 22-36 add architecture, integration proof and acceptance gates.

Version 2.10 - 15 October 2026 - Developer specification

verified or configured before activation. Pages 22-36 add architecture, integration proof and acceptance gates.

Version 2.10 - 15 October 2026 - Developer specification

verified or configured before activation. Pages 22-36 add architecture, integration proof and acceptance gates.

Version 2.10 - 15 October 2026 - Developer specification

verified or configured before activation. Pages 22-36 add architecture, integration proof and acceptance gates.

Version 2.10 - 15 October 2026 - Developer specification

verified or configured before activation. Pages 22-36 add architecture, integration proof and acceptance gates.

Version 2.10 - 15 October 2026 - Developer specification

verified or configured before activation. Pages 22-36 add architecture, integration proof and acceptance gates.

Version 2.10 - 15 October 2026 - Developer specification

verified or configured before activation. Pages 22-36 add architecture, integration proof and acceptance gates.

Version 2.10 - 15 October 2026 - Developer specification

Page 33 of 193

verified or configured before activation. Pages 22-36 add architecture, integration proof and acceptance gates.

Version 2.10 - 15 October 2026 - Developer specification

verified or configured before activation. Pages 22-36 add architecture, integration proof and acceptance gates.

Version 2.10 - 15 October 2026 - Developer specification

verified or configured before activation. Pages 22-36 add architecture, integration proof and acceptance gates.

Version 2.10 - 15 October 2026 - Developer specification

verified or configured before activation. Pages 22-36 add architecture, integration proof and acceptance gates.

Version 2.10 - 15 October 2026 - Developer specification

verified or configured before activation. Pages 22-36 add architecture, integration proof and acceptance gates.

Version 2.10 - 15 October 2026 - Developer specification

verified or configured before activation. Pages 22-36 add architecture, integration proof and acceptance gates.

Version 2.10 - 15 October 2026 - Developer specification

verified or configured before activation. Pages 22-36 add architecture, integration proof and acceptance gates.

Version 2.10 - 15 October 2026 - Developer specification

verified or configured before activation. Pages 22-36 add architecture, integration proof and acceptance gates.

Version 2.10 - 15 October 2026 - Developer specification

Page 34 of 193

PEARLSTAY / CORPORATE AI + CRM

Version 2.5 - 14 October 2026 - Developer specification

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Page 35 of 193

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.5 - 14 October 2026 - Developer specification

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Page 36 of 193

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Page 37 of 193

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.5 - 14 October 2026 - Developer specification

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Page 38 of 193

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.5 - 14 October 2026 - Developer specification

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Page 39 of 193

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

PEARLSTAY / CORPORATE AI + CRM

Version 2.9 - 15 October 2026 - Developer specification

Page 40 of 193

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

PEARLSTAY / CORPORATE AI + CRM

Page 41 of 193

23 / RELIABLE AUTOMATION

Automation policies and master data

Version 2.5 - 14 October 2026 - Developer specification

23

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Page 42 of 193

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

PEARLSTAY / CORPORATE AI + CRM

24 / RELIABLE AUTOMATION

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Page 43 of 193

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

PEARLSTAY / CORPORATE AI + CRM

25 / RELIABLE AUTOMATION

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Page 44 of 193

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

PEARLSTAY / CORPORATE AI + CRM

26 / RELIABLE AUTOMATION

Acceptance tests and staged activation

Regression baseline

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Page 45 of 193

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Page 46 of 193

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 change record

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 change record

Version 2.8 - 15 October 2026 - Developer specification

Version 2.9 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.9 targets Beds24 after

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.9 targets Beds24 after

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.9 targets Beds24 after

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.9 targets Beds24 after

Page 47 of 193

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.9 targets Beds24 after

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.9 targets Beds24 after

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.9 targets Beds24 after

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.9 targets Beds24 after

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.10 targets Beds24 after

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 change record

Page 48 of 193

Retains version 2.2 automation safeguards and revised workflows. Version 2.10 targets Beds24 after

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.10 targets Beds24 after

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.10 targets Beds24 after

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.10 targets Beds24 after

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.10 targets Beds24 after

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.10 targets Beds24 after

Version 2.10 - 15 October 2026 - Developer specification

Page 49 of 193

Version 2.10 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.10 targets Beds24 after

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.10 targets Beds24 after

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.10 targets Beds24 after

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.10 targets Beds24 after

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.10 targets Beds24 after

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.10 targets Beds24 after

Page 50 of 193

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.10 targets Beds24 after

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.10 targets Beds24 after

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.10 targets Beds24 after

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Page 51 of 193

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.5 - 14 October 2026 - Developer specification

29

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Page 52 of 193

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

PEARLSTAY / CORPORATE AI + CRM

Version 2.5 - 14 October 2026 - Developer specification

Page 53 of 193

30

Version 2.6 delivery additions

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 delivery additions

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 delivery additions

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 delivery additions

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 delivery additions

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 delivery additions

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 delivery additions

Version 2.8 - 15 October 2026 - Developer specification

Version 2.9 delivery additions

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 delivery additions

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 delivery additions

Version 2.9 - 15 October 2026 - Developer specification

Page 54 of 193

Version 2.9 delivery additions

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 delivery additions

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 delivery additions

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 delivery additions

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 delivery additions

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 delivery additions

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 delivery additions

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 delivery additions

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 delivery additions

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 delivery additions

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 delivery additions

Page 55 of 193

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 delivery additions

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 delivery additions

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 delivery additions

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 delivery additions

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 delivery additions

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 delivery additions

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 delivery additions

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 delivery additions

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 delivery additions

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 delivery additions

Version 2.10 - 15 October 2026 - Developer specification

Page 56 of 193

PEARLSTAY / CORPORATE AI + CRM

31 / ELECTRONIC SIGNATURES

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Page 57 of 193

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

PEARLSTAY / CORPORATE AI + CRM

32 / INBOUND CALL ROUTING

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Page 58 of 193

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

34

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

PEARLSTAY / CORPORATE AI + CRM

35 / BOOKING ELIGIBILITY

Gap-aware booking and future enquiries

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

36

2. System Overview

Page 59 of 193

2.1 Source overview

Document structure

Pages

Content

2-3

Data sources, global sending mode and message processing

Guest support, arrival, cleaning and tasks

13-15

One CRM with verified accounting and rent collection. New: durable workflows, policy-based

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-34

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-34

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-35

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-35

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-36

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-36

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-36

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-36

Authoritative data sources

Source

Authoritative content

Page 60 of 193

Google Sheets

Standard price, exactly one discounted price, final cleaning fee, security

deposit, maximum occupancy, accommodation type and features, address,

website listing, contract form link, cleaner with WhatsApp number, house

rules, Wi-Fi, access codes, check-in/check-out times and Guest Instructions

YouTube link.

Contract system / dashboard

Approved knowledge base

Version 2.10 - 15 October 2026 - Developer specification

PEARLSTAY / CORPORATE AI

09 / DEVELOPER SPECIFICATION

Viewings

Vacant accommodation

One CRM, including accounting

module.

Single operational workspace

Staff manage prospects, tenants, units, contracts, communication, receipts, accounting exceptions and

rent collection in one CRM. AbaNinja remains the accounting system behind this interface. Routine

uploads, review decisions, payment checks and reminder handling must be available in the CRM; a link

Page 61 of 193

to AbaNinja alone is insufficient. Specialist accounting configuration and closing may remain in AbaNinja.

Authoritative sources and precedence

Contract system: signed terms, tenant and unit identity, agreed rent, due dates, deposit and other

PEARLSTAY / CORPORATE AI + CRM

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

PEARLSTAY / CORPORATE AI + CRM

21 / ACCOUNTING & RENT COLLECTION

Dashboard, integration and acceptance

22 / RELIABLE AUTOMATION

Architecture and execution boundaries

PEARLSTAY / CORPORATE AI + CRM

29 / SOFTWARE CONSOLIDATION

3. Functional Requirements

Page 62 of 193

3.1 Source overview

The AI should handle as many requests as possible itself. Availability, prices, payment status,

permissions and approvals are checked using traceable backend rules. A high confidence score must not

bypass any of these conditions.

4-6

Accommodation search, pricing rules, waiting list and follow-ups

7-9

10-12

State model, data model and event processing

16-17

Validated Sheet content, video transcripts approved by you and approved

knowledge changes.

Conversation database

Search criteria, messages, offers, waiting-list consent, price objection,

decline, drafts, approvals, appointments and sending history.

Mapping and freshness

contract-system ID and respective links. Do not map units solely by similar names.

• Changes you make in the Sheet count as business-approved. Required fields, data types, IDs, links,

Page 63 of 193

validity and contradictions are checked before importing them. Invalid entries are not used; a task is

created in the dashboard.

• Retrieve the current relevant data before sending offers or releasing access details. Record the Sheet

version, source and time of validation. Previous versions remain traceable.

Contract terms, signatures, agreed amounts and due dates.

Countersignature is the binding booking signal. Received-payment status

must be backed by bank evidence and verified allocation (page 18).

Prices use validated master data; agreed amounts use contracts. Bank evidence and verified allocations establish cash receipt.

Page 23 defines the controlled migration from Sheets to CRM master data; there must be only one active writer per field.

2

Beds24

• Each apartment/room receives a stable unit_id. This is mapped uniquely to its Sheet row, Beds24 ID,

• Availability is determined by Beds24 AND binding contracts. Occupancy in either source blocks the

relevant period. An empty Beds24 calendar does not override a signed contract.

Calendar occupancy and blocks. Automatically write and read back

approved changes. Failed operations enter review. Beds24 is the target

Page 64 of 193

after the gate on page 28; Lodgify remains live until cutover.

Global sending and conversation processing

Setting

Behaviour

Drafts only

The AI generates messages. Staff review, edit and send them manually.

Automatic based on confidence

• Wait 20 seconds after the last incoming message; each additional message restarts the period.

Recognised emergencies are handled without this delay. Sending mode and hard rules still apply.

• New guest message: update the open draft and block the old version. Staff reply: discard the open AI

draft and add the reply to the context; respond to the next guest message according to the global mode

again.

• Replies are possible around the clock. Proactive sales and reminder messages may be sent only from

09:00 to 19:00 Europe/Zurich. Scheduled check-in messages follow their own rules.

• Use the guest's language, with a friendly and concise tone. Mirror formal/informal address; if the

appropriate German form is unclear, start with formal “Sie”. Transcribe voice messages, assess images

Page 65 of 193

for the request and ask targeted questions where needed.

Intake and intent

Authenticate incoming WhatsApp messages, deduplicate by message ID and load the context.

Distinguish a new search, general question, existing booking or other request. Existing guests may also

start a new search or extend a stay. Do not ask again for information already known. Refer landlord

enquiries, job applications and other unrelated requests to staff.

Automatic sending requires the process policy, all hard checks and a

calibrated threshold. Uncertain cases become review drafts. A confidence

Global drafts-only overrides every external message. In automatic mode,

each process is set to automatic, review or disabled. Internal tasks and alerts

remain independent. See page 23.

prices, early/late times and paid cleaning within explicit limits. Otherwise obtain case approval.

04 / DEVELOPER SPECIFICATION

Accommodation search and prioritisation

Required information: location, move-in date, number of people and rental duration. Rental duration is

either a specific move-out date or open-ended. Do not ask for a budget. If an open-ended duration has

Page 66 of 193

already been stated, do not replace it with a question about a move-out date.

Matches and alternatives

• Consider only active, uniquely mapped units within their maximum occupancy. Recheck availability

before sending.

• Initially show up to three suitable options with key details, price (if approved) and website link. Further

matches remain available on request; mention this briefly. Do not automatically flood the guest with

follow-up messages.

• Prioritise the requested location. If fewer than three suitable matches are found, add options within a

30 km radius; state the actual location and distance.

• Prioritise the requested accommodation type. Clearly label other types as alternatives if there are too

few matches. Explain whether the kitchen and bathroom are private or shared. Explicit requirements

such as no shared bathroom remain binding.

• If no suitable single accommodation covers the full stay, two accommodations with no more than one

move are possible. Both segments must connect without gaps, be available and have operationally

compatible check-out/check-in times.

Page 67 of 193

• If there is no solution for the requested date, always offer alternative move-in dates, even if the guest

has described the date as fixed. Clearly state the deviation; do not silently overwrite the requested date.

• Offer fixed-term temporary solutions with a clear end date. Start the contract process only after the

guest agrees to the shorter stay. Do not promise subsequent accommodation or an extension.

Open-ended rentals

No minimum rental duration. Four weeks' notice, effective at the end of a month. First offer units suitable

for open-ended rental without a conflicting subsequent booking. If no suitable option exists, add

fixed-term temporary alternatives. Open-ended availability must not be inferred solely from a calendar

that is free for a finite period.

Presentation and deviations

A full stay in one unit is preferred over a move. Document the precise ranking of competing alternatives

(e.g. a studio in the requested location versus a room nearby) as technical sorting logic; no match may

violate an explicit requirement.

4

Version 2.10 - 15 October 2026 - Developer specification

Page 68 of 193

PEARLSTAY / CORPORATE AI

05 / DEVELOPER SPECIFICATION

Prices, discounts and multiple occupants

• Always start with the standard price from Sheets. Exactly two prices per unit: the standard price and

one approved discounted price. No discretionary price negotiation by the AI.

• Discounts only after an explicit price objection. A discount message may be sent no earlier than 14

days before the relevant vacancy begins. No discount offer before then.

• If the accommodation is already vacant, the stored discounted price may be offered immediately after

a price objection. Move-in must be no later than 14 days after the vacancy starts; if already vacant,

within the next 14 days.

• For an earlier price objection, automatically contact the prospect again at the permitted time without

first asking. Conditions: a suitable unit remains available, move-in is eligible, and there has been no final

decline, booking or contact block.

• Distinguish a price objection from a final decline. “Not an option”, “I have found something” or a

request to stop contact ends the corresponding sales messages.

Page 69 of 193

• The granted monthly price applies throughout the agreed rental duration; for an open-ended contract,

until the tenancy ends. An extension requires a new contract at the then-current price; the previous

discount is not automatically carried over.

Show costs transparently

State the monthly price, one-off final cleaning fee and security deposit separately. All amounts come

from Sheets. A monthly-price discount does not automatically change the deposit or cleaning fee.

Website listings do not contain prices. Refer price changes between offer and contract for a decision; do

not treat a rule-compliant discount as a pricing error.

Partial months

Monthly rent ÷ actual calendar days in the month × chargeable rental days. Include the

move-in day and exclude the move-out day; calculate each affected month separately. For

payment-based authorisations, the amounts due in the contract system remain authoritative.

Two or more people

Never exceed maximum occupancy. Use only a versioned, owner-approved occupancy price rule or

Page 70 of 193

case-specific approval. Without either, show details/links but no price or contract link. No AI-invented

surcharge. Multiple simultaneous rooms remain allowed, preferably in one apartment. See page 23.

Version 2.10 - 15 October 2026 - Developer specification

PEARLSTAY / CORPORATE AI

06 / DEVELOPER SPECIFICATION

Follow-ups and waiting list

Trigger

Rule

Offers sent, no response

One general follow-up seven days after the last relevant interaction. Only if

there is no decline, booking, waiting-list entry or pending staff decision. No

second general follow-up.

Explicit price objection

Omit the general seven-day follow-up. Offer a discount only under the

conditions on page 5. Do not automatically discount after seven days.

Form link sent

Remind once after two days if the form is still missing and the

accommodation is available. No general follow-up in this phase.

Page 71 of 193

Contract sent by email

Remind once after two days if the guest has not yet signed and the

accommodation is available. Stop when the guest signs.

Viewing date known

Ask once on the following day whether the prospect is interested in renting,

provided there has been no response, decline or contract processing. No

additional seven-day follow-up.

Sending time

Proactive messages: 09:00-19:00 Europe/Zurich; apply the global mode,

revalidate data and deduplicate.

Waiting list only with consent

• First ask whether the prospect would like to join the waiting list. Add them only after documented

consent; carry over known criteria. No additional mandatory form has been agreed.

• No expiry date, no 30-day check-in and no deactivation due to silence. Remains active until an explicit

decline or a confirmed booking with you for this search.

• As soon as a suitable option becomes available, recheck the price and availability and send an offer.

Do not send the same unchanged offer repeatedly.

Page 72 of 193

• A requested move-in date that has passed does not end the search. Offer new suitable options with the

actual move-in date without first asking for updated information. Retain other explicit requirements;

clearly state date deviations.

• Pause further offers for this search during contract processing. Stop them after countersignature. Do

not accidentally end other independent searches.

07 / DEVELOPER SPECIFICATION

Rental contract and binding booking

Phase

Action and meaning

Interest in renting

Form received

The contract is created in the dashboard. Form receipt is available as an

event. Pause further offers and general follow-ups for this search.

Enter price

Contract sent

The existing process sends an email for the guest's signature. The dispatch

status in the dashboard controls the two-day reminder.

Guest has signed

The existing email informs you. No additional AI notification is needed. No

Page 73 of 193

more signature reminders to the guest. Not yet booked.

You countersign

The dashboard status is the binding booking signal. The guest automatically

receives the contract and payment instructions by email. The AI stops

sales/contract reminders and switches to guest support.

No firm reservation before countersignature

Until you countersign, the unit may continue to be offered to other prospects. Do not promise a firm

reservation. Immediately before countersigning, recheck availability and competing contracts. The

technical check must prevent double commitments or block the process for a manual decision.

If an offered unit is allocated to someone else in the meantime, the AI informs affected prospects

according to the sending mode and offers alternatives. Flag open contract processes for review; the AI

must not independently cancel contracts.

Multiple contracts

Arrangement

Contracts and costs

Stay involving one move

Two contracts, one per accommodation; one deposit (the amount is the same

everywhere), final cleaning for each accommodation.

Page 74 of 193

Multiple rooms simultaneously

One contract per room; deposit and final cleaning per room. Price approval

for two or more people.

The entire combination is secured only once all associated contracts have been countersigned. Already

countersigned parts remain individually booked; highlight open parts in the dashboard.

Recheck the selected unit and send its validated form link. Multi-person

prices require an applicable approved price rule or case approval.

Populate the contract from the validated offer snapshot, discount reason and

approval/policy ID. Compare dates, fees and price before dispatch. Route

discrepancies to review; no routine re-entry.

7

• Block open-ended rentals for two years ahead. The end of this block is not the end of the contract. The

AI continues to treat the unit as occupied on an open-ended basis.

• Do not report conflicting occupancy data as availability. Block the affected period and create a task to

resolve it.

Extending fixed-term stays

Ask for the new move-out date, check availability and quote the current stored price. If unavailable, offer

Page 75 of 193

suitable alternatives. Extend through a new contract using the same form/signature process; only

countersignature makes it binding. Price approval remains required for two or more people.

Terminating open-ended contracts

The AI records the request and calculates the possible tenancy end based on the stored contract terms:

four weeks' notice, effective at the end of a month, with no minimum rental duration. Record receipt and

the requested date. Submit the termination and calculated tenancy end to you for review; issue binding

confirmation only after approval.

Technical safeguards at date boundaries

Represent occupancy intervals as [move-in, move-out). An open-ended contract has no artificial business

end date. Calendar block end, confirmed tenancy end and requested move-out date are separate fields.

A termination calculation is a proposal for approval, not an automated legal decision.

contract immediately blocks CRM offers. On failure, preserve the block, create a sync exception and

reconcile before retrying.

Eight months before block expiry, automatically extend it by two years unless an end is confirmed.

Page 76 of 193

Verify by readback; log the next trigger. Failures create a review task.

block. Offer the subsequent period only after successful readback and a fresh availability check.

Unsupported operations require a documented manual exception.

8

Automatic Beds24 synchronisation

After countersignature, automatically write the booking to Beds24 and verify it by readback. The

After human approval of termination, automatically update Beds24 and remove only the superseded

• Identify the responsible cleaner and WhatsApp number from Sheets.

• Ask the prospect for suitable times and coordinate with the cleaner. Confirm the appointment, address

and unit only after both parties agree.

• If the cleaner has not replied after 24 hours, remind them once. After another 24 hours, create a task

for you. If the requested appointment is sooner, hand it over to you sufficiently in advance.

• Once the viewing date is known, ask once on the following day whether the prospect is interested; omit

the message after a decline, reply or start of contract processing. Update cancelled and rescheduled

appointments.

Occupied accommodation

Page 77 of 193

Contractual permission to share the current tenant's phone number for viewings is included in the rental

process. Do not request permission again before every disclosure. Share only the approved number

belonging to the specific unit and current tenancy with the relevant prospect; do not publish it generally

or disclose other tenant data.

The prospect coordinates directly with the current tenant. When sharing the number, the AI asks to be

informed of the agreed appointment. Do not schedule a viewing-related follow-up without a known

appointment. Refer explicit conflicts over sharing the number to you for clarification instead of deciding

independently.

Approval and sending rules

Messages to cleaners are also subject to the global mode. A manually prepared draft is not yet an

appointment request. The 24-hour period begins only after the message is actually sent. Replies must be

assigned to the correct viewing process.

Outcome

If the prospect is interested in renting, start the validated contract process. Handle price objections

Page 78 of 193

under the discount rules; a final decline ends sales messages. A viewing does not reserve the

accommodation.

9

10 / DEVELOPER SPECIFICATION

General questions and guest support

Answer as much as possible independently

• Answer accommodation questions from approved data. For operating problems, explain safe stored

instructions; request photos or further information if needed.

• Explain payment instructions. Confirm receipt of payment only from reliable contract-system status.

Refer refunds, disputed amounts and decisions outside the AI's authority to you.

• Record complaints and faults and try stored solutions. If unresolved or decision-making authority is

lacking, create an internal task. Prioritise acute danger immediately.

• Do not invent missing information. Answer verifiable parts of a question and refer the rest for

clarification. Do not invent response times.

• Security-deposit refunds are outside the automated business workflow; forward such requests to you.

Preparing knowledge

Page 79 of 193

Wi-Fi and house rules come from Sheets. Waste disposal, appliances, check-in and check-out are

explained in the Guest Instructions videos. Videos contain no access codes. Convert the content to text

and use it as answer knowledge only after your approval; add the relevant link.

The AI proposes knowledge changes based on your replies and corrected drafts. Adopt them

permanently only after your approval. Never apply booking-specific exceptions to other guests without

review.

Secure guest matching

Before providing protected information, uniquely match the phone number and booking. For a different

or unknown number, continue answering general questions; personal contract data, payment status and

access require reliable matching first. A booking number alone is insufficient. Refer unclear cases for

manual review.

Prospects may receive public property information. Wi-Fi and internal guest instructions require the

appropriate booking context; access codes also require time and payment conditions to be met.

Explain payment instructions. Confirm receipt only from authenticated bank evidence and verified allocation to

Page 80 of 193

the correct obligation. Refer refunds, disputed amounts and decisions outside the approved policies to staff.

Arrival, payment and departure

Time / condition

Behaviour

Arrival day, 09:00 Europe/Zurich

Send arrival information without a code to the matched guest. The Guest

Instructions video may be included because it contains no access code.

Observe the global mode.

At the stored check-in time

Release the access code only after countersignature, unambiguous guest

matching and actual receipt of the required payment.

Early check-in

Late check-out

Day before move-out, 17:00

Send check-out time and instructions. Before sending, check that move-out

still applies. For an open-ended contract, only after the tenancy end has been

confirmed.

Payment verification is a hard condition

The integration must be able to determine which amounts are required for move-in and whether they

Page 81 of 193

have been received in full. Do not confuse future monthly rents that are not yet due with amounts due

for move-in. If status is unclear, do not release the code; seek internal clarification.

Protect access details

Use only the code for the assigned unit. Do not release it before the arrival day or permitted time. Links

and attachments must not bypass the block either. Do not write codes into general audit logs or push

notifications.

After move-out

Confirm only within an approved early-arrival policy or case approval, with

verified readiness. All payment and identity gates remain. Record the

permitted time for this booking.

Check subsequent bookings and confirmed cleaning capacity. Use approved

time/price limits or obtain case approval. Record the change.

Amounts due come from the contract; paid status requires bank evidence and verified allocation (page

18). A screenshot, transfer promise or manually set paid flag is insufficient. Neither confidence nor

ordinary message approval can bypass this gate.

Lodgify sends final-cleaning notices until cutover. At migration, enable exactly one tested sender in

Page 82 of 193

Beds24 or the CRM and disable the old sender. Support may continue after move-out; access codes

must not be resent.

Cleaning, approvals and notifications

Cleaners and tradespeople

The AI may automatically forward routine cleaning requests with no additional charge to the assigned

cleaner via WhatsApp, subject to the global mode. Send the accommodation, problem and necessary

details. Confirm appointments to guests only after acceptance.

Approval in the dashboard

Each case shows the facts, proposed solution, reply draft, source and, where applicable,

confidence/review reason. Actions: approve, edit, reject. Recheck status and data before sending.

Business approval does not replace manual sending under the global mode.

Urgent tasks

For a locked-out guest, water leakage or other acute problems, immediately create a prioritised task plus

a push notification containing the accommodation, problem and case link. No WhatsApp alert to you. If

not acknowledged after ten minutes, send a second push. Acknowledged does not mean resolved.

Page 83 of 193

Normal tasks and drafts appear together with a counter in the dashboard, without individual push

notifications. Urgent alerts are not held back by the global drafts-only mode.

Continue answering general questions from valid approved knowledge. Without current verification, do

not confirm binding availability, payment receipt or access-code release. Create a clarification task; for

an acute access problem, also send an urgent push. Do not treat a technical outage as a genuine “no

match” result.

Staff decisions and AI

A pending business approval blocks the relevant promise or action, not every safe answer in the

conversation. If a human is requested, create a task and do not independently decide the open case. The

rigid global bot pause from version 1.0 is replaced by the sending mode and specific approval blocks.

Paid cleaning may be commissioned only within an enabled owner-approved service/price policy, after

guest acceptance, or with case approval. Missing prices or supplier capacity require review.

Tradespeople still require individual approval. See page 23.

State model for implementation

Page 84 of 193

Use several independent state domains. A single contact status cannot correctly represent multiple

contracts or simultaneous guest support and a new search. The following names are technical

suggestions.

Domain

States / meaning

Search

NEW → QUALIFYING → SEARCHING → OPTIONS_SENT → INTERESTED. Flag

PRICE_OBJECTION separately. WAITLIST_OFFERED / WAITLISTED only with

consent. DECLINED ends this search.

Contract per unit

FORM_LINK_SENT → FORM_RECEIVED → CONTRACT_SENT → GUEST_SIGNED

→ COUNTERSIGNED. Only COUNTERSIGNED means booked. If allocated to

someone else: REVIEW_REQUIRED instead of unilateral contract deletion.

Waiting list

consent_at, active, paused_for_contract, stopped_reason. No automatic

expiry. A requested date that has passed does not by itself stop the search.

Task / approval

OPEN → ACKNOWLEDGED → RESOLVED; business decision PENDING /

APPROVED / REJECTED. Store the time and person acting.

Page 85 of 193

Draft

DRAFT → NEEDS_REVIEW / READY → SENT. New message: SUPERSEDED. Staff

reply: CANCELLED. Send only from the current version.

Contact and support

Separate contact_stop. Verified booking matching and the support case are

separate from search status. The global sending configuration applies to all

conversations.

Important events

message_received, employee_message_sent, search_completed, price_objection, explicit_decline,

waitlist_consent, viewing_confirmed, form_received, contract_sent, guest_signed, countersigned,

source_updated.

Priorities for competing events

• Before every send, first check new messages, decline/contact stop, booking, availability, business

approvals and source changes.

• Countersignature stops all sales and contract reminders for the same search. Handle partial bookings

of grouped contracts individually.

• An explicit contact stop blocks proactive messages. A new incoming support question may be handled

Page 86 of 193

but does not reactivate a sales campaign.

Data model and query contract

Object

Minimum required fields

Unit / SheetMapping

address, coordinates, standard_price, discount_price, cleaning_fee, deposit,

listing_url, form_url, cleaner_id, checkin_time, checkout_time

KnowledgeItem

knowledge_id, unit_id/scope, category, text/link, language, access_level,

source, version, verified_at, valid_from/to, approved_by

SearchRequest

search_id, contact_id, target_location, check_in, check_out nullable,

open_ended, guest_count, preferred_type, explicit_constraints,

radius_km=30, max_moves=1

Offer / OfferGroup

offer_id, search_id, segments, unit_ids, dates, prices, cleaning_fees,

deposit_total, category, deviations, source_versions, checked_at,

price_approval_id

Contract / Payment

contract_id, group_id, unit_id, contact_id, start, end nullable,

Page 87 of 193

form_received_at, sent_at, guest_signed_at, countersigned_at, agreed_price,

due_items, received_payments, payment_status

Vacancy / Discount

unit_id, vacancy_start, price_objection_at, eligible_at, intended_move_in,

discount_offer_id, last_sent_at; recalculate when occupancy changes

Viewing / Task / Draft

entity_id, related_unit/contract/search, status, owner, proposed_time,

confirmed_time, approval, confidence, review_reason, due_at,

source_message_id, revision

Audit / Outbox

event_id, actor, timestamp, correlation_id, old/new_state, offer_snapshot,

source_versions, approval_id, send_mode, score, message_id,

idempotency_key

Permissions and query rules

The backend binds queries to a specific unit and, where applicable, a contract. PUBLIC for approved

prospect information, BOOKING for the appropriate guest context, TIME_BOUND for access, INTERNAL for

staff. Provide the language model only with required, permitted fields; no unrestricted SQL generation.

Model the viewing phone number as a separate, limited permission.

Page 88 of 193

Response contract: only retrieved, valid facts plus appropriate action instructions and links. Omit missing

facts and seek targeted clarification. Do not let the language model invent prices, availability or

permissions.

unit_id, property_id, pms_unit_id, contract_unit_id, type, capacity, active,

Processing sequence

• 1. Authenticate the incoming message, check its unique message ID, and load context and the current

version.

• 2. Structure the request and data; apply the 20-second collection window for normal messages.

• 3. Unambiguously identify the unit, booking and permissions. Ask for missing information; allow safe

partial answers.

• 4. Query specific sources and apply matching, pricing and approval rules in the backend. Distinguish a

technical error from no match.

• 5. Generate the reply and confidence score with a rationale. Use only approved facts.

• 6. Immediately before sending, recheck sources, draft version, global setting, time window, blocks and

approvals.

Page 89 of 193

• 7. Send through the outbox. Store the delivery/API result and start dependent timers only after actual

dispatch.

Prevent duplicate or outdated messages

Use message ID, search process, offer snapshot and automation purpose for deduplication. A new

technical offer_id alone does not make an unchanged offer new. Repeated webhooks must not trigger

duplicate tasks or messages. If the sending outcome is unclear, reconcile it first instead of blindly

resending.

Carry preconditions with the draft. If price, occupancy, payment, dates or relevant rules change, recheck

and recreate it if necessary. Resume due jobs after a restart, but discard obsolete reminders.

Times

Use Europe/Zurich, including daylight saving and standard time. Two days or 24 hours start at the

respective actual sending event. Keep date-based business deadlines separate from times of day. For

jobs outside the sales window, use the next permitted sending time and recheck then.

Audit

Page 90 of 193

Document manual/automatic sending, score, specific approval, staff member, price offer, sources and

state transitions for each process. Keep access codes out of general logs. Internal roles restrict access to

contacts and payment data. Every transition requires an event and timestamp.

WhatsApp integration

Support for approved message templates, envisaged in version 1.0, remains a technical prerequisite.

Before production launch, the implementation must check the platform requirements then in force for

proactive sending. Do not bypass a technical sending block; make failed jobs visible.

Acceptance scenarios

These scenarios are acceptance criteria for the later implementation. They have been specified here, not

executed against an existing system.

Test case

Expected result

Open-ended enquiry

Do not ask for a move-out date; offer a suitable unit with no

conflicting occupancy or a clearly fixed-term alternative.

Price objection 20 days before vacancy

Page 91 of 193

No discount message and no normal seven-day follow-up;

recheck no earlier than T-14.

Price objection at T-14 / already vacant

Discount only with an eligible move-in and availability. The

initial offer remains at the standard price.

Decline before planned discount

Discard the job; no discount offer.

Two people

Do not exceed capacity; links/key details allowed, price and

contract links only after approval.

Split stay / parallel rooms

Two contracts; one deposit for a move, one deposit per room

for parallel rooms. Cleaning charged for each.

Partial month, 16-31 January

15 chargeable days: monthly rent / 31 × 15. The move-out day

does not count.

Guest has signed, you have not

Not yet booked, no code release; guest reminder stops.

Open-ended calendar block expires

Waiting list, requested date has passed

Offer new suitable availability without requesting an update

Page 92 of 193

and without automatic expiry.

High score, payment outstanding

No access code. Proof of payment is insufficient.

Draft mode, timer due

Draft only; still trigger urgent internal pushes.

New message / staff reply

Block or discard the old draft, respectively; no duplicate reply.

System outage / duplicate webhooks

No invented availability; no duplicate messages or tasks.

Unknown phone number

Public information only; block sensitive data until

unambiguously matched.

back. Failure creates an exception, not availability.

No offer after technical block end. Automatically extend eight

months before expiry; verify or escalate.

16

Countersigned, Beds24 still free

Contract blocks offers immediately; sync to Beds24 and read

• Contract system: APIs/webhooks for form, dispatch, signature, countersignature and payment events;

reliable allocation of move-in payments actually received.

Page 93 of 193

• Confidence: scoring method and calibration using real examples; the threshold remains adjustable by

you. Always check business rules independently.

• Push: device/user mapping, delivery status and acknowledgement of urgent tasks; second push after

ten minutes without acknowledgement.

• Price calculation: align rounding to CHF cents and presentation of partial months with the contract

system. No silent discrepancies between the offer and contract amount.

• Discount messages: no early message. The number of later additional discount reminders has not been

agreed; do not infer a recurring campaign. Deduplicate unchanged offers.

• Short-notice booking after 09:00 or approved early check-in before 09:00: define the precise catch-up

rule for arrival information during implementation; no automatic code release before all conditions are

met.

• Existing tenants' phone numbers: represent contractual permission and mapping in the system; refer

explicit conflicts for manual clarification. No use for other purposes.

Beds24: demonstrate read/write permissions, unit mapping, booking/block changes and readback.

18 / ACCOUNTING & RENT COLLECTION

Page 94 of 193

contractual charges. Generate each rent obligation once from these terms, including recurring months

and approved changes.

Bank evidence: booked incoming transactions from an authenticated bank feed or bank statement,

exposed through AbaNinja or an approved bank integration. These establish actual cash receipt; a guest

screenshot or payment promise does not.

AbaNinja: accounting documents, postings, accounting status and identifiers. The CRM stores their linked

operational view and the verified allocation of bank receipts to contractual obligations.

CRM: workflow, review, reconciliation, notification history and the consolidated balance. Synchronise

verified received-payment status to the contract system where supported. If writeback is unavailable,

the shared verification service must supply the same status to all CRM workflows and make

discrepancies visible.

The global sending mode on page 3 also applies to rent reminders. Internal accounting tasks and the

arrears alerts defined on page 20 operate independently of that mode. All other existing business rules

19 / ACCOUNTING & RENT COLLECTION

Page 95 of 193

Receipt capture, OCR and booking

Capture and extract

Provide CRM upload for PDF, JPG and PNG receipts/invoices, plus an agreed dedicated receipt email

intake. Preserve the original file, source, upload time and checksum. Link every document to its AbaNinja

record and, where relevant, property, unit and supplier.

Use OCR/document extraction through a verified AbaNinja-compatible route. Extract supplier, invoice

number, invoice and due dates, currency, gross/net amounts, tax information, line items where

available, and payment reference. Store field confidence and the raw extraction. Missing or ambiguous

values must not be invented.

Automate routine accounting

Apply approved accounting rules to propose the account, tax code and property/cost allocation. Validate

totals, required fields, currency, duplicates and supplier mapping. Automatically transfer and book

documents that pass the approved rules; send uncertain, incomplete or exceptional items to a review

queue inside the CRM.

Expose original document, extracted values, booking proposal and validation reason side by side. Staff

Page 96 of 193

can correct, approve or reject. Final status must come from an acknowledged AbaNinja operation; a

successful OCR run or upload does not mean the document has been booked.

Duplicates, corrections and payment boundaries

Use file checksum and supplier/invoice-number/date/amount checks to detect duplicates across upload,

email and retries. A failed or timed-out request must be reconciled against the external record before

retrying. Preserve correction history and use the supported cancellation/reversal process for posted

entries.

Distinguish unpaid supplier invoices from already-paid receipts and link relevant bank transactions

without booking the expense twice. Posting an expense is separate from authorising an outgoing

payment. Automatic bank payment execution is not authorised by this specification; integration settings

must not silently enable it.

CRM document states and controls

Suggested states: RECEIVED, EXTRACTED, REVIEW_REQUIRED, APPROVED, SYNC_PENDING, POSTED,

SYNC_FAILED, REJECTED and REVERSED. Record actor, time, rule version, external ID and error details

for each transition.

Page 97 of 193

19

PEARLSTAY / CORPORATE AI + CRM

20 / ACCOUNTING & RENT COLLECTION

Rent reconciliation and notifications

Determine what is due and what arrived

Maintain obligations per contract and rental period: type, amount, currency, due date and approved

adjustments. Keep rent, deposit, cleaning fees and other charges separate. Future rent is not overdue;

an unused deposit is not automatically rent payment. Apply the existing partial-month rule and contract

rounding.

Import booked incoming payments automatically using supported events and scheduled reconciliation.

Match by unique payment/reference ID and contract, then by verified payer details and amount. An

ambiguous match creates a review task; never allocate on a similar name alone. Support split payments,

combined payments, overpayments, reversals and approved manual allocations with bank evidence.

Outstanding amount = obligation amount - approved credits - net allocated receipts. Calculate in the

obligation currency with deterministic decimal arithmetic. Prevent a transaction being allocated beyond

Page 98 of 193

its available amount. Keep unallocated receipts visible. A reversed receipt reopens the affected balance.

Detect missing and partial payments

After the due date and configured grace period, identify UNPAID or PARTIALLY_PAID obligations with a

remaining balance. Reconcile again immediately before sending. Stale/incomplete bank feeds,

unresolved matching, disputed charges or an approved payment plan must route to review or pause the

applicable reminder. A technical outage must not be interpreted as non-payment.

Notify the tenant and Pearlstay

For a verified overdue balance, prepare or send a concise WhatsApp reminder in the tenant's language,

subject to the existing global mode and 09:00-19:00 Europe/Zurich window. Include rental period,

amount due, amount received, exact remaining balance, due date and verified payment

details/reference. Distinguish no payment from a partial payment.

At first detection, create a CRM arrears case and notify designated Pearlstay staff by an in-app

notification plus push. Include tenant, unit, period, balance and case link. Notify staff again at configured

escalation stages. This is an explicit extension of page 12's routine-notification rule; the urgent

Page 99 of 193

ten-minute repeat rule does not apply to ordinary arrears.

Track actual delivery and avoid duplicate CRM/AbaNinja reminders: designate one sending owner. Cancel

queued reminders when payment settles; after a partial payment update the balance and re-evaluate

the next reminder. Close the case when fully settled, retaining history. No automatic fees, legal notices,

business deadlines. Scheduled bank refresh must run at least daily, with supported events processed sooner.

Required CRM views

Show expected rent, received rent, remaining balances and overdue days by month, property, unit and

tenant; distinguish future amounts, overdue amounts and unallocated receipts. Provide receipt/booking

review queues, accounting sync errors, income/expense summaries sourced from AbaNinja, and a tenant

ledger with documents, payments and reminder history. Label cash receipt separately from accounting

income.

Extend the data and event model

Add AccountingDocument, RentObligation, BankTransaction, PaymentAllocation, ReminderCase and

SyncRun. Store stable CRM/external IDs, currency, amounts, status, source version, evidence,

Page 100 of 193

timestamps and idempotency keys. SyncRun records the bank coverage period, last successful refresh

and errors. Add document_extracted, posting_confirmed, bank_transaction_imported,

allocation_changed, payment_reversed, rent_overdue and rent_settled events.

Acceptance criteria - required end-to-end tests

• Valid receipt: OCR extracts the values, approved rules book it once in AbaNinja, and the CRM shows the source and

confirmed booking. A duplicate/retry creates no second booking.

• Unclear OCR or tax/account mapping: review in the CRM; no invented values or automatic posting. A sync failure

remains visible and can be retried safely.

• CHF 1,200 rent due, CHF 800 received: allocate CHF 800; show CHF 400 outstanding. Once overdue, notify the

tenant of CHF 400 and alert Pearlstay. Zero received results in a CHF 1,200 reminder.

• Remaining CHF 400 arrives before dispatch: cancel the reminder and close the case. A screenshot alone does not

settle it. Future rent and deposits do not distort overdue rent.

• Ambiguous/combined payment or bank outage: no false arrears message; create a review/sync task. A reversal

reopens the correct balance. Repeated events never duplicate allocations or alerts.

Page 101 of 193

• Drafts-only mode: tenant reminder remains a draft; internal arrears notifications still occur. Verified payment status

Implement source mapping and opening balances, then OCR/review, accounting sync, reconciliation, reminders and

dashboard. Activate automation only after the original acceptance scenarios and these new tests pass. Year-end

Delivery objective

Automate standard cases end to end while minimising incorrect actions. Staff receive a consolidated

exception queue with evidence and a proposed next step. No unmeasured automation percentage or

zero-error production guarantee is implied. All existing business rules remain mandatory unless

expressly revised in version 2.5.

Controlled AI functions

Begin with one centrally managed model/API integration and separate permission-scoped functions for

leasing, guest support and document extraction. A multi-agent swarm is not required. The model may

interpret intent, extract candidate fields, retrieve permitted knowledge and draft language. It may not

determine authority, invent facts or write directly to financial, access or booking stores.

Deterministic services

Page 102 of 193

Implement search eligibility, price arithmetic, occupancy checks, contract validation, payment allocation,

reminders and access release as tested code. AI tool calls are requests to these services. Each service

independently checks identity, role, current facts, policy version and permitted state transitions.

Protected output

Generate prices, balances, dates, references and codes from verified system fields. Use approved

multilingual templates for payment demands, contractual confirmations and access messages. For other

responses, validate factual fields before sending. Malformed or incomplete model output routes to

retry/review without a business side effect.

Durable process state

Store business state outside the model context. Workflows carry stable entity IDs and versions, not

free-form memory as authority. Timers survive restarts and deployments; resumed jobs revalidate their

preconditions. Durable execution does not replace deduplication or confirmation of external operations.

Global and process controls

Retain a global drafts-only override for all external messages. In automatic mode, configure each

Page 103 of 193

process as automatic, review or disabled. Provide a separate emergency pause for business writes.

Neither switch pauses monitoring or internal urgent alerts. Approved mandatory business rules outrank

all sending settings and model scores.

Owner-approved policy catalogue

Create versioned policies with owner, approval time, effective dates, unit scope and explicit limits.

Multi-person pricing must define occupancy tiers with exactly one standard and one discount price per

applicable tier, preserving discount timing and eligibility. No valid tier means case review. Policies never

alter an already agreed contract price.

Optional services within explicit limits

Early/late policies must specify allowed times, fees, booking buffers and confirmed cleaning/readiness

evidence. Paid-cleaning policies must specify service, supplier, customer price, maximum supplier cost

until Pearlstay supplies and approves their parameters. Guest acceptance and supplier acceptance must

be recorded where applicable.

Decisions retained by staff

Human countersignature and termination confirmation remain mandatory. Refunds, deposit returns,

Page 104 of 193

disputed charges, legal escalation, unapproved tradespeople and outgoing bank payments remain

outside automatic execution. Standard contract population and dispatch may be automatic after all

checks; exceptions return to review.

Master data migration

Initially retain validated Sheets imports. Deliver a CRM master-data editor with required fields, typed

values, permissions, history and scheduled validity. Before migration, reconcile IDs and values and

obtain cutover approval. From cutover, CRM becomes the sole writer for migrated fields; Sheets is

read-only export/import staging. Historical references to Sheets then mean the validated master-data

service. Never allow conflicting dual writes.

Secrets and authority

Move access codes and credentials to restricted secret storage during migration. Exclude secrets from

model context, general logs and exports. Retrieve the assigned code only inside the access service after

all gates pass, then inject it into the approved message. Keep bank receipt evidence, signed terms and

AbaNinja postings authoritative in their respective domains.

Transaction safety and recovery

Page 105 of 193

Booking commitment

Before countersignature completes, acquire a unit/date lock and recheck current contracts and channel

occupancy. Enforce non-overlapping committed intervals in the central store, including open-ended

contracts. Concurrent internal attempts must not both commit. An external signature flow must support

a pre-commit gate; if it cannot, this is a delivery blocker requiring an approved alternative.

Use a transactional outbox for queued actions and an inbox for deduplicated incoming events. Each

logical message, booking, allocation and posting has a stable idempotency key independent of retry

count. Track pending, confirmed, failed and unknown outcomes. On timeout after a possible success,

query the external record before retrying; unknown outcomes enter reconciliation.

Reconciliation and failures

Combine supported webhooks with scheduled readback. Compare contracts, calendar occupancy,

postings, bank coverage and queued reminders. Define per-source freshness and sync-lag limits before

launch. Use bounded retries with backoff, then a visible exception queue. Outages never imply vacancy

Page 106 of 193

or non-payment. Apply a failure only to affected workflows so safe unrelated answers remain possible.

Approvals and changing facts

Bind approvals to the exact action, amount, unit, dates and relevant versions. Revalidate immediately

before execution. Material changes invalidate approval and supersede drafts. Policy revocation stops

queued actions under that policy. Record manual edits, source versions, policy IDs, external

acknowledgements and state transitions.

Recovery and operational alerts

Define responsible staff, severity and escalation for stuck workflows, sync failures and undelivered

messages. Provide safe replay tools that preserve logical IDs. Test database and original-document

restoration, secret recovery and workflow resumption. Approve recovery-time and data-loss targets

Before committing to full implementation, demonstrate the following with Pearlstay-authorised test

records in a sandbox or isolated test workflow. Document account plan, scopes, endpoint, sample result,

external ID, readback, failure handling and limitations. Public documentation alone is not proof of

capability. Do not create live guest obligations or send real reminders during testing.

Page 107 of 193

Contract system

Prove form receipt, automatic population from an offer snapshot, dispatch, guest signature, human

countersignature and status events. Compare prices, fees, dates and parties. Demonstrate the

pre-commit conflict gate and supported payment writeback; otherwise every workflow must use the

shared verified payment service.

Beds24

Prove correct unit mapping, current availability, booking/block creation and amendment, open-ended

block extension and termination updates. Read back the result and test duplicate/timeout handling.

Confirm how changes reach connected channels and which system owns cleaning notices. Record

unsupported operations explicitly.

AbaNinja and bank evidence

Prove original receipt capture, extraction, validation, posting and acknowledged booking status in the

actual account. Demonstrate stable bank transaction IDs, refresh coverage, booked-versus-pending

distinction, allocation, reversals and stale-feed detection. Verify OCR licensing and prohibit silent

payment-order execution. API access alone is not sufficient.

Page 108 of 193

WhatsApp and notifications

Prove inbound authentication, message deduplication, media intake, approved proactive templates,

delivery/failure status and opt-out handling. Verify device/user mapping for internal push,

acknowledgement and the existing urgent repeat rule. Match replies to the correct search, booking or

viewing.

Go / no-go evidence

Deliver a capability matrix with supported, tested, limited and unavailable operations. Pearlstay

approves any substitute or manual fallback with its operational impact and cost. Unsupported automatic

calendar maintenance is an exception, not silent completion of the promised automation. Freeze

integration scope only after this milestone.

All scenarios on pages 16 and 21 remain mandatory with the revised calendar and policy behaviour. Add

Additional release-blocking scenarios

Two simultaneous internal commitments: at most one succeeds. External-channel conflict: block or

follow the proven conflict procedure. Offer changes before contract dispatch: no stale terms. Policy

Page 109 of 193

revoked before sending: stop the queued action. Early-arrival request without cleaning readiness:

review. No valid occupancy tier: no invented price.

Retries, payments and boundaries

Timeout after external success: read back and do not duplicate. Restart with due reminders: resume only

still-valid jobs. Late bank event or payment just before dispatch: recheck and cancel/update reminder.

Version 2.10 - 15 October 2026 - Developer specification

PEARLSTAY / CORPORATE AI + CRM

27 / RELIABLE AUTOMATION

Operations, ownership and handover

Exception-first CRM

Provide one queue showing case, tenant/unit, severity, reason, source evidence, proposed action, owner

and next deadline. Users can correct, approve, reject, pause or retry only within their role. Link to

original documents and integration records. Group duplicates and preserve full history; routine

successful actions need no individual staff task.

Deliver setup and deployment instructions, dependency/licence inventory, integration capability matrix,

data dictionary, policy catalogue, operating runbooks, recurring cost breakdown, backup/restore

Page 110 of 193

instructions and incident procedures. Demonstrate deployment and recovery by another authorised

maintainer. Supply data export and credential-rotation procedures without exposing secrets in

documentation.

PEARLSTAY / CORPORATE AI + CRM

28 / CHANNEL MANAGER MIGRATION

Beds24 validation and controlled cutover

Approved implementation sequence

Keep Lodgify operating for the current portfolio while proving Beds24. After the technical gate passes

and Pearlstay approves the migration, build the production CRM adapter directly for Beds24. Do not first

build a full Lodgify integration and then rebuild it. Provider-independent CRM, contract and accounting

work may proceed in parallel.

Beds24 proof before commitment

Using an isolated test unit, prove API V2 read/write access, stable unit mapping, direct booking/block

creation, readback, amendments, cancellations and incoming platform reservations. Test both Airbnb

and Booking.com connections, PriceLabs rates/minimum stays, open-ended block extension and retry

Page 111 of 193

behaviour. Use test-safe records; do not send guest messages or connect two competing channel

Gate and fallback

Record the tested capabilities, limitations, total recurring fees and migration effort. Proceed only when

the required paths pass. If Beds24 fails a required capability, keep Lodgify live and present the limitation

and an alternative for Pearlstay approval. Do not silently commission a second adapter or remove a

required feature. Target-state references to Beds24 elsewhere in this specification apply only after this

gate and cutover.

Replaceable integration module

Separate business rules from the provider adapter. Define provider-neutral operations for availability,

booking/block changes, inbound events and reconciliation. Maintain a provider-keyed mapping of CRM

units, external units, bookings and channel listing IDs, with operation IDs and sync status. Preserve

Before switching, export and reconcile future bookings, amendments, cancellations, manual blocks,

open-ended tenancies, guest records needed for operations, prices, restrictions and existing

automations. Preserve original channel booking IDs and source ownership to prevent duplicate imports.

Page 112 of 193

Confirm PriceLabs mappings and supported discounts. Assign exactly one sender for guest messages

and cleaning notices; move any Lodgify-hosted website, forms or other used functions before

cancellation.

Controlled production switch

Prepare a unit-by-unit runbook and agreed cutover window. Capture a final delta of changes since

export; suspend competing inventory writes and protect availability during the handover. Transfer each

live listing to the new provider in the platform-supported sequence. Reconcile existing and newly arrived

reservations, blocked dates, prices and restrictions in Beds24, the CRM and both channels. Verify

channel results, not merely a successful API request.

Acceptance, rollback and cancellation

Test a direct-contract block, platform booking, amendment, cancellation, PriceLabs update and

scheduled notification end to end. Monitor against agreed freshness/error limits and obtain Pearlstay

sign-off. Document rollback triggers and how changes received during the switch are preserved before

returning to Lodgify. Cancel Lodgify only after complete verification, required exports and replacement

Page 113 of 193

of all used functions. Never cancel it merely because CRM development has started.

Software consolidation and cost control

Objective and priority

Reduce recurring software costs by consolidating overlapping operational functions in the CRM. Preserve

reliability, ownership and supported external connections. First consolidate waiting list, contract

workflow, tasks and reporting; then add cleaning and maintenance operations. These capabilities are

part of the target CRM scope, not separate subscription products.

Inventory before replacement

Document each actually used product, plan, users, billing period, renewal/cancellation terms, functions,

data, integrations and current cost. ClickUp, Monday, cleaning tools, external inboxes and automation

platforms are candidate categories, not confirmed active subscriptions. Identify functions used outside

Pearlstay operations before proposing cancellation.

Functions to consolidate

Use the existing CRM waiting list and follow-up workflow. Reuse the existing contract-system code where

available and permitted; integrate forms, approved templates, price population, dispatch, status and

Page 114 of 193

document storage into the CRM. Consolidate rental-related tasks, approvals, reminders and operational

reporting. Avoid parallel entry and duplicate sources of truth.

and suitable email, file storage and backup infrastructure. Keep a signature service where the required

signing/audit capabilities cannot be reliably provided by the existing implementation. No new automated

signature or countersignature authority is granted.

Selective pricing automation

Keep PriceLabs only for units requiring dynamic pricing, subject to actual billing conditions. CRM monthly

prices and approved discounts govern direct leases. Optional fixed seasonal rates, floors or gap-filling

Cancellation gate and scope boundary

Cancel a tool only after all required functions pass acceptance, data/history are exported or migrated,

dependencies are moved and Pearlstay approves. Account for overlapping subscription periods and keep

30 / SOFTWARE CONSOLIDATION

Cleaning, maintenance and unified operations

Mobile cleaning workspace

Deliver a mobile-friendly CRM view for assigned cleaners: unit, authorised access information, task

Page 115 of 193

date/window, checklist, photo upload, notes and status. Restrict each person to assigned tasks and

necessary data. Use a separate staff permission for operational access; never expose guest payment

records or other tenants' information.

Automatic scheduling

Create turnover work from confirmed departures and recurring communal-area cleaning from approved

schedules. Store frequency, responsible person, service scope and check-in deadline per unit/property.

No duplicate jobs on retries. Changes, extensions and cancellations update or supersede the correct job.

Select exactly one scheduling/notification owner across the CRM and Beds24; preserve the migration

controls on page 28.

Task lifecycle and exceptions

Use planned, assigned, accepted, in progress, completed, review required and cancelled states. Capture

who did what and when. Define required checklist items and photo evidence per task. Missing

acceptance or overdue completion triggers an internal exception using configured deadlines. Completion

is not automatically proof of readiness: apply the approved readiness/inspection policy before early

Page 116 of 193

check-in or a promise to a guest.

Maintenance and approvals

A cleaner or guest can report a defect with description, unit, photos and severity. Link it to a case, owner

and resolution history. Acute danger follows existing urgent push rules. Routine support follows

approved instructions. Tradespeople, refunds and costs beyond approved cleaning policies still require

individual approval. Do not let a checklist or AI classification authorise spending.

Unified inbox, tasks and reports

Provide the existing WhatsApp communication, assignments, drafts and approval queues in the CRM.

Use supported messaging integrations; platform and message fees may remain. Centralise rental-related

tasks and dashboards for occupancy, rent received, arrears, expenses, cleaning and maintenance. Label

cash receipts separately from accounting income and preserve source IDs. Avoid duplicate automations

Required acceptance scenarios

A departure creates one cleaning job; duplicate events create none extra. A stay extension changes the

job; a cancellation removes obsolete work. Recurring schedules respect local dates. An unaccepted/late

Page 117 of 193

task is escalated once per configured stage. Missing evidence prevents required sign-off. Cleaner access

is limited to assigned units. A defect creates a linked case; paid work outside policy waits for approval.

Disable old notifications at migration and verify one correct notification.

Version 2.5 delivery additions

Add the software/cost inventory, reuse-and-migration plan, cleaning/maintenance module, role matrix,

acceptance results and cancellation checklist to the handover. Confirm the impact on development effort

Electronic signature provider selection

Developer responsibility and selection rule

The developer must evaluate and recommend the lowest-total-cost provider that meets all required

Swiss signature, integration, reliability and usability requirements. No provider is preselected. Compare

DeepSign, Swisscom Sign and SwissSign as initial candidates; include a better-value alternative if it

satisfies the same requirements.

Swiss recognition and evidence

Verify qualified electronic signatures (QES) under Swiss ZertES, including the qualified certificate and

qualified timestamp. Identify the actual certificate issuer behind each signing platform and verify its

Page 118 of 193

current official Swiss recognition. Supply dated official evidence and a validated sample signed PDF. An

EU-only eIDAS QES or a generic security certification is not sufficient evidence of Swiss ZertES

compliance.

Required CRM integration

Prove supported API access for sending approved contracts, assigning signers and signing order,

obtaining status, scheduling reminders and retrieving completed PDFs and audit evidence. Confirm

webhook or polling support, authentication, limits and production access. Store provider IDs and verified

completion status in the CRM. Use a replaceable provider adapter; avoid browser automation for the

Recommendation and approval gate

Deliver a comparison matrix, recognition evidence, written pricing, test results and a reasoned

recommendation before committing to a paid provider contract. Pearlstay approves the provider and

costs. Then implement and verify the production integration. If the lowest-priced candidate fails a

mandatory requirement, document the failure and recommend the cheapest qualifying alternative.

Signature authority and handover

Page 119 of 193

Automate preparation, dispatch under approved rules, reminders, status tracking and archival. Preserve

authority to sign for Pearlstay or a tenant. Handover must include account ownership, credentials

transfer, configuration, recovery procedures and evidence linking each completed PDF to its contract

Phone menu and WhatsApp handover

Objective and implementation

Implement a simple inbound telephone menu using keypad selection (DTMF). Route prospective and

current guests to the existing WhatsApp workflow; route other callers to a designated human. A

conversational AI voice agent, speech-based intent classification and automated outbound calls are not

included.

Main menu and guest route

Offer two clearly announced categories: press 1 for booking enquiries or an existing stay; press 2 for

other matters. Option 1 explains that callers should message the same number they have just called on

WhatsApp. Optionally offer an SMS with the verified WhatsApp link on explicit keypad request. Sending

the link does not create a WhatsApp conversation or permission for marketing.

Page 120 of 193

Urgent guest needs and no-WhatsApp fallback

Within the guest route, clearly offer a key to reach a human for urgent stay-related problems, including

being locked out, and a callback option for callers unable to use WhatsApp. Do not force these callers

into a messaging-only loop. Define the responsible contact, coverage hours and escalation sequence

with Pearlstay. Do not promise continuous human availability unless it is staffed.

Other calls, missed calls and callback tasks

Option 2 transfers to the designated person or team. If the transfer fails or nobody answers, offer

voicemail and create a CRM callback task with the selected route, time, caller number if available and

message reference. Treat urgent guest callbacks as priority tasks with an immediate internal alert and

agreed escalation. Hidden caller IDs require a callback number to be supplied; do not guess identity.

Number, provider and operating costs

The developer must verify that the published number supports both inbound voice routing and the

intended WhatsApp Business integration. Prove compatibility before migration or porting. Compare

existing telephony capabilities with alternatives using total costs for number rental, menu, forwarding

Page 121 of 193

minutes, SMS and CRM integration. Pearlstay approves the provider, costs, routing destinations and final

German/English announcements before activation.

Reliable operation and data handling

Repeat invalid or missing keypad input once, then offer human/callback fallback rather than ending in a

loop. Deduplicate provider events and SMS requests; record failed SMS delivery for follow-up without

silently resending indefinitely. Use authenticated provider integrations. Caller ID alone does not verify a

guest or authorise disclosure. Keep call metadata and voicemail access restricted; no live-call recording

by default. Announce voicemail recording and configure retention.

Acceptance and delivery

Test both main routes, urgent guest transfer, no-WhatsApp callback, unanswered/busy destinations,

out-of-hours behaviour, hidden numbers, invalid input, failed SMS and duplicate events. Confirm that the

SMS link opens the correct WhatsApp account and that an actual guest message enters the existing CRM

workflow. Deliver the approved menu script, routing diagram, staffing/escalation settings, cost

Version 2.10 - 15 October 2026 - Developer specification

PEARLSTAY / CORPORATE AI + CRM

Page 122 of 193

33 / PROPERTY ACQUISITION

Property acquisition pipeline

Scope, reuse and sequencing

Add a dedicated property-acquisition module after the core rental and accounting workflows. Reuse the

existing Gmail-to-ClickUp automation where suitable. Replace its ClickUp destination with the CRM only

after migration acceptance. Keep acquisition prospects separate from rental guests while linking shared

properties, organisations and contacts where verified.

Gmail intake, filters and review

Import listing alerts from the designated Gmail inbox for Homegate, ImmoScout24 and Flatfox. Preserve

original emails, message/thread IDs, listing links and source timestamps. Provide editable keyword and

location exclusions, such as replacement-tenant wording or excluded locations. Keep excluded records

and reasons reviewable. Failed parsing enters a review queue; absent property details are not invented.

Pearlstay reviews each listing and selects interested, deferred or rejected.

Deduplication and contact relationships

Deduplicate repeated emails, listing IDs and URLs; detect likely cross-platform duplicates using property

Page 123 of 193

attributes. Retain source links and changes, and require review for ambiguous matches. Link multiple

properties handled by the same contact or management company without merging distinct

opportunities. Show existing conversations and prevent duplicate outreach for the same opportunity

across imports and retries.

Outreach drafts and reliable status changes

Prepare editable emails using approved templates, verified recipient details and property data. Initially

every first email and follow-up requires human review and send approval. Successful Gmail sending

records the message ID and timestamp and automatically sets First outreach sent or the applicable

Follow-up sent stage. Failed or uncertain sends enter reconciliation; no blind resend, success status or

follow-up timer. Capture relevant manually sent Gmail replies as well.

Follow-up timing and replies

After confirmed first outreach, set Follow-up due after three days by default; further stages and intervals

remain owner-configurable. Define calendar/business-day handling and sending windows in

Europe/Zurich. Prepare the next draft automatically. Recheck for replies immediately before sending. A

Page 124 of 193

linked inbound reply stops pending follow-ups, invalidates stale drafts, marks Reply received and alerts

the owner. Bounces, explicit declines, contact blocks and closed cases also stop the sequence;

ambiguous replies require review.

Pipeline, human control and migration

Track new, review, deferred, rejected, first outreach sent, follow-up due/sent by stage, reply received,

viewing, negotiation, won, lost and dated revisit states with an audit trail. Property selection, contact

approval and emails remain human-controlled at launch, even if guest messaging is automatic.

Automatic follow-up sending is a later separately enabled policy. Migrate ClickUp statuses, notes, mail

history or accessible references, ownership and next due dates; reconcile counts and samples before

disabling old jobs.

Acceptance, costs and handover

and migrated overdue tasks. Verify one active workflow after cutover. Deliver field/status mappings,

template settings, migration results, recovery instructions and incremental costs. Cancel ClickUp only

Version 2.10 - 15 October 2026 - Developer specification

PEARLSTAY / CORPORATE AI + CRM

Page 125 of 193

34 / NEW-BUILD ACQUISITION

Olmero projects and contact priority

Second pipeline within the acquisition module

Integrate the existing Olmero-to-ClickUp process as a separate new-build project pipeline in the same

CRM acquisition module. Reuse the shared contact database, Gmail sending, reply matching, audit trail

and follow-up engine from page 33. Maintain separate project fields, email templates, stages and

reminder settings. This is part of the acquisition phase after core rental and accounting delivery.

Excel intake and import preview

Retain the manual Excel export from Olmero and provide a CRM upload with column mapping, validation

and preview before committing the import. Preserve the source file, import batch, source project ID

where available, original values and import time. Capture project name, location, phase, planned

completion date, source link and supplied Bauherr and architect-office contact details. Flag missing or

invalid fields; never invent contacts.

Mandatory primary-contact rule

Select exactly one outreach contact per project using deterministic rules: (1) if a usable Bauherr (project

Page 126 of 193

owner/client) contact is supplied, always select the Bauherr, even when an architect is also listed; (2)

only if no usable Bauherr contact is available, select the architect office if usable contact details are

supplied; (3) if neither is usable, mark Not usable - missing contact details and exclude the project from

outreach and follow-ups. For email outreach, a name or telephone number alone is not a usable email

contact.

Single recipient and controlled changes

Show the selected primary contact, role and selection reason before approval. Do not contact the

Bauherr and architect in parallel, including as CC/BCC recipients. Store other supplied contacts as

reference only. A reply, rejection or bounce does not automatically authorise switching to the other

party. If a later import changes the preferred contact after outreach has begun, preserve the history,

pause pending drafts and request human review before changing the recipient.

Project matching and safe updates

Use stable Olmero project IDs where present, with controlled matching on project attributes otherwise.

Repeated exports update the same project rather than create new opportunities or restart outreach.

Page 127 of 193

Preview changes and review ambiguous matches. Preserve human notes, pipeline status,

correspondence and due dates; do not overwrite them with spreadsheet blanks. The same company may

have several distinct projects, which must remain separate and linked.

Outreach, replies and long-term follow-up

Pearlstay reviews project suitability and approves first emails and follow-ups at launch. Reuse

confirmed-send status changes, duplicate-send prevention and reply/bounce/decline stop rules from

page 33. Configure new-build follow-up intervals separately; confirm existing ClickUp timing rather than

assuming the listing pipeline's three-day default. Support conversation, project assessment, negotiation,

won/lost and dated revisit stages, with longer reminders tied to project progress and expected

completion.

Migration, acceptance and delivery

Migrate existing Olmero ClickUp projects, contact roles, selected recipients, statuses, notes, mail

references and next actions. Test owner-only, architect-only, both-contact and no-contact imports;

incomplete emails; repeated and changed exports; recipient changes after outreach; replies and

Page 128 of 193

overdue migrated tasks. Prove owner priority, no dual outreach and no outreach without a usable

contact. Deliver mappings, templates, costs and test results. A direct Olmero API connection is optional

Purpose and configurable starting values

Protect continuous long-term letting from short bookings far beyond the next available date. Apply this

additional eligibility gate to CRM offers and contract dispatch, including search alternatives on page 4.

Approved starting values per unit: maximum automatic gap 14 nights; short-stay threshold three

calendar months; short-stay booking window 30 calendar days before move-in. These are configurable

business rules, not guaranteed optimal revenue settings.

Calculate the actual preceding gap

Using fresh PMS and binding-contract data, find the start of the continuous available interval containing

the requested move-in. Count the unoccupied nights from that start to move-in, excluding elapsed dates

before today and dates before the unit is operationally available. Do not substitute the number of days

from today for this gap. Count lead time separately from today to move-in in Europe/Zurich. Unknown

availability or an unconfirmed end of tenancy requires review, not an assumed free interval.

Page 129 of 193

Deterministic eligibility rules

If the preceding gap is 14 nights or less, offer normally subject to all other rules. If the gap exceeds 14

nights and the fixed stay is shorter than three calendar months, defer a binding offer when move-in is

more than 30 days away; at 30 days or less it may be offered after all checks pass. If the gap exceeds 14

nights and the fixed stay is at least three calendar months, require human approval. Open-ended

requests with a larger gap also require review; never assume they guarantee three months of revenue.

Existing open-ended rental terms remain unchanged.

Alternatives, waiting list and guest expectations

First search other suitable units or clearly labelled alternative dates that pass the same gate. With the

prospect's consent, retain a deferred enquiry with desired dates, preferences, reason and next review

date. Clearly explain that the requested stay cannot yet be confirmed and that later availability is not

guaranteed. A deferred enquiry creates no reservation, inventory block or contract dispatch. Do not

describe a commercially deferred unit as physically occupied.

Automatic reassessment

Page 130 of 193

For a deferred short stay, schedule reassessment when the 30-day window opens. Also reassess relevant

enquiries after confirmed bookings, cancellations or approved date changes alter the preceding gap. A

newly booked intervening stay may make the enquiry eligible earlier. Recheck dates, full-stay

availability, prices, contact permission and all other gates before notifying the prospect or preparing a

contract. Deduplicate reminders and stop on withdrawal, booking or contact block; use existing sending

modes and permitted hours.

Example, exceptions and channel scope

Example: occupied through September, then continuously free, with a one-month January request. While

outside the 30-day window, defer the request and offer alternatives or the consent-based waiting list.

Recheck in early December at the exact date-based trigger, or earlier if intervening bookings reduce the

gap to 14 nights or less. Owner-approved exceptions must record who, why and which dates. Existing

confirmed bookings are never cancelled by this rule. Do not assume Airbnb/Booking instant bookings

obey the CRM gate; the developer must assess supported channel restrictions and obtain approval

before changing them.

Page 131 of 193

Acceptance and operational visibility

Display preceding gap, lead time, stay length, policy version, eligibility result and next review date. Test

14 versus 15 nights, 30 versus 31 days, exactly three calendar months, open-ended stays,

already-vacant units and missing prior bookings. Test an intervening booking that enables an early offer,

a cancellation that removes eligibility, duplicate rechecks, withdrawn consent and an approved

exception. Revalidate immediately before contract dispatch. Review actual occupancy and

declined/deferred demand with Pearlstay before adjusting thresholds.

35

Version 2.10 - 15 October 2026 - Developer specification

PEARLSTAY / CORPORATE AI + CRM

36 / MULTICHANNEL GUEST ENQUIRIES

Central inbox and WhatsApp handover

Scope and connected accounts

Centralise inbound rental enquiries from Tutti, HousingAnywhere, Flatfox and Comparis, including

Homegate and ImmoScout24 enquiries from Tutti crossposting. Connect the relevant email accounts

individually where supported. Retain receiving account, portal, source listing, reply address,

Page 132 of 193

thread/message IDs, attachments and original content. Keep this guest-enquiry workflow separate from

Account inventory and channel capability proof

Map every portal account, mailbox and listing to the correct CRM unit. For each channel, verify whether

notification emails contain the complete enquiry, whether email replies reach the prospect, and whether

an official integration supports messages or attachments. Check portal conditions, including

multi-account use and external contact sharing. Where supported sending is unavailable, provide a draft,

Extraction, deduplication and identity

Extract supplied contact details, requested dates and unit references, with uncertain fields sent to

review. Deduplicate repeated notifications and crossposted copies of the same enquiry while preserving

sources. Link verified contacts across channels but retain separate requests for different dates or units; a

similar name is not sufficient to merge people. Ensure only one active response workflow for a matched

enquiry and never reply to a notification sender as if it were the guest.

Default WhatsApp handover

Where permitted, answer through the working original channel with a clickable WhatsApp link and a

Page 133 of 193

prefilled message containing an opaque enquiry reference, not private guest details. Keep email or

portal support available for people without WhatsApp. If a phone number and valid contact opt-in are

documented, an approved WhatsApp Business Platform template may initiate contact. A supplied phone

number alone is not permission. Record consent source and time; do not infer it from a portal

notification.

Conversation linking and duplicate prevention

A clicked link is not a received WhatsApp message. Start the WhatsApp workflow only after the user

sends a message and the enquiry is safely matched; ambiguous matches require clarification. An

enquiry reference links context but does not authenticate access to sensitive booking data. On verified

handover, stop duplicate portal/email reminders and continue with the existing guest workflow and

current availability checks. Respect opt-outs, sending modes, template requirements and

service-window rules.

HousingAnywhere PDF handover

Pearlstay reports that sending its existing PDF containing the WhatsApp number has been tested

Page 134 of 193

successfully and the guest can see the number. Include that PDF as the intended HousingAnywhere

Rollout, acceptance and costs

Start with mailbox ingestion, mapping, deduplication and drafts; enable sending per channel after

end-to-end tests and approval. Test all mailbox/portal routes, crossposting duplicates, missing phones,

absent opt-in, no-reply addresses, failed sends, PDF attachments, WhatsApp handover, unmatched

references and human takeover. Reconcile uncertain sends before retrying. Deliver account/channel

mappings, permitted routes, templates, PDF version, test results, recovery steps and total recurring

4. User Personas

Pearsley is a corporate AI + CRM for short-stay property operations. It automates standard cases end to end while minimising incorrect actions, and routes anything that needs judgement into a consolidated exception queue with evidence and a proposed next step. No unmeasured automation percentage or zero-error production guarantee is implied, and all existing business rules remain mandatory unless expressly revised in version 2.5. The human roles below are the active actors established by the specification; systems such as AbaNinja, WhatsApp and the AI itself are supporting actors, not personas.

Page 135 of 193

4.1 Operations Staff (CRM Users)

Operations staff work in a single operational workspace covering prospects, tenants, units, contracts, communication, receipts, accounting exceptions and rent collection. AbaNinja remains the accounting system behind this interface, so routine uploads, review decisions, payment checks and reminder handling must be available in the CRM; a link to AbaNinja alone is insufficient. Specialist accounting configuration and closing may remain in AbaNinja.

Their core goal is to resolve standard cases automatically and spend human attention only on exceptions. In the exception-first CRM they see one queue showing case, tenant/unit, severity, reason, source evidence, proposed action, owner and next deadline. They can correct, approve, reject, pause or retry only within their role. Duplicates are grouped and full history is preserved, and each item links to the original documents and integration records. Success is observable as a queue where every item has an owner, a proposed next step and a next deadline, and where routine cases never reach the queue at all.

Page 136 of 193

4.2 Cleaners

Cleaners are assigned tasks and use a mobile-friendly CRM view showing unit, authorised access information, task date/window, checklist, photo upload, notes and status. Each person is restricted to assigned tasks and necessary data, under a separate staff permission for operational access; guest payment records and other tenants' information are never exposed.

Routine cleaning requests may be forwarded automatically, with no additional charge, to the assigned cleaner via WhatsApp, subject to the global mode. The forwarded message contains the accommodation, the problem and the necessary details. Appointments are confirmed to guests only after the cleaner accepts. Success is observable as an accepted task with completed checklist, photos and status, without the cleaner seeing anything beyond the assigned unit.

4.3 Tradespeople

Tradespeople receive maintenance work routed by the AI, but unlike cleaners they still require individual approval before work proceeds. Their access to unit and task information follows the same restriction principle as cleaners: only what is necessary for the assigned job.

Page 137 of 193

4.4 Guests and Tenants

Guests and tenants are the people the operation serves. They ask general questions and seek guest support, and the AI answers as much as possible independently. Prospects may receive public property information, while Wi-Fi details and internal guest instructions require the appropriate access. Tenants sign contracts and complete identification, including supported foreign identity documents relevant to actual tenants; mobile signing, identification and any manual fallback are tested, and account/app requirements, languages and fallbacks are recorded. Declined or expired cases are also tested.

When a requested stay cannot be confirmed, the guest is told clearly that the stay cannot yet be confirmed and that later availability is not guaranteed. With the prospect's consent, a deferred enquiry is retained with desired dates, preferences, reason and next review date. A deferred enquiry creates no reservation, inventory block or contract dispatch. Before that point, the first search looks for other suitable units or clearly labelled alternative dates that pass the same gate.

4.5 Ownership and Handover Roles

The specification requires named technical maintainers and business decision owners, with support arrangements and incident response targets defined before launch. Specialist accounting configuration and closing stay with the accounting specialists. These are accountability roles rather than day-to-day CRM personas; the operational detail of who fills them is a launch-readiness decision, not a product behaviour.

Page 138 of 193

4.6 Supporting Actors

The AI answers guest questions, forwards routine cleaning requests and routes exceptions. AbaNinja holds the accounting system of record. WhatsApp carries cleaner notifications. These systems act on behalf of the human roles above and do not hold goals, permissions or responsibilities of their own.

5. Core User Flows

Page 139 of 193

5.1 Journey 1 — Accommodation Search and Prioritisation

Trigger: A prospect contacts Pearsley through WhatsApp with an accommodation request, or an existing guest starts a new search or asks to extend a stay. Actors: Prospect/guest, Pearsley AI, staff for escalation and approvals.

  1. The AI authenticates the incoming WhatsApp message, deduplicates by message ID and loads context, distinguishing a new search, general question, existing booking or other request. Known information is not asked again. Landlord enquiries, job applications and unrelated requests go to staff.
  2. It collects location, move-in date, number of people and rental duration. Duration is either a specific move-out date or open-ended; an already stated open-ended duration is not replaced by a question about a move-out date. No budget is requested. The AI uses the guest's language, a friendly concise tone and mirrored formal/informal address, starting with formal “Sie” if the appropriate German form is unclear. Voice messages are transcribed and images assessed, with targeted questions where needed.
  3. It considers only active, uniquely mapped units within maximum occupancy and rechecks availability before sending. Availability is determined by Beds24 AND binding contracts; occupancy in either source blocks the period, and an empty Beds24 calendar does not override a signed contract. Conflicting occupancy data is never reported as availability: the period is blocked and a resolution task created.
  4. It prioritises the requested location; if fewer than three suitable matches exist, options within a 30 km radius are added with actual location and distance stated. The requested accommodation type is prioritised and other types clearly labelled as alternatives. Private versus shared kitchen and bathroom are explained; explicit requirements such as no shared bathroom remain binding.
Page 140 of 193
  1. Initially up to three suitable options are shown with key details, approved price and website link; further matches remain available on request and this is mentioned briefly. The guest is not flooded with follow-up messages. A full stay in one unit is preferred; otherwise two accommodations with no more than one move may be offered when both segments connect without gaps, are available and have operationally compatible check-out/check-in times.
  2. If no solution exists for the requested date, alternative move-in dates are always offered, even if the guest described the date as fixed; the deviation is clearly stated and the requested date is not silently overwritten. Fixed-term temporary solutions with a clear end date may be offered, with the contract process starting only after the guest agrees to the shorter stay; no subsequent accommodation or extension is promised.
  3. Open-ended offers have no minimum rental duration and four weeks' notice effective at month-end. Units suitable for open-ended rental without a conflicting subsequent booking are offered first; otherwise fixed-term temporary alternatives are added. Open-ended availability is not inferred solely from a calendar free for a finite period. Open-ended rentals are blocked two years ahead; the end of this block is not the end of the contract, and the unit continues to be treated as occupied on an open-ended basis.

Result: The prospect receives a ranked set of suitable options with deviations clearly presented; no match may violate an explicit requirement. Failure/recovery: If an offered unit is allocated to someone else, affected prospects are informed according to the sending mode and offered alternatives; open contract processes are flagged for review. Continuation: The prospect may request further matches, accept an option, raise a price objection (Journey 2) or join the waiting list.

Page 141 of 193

5.2 Journey 2 — Follow-ups, Waiting List and Price Objections

Trigger: An offer has been sent, a form link has been sent, a contract has been sent by email, a viewing date is known, or the prospect raises an explicit price objection. Actors: Prospect, Pearsley AI, staff for case approval.

  1. Offer sent, no response: one general follow-up seven days after the last relevant interaction, only if there is no decline, booking, waiting-list entry or pending staff decision. No second general follow-up.
  2. Form link sent: one reminder after two days if the form is still missing and the accommodation is available; no general follow-up in this phase. Contract sent by email: one reminder after two days if the guest has not signed and the accommodation is available, stopping at signature. Viewing date known: one question on the following day whether the prospect is interested in renting, provided there has been no response, decline or contract processing; no additional seven-day follow-up.
  3. Price objection: the general seven-day follow-up is omitted and no automatic discount follows after seven days. If the accommodation is already vacant, the stored discounted price may be offered immediately after the objection; move-in must be no later than 14 days after the vacancy starts, or within the next 14 days if already vacant. For an earlier objection, the AI contacts the prospect again automatically at the permitted time without first asking, provided a suitable unit remains available, move-in is eligible and there has been no final decline, booking or contact block.
  4. Prices, early/late times and paid cleaning remain within explicit limits; otherwise case approval is obtained. Multi-person prices require an applicable approved price rule or case approval. No valid occupancy tier produces no invented price.
Page 142 of 193

Proactive sales and reminder messages may be sent only from 09:00 to 19:00 Europe/Zurich; replies are possible around the clock, and scheduled check-in messages follow their own rules. Result: Follow-ups are sent only when permitted; the prospect responds, declines, books or is added to the waiting list. Failure/recovery: A final decline (“Not an option”, “I have found something”, or a request to stop contact) ends the corresponding sales messages; an explicit contact stop blocks proactive messages, and a new incoming support question may be handled but does not reactivate a sales campaign. If discount conditions are not met, no discount is offered and the general follow-up rules apply. Continuation: The prospect may accept, decline, remain on the waiting list or proceed to the contract process (Journey 3).

Page 143 of 193

5.3 Journey 3 — Rental Contract and Binding Booking

Trigger: The prospect expresses interest in renting. Actors: Prospect, Pearsley AI, staff via dashboard actions, existing email process.

  1. Form received: the contract is created in the dashboard, form receipt is available as an event, and further offers and general follow-ups for this search are paused. The price is entered and the contract populated from the validated offer snapshot, discount reason and approval/policy ID. Dates, fees and price are compared before dispatch; discrepancies are routed to review with no routine re-entry.
  2. Contract sent: the existing process sends an email for the guest's signature; the dashboard dispatch status controls the two-day reminder. Guest signed: the existing email informs staff, no additional AI notification is needed, no more signature reminders are sent, and the unit is not yet booked.
  3. Countersignature: the dashboard status is the binding booking signal. The guest automatically receives the contract and payment instructions by email; the AI stops sales and contract reminders and switches to guest support. The booking is automatically written to Beds24 and verified by readback. Contract states per unit are FORM_LINK_SENT → FORM_RECEIVED → CONTRACT_SENT → GUEST_SIGNED → COUNTERSIGNED; only COUNTERSIGNED means booked. If the unit is allocated to someone else, the process becomes REVIEW_REQUIRED instead of unilateral contract deletion.
Page 144 of 193
  1. No firm reservation before countersignature: until then the unit may continue to be offered to other prospects and no firm reservation is promised. Immediately before countersigning, availability and competing contracts are rechecked; two simultaneous internal commitments allow at most one success, and the technical check must prevent double commitments or block the process for a manual decision. An external-channel conflict blocks or follows the proven conflict procedure. Offer changes before contract dispatch must not produce stale terms; a policy revoked before sending stops the queued action. Received-payment status must be backed by bank evidence and verified allocation.
  2. Multiple contracts: a stay involving one move uses two contracts, one per accommodation, one deposit (the same amount everywhere) and final cleaning for each accommodation. Multiple rooms simultaneously use one contract per room, with deposit and final cleaning per room and price approval for two or more people. The entire combination is secured only once all associated contracts are countersigned; already countersigned parts remain individually booked, open parts are highlighted in the dashboard, and partial bookings of grouped contracts are handled individually.

Result: Countersignature is the binding booking signal; the guest receives the contract and payment instructions and the AI switches to guest support. Failure/recovery: If an offered unit is allocated to someone else, affected prospects are informed according to the sending mode and offered alternatives; open contract processes are flagged for review. Continuation: Payment status is tracked against bank evidence and verified allocation. A fixed-term extension uses a new contract and the same form/signature process, with price approval required for two or more people. An open-ended termination records the request, applies four weeks' notice effective at month-end with no minimum rental duration, and becomes binding only after staff approval; only then is the superseded Beds24 entry updated.

Page 145 of 193

5.4 Journey 4 — WhatsApp, Support and Secure Access

Trigger: An inbound WhatsApp message, a general question, an operating problem, a payment question or an access request. Actors: Guest/prospect, Pearsley AI, staff.

  1. The AI authenticates the message, deduplicates by message ID and loads context, then waits 20 seconds after the last incoming message, restarting the period for each additional message; recognised emergencies bypass the wait while sending mode and hard rules still apply. A new guest message updates the open draft and blocks the old version. A staff reply discards the open AI draft and is added to context; the AI responds to the next guest message according to the global mode. Automatic sending requires the process policy, all hard checks and a calibrated threshold; uncertain cases become review drafts. Global drafts-only overrides every external message, while in automatic mode each process is set to automatic, review or disabled and internal tasks and alerts remain independent.
  2. The AI answers general questions from approved data, records complaints and faults, tries stored solutions, provides safe stored instructions, requests photos or further information where useful, and creates internal tasks when unresolved or outside its authority; acute danger is prioritised immediately. It explains payment instructions and confirms receipt only from reliable contract-system status or authenticated bank evidence with verified allocation to the correct obligation. Refunds, disputed amounts, security-deposit refunds and decisions outside the AI's authority go to staff.
  3. Secure matching and information tiers: before protected information is provided, the phone number and booking are uniquely matched; a booking number alone is insufficient. Unknown or different numbers receive only general questions, and unclear cases go to manual review. Prospects may receive public property information; Wi-Fi and internal guest instructions require the appropriate booking context; access codes additionally require time and payment conditions to be met.
Page 146 of 193
  1. Arrival, payment and departure: on arrival day at 09:00 Europe/Zurich, arrival information without a code is sent to the matched guest, and the Guest Instructions video may be included because it contains no access code, subject to the global mode. At the stored check-in time, the access code is released only after countersignature, unambiguous guest matching and actual receipt of the required payment. Payment verification is a hard condition: the integration must determine which amounts are required for move-in and whether they have been received in full, without confusing future monthly rents not yet due with move-in amounts. If status is unclear, the code is not released and internal clarification is sought. On the day before move-out at 17:00, check-out time and instructions are sent after confirming that move-out still applies; for an open-ended contract this occurs only after the tenancy end has been approved.
  2. Early arrival and after move-out: early arrival is confirmed only within an approved early-arrival policy or case approval, with verified readiness and all payment and identity gates; the permitted time for the booking is recorded, subsequent bookings and confirmed cleaning capacity are checked, approved time/price limits are used or case approval obtained, and the change is recorded. Lodgify sends final-cleaning notices until cutover; at migration exactly one tested sender in Beds24 or the CRM is enabled and the old sender disabled. Support may continue after move-out; access codes must not be resent.

Result: The guest receives accurate, policy-compliant support; access is released only when all gates are met. Failure/recovery: Unclear payment status blocks code release and triggers internal clarification; unresolved complaints become internal tasks; acute danger is prioritised immediately. Continuation: The guest remains in support; knowledge changes proposed by the AI are adopted permanently only after staff approval, and booking-specific exceptions are never applied to other guests without review.

Page 147 of 193

5.5 Journey 5 — Viewing Coordination and Operational Work

Trigger: A prospect requests or is proposed a viewing, a routine or paid cleaning need arises, or a case requires staff approval. Actors: Prospect, guest, Pearsley AI, cleaner/tradesperson via WhatsApp, current tenant for tenant-led viewings, staff via dashboard.

  1. Viewing: the AI identifies the responsible cleaner and WhatsApp number from Sheets, asks the prospect for suitable times and coordinates with the cleaner; the appointment, address and unit are confirmed only after both parties agree. If the cleaner has not replied after 24 hours, the AI reminds them once; after another 24 hours a staff task is created, and a sooner requested appointment is handed to staff sufficiently in advance. Once the viewing date is known, the AI asks once on the following day whether the prospect is interested, omitting the message after a decline, reply or start of contract processing; cancelled and rescheduled appointments are updated. For tenant-led viewings, the current tenant's number is shared only for the specific unit and current tenancy with the relevant prospect, never published generally and no other tenant data disclosed; the prospect coordinates directly with the tenant, the AI asks to be informed of the agreed appointment, no viewing-related follow-up is scheduled without a known appointment, and explicit conflicts over sharing the number go to staff. Messages to cleaners are subject to the global mode; a manually prepared draft is not yet an appointment request and the 24-hour period begins only after actual sending; replies must be assigned to the correct viewing process. A viewing does not reserve the accommodation.
Page 148 of 193
  1. Cleaning: routine no-charge cleaning requests may be forwarded automatically to the assigned cleaner via WhatsApp, subject to the global mode, with accommodation, problem and necessary details; appointments are confirmed to guests only after acceptance. Paid cleaning may be commissioned only within an enabled owner-approved service/price policy, after guest acceptance, or with case approval; missing prices or supplier capacity require review.
  2. Mobile cleaning workspace: assigned cleaners see only unit, authorised access information, task date/window, checklist, photo upload, notes and status, restricted to assigned tasks and necessary data, under a separate staff permission; guest payment records and other tenants' information are never exposed. Task states are planned, assigned, accepted, in progress, completed, review required and cancelled; who did what and when is captured, required checklist items and photo evidence are defined per task, and missing evidence enters review.
  3. Approvals and urgent tasks: each case shows facts, proposed solution, reply draft, source and, where applicable, confidence/review reason; actions are approve, edit or reject, and status and data are rechecked before sending. For a locked-out guest, water leakage or other acute problems, the AI immediately creates a prioritised task plus a push notification containing accommodation, problem and case link; no WhatsApp alert is sent to staff, and if not acknowledged after ten minutes a second push is sent. Acknowledgement does not mean resolution.
Page 149 of 193

Result: Cleaning and trades are dispatched within policy and approvals are handled with full context. Failure/recovery: Missing prices or supplier capacity require review; unacknowledged urgent tasks receive a second push after ten minutes; missing cleaner replies escalate to staff after 24 + 24 hours; conflicts over number sharing go to staff. Continuation: The AI monitors the case until resolved or escalated; if the prospect is interested in renting, the validated contract process starts (Journey 3), price objections follow the discount rules (Journey 2), and a final decline ends sales messages.

5.6 Journey 6 — Rent, Bank and Accounting Evidence

Trigger: A rent obligation reaches its due date and the configured grace period elapses, a booked incoming payment is imported from the bank feed, or a supplier/accounting document is received. Actors: Tenant, Pearsley AI, Pearlstay staff via CRM, AbaNinja, bank feed/bank integration.

  1. Obligation generation and payment import: each rent obligation is generated once from the contractual terms, including recurring months and approved changes, carrying its currency and evaluated with deterministic decimal arithmetic. Booked incoming transactions are imported automatically from an authenticated bank feed or bank statement, exposed through AbaNinja or an approved bank integration, preserving stable transaction IDs and distinguishing booked from pending. Matching proceeds by unique payment/reference ID and contract, then by verified payer details and amount; an ambiguous match creates a review task and allocation is never made on a similar name alone. Split payments, combined payments, overpayments, reversals and approved manual allocations with bank evidence are supported; a transaction cannot be allocated beyond its available amount, unallocated receipts remain visible, and a reversed receipt reopens the affected balance. Stale or incomplete feeds are detected and a technical outage is never interpreted as non-payment.
Page 150 of 193
  1. Arrears detection and notification: after the due date and configured grace period, obligations with status UNPAID or PARTIALLY_PAID and a remaining balance are identified, and reconciliation is repeated immediately before sending. Stale or incomplete bank feeds, unresolved matching, disputed charges or an approved payment plan route to review or pause the applicable reminder. For a verified overdue balance, a concise WhatsApp reminder is prepared or sent in the tenant's language, subject to the global mode and the 09:00–19:00 Europe/Zurich window, including rental period, amount due, amount received, exact remaining balance, due date and verified payment information; a guest screenshot or payment promise does not establish receipt. At first detection a CRM arrears case is created and designated Pearlstay staff are notified by in-app notification plus push with tenant, unit, period, balance and case link, and again at configured escalation stages; this is an explicit extension of the routine-notification rule and the urgent ten-minute repeat rule does not apply to ordinary arrears. No automatic fees or legal notices are issued.
  2. Delivery ownership and closure: one sending owner is designated to avoid duplicate CRM/AbaNinja reminders. Queued reminders are cancelled when payment settles; after a partial payment the balance is updated and the next reminder re-evaluated; the case closes when fully settled, retaining history. In drafts-only mode the tenant reminder remains a draft while internal arrears notifications still occur. Required CRM views distinguish expected rent, received rent, remaining balances and overdue days by month, property, unit and tenant, and separate future amounts, overdue amounts and unallocated receipts; receipt/booking review queues, accounting sync errors, income/expense summaries sourced from AbaNinja and a tenant ledger with documents, payments and reminder history are provided, with cash receipt labelled separately from accounting income.
Page 151 of 193
  1. Accounting documents: approved accounting rules propose the account, tax code and property/cost allocation, and validate totals, required fields, currency, duplicates and supplier mapping. Documents passing the approved rules are transferred and booked automatically; uncertain, incomplete or exceptional items enter a CRM review queue exposing the original document, extracted values, booking proposal and validation reason side by side, where staff can correct, approve or reject. Final status comes only from an acknowledged AbaNinja operation; a successful OCR run or upload does not mean the document has been booked. A duplicate or retry creates no second booking, and failed items remain visible and can be retried safely.

Result: Verified overdue balances produce a tenant reminder and a CRM arrears case with staff notification; settled balances cancel queued reminders and close the case; valid documents are booked once in AbaNinja with source and confirmed booking shown in the CRM. Failure/recovery: Ambiguous or combined payments and bank outages create a review/sync task instead of a false arrears message; a reversal reopens the correct balance; repeated events never duplicate allocations or alerts. Continuation: The case remains open until fully settled; booked documents feed the income/expense summaries and the tenant ledger.

5.7 Journey 7 — Phone Menu and Callback Handling

Trigger: An inbound telephone call. Actors: Caller (prospective or current guest, or other caller), Pearsley AI, designated human contact or team, Pearlstay staff via CRM.

Page 152 of 193
  1. The DTMF menu announces two clearly announced categories: press 1 for booking enquiries or an existing stay; press 2 for other matters. Option 1 explains that callers should message the same number they have just called on WhatsApp, and may optionally offer an SMS with the verified WhatsApp link on explicit keypad request; sending the link does not create a WhatsApp conversation or permission for marketing.
  2. Within the guest route, a key reaches a human for urgent stay-related problems, including being locked out, and a callback option is offered for callers unable to use WhatsApp; these callers are not forced into a messaging-only loop. The responsible contact, coverage hours and escalation sequence are defined with Pearlstay, and continuous human availability is not promised unless staffed.
  3. Option 2 transfers to the designated person or team. If the transfer fails or nobody answers, voicemail is offered and a CRM callback task is created with the selected route, time, caller number if available and message reference. Urgent guest callbacks are priority tasks with an immediate internal alert and agreed escalation. Hidden caller IDs require a callback number to be supplied; identity is not guessed.
  4. Invalid or missing keypad input is repeated once, then human/callback fallback is offered rather than ending in a dead end. Both main routes, urgent guest transfer, no-WhatsApp callback, unanswered/busy destinations, out-of-hours behaviour, hidden numbers, invalid input, failed SMS and duplicate events are tested; the SMS link must open the correct WhatsApp account and an actual guest message must enter the existing CRM workflow. The approved menu script, routing diagram, staffing/escalation settings and cost are delivered. A conversational AI voice agent, speech-based intent classification and automated outbound calls are not included.
Page 153 of 193

Result: Callers are routed to WhatsApp, a human or a callback task according to their selection. Failure/recovery: Failed or unanswered transfers fall back to voicemail and a CRM callback task; invalid input is repeated once before human/callback fallback. Continuation: Guest messages enter the existing CRM workflow; callback tasks remain open until handled.

5.8 Journey 8 — Listing Intake and Review

Trigger: A listing alert arrives in the designated Gmail inbox. Actors: Pearsley AI, Pearlstay staff.

  1. The system imports listing alerts for Homegate, ImmoScout24 and Flatfox, preserving original emails, message/thread IDs, listing links and source timestamps. Editable keyword and location exclusions support cases such as replacement-tenant wording or excluded locations.
  2. Excluded records and their reasons remain reviewable. Failed parsing enters a review queue; absent property details are not invented.
  3. Pearlstay reviews each listing and selects interested, deferred or rejected, with the selected outcome and source evidence remaining linked to the listing.

Result: Each imported listing is either excluded with a reviewable reason, queued for parsing review, or assigned a review outcome. Failure/recovery: Failed parsing enters the review queue rather than producing invented details. Continuation: Selected listings remain available for Pearlstay's follow-up decisions.

Page 154 of 193

5.9 Journey 9 — Integration Commitments, Migration and Recovery

Trigger: A Beds24, channel, accounting or provider operation is requested, a migration or cutover is prepared, or a restart/outage leaves an unclear outcome. Actors: Pearsley AI, Pearlstay staff, external integrations (WhatsApp, Beds24, AbaNinja, bank feed, channels, PriceLabs, Lodgify).

  1. Beds24 operations: unit mapping, current availability, booking/block creation and amendment, open-ended block extension and termination updates are verified, the result read back, and duplicate/timeout handling reconciles external success before retrying. It is confirmed how changes reach connected channels and which system owns cleaning notices. A timeout after external success is read back and not duplicated.
  2. Migration preparation: before switching, future bookings, amendments, cancellations, manual blocks, open-ended tenancies, guest records needed for operations, prices, restrictions and existing automations are exported and reconciled. Original channel booking IDs and source ownership are preserved to prevent duplicate imports. PriceLabs mappings and supported discounts are confirmed, and exactly one sender is assigned for guest messages and cleaning notices; any Lodgify-hosted website, forms or other used functions are moved before cancellation.
  3. Controlled production switch: a unit-by-unit runbook and agreed cutover window are prepared, a final delta of changes since export captured, competing inventory writes suspended and availability protected during handover. Each live listing is transferred to the new provider in the platform-supported sequence, and existing and newly arrived reservations, blocked dates, prices and restrictions are reconciled in Beds24, the CRM and both channels.
Page 155 of 193
  1. Acceptance, rollback and cancellation: a direct-contract block, platform booking, amendment, cancellation, PriceLabs update and scheduled notification are tested end to end, monitored against agreed freshness/error limits and signed off by Pearlstay. Rollback triggers and how changes received during the switch are preserved before returning to Lodgify are documented. Lodgify is cancelled only after complete verification, required exports and replacement of all used functions; development of the CRM alone is not a cancellation reason. A tool is cancelled only after all required functions pass acceptance, data/history are exported or migrated, dependencies are moved and Pearlstay approves, accounting for overlapping subscription periods.
  2. Restart and recovery: deduplication uses message ID, search process, offer snapshot and automation purpose; a new technical offer_id alone does not make an unchanged offer new, and repeated webhooks must not trigger duplicate tasks or messages. If the sending outcome is unclear it is reconciled first instead of blindly resending. Preconditions are carried with the draft, and if price, occupancy, payment, dates or relevant rules change the draft is rechecked and recreated if necessary. Due jobs resume after a restart but obsolete reminders are discarded; restart with due reminders resumes only still-valid jobs. Immediately before sending, sources, draft version, global setting, time window, blocks and approvals are rechecked; sending occurs through the outbox, the delivery/API result is stored and dependent timers start only after actual dispatch. A late bank event or payment just before dispatch triggers a recheck and cancellation or update of the reminder. A technical error is distinguished from no match, and a technical outage is never interpreted as non-payment or availability.
Page 156 of 193

Result: External operations are verified by readback, migration preserves data and ownership, and recovery reconciles unclear outcomes before resending. Failure/recovery: Duplicate webhooks, unclear sends and stale drafts create reconciliation rather than duplicate action; external-channel conflicts block or follow the proven conflict procedure. Continuation: Normal processing resumes with deduplicated, rechecked drafts and jobs.

Page 157 of 193

5.10 Journey 10 — New-Build Project Intake and Outreach

Trigger: A new-build project export from Olmero is uploaded, or a repeated export updates existing projects. Actors: Pearsley AI, Pearlstay staff, shared contact database, Gmail sending and follow-up engine.

  1. Excel intake and import preview: the manual Olmero Excel export is retained and uploaded to the CRM with column mapping, validation and preview before committing. The source file, import batch, source project ID where available, original values and import time are preserved. Project name, location, phase, planned completion date, source link and supplied Bauherr and architect-office contact details are captured. Missing or invalid fields are flagged; contacts are never invented.
  2. Contact selection: exactly one outreach contact per project is selected using deterministic rules: (1) if a usable Bauherr contact is supplied, always select the Bauherr, even when an architect is also listed; (2) only if no usable Bauherr contact is available, select the architect office if usable contact details are supplied; (3) if neither is usable, mark Not usable - missing contact details and exclude the project from outreach and follow-ups. For email outreach, a name or telephone number alone is not a usable email contact.
  3. Single recipient and controlled changes: the selected primary contact, role and selection reason are shown before approval. The Bauherr and architect are not contacted in parallel, including as CC/BCC recipients. Other supplied contacts are stored as reference only. A reply, rejection or bounce does not automatically authorise switching to the other party. If a later import changes the preferred contact after outreach has begun, history is preserved, pending drafts are paused and human review is requested before changing the recipient.
Page 158 of 193
  1. Project matching and safe updates: stable Olmero project IDs are used where present, with controlled matching on project attributes otherwise. Repeated exports update the same project rather than create new opportunities or restart outreach. Changes are previewed and ambiguous matches reviewed. Human notes, pipeline status and history are preserved.
  2. Outreach, replies and long-term follow-up: Pearlstay reviews project suitability and approves first emails and follow-ups at launch. Confirmed-send status changes, duplicate-send prevention and reply/bounce/decline stop rules are reused from the listing pipeline. New-build follow-up intervals are configured separately; existing ClickUp timing is confirmed rather than assuming the listing pipeline's three-day default. Conversation, project assessment, negotiation, won/lost and dated revisit stages are supported, with longer reminders tied to project progress and expected dates.
  3. Migration and acceptance: existing Olmero ClickUp projects, contact roles, selected recipients, statuses, notes, mail references and next actions are migrated. Owner-only, architect-only, both-contact and no-contact imports, incomplete emails, repeated and changed exports, recipient changes after outreach, replies and overdue migrated tasks are tested. Owner priority, no dual outreach and no outreach without a usable contact are proven. Mappings, templates, costs and test results are delivered. A direct Olmero API connection is optional.

Result: Each project has one approved recipient and a controlled outreach history; repeated exports update rather than duplicate. Failure/recovery: Ambiguous matches and recipient changes after outreach require human review; unusable contacts exclude the project from outreach. Continuation: Confirmed sends and replies feed the shared follow-up engine and audit trail.

Page 159 of 193

5.11 Journey 11 — Short-Stay Enquiry, Deferral and Reassessment

Trigger: A short-stay enquiry arrives through a portal, email or other channel, or a deferred enquiry reaches its reassessment trigger. Actors: Prospect, Pearsley AI, staff for review and contract preparation.

  1. Extraction, deduplication and identity: supplied contact details, requested dates and unit references are extracted, with uncertain fields sent to review. Repeated notifications and crossposted copies of the same enquiry are deduplicated while sources are preserved. Verified contacts are linked across channels but separate requests for different dates or units are retained; a similar name is not sufficient to merge people. Only one active response workflow exists for a matched enquiry, and a notification sender is never replied to as if it were the guest.
  2. Default WhatsApp handover: where permitted, the AI answers through the working original channel with a clickable WhatsApp link and a prefilled message containing an opaque enquiry reference, not private guest details. Email or portal support remains available for people without WhatsApp. If a phone number and valid contact opt-in are documented, an approved WhatsApp Business Platform template may initiate contact; a supplied phone number alone is not permission. Consent source and time are recorded and not inferred from a portal notification.
  3. Conversation linking and duplicate prevention: a clicked link is not a received WhatsApp message. The WhatsApp workflow starts only after the user sends a message and the enquiry is safely matched; ambiguous matches require clarification. An enquiry reference links context but does not authenticate access to sensitive booking data. On verified handover, duplicate portal/email reminders stop and the existing guest workflow and current availability checks continue. Opt-outs, sending modes, template requirements and service-window rules are respected.
Page 160 of 193
  1. HousingAnywhere PDF handover: the existing PDF containing the WhatsApp number, tested successfully so the guest can see the number, is included as the intended HousingAnywhere handover. Absent opt-in, no-reply addresses, failed sends, PDF attachments, WhatsApp handover, unmatched references and human takeover are handled; uncertain sends are reconciled before retrying. Account/channel setup is delivered.
  2. Alternatives, waiting list and guest expectations: other suitable units or clearly labelled alternative dates that pass the same gate are searched first. With the prospect's consent, a deferred enquiry is retained with desired dates, preferences, reason and next review date. It is clearly explained that the requested stay cannot yet be confirmed and that later availability is not guaranteed. A deferred enquiry creates no reservation, inventory block or contract dispatch.
  3. Automatic reassessment: for a deferred short stay, reassessment is scheduled when the 30-day window opens. Relevant enquiries are also reassessed after confirmed bookings, cancellations or approved date changes alter the preceding gap; a newly booked intervening stay may make the enquiry eligible earlier. Dates, full-stay availability, prices, contact permission and all other gates are rechecked before notifying the prospect or preparing a contract. Reminders are deduplicated and stop on withdrawal, booking or contact block; existing sending rules apply. Example: occupied through September, then continuously free, with a one-month January request — while outside the 30-day window the request is deferred and alternatives or the consent-based waiting list are offered; recheck occurs in early December at the exact date-based trigger, or earlier if intervening bookings reduce the gap.
Page 161 of 193

Result: The enquiry is answered through the permitted channel, deferred with consent where applicable, and reassessed only when all gates pass. Failure/recovery: Ambiguous matches require clarification; uncertain sends are reconciled before retrying; reminders stop on withdrawal, booking or contact block. Continuation: A passing reassessment notifies the prospect or prepares a contract; otherwise the enquiry remains deferred with a next review date.

6. Visuals Colors and Theme

[Design proposal; unspecified choices are defaults.]

Page 162 of 193

6.1 Visual System — Vignelli Signage for a Rule Engine

Muse: Massimo Vignelli. Headline: PEARLSTAY / CORPORATE AI — One CRM. Traceable rules. No unchecked sends. The interface is information design as public infrastructure: a visible grid, coded colour, and rules that read like wayfinding.

Mode: light. Palette by role (exact tokens): background #FFFFFF; surface #F2F2F0 (ruled panels, table headers, exception queue only); text #111111; primary/signal #D4001A (STOP, drafts-only override, blocked access-code release, critical acceptance violation, emergency pause); accent #0B4EA2 (automatic sending mode, verified payment, countersigned); muted #6E6E6E (metadata, timestamps, version numbers, source labels). Yellow and green are reserved code slots (review mode, waiting list) and must enter as flat primaries, never tints. Colour never decorates; every use maps to a state and always carries a text label.

Typography: one grotesque family throughout — headings and body Archivo. Headings 700–800, flush-left, ragged-right, tracking −0.02em; sentence case for editorial lines, ALL-CAPS at 0.08em tracking for section labels, page markers and mode names. Numbers (versions, page ranges, prices, dates) set in Archivo with tabular figures so 2.10, 22-36 and 09:00–19:00 align in columns. Scale: 1.25 modular, clamped — hero 40→96px, section title 28→48px, subsection 20→28px, body 16→18px, label/caps 12→13px, data table 14→15px. Line-height 1.05 hero, 1.55 body; measure capped at 68 characters.

Page 163 of 193

Shape language: hard edges only — zero border-radius on cards, buttons, inputs. Structure drawn with rules: 2px black under every section header, 1px grey between table rows, 1px red around blocked or draft-only states. Buttons are rectangles with a 1px black border and solid fill on hover. Category chips are squares, not pills. The only circle is a status dot, always beside a text label.

Layout: visible 12-column grid with a persistent left rail (numbered section index 01 / 02 / 03 … mirroring the spec's own page numbering) and a right-hand metadata column for version, date and source. Content sits in the middle 8 columns at 1280px, collapses to one column at 768px, and the rail becomes a horizontal scrollable index at 375px. Sections separated by full-bleed edge-to-edge rules, never boxed cards. Data as ruled tables with aligned label/value pairs. Colour-coded bands (red / blue / grey) span the full content width.

Imagery: diagrams, not photography — schematic line art on the grid: inbound WhatsApp message → authentication → deduplication → intent → hard checks → confidence → send or draft; a wayfinding flow of the contract process from form received to countersignature; a colour-coded map of authoritative sources and their precedence. Where a real photograph is needed (a unit, a cleaner's task), it is cropped hard to the grid, desaturated, and captioned like an exhibit with source and timestamp. No stock photography of smiling guests.

7. Signature Design Concept

[Design proposal; unspecified choices are defaults.]

Page 164 of 193

7.1 Signature Design Concept — The System Diagram as Hero

The public entry is a full-width information poster, not a SaaS hero. Top left, an oversized Archivo headline set flush-left at clamp(40px, 8vw, 96px) stacks PEARLSTAY / CORPORATE AI over One CRM. Traceable rules. No unchecked sends. The right two-thirds of the viewport holds a schematic system diagram drawn in 1px black lines on white: a message enters from the left, passes through labelled gates — AUTH, DEDUPE, INTENT, HARD CHECKS, CONFIDENCE, PRE-SEND RECHECK — and exits either as a blue-bordered AUTOMATIC band or a red-bordered DRAFTS-ONLY band. A 2px red rule runs full-bleed beneath the headline. Version metadata — Version 2.10 · 15 October 2026 · Pages 22-36 — sits bottom-left in 13px caps with tabular figures. No gradient, no blob, no centred stack, no blue button.

Signature moves: the hero as a full-viewport system diagram with labelled gate columns and two colour-coded exit bands; a persistent left rail numbering every section 01, 02, 03 … with the current section marked by a solid red square and a 2px rule; global sending mode as a fixed three-cell strip in the top bar — DRAFTS-ONLY / AUTOMATIC / PAUSED — where the active cell is a solid colour block (red, blue, black) and inactive cells are white with a 1px border, identical on every page; every claim carrying a source line in 12px caps (SOURCE: Contract system · SHEET v2.10 · VALIDATED 15 Oct 2026 14:02 Europe/Zurich) with tabular figures; the exception queue as a ruled table with a 6px severity gutter — red (blocking), blue (review), grey (informational) — and aligned columns for tenant/unit, reason, evidence link, proposed action, owner and next deadline. No cards, no lift.

Page 165 of 193

Avoid: any blue-indigo primary on white (#0057FF, #2563EB, #4F46E5, #6366F1, #7C3AED); the only blue is #0B4EA2 as a coded signal, never a default button; gradient-blob heroes, soft glows, frosted glass, blurred backgrounds; grids of identical hover-lift cards; rounded corners, pill buttons, blob shapes, soft offset shadows; Inter, Roboto, Arial, Helvetica, Open Sans, Lato, Poppins or system-ui as heading or body font; decorative animation, bouncy easing, marquees, parallax; colour as the sole carrier of meaning; stock photography of smiling guests.

Page 166 of 193

8. Interaction Model & Motion Direction

[Design proposal; unspecified choices are defaults.]

Interaction Model: Static (direction) Motion Tempo: still Hero Dimensionality: flat

Landing Hero Motion Brief. Focal subject: the schematic system diagram — inbound message entering the labelled gate columns and exiting as the blue AUTOMATIC or red DRAFTS-ONLY band. Thesis: an inbound message (input) is drawn through AUTH → DEDUPE → INTENT → HARD CHECKS → CONFIDENCE → PRE-SEND RECHECK (transformation) and resolves into exactly one coded exit band (outcome) — using only accepted behaviour, no new states. Motion vocabulary: instant and mechanical — a mode chip flips colour, a rule thickens, a row highlights; no easing theatrics, no parallax, no gradient drift. Composed first frame: headline flush-left above the full-bleed 2px red rule, diagram fully drawn, version metadata bottom-left, sending-mode strip fixed in the top bar. The single purposeful motion is the hero's rule-draw: the 2px line extends across the viewport on load in 400ms linear. Hover states swap fill and text colour with no transition longer than 120ms. Reduced-motion state: the rule appears fully drawn and the diagram is static and complete.

Readable text and controls stay whole at 375px, 768px and 1280px — headlines, wordmarks, labels, numbers and controls wrap or scale (e.g. font-size: clamp(...) with its mobile size) to fit inside the viewport and their container, and no element covers any part of them. Imagery and decoration may crop, bleed, rotate or overlap as the direction asks, provided they cover no readable text or control.

9. Non-Functional Requirements

Page 167 of 193

9.1 Source overview

Acceptance scenarios and technical implementation points

Owner/team data and other guests' data remain internal, except for the defined viewing contact.

Restrict document and financial access by staff role. Keep credentials server-side, log changes and

Reliable messages and writes

restoration, secret recovery and workflow resumption. Approve recovery-time and data-loss targets

before production; perform a documented restore drill.

automated unit tests for arithmetic, date boundaries, eligibility and state transitions; integration tests for

adapters; and end-to-end tests for complete workflows. Store representative anonymised conversations,

documents and expected outcomes.

Test partial, combined, unallocated and reversed payments; duplicate receipts; stale data;

daylight-saving changes; month ends; and open-ended block rollover.

AI and access tests

Test ambiguous dates, contradictory messages, unknown phone numbers, wrong-unit requests and

malicious instructions embedded in guest text or documents. Such content cannot change rules, retrieve

Page 168 of 193

another tenant's data or authorise tools. Test malformed/refused model responses and missing source

facts. No code may enter model context or be sent before all identity, payment, contract and time gates

pass.

Deployment stages

  1. Integration proof. 2. Master data and deterministic workflows. 3. Shadow mode on representative

cases with external side effects disabled. 4. Staff-reviewed operation. 5. Activate approved processes

individually after their tests pass. 6. Monitor and expand. Retain automatic rollback to review for affected

processes and a global stop control.

Release criteria

Require zero observed critical violations in the agreed acceptance suite: unauthorised access, duplicate

financial postings, incorrect binding prices, false arrears caused by known stale data, and internal double

commitments. This is a release gate, not a guarantee of zero future errors. Fix and rerun failures before

activating the affected process.

Model and rule updates

Version prompts, model configuration, extraction schemas, templates and rules. Run the representative

Page 169 of 193

regression suite before changes reach production. Compare results and retain a rollback version. A

model upgrade or a second model is not a substitute for deterministic validation.

Version 2.5 - 14 October 2026 - Developer specification

26

Measure the outcome

Report straight-through completion as eligible cases completed without staff intervention divided by

eligible completed cases, separately per process. Also report coverage across all cases, escalation rate,

incorrect actions, corrections after dispatch, false arrears, duplicate effects, sync lag and manual

minutes per case. State sample size and observation period. Confidence scores are not measured error

rates.

Tenant usability and reliability

Test mobile signing, identification and supported foreign identity documents relevant to actual tenants.

Record account/app requirements, languages and any manual fallback. Test declined or expired

requests, failed identification, timeouts, duplicate events, retries and document retrieval. Retries must

Page 170 of 193

guest or authorise disclosure. Keep call metadata and voicemail access restricted; no live-call recording

comparison, test evidence and administrator handover. Preserve all existing WhatsApp and guest-data

safeguards.

Acceptance, costs and handover

Prove repeated imports create no duplicates; filters are editable and traceable; distinct units are not

merged; confirmed sending advances one stage and creates one timer; failed sends do neither. Test

replies before a scheduled send, bounces, blocked contacts, unrelated threads, manual Gmail sending

and migrated overdue tasks. Verify one active workflow after cutover. Deliver field/status mappings,

10. Tech Stack

Page 171 of 193

10.1 Source overview

Technical references (checked 13 October 2026): AbaNinja API guide; bank files; receipts; DeepBox processing. OCR

One operational platform

Use one CRM interface, a transactional relational database (PostgreSQL preferred), a durable workflow

engine and authenticated integration adapters. Temporal is the preferred workflow engine where the

Reference documentation

Implementation references: docs.temporal.io; developers.openai.com/api/docs; docs.abaninja.ch;

wiki.beds24.com/index.php/API_V2.0; beds24.com/api/v2; help.pricelabs.co. Verify current

Specialist services to retain

Retain a proven channel manager under the Beds24 migration plan, AbaNinja as the accounting system

and suitable email, file storage and backup infrastructure. Keep a signature service where the required

completion status in the CRM. Use a replaceable provider adapter; avoid browser automation for the

core signing workflow.

11. Assumptions and Constraints

Page 172 of 193

11.1 Source overview

Source documents

Pearlstay_Datenfluss_Unterkunftssuche(1).pdf

Pearlstay_Datenfluss_Allgemeine_Wohnungsfragen(1).pdf

Pearlstay_Gespraechszustaende(1).pdf

Consolidated successor document. The three original PDFs are retained as the initial version.

remain in force. This specification describes the target system; integrations are not yet verified.

Pages 22-34 define mandatory implementation, policy and delivery controls. Unchanged business rules

Pages 22-34 define mandatory implementation, policy and delivery controls. Unchanged business rules

Pages 22-34 define mandatory implementation, policy and delivery controls. Unchanged business rules

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-34

Pages 22-34 define mandatory implementation, policy and delivery controls. Unchanged business rules

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-34

Version 2.8 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.9 - 15 October 2026

Version 2.9 integrates the approved automation architecture and replaces the affected manual steps.

Page 173 of 193

Pages 22-35 define mandatory implementation, policy and delivery controls. Unchanged business rules

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-35

Version 2.9 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.9 - 15 October 2026

Version 2.9 integrates the approved automation architecture and replaces the affected manual steps.

Pages 22-35 define mandatory implementation, policy and delivery controls. Unchanged business rules

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-35

Version 2.9 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.9 - 15 October 2026

Version 2.9 integrates the approved automation architecture and replaces the affected manual steps.

Pages 22-35 define mandatory implementation, policy and delivery controls. Unchanged business rules

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-35

Version 2.9 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.9 - 15 October 2026

Version 2.9 integrates the approved automation architecture and replaces the affected manual steps.

Pages 22-35 define mandatory implementation, policy and delivery controls. Unchanged business rules

Page 174 of 193

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-35

Version 2.9 - 15 October 2026 - Developer specification

Consolidated specification - Version 2.9 - 15 October 2026

Pages 22-35 define mandatory implementation, policy and delivery controls. Unchanged business rules

Pages 22-35 define mandatory implementation, policy and delivery controls. Unchanged business rules

Pages 22-35 define mandatory implementation, policy and delivery controls. Unchanged business rules

ACCOUNTING / 18-21 | RELIABLE AUTOMATION / 22-35

Version 2.9 - 15 October 2026 - Developer specification

Pages 22-36 define mandatory implementation, policy and delivery controls. Unchanged business rules

Pages 22-36 define mandatory implementation, policy and delivery controls. Unchanged business rules

Pages 22-36 define mandatory implementation, policy and delivery controls. Unchanged business rules

Pages 22-36 define mandatory implementation, policy and delivery controls. Unchanged business rules

Change from version 1.0

Scope

• The threshold can be changed in the dashboard at any time; no fixed initial value has been agreed. The

Page 175 of 193

score considers intent recognition, reliable matching, data freshness, completeness and source

evidence. It is not a guaranteed probability of success.

calibrated threshold. Uncertain cases become review drafts. A confidence

score never grants authority.

Business authority is separate from sending permission. Approved policies may cover multi-person

Termination confirmation and countersignature remain human decisions.

Version 2.5 - 14 October 2026 - Developer specification

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

5

Version 2.5 - 14 October 2026 - Developer specification

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Page 176 of 193

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.5 - 14 October 2026 - Developer specification

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

10

Version 2.5 - 14 October 2026 - Developer specification

Version 2.6 - 15 October 2026 - Developer specification

Further automatic repetitions have not been specified.

System outage

12

Version 2.5 - 14 October 2026 - Developer specification

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Page 177 of 193

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

13

Version 2.5 - 14 October 2026 - Developer specification

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Page 178 of 193

• Sheets: actual columns, required fields and IDs; clearly mark which units are suitable for open-ended

rentals. Document the distance definition and finite technical search horizon.

• WhatsApp: verify templates, media processing, delivery failures and account settings needed for

planned proactive sending before production launch.

Recommended implementation order

Precedence rule

In conflicts, confirmed contract and permission conditions and explicit approvals take precedence over

confidence and automation timing. No message may be sent solely because a timer is due or a score is

high.

Business rules and safeguards are mandatory. The following integration details and policy parameters must be

Automatic sync is in scope; unsupported operations require Pearlstay-approved exceptions.

  1. Prove integrations (page 25). 2. Establish master data and workflow controls. 3. Implement search,

contracts and calendar sync. 4. Add payments/accounting and support. 5. Run shadow tests. 6. Activate

each process only after its acceptance gate (pages 26-27).

17

Page 179 of 193

verified or configured before activation. Pages 22-31 add architecture, integration proof and acceptance gates.

verified or configured before activation. Pages 22-32 add architecture, integration proof and acceptance gates.

verified or configured before activation. Pages 22-33 add architecture, integration proof and acceptance gates.

Mandatory scope extension - 13 October 2026. Accounting, OCR document processing, rent

reconciliation and arrears notifications are part of the target CRM delivery, not an optional future

Changes to the original specification

This extension prevails over conflicting payment-source statements on pages 2, 11, 14 and 17. A

manually recorded paid flag in the contract system is insufficient without verified receipt and allocation.

All access-code conditions on page 11 remain mandatory. A source conflict blocks code release pending

reconciliation.

remain in force.

18

approvals, preserve original files and configure retention/backups with Pearlstay. OCR confidence

thresholds and accounting rules are separate from the conversational AI sending threshold.

Page 180 of 193

termination or collection escalation.

Configuration before activation: bank refresh interval and freshness limit, grace period, reminder spacing/maximum,

payment-plan pause, responsible staff and escalation stages. These values are not yet agreed; do not invent fixed

feeds the existing access-code checks; other release conditions still apply.

Implementation prerequisites and delivery gate

Verify the actual AbaNinja plan, API permissions, document import/posting route, bank connection and OCR provider

with a working prototype. Confirm supported payment-status readback and contract writeback; document limitations

and any proposed alternative for Pearlstay approval. The public API includes receipts and bank-file domains; this is

not proof that every required write or bank-feed operation is enabled for this account.

closing, payroll, tax filings and outgoing-payment execution are not added by this extension.

route/licensing must be verified; DeepBox automation can also create payment orders, so configure its payment

behaviour explicitly.

developer has operational expertise; an equivalent must demonstrate durable timers, restart recovery,

replay-safe changes and observable failures before approval.

Page 181 of 193

Version 2.5 - 14 October 2026 - Developer specification

22

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

and acceptance requirements. No guessed limits or inferred availability. These policies remain disabled

External-channel limitations

A local lock cannot lock an independent booking channel. Prove the supported channel reservation/block

mechanism and its acknowledgement before allowing the related automated commitment path.

Document unavoidable synchronisation windows and conflict handling. Never claim absolute

cross-platform atomicity. Unresolved conflicts block the action and notify staff; do not silently cancel

Page 182 of 193

signed contracts.

launch. Use bounded retries with backoff, then a visible exception queue. Outages never imply vacancy

Version 2.5 - 14 October 2026 - Developer specification

24

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Integration proof before full build

Page 183 of 193

Mandatory technical milestone

account-specific behaviour and platform requirements before activation.

Version 2.5 - 14 October 2026 - Developer specification

25

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Thresholds before activation

Agree process-specific quality targets and monitoring thresholds using the shadow baseline. Do not

invent numeric success claims. Define freshness limits, maximum retries, unknown-outcome escalation,

Page 184 of 193

policy limits, bank refresh, arrears grace/spacing and owners. Preserve existing agreed timings unless

expressly changed. Unset required parameters prevent activation of the affected automation.

Pearlstay control

Source code, infrastructure configuration, workflows, prompts, templates, database schemas, tests and

approved knowledge must be delivered in repositories/accounts controlled by Pearlstay. Production API

accounts, domains, hosting, backups and administrative access must not depend exclusively on the

developer. Third-party services remain subject to their licences and must be documented.

Handover and maintainability

Operational responsibility

Name the technical maintainer and business decision owners. Define support arrangements and incident

response targets before launch. Keep specialist accounting configuration and closing with the

responsible accountant. Year-end closing, payroll, tax filings, outgoing payments and autonomous legal

decisions are not added to scope.

Version 2.5 change record

Page 185 of 193

Retains version 2.2 automation safeguards and revised workflows. Version 2.5 targets Beds24 after

technical validation, keeps Lodgify live until verified cutover and requires a replaceable provider

adapter. Page 28 specifies migration, testing, rollback and cancellation gates. Existing search, discount,

consent, signature and accounting safeguards remain binding.

Version 2.5 - 14 October 2026 - Developer specification

27

Version 2.6 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.6 targets Beds24 after

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.7 targets Beds24 after

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.7 targets Beds24 after

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 change record

Page 186 of 193

Retains version 2.2 automation safeguards and revised workflows. Version 2.8 targets Beds24 after

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 change record

Retains version 2.2 automation safeguards and revised workflows. Version 2.8 targets Beds24 after

Retains version 2.2 automation safeguards and revised workflows. Version 2.8 targets Beds24 after

Retains version 2.2 automation safeguards and revised workflows. Version 2.8 targets Beds24 after

behaviour. Use test-safe records; do not send guest messages or connect two competing channel

managers to the same live listing.

original Lodgify IDs for migration history. Only the Beds24 production adapter is required; a second

complete adapter is not part of this scope.

Migration inventory and ownership

Version 2.5 - 14 October 2026 - Developer specification

28

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Page 187 of 193

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

signing/audit capabilities cannot be reliably provided by the existing implementation. No new automated

signature or countersignature authority is granted.

rules require owner-approved parameters and tests. Building a market-data-based

revenue-management engine is not included. PriceLabs and CRM rules must never compete to write the

same channel rate.

Lean implementation and business case

Prefer one maintainable backend, shared database and dependable workflow execution. A separate paid

Page 188 of 193

service for every module is not required. Temporal remains a preferred option, not a mandatory paid

subscription; alternatives must satisfy the durable execution and recovery tests. Compare saved

subscriptions with incremental hosting, APIs, messaging, storage, maintenance and support. State

one-time development/migration costs and payback assumptions; do not promise unverified savings.

a recovery path. Broader company-wide project management, a new email server, a new accounting

engine and a new channel-manager platform are not part of this consolidation.

Use supported messaging integrations; platform and message fees may remain. Centralise rental-related

cash receipts separately from accounting income and preserve source IDs. Avoid duplicate automations

in third-party workflow tools.

acceptance results and cancellation checklist to the handover. Confirm the impact on development effort

before implementation scheduling. Existing automation, payment, signature and Beds24 migration

safeguards remain in force. Integrations may remain external even when users operate them through

one CRM.

Comparable total-cost assessment

Page 189 of 193

Obtain current written pricing for API access, subscriptions, minimum commitments, setup,

identification, signatures, external signers, storage and support. Calculate monthly and annual costs for

Pearlstay-confirmed volumes and both tenant and landlord signatures. State VAT, billing unit, package

expiry and renewal/cancellation terms. Separate integration costs from recurring costs. Public

web-signing prices must not be assumed to cover API use.

not send duplicate contracts, cause unintended charges or mark an incomplete contract as fully signed.

the existing individual signature and countersignature approval rules; this addition grants no new

authority to sign for Pearlstay or a tenant. Handover must include account ownership, credentials

and signers. This section governs provider selection wherever an earlier section leaves the service

unspecified.

Version 2.6 - 15 October 2026 - Developer specification

32

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Page 190 of 193

template settings, migration results, recovery instructions and incremental costs. Cancel ClickUp only

after all remaining uses are addressed and Pearlstay approves.

Version 2.7 - 15 October 2026 - Developer specification

33

Version 2.8 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.9 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

Version 2.10 - 15 October 2026 - Developer specification

contact. Deliver mappings, templates, costs and test results. A direct Olmero API connection is optional

future work; disable old workflows only after verified cutover.

property acquisition on pages 33-34.

a direct portal link and a manual task; email ingestion alone is not proof of portal messaging access.

handover asset, pending a separate check of permitted use and any booking-status conditions. The

developer must verify the supported attachment route, CRM logging and receipt of the subsequent

WhatsApp enquiry. Technical delivery is not evidence of permission. Until permitted use is confirmed,

Page 191 of 193

keep communication on the platform using drafts/manual tasks; do not claim PDF dispatch means the

guest has moved to WhatsApp.

costs. Prefer shared supported integrations over a separate AI agent for each portal.

12. Glossary

Page 192 of 193

12.1 Source overview

3

Version 2.5 - 14 October 2026 - Developer specification

Version 2.6 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.7 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

Version 2.8 - 15 October 2026 - Developer specification

payment_received, termination_approved, pms_sync_confirmed, manual_approval, timer_due and

20

21

Version 2.5 - 14 October 2026 - Developer specification

31

Version 2.6 - 15 October 2026 - Developer specification

Page 193 of 193
Landing design preview
Landing: Access accounting workspace
Login: Sign in
Receipts: Upload receipt
Receipts: Review OCR extraction
Receipts: Approve booking proposal
Rent Collection: Review rent obligations
Rent Collection: Reconcile payments
Rent Collection: Handle arrears case
Exceptions: Resolve sync error
Dashboard: Review financial summary
Landing design preview
Landing: Access accounting workspace
Login: Sign in
Receipts: Upload receipt
Receipts: Review OCR extraction
Receipts: Approve booking proposal
Rent Collection: Review rent obligations
Rent Collection: Reconcile payments
Rent Collection: Handle arrears case
Exceptions: Resolve sync error
Dashboard: Review financial summary