Home/Platform/B2B CRM
Agencies · Tour operators · DMC · Corporate

The B2B CRM that already knows
how a hotel works.

A generalist CRM knows what a deal is. It does not know what an allotment, a release, an agency code, a settled commission or a room night are, all of that has to be built. GuestMaker starts from the other end: the reservations, the contacts, the hotels, the rates and the consent are already inside. The B2B module adds the only things missing: accounts, pipeline, proposals and commissions.

2native flows · Corporate / FIT and Groups & Events, with their own fields and gates
4criteria that attribute a reservation to the account that produced it
18pipeline, team and production metrics computed in a single query
12proposal languages generated automatically, one per recipient
app/b2b/deals
GuestMaker
MAMarea Hotels
Home
DATA
Contacts
Bookings
Segments
Agencies & Companies
Sales Pipeline
Activities
CHANNELS
AI AGENTS
CDP
LOYALTY
Knowledge Base
Settings
DATASALES PIPELINE
AV

Sales Pipeline

OPEN €595kWEIGHTED €240k13 DEALS · 5 STAGES
WON 2 · €108kLOST 1 · €18k
Qualification3
€172k
Continental Corporate, 2027 corporate rate agreement
Continental Corporate
€96k1,800 RN
12 Jul
Call · 14 AugRC12d
Vega Air Corporate, crew & staff programme
WILTING
Vega Air Corporate
€48k2,600 RN
4 Jul
No next actionAV21d
Meridian Business Travel, Q4 corporate top-up
Meridian Business Travel
€28k420 RN
1 Aug
Task · todayDS5d
10% · rots after 14d
Proposal Sent3
€125k
Viajes Altamar, leisure series 2027
Viajes Altamar
€62k1,400 RN
18 Jun
Proposal prep · 18 AugAV9d
Talora DMC Madrid, inbound allotment winter
Talora DMC Madrid
€34.5k780 RN
30 Jun
Virtual meeting · overdueNF16d
Boreal Incentives, corporate allotment pilot
Boreal Incentives
€28k360 RN
21 Jul
Call · 15 AugRC7d
35% · rots after 21d
Negotiation4
€298k
Nordwind Travel Group, 2027 master contract
Nordwind Travel Group
€148k9,000 RN
6 May
Contract signature · 20 AugAV18d
APPROVAL PENDING · Rubén Calbet
Viajes Altamar, Balearics allotment
Viajes Altamar
€76k1,600 RN
28 May
Credit review · 19 AugAV11d
Continental Corporate, Madrid corporate rate
WILTING
Continental Corporate
€42k610 RN
11 Jun
No next actionRC34d
Meridian Business Travel, 2027 renewal
Meridian Business Travel
€32k540 RN
1 Jul
Call · 18 AugDS8d
60% · rots after 30d · approval RC
Won, Contract Signed
Gate: promo code + payment terms
Lost
Gate: typed loss reason
THIS BOARD IS LIVE · TRY IT
Drag a card onto Won

Continental Corporate, Madrid corporate rate has no promo code, no accepted terms and 33 days of silence. The server refuses the move and names what is missing.

Drag anything into Negotiation

That stage is approval-gated to Rubén Calbet. Request it, or release it as him and watch the card move.

Open a deal

Stage rail, gate fields you can actually fill, notes with mentions, the one-to-one composer, the proposal state and the full stage history.

Switch the pipeline tab

Groups & Events is the same board over a different data model: event dates and pax instead of rate type and room nights.

01Control

Nobody advances a deal that is not ready. Two mechanisms, both configured in the interface, both enforced on the server.

This is the part a generalist CRM solves with validation rules an administrator has to write, test and maintain. Here it is field gates per stage boundary and named approvals per stage, and between them they cover the real case: the price does not move until the right person approves it.

MECHANISM 1

Field gates

Every time a deal crosses a stage category forward, the server checks the fields that category requires. All crossed categories are checked, not just the origin, so a jump that leaps over a blocked stage does not evade it. Winning a corporate deal needs the booking-engine promo code and accepted payment terms; winning a group needs the PMS locator and a signed proposal.

MECHANISM 2

Named approvals

Any stage can be marked as requiring approval, with the people authorised to release it. Requests, releases and refusals are logged. Moving backwards and marking a deal lost never require approval. A client accepting a proposal never crosses a gated stage either. The system warns the team and leaves the deal where it was.

02Differentiation

The honest comparison is not features. It is who builds it, who maintains it, and what happens the day the PMS changes a field.

THE REAL NEEDGENERALIST CRMGUESTMAKER B2B CRM
Knowing what an agency actually producedIntegrate the PMS, model reservations as a custom object, build the matching logic. An integration project.The reservations are already in the platform. The account links itself by agency code, promo code or engine id.
Closing the loop between winning and billingThe won deal is a status. Loading the rate into the engine and linking it is manual work.On win, the deal's promo code is written to the account. Every future booking with it attributes itself.
Allotment, release, board and ADR fieldsCustom fields on a generic object. Every report has to be built.Native fields of the data model, different depending on whether the flow is Corporate or MICE.
Commissions accrued, invoiced, settledAn extra module or bespoke development. The calculation base depends on the PMS integration.A ledger with the full cycle, rate inherited from the parent, one entry per reservation, no duplicates.
A professional proposal for the clientThird-party document generator, licensed separately, with its own template and its own maintenance.Hosted proposal in the group's brand, identical PDF, in-browser signature, 12 languages generated.
Commercial email that respects consentThe CRM does not know the guest's subscription state or the unsubscribes held in marketing.Same contact record, same consent state, same verified domains as the campaigns.
A contact who is both client and agentUsually solved by duplicating the record across two objects and syncing them.The same contact record with a B2B type. Appears in the inbox, segments and campaigns with nothing duplicated.
Total cost and time to switch onPer-user licence, plus integrator, plus maintenance of the data model.A module enabled per group. Activation creates two pipelines, ten stages and the base segment instantly.
0312 primitives · one account, every booking

Everything a hotel group's sales floor needs, already modelled, not configured on top of a generic object.

Two native flows, gates and approvals on the boundaries, a four-priority attribution engine, a commission ledger that accrues itself, account hierarchies with inherited terms, hosted proposals signed in the browser, and a public API for the rest of the group's systems.

CORPORATE / FIT
RATE TYPERN COMMITALLOTMENTPROMO CODE
GROUPS & EVENTS
EVENT DATESPAXMEETING SPACEPMS LOCATOR
SAME BOARD · DIFFERENT DATA MODEL UNDERNEATH
01 · TWO NATIVE FLOWS

Corporate and MICE are not the same deal

Corporate / FIT prices negotiated rates against a room-night commitment, an ADR and an allotment with a release window. Groups & Events prices event dates, pax, meeting space and board. Same board, different data model, and different gates.

  • Up to 20 active pipelines per group
  • Stage names, colours and order are yours
  • Five stage categories underneath, fixed by design
"A generalist CRM has one deal object. A hotel needs two."
CLOSE DATE
PRIMARY CONTACT
ROOM-NIGHT COMMITMENT
PROMO CODE
PAYMENT TERMS ACCEPTED
BLOCKED AT THE WON BOUNDARY · 2 PENDING
02 · STAGE GATES

Required fields at each boundary

Every time a deal crosses a stage category forward, the server checks the fields that category demands. Not a client-side hint. The move is refused and the card stays where it was, with the missing fields named.

  • Checked on every crossed category, not just the target
  • Won needs the promo code and accepted payment terms
  • MICE needs the PMS locator and a signed proposal
"The deal does not become Won because someone dragged it."
QUALIFICATIONOPEN
PROPOSAL SENTOPEN
NEGOTIATIONRCRUBÉN C.
BACKWARDS AND LOST MOVES ARE NEVER GATED
03 · NAMED APPROVALS

The price does not move alone

Any stage can require approval, with named people authorised to release it. Skipping over a gated stage does not evade it. Going backwards and marking a deal lost never need approval. The control sits where the commercial risk is.

  • Approver list per stage, set in the interface
  • Client acceptance never crosses a gated stage
  • Requests, releases and refusals all land in the audit log
"Revenue signs off, or the rate does not exist."
QUALIFICATION9d / 14d
PROPOSAL19d / 21d
NEGOTIATION34d / 30d
1 WILTING · ANY LOGGED ACTIVITY RESETS THE CLOCK
04 · ROTTING CLOCK

Deals that wilt in plain sight

Each stage carries its own idle threshold, 14 days in qualification, 21 in proposal, 30 in negotiation by default. Any logged activity resets the clock. The card shows days in stage and whether a next action exists at all.

  • Per-stage thresholds, configurable per pipeline
  • Rotting-only filter on the board toolbar
  • No next action is itself a visible state
"Pipeline hygiene as a property of the board, not a weekly nag."
P1AGENCY CODE · IATAAUTO-LINK
P2PROMO CODE · RATE PLANAUTO-LINK
P3BOOKING ENGINE AGENCY IDAUTO-LINK
P4EMAIL DOMAIN · SUGGESTEDSUGGEST
EVERY 10 MIN · 90-DAY ROLLING WINDOW
05 · ATTRIBUTION ENGINE

Four priorities, no invented links

Reservations arrive from the PMS, the booking engine and the channel manager and are matched to the account that produced them: agency code, promo or rate code, engine agency id, and email domain as a suggestion only.

  • Highest priority wins · ties never auto-link
  • A manual attribution is never overwritten
  • Unknown codes with 5+ bookings become a create-account suggestion
"Production you can audit, not production the agency reports."
ACCRUED
€35.2k
INVOICED
€28.6k
SETTLED
€67.1k
PMS-4271884 · CHECKED OUT€1,284
BASE €10,700 NET × 12% INHERITED FROM NORDWIND
ONE ENTRY PER RESERVATION · NEVER DOUBLED ON RETRY
06 · COMMISSION LEDGER

Accrued without anyone typing

When an attributed reservation checks out and a commission rate applies, one ledger entry is written, one, even if the job runs twice. Accrued, invoiced, settled: forward only, cancellable from the first two states.

  • Base is the net value when present, total otherwise
  • Deal override, else account rate, else inherited rate
  • Cancelled bookings reverse their own entry
"The commission argument ends with a filterable ledger."
NWNORDWIND12%
NENORDWIND ESPAÑAINHERITS 12%
PRODUCTION ROLLS UP · 3 LEVELS DEEP
07 · ACCOUNT HIERARCHY

Parent, child, consolidated

Accounts nest up to three levels. Production consolidates upwards with a single toggle, and commercial terms are inherited from the nearest ancestor that has them. Configure the master agreement once; each national subsidiary follows.

  • Tax ID unique per group · duplicates refused
  • Similar-name warning before saving
  • Eight account types, two commercial profiles
"One master contract, nine subsidiaries, no re-typing."
DRAFT
SENT
VIEWED 9×
ACCEPTED
LENNART BRAUWE · IP 85.62.14.203 · SHA256:9F4C…E21B
SIGNED IN THE BROWSER · PDF IDENTICAL FROM THE SAME TEMPLATE
08 · PROPOSALS & SIGNATURE

A page the client signs, not an attachment

A hosted, group-branded document with view tracking, handwritten acceptance and an identical PDF from the same template. The sales rep edits on top of the finished document, not in a form.

  • Six factory templates plus a block library
  • Signature, timestamp, IP, user agent, content hash
  • Reopening the link after signing shows the receipt
"Accepted, with proof of exactly what was accepted."
EN
ES
DE
FR
IT
NL
PT
SV
DA
NO
PL
CA
HEADINGS · LABELS · SIGNATURE FORM · DATE & CURRENCY FORMAT
NAMES AND AMOUNTS ARE FORMATTED, NOT TRANSLATED
09 · TWELVE LANGUAGES

One variant per recipient

Mark the target languages and a full variant of the proposal is generated for each: content, headings, labels, the signature form, the acceptance notice, dates and currency format. The language the client signed in is recorded.

  • Each recipient's link carries their language
  • Names and amounts are formatted, never translated
  • The sales rep reviews every translation before it goes out
"A Swedish incentive house reads Swedish. Nobody re-typed it."
groups@mareahotels.com
reception@mareahotels.com
DRAFT DEAL · HELVIA CONGRESS OCT 2026
320 PAX180 ROOMS2 DATE OPTIONSHALF BOARD
ALWAYS A DRAFT · IDEMPOTENT ON REPROCESS
10 · INBOX ROUTING

The RFP that files itself

Connected mailboxes sync both ways. Per mailbox, group and MICE enquiries can be routed to the B2B CRM: classified, structured, dates, alternatives, rooms, pax, event type, board, contact, and turned into a draft deal for review.

  • Groups mailbox routes · reception does not
  • Always a draft, never a confirmed deal
  • Client replies rethread themselves and close the follow-up task
"The enquiry becomes a deal before anyone opens the mailbox."
CRCLAUDIA ROSSITYPE · B2B
B2BBOOKINGSMEMORYLOYALTY
SEGMENTSCAMPAIGNSINBOXCONSENTCUSTOM FIELDS
ONE ROW · NO SECOND OBJECT TO SYNCHRONISE
11 · ONE CONTACT RECORD

The agent who is also a guest

A B2B contact is a row of the same contacts table with type = b2b. Inbox, segments, campaigns, custom fields and consent all keep working, and a person can be an agency buyer and a returning guest without two records to reconcile.

  • A dynamic B2B segment is created when the module turns on
  • Segment by account, type, profile, primary flag, manager
  • Importers never downgrade a B2B contact to guest
"Two objects for one person is where CRM data goes to die."
VIEWACCOUNTSDEALSACTIVITIESEMAILCONFIGUREEXPORTOWNERADMINMEMBERVIEWER
OWN-PORTFOLIO MODE ENFORCED SERVER-SIDE
12 · ACCESS & PORTFOLIO

Seven permissions, three workspaces

Each user gets both CRMs, guest-only or B2B-only. Seven granular permissions per role. Switch the group to own-portfolio mode and a rep sees their accounts, their deals and the unassigned pool, enforced in the server, not hidden in the UI.

  • View · accounts · deals · activities · email · configure · export
  • Unassigned records work as a shared pool
  • A record outside your portfolio answers as if it did not exist
"A groups rep has no business in the guest database."
04Accounts

Agencies, tour operators, DMCs and companies. Eight types, two profiles, one hierarchy.

Each account holds the commercial (commission, settlement, credit limit, payment days, cancellation policy), the contractual (dates and renewal warning), the identifying (tax ID, IATA, channel-manager code, CRS code, engine id) and the operational (room-night commitment, promo codes, email domains). Open any row: eight tabs, with real attributed production and a filterable commission ledger.

app/b2b/accounts
GuestMaker
MAMarea Hotels
Home
DATA
Contacts
Bookings
Segments
Agencies & Companies
Sales Pipeline
Activities
CHANNELS
AI AGENTS
CDP
LOYALTY
Knowledge Base
Settings
DATAAGENCIES & COMPANIES
AV

Agencies & Companies

Travel agencies, tour operators, DMCs and corporate accounts, 9 of 9 accounts

ACCOUNTS9
3 MATCH SUGGESTIONS TO CONFIRM
NAMETYPEACCOUNT MANAGERPRIMARY CONTACTOPEN DEALSATTRIBUTED RNSTATUS
NW
Nordwind Travel GroupCORPFamily · 2
Nordwind Travel Group PLC
Tour OperatorAVAdriana Vestri
Lennart Brauwe
l.brauwe@nordwind.example
14,120Active
NE
Nordwind EspañaMICE
Nordwind España Turismo SAU
Tour OperatorRCRubén Calbet
Ilse Vandeput
i.vandeput@nordwind.example
11,120Active
VA
Viajes AltamarMICE
Altamar Viajes SA
Travel AgencyAVAdriana Vestri
Amaia Torrellas
a.torrellas@altamar.example
22,860Active
MB
Meridian Business TravelCORP
Meridian Business Travel Iberia SLU
Travel AgencyDSDamià Solans
Sílvia Roldós
s.roldos@meridianbt.example
11,490Active
BI
Boreal IncentivesMICE
Boreal Incentives AB
Incentive AgencyRCRubén Calbet
Ansgar Melby
a.melby@borealincentives.example
3610Prospect
HC
Helvia CongressesMICE
Helvia Events & Congresses
Event OrganizerNFNoelia Ferrán
Ornella Baldi
o.baldi@helvia.example
21,180Active
CC
Continental CorporateCORP
Continental Corporate Travel Group
Travel AgencyRCRubén Calbet
Rowena Ashcombe
r.ashcombe@continentalct.example
22,410Active
TD
Talora DMC MadridMICE
Talora Destination Management SL
DMCNFNoelia Ferrán
Marisol Ibarrena
m.ibarrena@talora.example
1980Active
VC
Vega Air CorporateCORP
Vega Air Corporate Travel SA
Corporate BookingAVAdriana Vestri
Ainhoa Sedano
a.sedano@vegaair.example
23,980Active

Eight tabs per account

  • Overview. open pipeline, won this year, room nights, accrued commission, conversion, hierarchy
  • Contacts. the people at the account with their role, one marked as primary
  • Terms. commission, settlement, credit, payment days and cancellation policy
  • Deals. everything open, won and lost for that account, in any pipeline
  • Activity. full timeline of calls, visits, emails and notes
  • Documents. contracts and proposals in private storage with expiring signed links
  • Production. reservations actually attributed, with room nights, ADR, lead time and the reason each matched
  • Commissions. filterable ledger with export and an audit record of who exported

One contact record, two lives

An agency buyer is not a new object. It is a platform contact with a B2B type. That single design decision is what avoids the classic problem of two records for one person that somebody has to keep in sync.

OB
Ornella BaldiTYPE · B2BPrimary contact
o.baldi@helvia.example · +39 02 445 100
B2BBookingsMemoryLoyaltySurveys
ACCOUNT
HC
Helvia Congresses
OPEN PIPELINE
€79.5k
deals where this person is the contact
EMAILS SENT
41
one-to-one, tracked
LAST ACTIVITY
6 Aug
logged on the timeline
DealsEmailsActivitiesDocuments
Helvia Medical Congress Oct 2026€42k
Helvia Iberia, regional managers offsite€37.5k
Same record, same consent state, same verified senders as the guest side. Importers never downgrade a B2B contact back to guest.
05 · Analytics

Eighteen metrics, one query. Including the ones a CRM without your bookings cannot compute.

Four views inside the pipeline page, pipeline health, forecast, team activity and real attributed production, filterable by period, pipeline and owner. Revenue, room nights, ADR and commission cost are not typed in by a sales rep: they are the hotel's own reservations, matched to the account that produced them, in the same database.

Live
Open pipeline
€470K
▲ 12.4%14 open deals
Weighted forecast
€214.3K
▲ 8.1%by stage probability
Win rate
46.2%
▲ 6.4 ppvs previous period
Avg sales cycle
54d
▼ 7dqualification → won
Pipeline movement
created vs won value · 12 weeks
CreatedWon
MAX €198K
W23W25W27W29W31W33
Corporate versus MICE
open value by pipeline
€587K
OPEN + PROPOSED
Corporate / FIT9 deals€356K
Groups & Events6 deals€232K
Loss reasons
typed causes · closed in period
Price6
No response4
Competitor3
Availability2
Event cancelled1
Other1
A deal cannot be closed as lost without one of these six causes and a comment, which is why this chart is worth reading.
Deals the board is flagging
rotting · unattended · gated
Continental Corporate, Madrid corporate rate
Negotiation · 34d in stage · 33d silent
ROTTING
Helvia Medical Congress Oct 2026
RFP Received · 48d in stage · no reply
WILTING
Nordwind Travel Group, 2027 master contract
Negotiation · approval pending · Rubén Calbet
GATED
Vega Air Corporate, crew programme
Qualification · no next action planned
NO ACTION
snapshot · 12M matcher · every 10 min 9 accounts · 2 pipelines 4 attribution rules
Export · CSV · PDF · Schedule report
06Proposal studio

Not a PDF attachment. A live template generator the sales rep drives, and a page the client signs.

Pick one of the group's templates, and content, colours, fonts and layout arrive together. Merge fields stay dynamic inside every saved block, so a cover note written once fills itself for the next account. Design controls apply to the document as you touch them. This editor below is real: change the palette, swap the headline font, reorder or remove sections, open the content library, insert a merge field, then hit Preview filled to see the deal's own data resolve.

guestmaker.ai/b2b/deals/40351dcf/proposal
ADMINMarea Hotels & Apartments
← BACK TO ADMIN
PipelineDeal· ProposalAll changes saved
GROUP PROPOSAL
Ref · B2B-40351DCF
Issued · 28 Jun 2026
Valid until · 12 Jul 2026
{{hotel.name}} · MÁLAGA

A season of rooms, held for {{account.name}}.

Prepared for {{account.name}}

Dear {{contact.first_name}},

Dear {{contact.first_name}}, thank you for the opportunity to formalise a seasonal allotment between {{account.name}} and {{hotel.name}}. The terms below set out a guaranteed block of rooms, held for you across {{deal.dates}}, that your team can sell with complete confidence.

An allotment removes the friction of case-by-case requests: your contracted inventory is ours to protect and yours to fill, released back to us only on the agreed schedule. We have kept the structure deliberately simple, guaranteed availability, transparent release terms, and rate parity you can rely on.

{{rep.name}}

Director of Sales
AT A GLANCE
ROOM NIGHTS
9,000
PROPERTIES
5 hotels
ALLOTMENT
60 rooms
RELEASE
21 days
ACCOMMODATION

Rooms held for your group

Double room · BB
3,200 RN · per room per night
€104
Superior double · BB
2,400 RN · per room per night
€118
Junior suite · HB
1,100 RN · per room per night
€162
WHAT IS INCLUDED
Guaranteed allotment across five properties
Rate parity with all public channels
21-day automatic release schedule
Named account manager and quarterly review
Consolidated monthly invoicing
Complimentary upgrade allowance, subject to availability
TOTAL INVESTMENT
€148,000
ROOM NIGHTS · 9,000
PROPERTIES · 5 hotels
NET OF VAT AND CITY TAX
TERMS & CONDITIONS

Commission 12% settled monthly, net 30. Cancellation 14 days before arrival with a 20% penalty on the cancelled portion. Allotment released automatically 21 days before arrival. Rates net of VAT and city tax.

ACCEPTANCE

Accept and sign

LEGAL NAME
SIGNATURE
ACCEPTANCE RECORDS SIGNATURE · TIMESTAMP · IP · USER AGENT · CONTENT HASH · LANGUAGE
Draft8 SECTIONS · B2B-40351DCF · SHOWING MERGE FIELDS
Colours

Drives the hero, the totals bar, the accept panel and every accent on the page.

Primary#143A33
Accent#B5853A
Page#F4F0E8
Cards#FBF9F4
Text#1E1B17
Typography

Google fonts, applied to the whole document the moment you pick one.

HEADLINES
BODY TEXT
TYPE SIZE · 100%HEADING WEIGHT
LINE SPACING · 1.60HEADING TRACKING · 0
Hero

The first thing your client sees. A photo of the property, under a tint of your primary colour.

No photo? The hero falls back to a gradient built from your primary colour.PHOTO TINT · 72%HEIGHT
ALIGNMENT
Layout

Shape and rhythm. These are the controls that fix a cramped imported template.

INCLUSIONS
ACCOMMODATION
KEY FIGURES PER ROW
SECTION BANDS
CORNERS
SPACING
PAGE WIDTH · 40REM
Your house style

Set this design once and every new proposal your team starts will already look like it.

Content is untouched, only colours, fonts and layout reset.
THIS BOARD IS LIVE · TRY IT
Apply a template

Library → Templates → Apply. Corporate, congress, leisure series or incentive: content, palette and headline font change together.

Redesign it live

Palette swatches, 38-font pickers, type size, hero height and tint, inclusion columns, bands, corners, spacing, page width.

Insert a merge field

Insert field → any token. It lands in the cover note and stays dynamic; Preview filled resolves it against this deal.

Save to your library

Save the proposal as a group template, or the cover note, inclusions, terms and room cards as reusable blocks.

And what the client actually opens , hosted, tracked, signed.

PR-2026-0184 · VALID UNTIL 30 SEP 2026
MAREA HOTELS
proposals.mareahotels.com/p/9f4c2e
PROPOSAL PR-2026-0184 · ISSUED 4 AUG 2026 · VALID 60 DAYS

Negotiated corporate rate agreement 2027

Thank you for the time your team gave us in Hannover. Below is the rate structure for the five properties we discussed, valid for stays between 1 January and 31 December 2027.

ACCOUNT
Nordwind Travel Group
PROPERTIES
5 hotels
ROOM NIGHTS
9,000
VALUE
€148,000
VIEWED 9 TIMESSTRICT CSP · UNGUESSABLE LINK

Twelve languages, one per recipient

Mark the target languages and a full variant is generated for each, content, headings, labels, signature form, dates and currency format. The language the client signed in is recorded.

What happens on acceptance

The group decides: notify the team only, or also move the deal to a specific stage. Mandatory signature can be enforced group-wide.

The signature jumps no gate

If auto-advance would have to cross an approval-gated stage, it does not. It warns and leaves the deal where it was.

07Booking engine & PMS

Both directions, and the jobs that run alone. The question is not “does it integrate”. It is “when an agency books, does the CRM know without anyone typing”.

Reservations arrive from the PMS, the booking engine and the channel manager and are matched on four priorities. The highest wins, ties never auto-link, and a manual attribution is never overwritten. Outwards, accounts, contacts and deals read and write over a versioned public API with b2b:read and b2b:write scopes.

PMSreservations · stays · statusBooking enginerate & promo codesChannel manager · CRSagency & IATA codesAttribution engineP1 agency code · IATAP2 promo code · rate planP3 booking engine agency idP4 email domain · suggestionProduction per accountroom nights · ADR · revenueCommission ledgeraccrued · invoiced · settledAllotment watch80% and 100% of commitmentAnalytics & forecast18 metrics · one queryPublic API v1accounts · deals · contactsread and write · idempotent

What comes in

  • The higher priority wins. A tie between several accounts never links itself. It becomes a suggestion.
  • An attribution made by hand is never overwritten automatically.
  • Unknown agency codes with five or more reservations group into a “create an account for this code” suggestion.
  • Matching is attempted at booking time, and a periodic job re-sweeps a rolling 90-day window.

What goes out

POST/v1/b2b/accounts
POST/v1/b2b/accounts/bulk
GET/v1/b2b/accounts?since=
POST/v1/b2b/deals
POST/v1/b2b/contacts
SCOPE b2b:readb2b:write
IDEMPOTENT UPSERT BY EXTERNAL ID · TAX ID · IATA

If the module is not active for the group these routes answer with an explicit error. The only public route family with that protection, precisely because it is a separate module.

Automatic processes that run by themselves

PROCESSFREQUENCYWHAT IT DOES
Reservation matcherevery 10 minSweeps unattributed reservations from the last 90 days and accrues the commissions that follow.
Scheduled email sendevery 5 minFires the one-to-one emails left scheduled, without duplicating on retry.
Activity reminderhourlyEmails the owner of an overdue activity. Once per activity, never twice.
Renewal warningdailyRaises the renewal task for the account manager 60 days before contract end.
Allotment watchdailyWarns at 80% and again at 100% of the contracted room-night commitment.

All five can also fire automated journeys: deal created, stage changed, won, lost, renewal approaching, allotment reached and activity overdue are events in the same journey builder the group already uses.

08Activities & security

Ten activity types built for hotel selling, and a module that is isolated by construction.

Call, email, property visit, virtual meeting, business lunch, proposal prep, credit review, contract signature, task and note. Each anchored to an account, a deal, a contact, or several at once.

My agenda
OVERDUE2
Talora, winter allotment review
Virtual meeting · 12 Aug · 09:00 · Talora DMC Madrid
NF
Helvia congress, venue inspection
Site visit · 9 Aug · 09:30 · Helvia Congresses
NF
TODAY2
Continental Corporate, walk through 2027 rate grid
Call · Today · 10:30 · Continental Corporate
RC
Meridian, send Q4 top-up figures
Task · Today · 16:00 · Meridian Business Travel
DS
NEXT 7 DAYS2
ALTA leisure series, build proposal
Proposal prep · 18 Aug · 11:00 · Viajes Altamar
AV
Nordwind Travel Group, master contract signature
Contract signature · 20 Aug · 12:00 · Nordwind Travel Group
AV
Completing an activity updates last-activity on the deal, which resets the rotting clock and satisfies the negotiation gate.

Team mentions

An @ in a note opens the colleague picker. The person mentioned gets an email. Pinned notes rise to the top of the timeline.

Effect on the pipeline

Logging or completing an activity updates last-activity on the deal, resetting the rotting clock and satisfying the negotiation gate.

From action to deal

A loose activity, an inbound call, an email request, becomes a deal without re-typing the data.

Group isolation

Row-level security on every table of the module, plus explicit group filtering in each service query. Two independent layers that would have to fail together.

Private documents

Contracts and proposals live in private storage with a file-type allow list. Downloads use short-lived signed links, never direct paths.

Hardened public page

The client proposal is served under a strict content policy. The only script allowed to run is the signature pad, authorised with a fresh nonce per request.

Unguessable links

Every proposal has a random address, and the acceptance link is cryptographically signed and issued at send time. Without that token, acceptance is refused.

Audit trail

Creations, edits, stage moves, sends and exports are written with user and timestamp, readable from Settings and Privacy.

Heavy work without loss

Historical attribution on activation runs in a batched queue with retries, never inside a web request. Replaying a batch is safe by design.

FAQ

Common questions.

Don’t see yours? Bring it to the demo and we’ll answer it live.

No. It is the same platform with a B2B module switched on. An agency buyer is a platform contact with a B2B type, not a second object, so they appear in the inbox, in segments and in campaigns with nothing duplicated and nothing to keep in sync. The reservations, hotels, rates and consent the B2C side already holds are the same records the B2B side reads.

On four criteria, in priority order: the booking-engine promo code, the agency or channel-manager code, the CRS or engine identifier, and the email domain of the booker. The highest priority wins. A tie between several accounts never links itself. It becomes a suggestion for someone to resolve. An attribution made by hand is never overwritten automatically.

Two mechanisms, both configured in the interface and both enforced on the server. Field gates check the fields a stage category requires every time a deal crosses forward, and all crossed categories are checked, so a jump that leaps over a blocked stage does not evade it. Named approvals mark any stage as requiring release by specific people. Moving backwards and marking a deal lost never require approval.

The group decides: notify the team only, or also advance to a specific stage. If that auto-advance would have to cross an approval-gated stage, it does not. It warns the team and leaves the deal where it was. A signature never jumps a gate.

A ledger with the full cycle: accrued, invoiced, settled. The rate is inherited from the parent account unless the child holds its own, one entry per reservation with no duplicates, and the base is whatever the attributed reservation actually billed. It is filterable and exportable, and every export is recorded against the person who ran it.

A family can run three levels deep, a group over its country entities for instance. Conditions are inherited per field: a new child inherits the parent's terms, while an existing account that moves into a family freezes the terms it already had. Any tab can be rolled up across the family or read for one account alone.

A hosted page in the group's brand, not a PDF attachment, tracked, signed in the browser, with an identical PDF available. Up to twelve language variants are generated automatically, one per recipient, including headings, labels, the signature form and date and currency formats. The language the client signed in is recorded.

Yes, over the versioned public API with b2b:read and b2b:write scopes covering accounts, contacts and deals. If the module is not active for the group those routes answer with an explicit error rather than a silent empty result. The only public route family with that protection, precisely because it is a separate module.

Per group, and off by default. Activation creates the two pipelines, their ten stages with probabilities and thresholds, and the B2B contact segment. Switching it off hides the interface and never deletes data.

Book a demo

Bring us one agency
and we will show you its production.

Thirty minutes. We take one real account of yours, attribute its reservations on the four criteria, accrue the commission it earned, and build the proposal you would have sent it, end to end, on your own data.