Airbnb Sync¶
Airbnb synchronisation is AirDoo's core feature. It automatically transforms Airbnb confirmation emails into structured reservations in Odoo.
Process Overview¶
graph TD
A[Airbnb email received] --> B[Gmail API reads email]
B --> C[AirDoo Parser extracts data]
C --> D[Data validation]
D --> E[Matching with Odoo accommodation]
E --> F[Odoo Reservation created]
F --> G[Invoice generated]
G --> H[Calendar updated]
H --> I[Notification & Communication]
Required Configuration¶
1. Gmail Account¶
- Email address: The one used for Airbnb bookings
- Gmail API enabled: Via Google Cloud Console
- Scope:
https://www.googleapis.com/auth/gmail.readonly
2. Configured Accommodations¶
Each Airbnb listing must have a matching record in Odoo:
| Airbnb Field | Odoo Field | Matching Rule |
|---|---|---|
| Listing name | Accommodation name | Exact match |
| e.g. "Alpine Chalet" | "Alpine Chalet" | ✅ |
| e.g. "Alpine Chalet - Mountain View" | "Alpine Chalet" | ❌ |
3. Configured Products¶
- Accommodation Nights: Service type product
- Cleaning Fee: Service type product (optional)
Sync Process¶
Manual Sync¶
- Open the AirDoo dashboard
- Click "Sync Airbnb Emails"
- Complete Google authentication (if required)
- Check results in the logs
Automatic Sync (Cron)¶
AirDoo includes a cron configured to run every 30 minutes:
# Cron configuration
'airdoo_cron_sync_airbnb': {
'name': 'AirDoo: Sync Airbnb Emails',
'model_id': 'airdoo.model_airdoo_accommodation',
'state': 'code',
'code': 'model._cron_sync_airbnb_emails()',
'interval_number': 30,
'interval_type': 'minutes',
'numbercall': -1,
'doall': False,
'active': True
}
Data Extracted from Emails¶
Basic Information¶
- Confirmation code: HM2YEYHZXC (unique per reservation)
- Dates: Check-in / Check-out
- Property: Exact Airbnb listing name
- Guest: Name, email, phone
- Price: Total, nightly rate, fees, taxes
Guest Composition¶
- Adults: Count
- Children: Count (with ages if available)
- Babies: Count
Additional Information¶
- Guest notes: Special requests
- Status: Confirmed, Cancelled, Modified
- Source: Airbnb (for tracking)
Sync Results¶
On Success¶
- Sales order created in Odoo
- Customer created or updated
- Invoice automatically generated
- Calendar updated
- Logs recorded in the chatter
Sales Order Structure¶
Sales Order #SO12345
├── Customer: John Smith (john@example.com)
├── Accommodation: Alpine Chalet
├── Period: 2026-02-01 → 2026-02-07 (6 nights)
├── Lines:
│ ├── Accommodation Nights: 6 × €150 = €900
│ └── Cleaning Fee: 1 × €80 = €80
└── Total: €980
Troubleshooting¶
Common Issues¶
1. No emails found¶
- Cause: Gmail filters too restrictive
- Solution: Check search parameters
# Default filter query = "from:automated@airbnb.com is:unread"
2. Accommodation not found¶
- Cause: Name does not match exactly
- Solution: Check matching in AirDoo → Accommodations
3. Incomplete data¶
- Cause: Unsupported email format
- Solution: Check parsing logs
4. Google authentication error¶
- Cause: Expired or invalid token
- Solution: Regenerate credentials
Diagnostic Logs¶
Odoo Logs¶
# View AirDoo logs
tail -f /var/log/odoo/odoo-server.log | grep -i airdoo
AirDoo Logs¶
- Dashboard: Overview of sync runs
- Communication logs: History of processed emails
- Parsing logs: Details of extraction errors
Log Example¶
[INFO] 2026-02-26 11:30:00 - Sync started
[INFO] 2026-02-26 11:30:05 - 3 emails found
[SUCCESS] 2026-02-26 11:30:10 - Reservation #HM2YEYHZXC created
[WARNING] 2026-02-26 11:30:15 - Email ignored: unsupported format
[INFO] 2026-02-26 11:30:20 - Sync complete: 1/3 successful
Best Practices¶
1. Regular Checks¶
- Daily: Verify new reservations
- Weekly: Review error logs
- Monthly: Review sync statistics
2. Accommodation Maintenance¶
- Update names if changed on Airbnb
- Archive unused accommodations
- Verify matches regularly
3. Error Handling¶
- Do not ignore recurring errors
- Document issues encountered
- Contact support if needed
4. Performance¶
- Limit unnecessary manual syncs
- Use the cron for automation
- Monitor execution times
Statistics and Reporting¶
AirDoo Dashboard¶
- Success rate: % of successful syncs
- Volume: Number of emails processed
- Trends: Evolution over time
Odoo Reports¶
- Sales: Revenue generated
- Occupancy: Occupancy rate per accommodation
- Customers: New customers acquired
FAQ¶
Q: How long does a sync take?¶
A: About 2–3 seconds per email, depending on complexity.
Q: What happens when a reservation is modified?¶
A: AirDoo detects modifications and updates the existing reservation.
Q: Are cancellations handled?¶
A: Yes, cancellations are detected and the status is updated.
Q: Can I sync multiple Gmail accounts?¶
A: Yes, but requires additional configuration.
Q: Are old emails processed?¶
A: By default, only unread emails are processed.
Next Steps¶
- Reservations: Edit and manage reservations
- Dashboard: View statistics
- Communication: Configure automated messages
← Back: Home | Next: Reservations →