How to enable mobile access for travel management module in cloud deployment

We’re running Odoo 16 Enterprise cloud and want to enable mobile access for our travel management module so employees can submit travel requests and view itineraries from their phones. The standard Odoo mobile app seems to have limited functionality for travel management - employees can’t easily access travel approval workflows or view their upcoming trips.

Has anyone successfully configured mobile access for travel management in cloud deployments? Are there specific settings or modules we need to enable? Or should we be looking at custom mobile app development? Our employees travel frequently and really need convenient mobile access to their travel information.

Mobile Access for Travel Management — Odoo 16 Enterprise Cloud

Dev paradigm: Python (Odoo OWL/QWeb), JavaScript (OWL framework), XML


Assess the Baseline First

Odoo 16’s native mobile app renders the web client in a WebView — nearly all standard views work on mobile, but the experience degrades for complex multi-step workflows. Before custom development, confirm whether your travel module is a third-party addon or in-house built, because that determines what you can configure vs. what you must code.

Check active modules:

Settings → Technical → Modules → Installed Modules
Filter: "travel"

Option 1: Responsive View Optimization (Lowest Effort)

If your travel module uses standard form/list/kanban views, add responsive attributes — no new module required, but isolate changes in a custom addon for rollback safety.

Rollback: Uninstall the custom addon via Settings → Modules; all XML overrides revert cleanly.

# __manifest__.py
{
    'name': 'Travel Mobile Enhancements',
    'version': '16.0.1.0.0',
    'depends': ['your_travel_module'],
    'data': ['views/travel_request_mobile.xml'],
}
<!-- views/travel_request_mobile.xml -->
<odoo>
  <record id="travel_request_form_mobile" model="ir.ui.view">
    <field name="name">travel.request.form.mobile</field>
    <field name="model">travel.request</field>
    <field name="inherit_id" ref="your_travel_module.travel_request_form"/>
    <field name="arch" type="xml">
      <!-- Collapse non-critical fields on small screens -->
      <xpath expr="//field[@name='internal_notes']" position="attributes">
        <attribute name="optional">hide</attribute>
        <attribute name="column_invisible">True</attribute>
      </xpath>
    </field>
  </record>
</odoo>

Option 2: Approval Workflow via Activity Inbox

Travel approval workflows are most accessible on mobile through chatter activities. Ensure your approval steps create mail.activity records — employees then approve directly from the Inbox, which renders well on mobile natively (verify in your version).

# In your approval method
def action_submit_travel(self):
    self.activity_schedule(
        'mail.mail_activity_data_todo',
        user_id=self.approver_id.id,
        note=f'Travel request #{self.name} pending approval',
    )
    self.state = 'pending'

Option 3: PWA/Portal Route (No Native App Required)

Expose a portal view for itinerary read-access. This works in any mobile browser without app installation.

# controllers/portal.py
from odoo import http
from odoo.http import request
from odoo.addons.portal.controllers.portal import CustomerPortal

class TravelPortal(CustomerPortal):
    @http.route(['/my/travel', '/my/travel/<int:travel_id>'],
                type='http', auth='user', website=True)
    def portal_travel_list(self, travel_id=None, **kwargs):
        travels = request.env['travel.request'].search(
            [('employee_id.user_id', '=', request.uid)]
        )
        return request.render('travel_mobile.portal_travel_list',
                              {'travels': travels})

Debug Approach

  • Use Chrome DevTools device emulation pointed at your cloud URL to catch layout breakdowns before deploying
  • Enable ?debug=1 in URL to surface view inheritance conflicts
  • Check ir.ui.view records for conflicting xpath priorities if overrides don’t render

Custom Native App — When to Consider It

Only justified if you need offline access, push notifications for approval deadlines, or GPS/camera integration for expense receipts. That path requires the Odoo REST/JSON-RPC API (verify endpoint structure in your version) and a separate mobile dev project outside the Odoo addon framework.


This draft is based on general Odoo knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.

The standard Odoo mobile app is pretty basic for specialized modules like travel management. Your best bet is to use the responsive web interface through mobile browsers rather than the native app. Odoo 16’s web interface is mobile-responsive and should work well on phones. Make sure your cloud instance has proper SSL configuration and consider implementing single sign-on to make mobile login easier for users.

We created custom mobile views for our travel management module using Odoo’s website builder functionality. You can create simplified mobile-optimized pages that show travel requests, approvals, and itineraries. These pages can be accessed through any mobile browser and provide a better experience than the standard backend interface. The advantage is that you don’t need a separate mobile app and everything stays within your cloud Odoo instance with proper security and authentication.

For our travel management mobile access, we implemented a progressive web app (PWA) approach. This gives users an app-like experience without requiring them to install anything from app stores. The PWA can be added to the phone’s home screen and provides offline access to recently viewed travel information. You can build this on top of your Odoo 16 cloud instance using modern web technologies. It requires some development work but provides excellent user experience.

Check if your cloud provider offers the Odoo Studio module - it’s included in some Enterprise cloud plans. With Studio, you can customize the mobile interface without writing code. Create simplified views specifically for mobile devices that show only the essential travel management fields. You can also create custom dashboards that employees can access on mobile that show their upcoming trips, pending approvals, and travel expense status all in one place.

If you need a native mobile app experience, consider using React Native or Flutter to build a custom app that connects to your Odoo cloud instance via REST API. This gives you complete control over the mobile UX and can include features like push notifications for travel approvals, offline access to itineraries, and integration with device features like calendar and maps. The development cost is higher but the user experience is significantly better than web-based solutions for frequent travelers.

Having implemented mobile access for travel management across several Odoo 16 cloud deployments, I can share what works best based on different organizational needs and budgets.

The key question is: what level of mobile functionality do your travelers actually need? This determines the best approach.

Basic mobile access (view itineraries, check approval status):

For this level, the responsive web interface is perfectly adequate. Ensure your cloud instance is configured for mobile optimization:

  • Enable responsive view mode in Settings
  • Create simplified kanban and list views for travel requests that work well on small screens
  • Use Odoo’s built-in mobile menu customization to show only relevant travel management items
  • Implement bookmarks or shortcuts that employees can save to their phone home screens

This approach requires minimal configuration and works immediately. The user experience is acceptable for occasional use but not ideal for power users.

Intermediate mobile access (submit requests, approve workflows, view documents):

For this level, create custom mobile-optimized views using Odoo Studio or custom development. Key features to implement:

  • Simplified travel request forms with fewer fields and mobile-friendly input methods
  • Approval workflow buttons prominently displayed on mobile
  • Document viewer that works well on small screens for itineraries and receipts
  • Quick action buttons for common tasks (submit expense, request change, contact travel agency)

This requires moderate development effort (2-3 weeks) but provides good user experience. You can implement this entirely within Odoo without separate mobile app.

Advanced mobile access (offline capability, push notifications, device integration):

For this level, you need a progressive web app or native mobile app. The PWA approach is more cost-effective and easier to maintain:

PWA implementation approach:

  1. Create a lightweight frontend using Vue.js or React that connects to Odoo REST API
  2. Implement service workers for offline caching of travel data
  3. Use Web Push API for approval notifications
  4. Integrate with device calendar API to add travel events
  5. Implement biometric authentication for security

The PWA can be hosted on your Odoo cloud instance or separate hosting. Development time is typically 6-8 weeks for full functionality.

For your specific situation with frequent travelers, I recommend the intermediate approach using custom mobile-optimized views. This provides 80% of the benefit at 20% of the cost compared to building a custom app. Focus on these specific customizations:

  1. Create a mobile dashboard that shows: upcoming trips, pending approvals, recent expenses, travel policy reminders
  2. Simplify the travel request form to just essential fields with smart defaults based on user profile
  3. Add quick approval buttons to the travel request detail view
  4. Implement document preview that works on mobile for itineraries and receipts
  5. Create a mobile-friendly travel calendar view
  6. Enable email notifications for approvals and itinerary changes (works better than push notifications for most users)

Configuration tips for Odoo 16 cloud:

  • Go to Settings > Technical > User Interface > Views and create mobile-specific view variants
  • Use the groups_id field to show different views for mobile versus desktop users
  • Implement URL parameters that force mobile view even on tablets
  • Test thoroughly on both iOS and Android as rendering can differ
  • Consider implementing a mobile-specific menu structure that’s simpler than desktop

Security considerations for mobile access:

  • Implement shorter session timeouts for mobile users (4 hours vs 24 hours for desktop)
  • Require re-authentication for sensitive operations like changing travel destinations
  • Enable two-factor authentication for mobile access
  • Implement device registration so you can revoke access if devices are lost
  • Log all mobile access separately for security auditing

The intermediate approach should take 2-3 weeks to implement and will significantly improve the mobile experience for your travelers without the complexity and cost of a custom mobile app.

Thank you digital_workplace_architect for the comprehensive breakdown! The intermediate approach with custom mobile-optimized views sounds perfect for our needs. We have about 85 frequent travelers who would benefit from better mobile access, and the simplified forms and dashboard approach you described would address their main pain points. We’re going to start with the mobile dashboard and simplified request form. This is exactly the guidance we needed!