FAQ¶
Answers to frequently asked questions about AirDoo.
Airbnb Sync¶
Why aren't my Airbnb emails being imported?¶
Check in this order:
- Gmail connection:
AirDoo → Configuration → Settings → Gmail Status - Airbnb Listing Name: Must be identical to the name in Airbnb emails (case, accents, spaces)
- Ignored emails:
AirDoo → Diagnostics → Ignored Emails— the rejection reason is displayed - Parsing errors:
AirDoo → Diagnostics → Parsing Errors
The accommodation name in the Airbnb email differs by language?¶
Airbnb sends emails in the host account's language. Verify the Airbnb Listing Name matches the language used in your emails.
How do I find the correct Airbnb Listing Name?¶
- Open a received Airbnb confirmation email
- Copy the exact accommodation name as it appears in the email body
- Paste it into the
Airbnb Listing Namefield in Odoo
The automatic sync isn't triggering¶
The Gmail cron runs every 30 minutes. Check in Settings → Technical → Automation → Scheduled Actions that the "AirDoo: Gmail Sync" cron is active.
Reservations¶
A user can open the app but the Reservations menu is missing¶
Symptom: The user can open AirDoo and see the Dashboard, Accommodations and Guests, but the Reservations menu does not appear.
Cause: Reservations are stored in the sale.order model (Odoo Sales module). Odoo automatically hides menu items when the user lacks access rights to the underlying model.
Fix: Add the Sales / User group to the user:
Settings → Users → [User] → Sales tab → Sales: User
Why is there a date conflict?¶
AirDoo prevents two confirmed (non-cancelled) reservations on the same accommodation with overlapping periods. If an old reservation has an incorrect status, setting it to cancelled will resolve the conflict.
How do I manually cancel a reservation?¶
Set the Booking Status field to cancelled. This:
- Cancels the Odoo order
- Cancels all scheduled automated emails (scheduled status)
The reservation amount is incorrect¶
For Airbnb reservations, the amount is extracted from the confirmation email (net Airbnb payout). For direct bookings, use the "Recalculate Price" button after configuring the accommodation pricelist.
Automated Emails¶
Why wasn't an email sent?¶
- Check
AirDoo → Communication → Logsfor a log entry for this reservation - If the log is
failed, check Odoo logs for the technical error - If no log exists, verify that an active rule covers this event_type for this accommodation
An email was sent twice¶
Idempotency is guaranteed by a UNIQUE constraint on the key {order_id}_{event_type}_{rule_id}. If you see a duplicate, two different rules triggered for the same event_type — check there isn't both a default rule AND a specific rule for the same event.
How do I change the send time for an email?¶
Edit the Send Time field of the corresponding communication rule (e.g. 9.0 = 09:00).
API¶
How do I get my API token?¶
AirDoo → Configuration → Settings → API Settings → Native Odoo API Key
The API returns 401 Unauthorized¶
Check that:
1. The Authorization: Bearer <token> header is present
2. The token matches the value in Odoo settings
3. The airdoo_api_user system user is active
The API returns 403 Forbidden¶
The token is recognised but the API user doesn't have access to the requested resource. Check the security groups of the airdoo_api_user.
How do I secure API calls from a Next.js site?¶
Never call the Odoo API directly from the browser (the token would be exposed). Use Next.js Route Handlers server-side:
// app/api/calendar/route.ts — server side only
const response = await fetch(`${process.env.AIRDOO_API_URL}/api/v1/airdoo/calendar`, {
headers: { 'Authorization': `Bearer ${process.env.AIRDOO_API_TOKEN}` }
});
Configuration¶
How do I reset the Gmail connection?¶
AirDoo → Configuration → Settings → "Disconnect Gmail" button → clears all tokens, then reconnect.
Cleaning calendar invitations aren't being sent¶
- Check the accommodation has a cleaning email (
Cleaner Partner.emailorCleaner Email) - Check that the
airdoo.mail_template_cleaning_missiontemplate exists in Odoo - Check Odoo logs after a reservation confirmation
How do I test without affecting production data?¶
Use the test database odoo_test configured in config/odoo.conf. Do not connect a production Gmail account to this database.
Persistent Issues¶
A bug keeps coming back after fixing¶
If a bug seems uncorrectable despite fixes, it may be a data corruption issue in the database. Contact support for a test database reset.
The module doesn't load on startup¶
Run Odoo with --stop-after-init to see the full traceback:
python odoo-bin -c config/odoo.conf -d odoo_test -u airdoo --stop-after-init
← Back: Home | Next: Changelog →