Starting point
BestoursPT runs airport and city transfers in Lisbon and takes work from marketplaces such as Welcome Pickups and Transfeero. An offer not taken in time goes to another partner. Before the agent, someone read each email, opened the platform, checked price, time and drivers, accepted or refused, and entered the service in the calendar and in TransferGest. Nuno Correia, commercial director, puts their volume at 300 to 400 services a month.
How we worked
Nuno wrote the rules with us in the WhatsApp group: price floors, lead time, combos and long trips. At first every calendar entry carried "TEST" and offers outside the rules went to the team by link. Each remark in the group became a rule, and since August it becomes a test before the fix.
What we built
An agent that reads each offer, applies BestoursPT's rules, accepts on the platform, assigns driver and vehicle, creates the calendar event and enters the service in TransferGest. Vouchers dropped in Drive go in the same way. Since 6 Oct the agent reads PDF, photos and free text, because Nuno was writing every voucher twice.
When it is not sure
An offer outside the rules goes to the team already checked, with two buttons. A voucher with no phone, flight or number does not go in: the agent asks and waits, and a question left unanswered for 7 days is never written on its own. When the agent accepted a ride outside Lisbon in February, that rule went in the same day. When the AI provider failed in September, a backup provider went in.
Results
From 13 Feb to 6 Sep 2026 the agent decided 10,112 offers on BestoursPT's rules, 2,052 of them between midnight and 8 am. It entered 1,131 accepted bookings and 780 voucher services into TransferGest. The median processing time per offer was 23.5 seconds. By our method that is about 824 hours of work.
How it pays
BestoursPT pays according to the work the agent does, not for a licence. Night offers are decided with nobody awake.
Time saved
824 h
Estimate, 13 Feb to 6 Sep 2026. Offers decided: 5,195 rejected + 4,350 sent to a person already checked + 567 accepted on its own = 10,112. 10,112 × 3 min = 30,336 min = 505.6 h. Services entered: 1,131 accepted bookings + 780 voucher services = 1,911. 1,911 × 10 min = 19,110 min = 318.5 h. Total: 824 h. Offers the agent did not get to decide are left out. The minutes per task are a HomoDeus estimate, not a BestoursPT figure.
What we built
| System | What it does |
|---|---|
| Email reader | Reads every offer the platforms send, 24 hours a day. |
| Cited extraction | Takes price, driver payout, passengers, bags, class and time from the offer or voucher, with the sentence it came from. |
| Rules engine | Applies BestoursPT's rules: price floor by time of day, price per km above 40 km, lead time, combos, gaps between jobs and a daily cap per driver. |
| Welcome Pickups acceptance | Accepts on the platform and assigns driver and vehicle. |
| Transfeero acceptance | Accepted through the platform API; off since the August login change. |
| Calendar | Creates the event for each service with icon, driver, route, operator and value. |
| TransferGest writer | Creates the service through the official API, and a robot fills service type, payment method and ticket. |
| Drive vouchers | Reads each voucher dropped in the folder as TXT, RTF or DOCX, and since 6 Oct also PDF, photo and free text. |
| Questions to the team | If a number, phone, flight or operator is missing, sends an email with one button per answer; an email reply counts only if the model can quote the words. |
| Approve or reject | Offers outside the rules reach the team already checked, with two buttons. |
| Dashboard | Driver availability, price floors and settings, behind a login. |
| Staff chat | Reads pending requests, takes a pasted or PDF booking, and writes only after a confirm click. |
| Watchdog and alerts | The system checks itself, restarts if it stalls and tells HomoDeus about every error. |
| Backup provider | If the main AI provider fails, every call moves to another one. |
| Tests | 49 voucher question cases, 7 voucher reading cases and 45 chat cases. |
Timeline
- Jan 2026
Build starts for BestoursPT: read Welcome Pickups and Transfeero offers and decide on the house rules.
- 4 Feb 2026
In one of our tests the system was set to accept everything and accepted a ride at half the normal price. Ana saw it in the app. Same day: price floors, alerts, and tests kept apart from live work.
- 5 Feb 2026
Full operating rules in the decision engine. Approval by link for offers that need a person.
- 12 Feb 2026
At Nuno's request, every service the agent puts in the calendar starts with "TEST".
- 13 Feb 2026
24 hours up with no crash. Every email and every decision is now recorded.
- 15 Feb 2026
Transfeero acceptance through the API, with the browser as fallback.
- 16 Feb 2026
The agent accepted a ride outside Lisbon. Nuno asks to stop that. Rides outside Lisbon now go to a person.
- 18 Feb 2026
Nuno sends the long-distance rules. They go in the same day: a price floor per km above 40 km.
- 23 Feb 2026
Accepted services start going into TransferGest.
- 24 Feb 2026
First offer accepted on its own in production.
- 9 Mar 2026
Dashboard with driver availability and calendar blocks.
- 13 Mar 2026
Deal closed.
- 19 Mar 2026
Vouchers read from their own Drive folder.
- Apr-Jun 2026
Nuno reports three times that the bot stopped. Response: a watchdog that checks itself and restarts (6 Jun), automatic alerts to HomoDeus (11 Jun) and offers that survive restarts (11 Jun).
- 31 Jul 2026
Move to a dedicated server. Vouchers in .docx are now read.
- 28 Aug 2026
Vouchers missing a phone, flight or number no longer go in incomplete. The agent asks the team by email, with one button per answer.
- 31 Aug 2026
Corrections asked by the team: operator, title and notes. The calendar now shows the right operator.
- 18 Sep 2026
The main AI provider runs out of credit and 8 vouchers fail. Every call gets a backup provider; the voucher tests go from 37/49 to 49/49. That night writing moves to the official TransferGest API, with a robot that fills the fields the API did not take.
- 27 Sep 2026
Welcome Pickups cancellations raised too many alerts. Fixed.
- 6 Oct 2026
Nuno asks for PDF, photo and free-text intake. Same day: PDF, photo and free text read with a quote per field, tested on Nuno's 4 PDFs. Staff chat built and tested (45/45).
- Today
In production since February. Welcome Pickups and vouchers active, writes through the TransferGest API. Transfeero is off since August, after the platform changed its login.





