Skip to main content

Customize the Screen displayed in an App Ribbon

How to customize the default starting screen displayed in app ribbons.

App Ribbons allow a user to view other records in context of the associated record. For example, if a user is viewing a contact, then you can see all its associated records from other apps.

The screens that show within the app ribbons are embedded screens from the apps themselves. In the below example, the user is editing an activity:

This is the same screen used in the Activities App, and if you wish to customize it, you would customize the New / Edit Activity screen in the Activities App.

However, the first screen you see when you click on an App Ribbon is different. It's the default start screen for that app ribbon.


App Panel Screens

When you first click on an App Ribbon, you will get a default screen called the App Panel Screen.

This screen is automatically created by Method when you first create an App Ribbon, and this screen can be customized, just like any other screen in Method.

šŸ“Œ Note: Customizing an app panel screen requires an advanced understanding of Method customization. This article will only cover the specifics you need to know when customizing an App Panel Screen.


Finding an App Panel Screen

Before customizing the app panel screen, you need to locate where it is.

  • Each app panel screen is found in their respective app.

For example, the screens shown in Activities Open and Activities Closed App Ribbons are found in the Activities App.

To access them:

  1. Go to the Method Dashboard.

  2. Click the vertical ellipsis [ ā‹® ] on the App you wish to access, and then click Manage on the dropdown menu. In the below example, we are accessing the Activities App.

  3. The App Panel screens will be found in the Screens section.


Naming Conventions for App Panel Screens

All App Panel Screens follow the same naming convention.

Panel - [App Ribbon Name] (App)

  • App Panel screens are prepended with the "Panel -"

  • Followed by the name as shown in the App Ribbons tab.

  • Followed by the name of the app where the app ribbon will be found enclosed in brackets.

For example, the below image shows a few App Panel screens from the Activities App.

  • Panel - Activities Closed (SalesReceipt): This is the screen for the Activities Closed app ribbon when viewing a Sales Receipt.

  • Panel - Activities Open (Cases): This is the screen for the Activities Open app ribbon when viewing a Case.

  • Panel - Activities Open (Contacts): This is the screen for the Activities Open app ribbon when viewing a Contact.

  • Panel - Activities Open (Estimate): This is the screen for the Activities Open app ribbon when viewing an Estimate.


Get the Record Being Viewed

When you customize an App Panel Screen, you will often need the record the app ribbon is showing, for example the contact being viewed. Use these two session variables:

  • App Ribbon Link Value: The viewed record's value for the field the app ribbon joins on.

  • Main Panel Record ID: The RecordID of the record open in the main screen.

App Ribbon Link Value

The field the app ribbon joins on is set when the app ribbon is created.

For example, look at the Activities Open app ribbon for Amy Ford:

When the Activities Open app ribbon was added to the Customers & Leads app, it was required to specify the field in the Activity table (a dropdown field called "Contacts") that relates to the Contacts table, as highlighted below:

So on the Panel - Activities Open (Contacts) screen, App Ribbon Link Value holds the RecordID of the associated Contact. In this example, this would be the RecordID for Amy Ford.

Main Panel Record ID

Main Panel Record ID holds the RecordID of the record that holds the app ribbon.

Again, take a look at the Activities Open app ribbon:

The Contact that holds the Activities Open app ribbon is Amy Ford, so Main Panel Record ID holds her RecordID.

Why Are They Usually the Same?

Most app ribbons join on the viewed record's own RecordID, so both session variables hold the same value. For example:

  • If you are viewing a contact's app ribbon of activities, both will hold the record ID for the contact.

  • If you are viewing an opportunity's app ribbon of activities, both will hold the record ID for the opportunity.

  • If you are viewing an estimate's app ribbon of activities, both will hold the record ID for the estimate.

However, the two will differ in the Customers & Leads app when the app ribbon is a transaction app ribbon, such as the Panel - Estimates (Contacts) app ribbon.

A transaction has no dropdown to associate it to a contact; it only associates to a customer, or an entity. So in this case:

  • App Ribbon Link Value: Holds the record ID for the customer associated to the estimate.

  • Main Panel Record ID: Holds the record ID for the contact that is currently being viewed in the Customers & Leads App.

Use Cases

There are two main reasons why you would need the record ID of the record being viewed:

  • View filtering: Restrict a listing of records to the ones associated to the record. If listing out activities, you may want to restrict it to the contact being viewed. Add a filter on the grid, choose Is, then Session, and pick a variable under App Ribbon.

  • Pre-populating fields: If you navigate to a āŠ• New screen, for example a new activity screen, you will want to pre-populate the Contact dropdown. In the Go To Screen action, set the Contacts param to Session → Main Panel Record ID.

šŸ“Œ Note: The session variables are only available on the App Panel Screen itself. If you open another screen from the panel, pass the value to it as a screen param.

The tricky thing to note is that the Screen Active Record ID for the App Panel Screen (and any embedded screen in the app ribbon) is different than the screen viewing the app ribbon!

Take a look at the below example:

A common mistake is to think the Screen Active Record ID for the App Panel Screen is the contact's record ID. It is not.

Even though you see the App Panel Screen as part of the View Contact screen, it is a separate embedded screen with its own Screen Active Record ID, which is set to -1. That's why you use the session variables above to get the record being viewed.

Did this answer your question?