Primary app menu

Kate Santo Updated by Kate Santo

When a user enters a Padoq app for the first time, they follow the onboarding journey. A feature of that journey is the option for the user to choose a user group. This is particularly relevant for customers who use their apps for internal workforce communication. For example, a business that has large departments for HR, Marketing, Sales, etc. might want to offer different menus and different content to each group.

The appMenu and primaryAppMenuId properties allow just that. Read more in this guide.

See for yourself

  • You can download the iOS or Android app on your phone to follow this journey along. And you can also log in or sign up to the web app here
  • You can also follow along by checking out the images or code snippets in this guide
  • And you will find the relevant endpoints linked and explained in this guide, but the full API is documented in Swagger UI


  • The app or namespace needs to have app menus set up
  • Those app menus need to have categories assigned to them
  • The user must be authenticated onto the app
  • Through their onboarding, the user must have selected the user group that they will belong to
  • The configuration of the app needs to:
    • Say if a user can update the user group they belong to. Or if only admins can do so through the Super Admin dashboard
    • Have a new value to reflect the name given to the app menu category. When the category in the app configuration matches the category in a given app menu, the menu will be presented to the user
    • Have an app menu set up for each user group presented in the UI, with the correct category assigned to it
    • Have a new property in the user profile called primaryAppMenu where the id for the app menu they selected during onboarding will be stored


  1. As the user onboards the app, the getAppMenuCollection endpoint is called. This returns all of the menus that have been set up for the specified app or namespace. Each menu has a label property, and its string value is what's used in the UI
  2. The user selects a menu from the options presented. The id of the menu selected is stored in the primaryAppMenuId property of the user profile. This is saved alongside the rest of the user profile when onboarding is complete:
    1. {
      "primaryAppMenuId": "exampleappmenuid"
  3. When the user logs in again, the app presents the correct menu by fetching the user profile (getUser) and using the value stored in the primaryAppMenuId property
  4. By default, users can update the menu selected during onboarding. A client might prefer that only admins can update the menu served to a user. In any case, this is done by calling the updateUser endpoint and storing the new app menu id in the primaryAppMenuId property
  5. Note: App menus can be created, read, updated and deleted via the createAppMenu, getAppMenuCollection, updateAppMenu and deleteAppMenu endpoints
  6. An app menu might look like this:
    "menus": [
    "id": "122a6774-8f78-4188-b56e-5b7c23ce4615",
    "disabled": false,
    "version": 1,
    "category": null,
    "label": "Dev app menu4",
    "height": 2,
    "width": 2,
    "items": [
    "title": "Workforce",
    "width": 2,
    "action": {
    "type": "SUBMENU",
    "params": {
    "appMenuId": "dbfa2409-dc01-467d-a70f-29a0543e52d8"

How did we do?

App menus