---
category: [Administration & Integrations, Platform and Product Extensions, Platform and Product Extensions/Integration, Administration & Integrations/Custom Integrations & Apps, Platform and Product Extensions/Workday Extend]
keyword: [Extend, App Builder, Page Builder]
nav: wcp_docs
parent_url: /wcp_docs/
title: Add Pages in Visual Mode
layout: subsection
---

### Prerequisites

<a id="prereq_ydj_hws_pwb"></a>
Create or open an Extend app in App Builder.

### Context

<a id="context_N10035_N1001E_N10001"></a>
App Builder's Visual mode enables you to create pages for your app by adding tags and adjusting their attributes in an intuitive graphical interface. You can also use Visual mode to create scripts for your pages. This method is faster and less potentially error-prone than manually entering PMD code.

All of the tags that are available in Code mode are also available in Visual mode.

### Steps

1.  In App Builder, use the toggle switch in the upper right of the interface to ensure that App Builder is in <i>Visual</i> mode.
2.  Click <b>Add Component</b> in the components panel. Select the <i>Page</i> type and provide a <b>Name</b>.

    Each page has <b>Presentation</b>, <b>Page Load</b>, <b>Page Submit</b>, <b>Scripts</b>, and <b>Advanced</b> tabs.

    When you create page elements on these tabs, App Builder creates the appropriate PMD code in the background. To view the code, use the toggle switch to return to Code mode.

3.  On the <b>Presentation</b> tab, select the required <b>Page Type</b>, <i>View</i>, <i>Edit</i>, or <i>Confirm</i>.

    See [Concept: Page Types](/wcp_docs/zrd1553321160092.html).

4.  The <b>Presentation</b> tab has divisions for the page's Title, Body, Tabs, and Footer. To add a tag, click the appropriate plus symbol. Body and Tabs tags have various types. Select the appropriate one. Examples: click the plus symbol to add a Body tag, then select the <i>Section</i> type.

    <b>Note:</b> When you create a new page, App Builder automatically adds Text and Rich Text children to the Body and Footer tags, respectively.

5.  Each tag's attributes are displayed beneath it. Adjust them as required, adding child tags where necessary. See [Reference: PMD Tags](/wcp_docs/dyg1528862158582.html) for detailed information.

    By default, App Builder displays populated attributes for a tag in a condensed view. You can edit, add, and remove attributes from this view. To expand the view and see all of the tag's available attributes, click the chevron icon on the top left of the card. The <b>Show all attributes</b> toggle switch enables you to view all of the attributes associated with a tag or just those that you have populated.

6.  On the <b>Page Load</b> tab, click <b>Add Inbound Data</b> and select <b>REST Endpoint</b> or <b>Graph Endpoint</b> as a source for incoming data. You can add multiple inbound endpoints.
7.  Provide a <b>Name</b> to serve as an alias for referencing the endpoint's data.
8.  Select the <b>HTTP Method</b> you want to use. The available methods are:

    -   `Get`
    -   `Post`
    -   `Put`
    -   `Patch`
    -   `Delete`

9.  Provide a complete <b>URL</b> or combine a <b>Base URL Type</b>, as defined in your App Metadata component, and a partial <b>URL</b>.
10. Use the tabs to configure your HTTP request to the endpoint, as described in this table:

<table><thead><tr><th>Tab</th><th>Description</th></tr></thead><tbody><tr><td><b>Query</b></td><td>(Graph endpoints only) Reference a Graph Query Component by providing its <b>Query ID</b>. <p>Provide <b>Parameters</b> as key/value pairs. The key is a static string containing the parameter name, which should match the name in <code>parameters[]</code> inside the Graph Query component. The value is an object containing the parameter value, which can be a native JSON map or a script that returns a map.</p> <p>Provide <b>Variables</b> as key/value pairs. The key is a static string containing the variable name, which should match the <i>$placeholderVariable</i> in the query. The value is an object containing the variable value, which can be a native JSON map or a script that returns a map.</p></td></tr><tr><td><b>On Send</b></td><td>Provide a script for execution before the HTTP request is sent.</td></tr><tr><td><b>Authentication & Headers</b></td><td>Specify the endpoint authentication scheme by the ID defined in the Site Metadata, and provide headers for inclusion in the request.</td></tr><tr><td><b>Body</b></td><td>(REST Endpoints only) Specify variables, using the <b>Value</b> field to provide a value and the  <b>Outbound Path</b> field to provide a name.</td></tr><tr><td><b>Error Handling</b></td><td><p><b>Response Error Detail</b></p> <p>Enables the display of error messages returned by endpoints. In the <b>Errors</b> field, provide a list binding of the error details from the endpoint. In the <b>Error Summary</b> field, provide a string binding of the endpoint response field containing the summary of the error.</p> <p><b>Fail On Status Codes</b></p> <p>Provide an HTTP status <b>Code</b> that must be treated as an error and routed to an error page. Optionally, provide a reference <b>Code Name</b>.</p> <p><b>Ignore Failures</b></p> <p>Provide an HTTP status <b>Code</b> that should be ignored and not routed to an error page. Optionally, provide a reference <b>Code Name</b>.</p></td></tr><tr><td><b>Settings</b></td><td>Optionally add attributes that have these effects when selected: <ul><li>    Deferred: Endpoint not called on page load but can be invoked from a script.
</li><li>    Exclude: Endpoint isn't called on page load and can't be invoked from a script.
</li><li>    Best Effort: Page doesn't throw an error when a widget encounters an error but continues to load without that widget.
</li><li>    Is Collection: Calls the endpoint with a page size of 100, and creates a data collection with iterative endpoint requests until the data collection contains the total number of rows. Assumes that the endpoint has the <code>limit</code> and <code>offset</code> parameters for pagination
</li><li>    Search: Attaches query parameters to the URL. Select only if you use the endpoint for a faceted search.
</li></ul></td></tr></tbody></table><br/>

11. In the <b>On Load</b> box, enter script text that executes when the page loads and the incoming data is consumed.
12. On the <b>Page Submit</b> tab, to ensure that the <b>OK</b> and <b>Cancel</b> buttons don’t display on the page, select the <b>Standard Edit Buttons Hidden</b> check box.
13. By default, the <b>Cancel</b> button on an edit page navigates to the previous page. To define an alternative, select a page from the <b>Task ID</b> drop-down list.

    In the <b>Parameters</b> field, provide a binding to a map object containing parameters sent to the specified page.

    In the <b>Parameter Bindings</b> field, provide key/value pairs where the key is a static string that identifies the parameter value in the destination page and the value is binding string that contains the parameter value.

14. In the <b>On Submit</b> box, enter script text that executes in response to user interaction.
15. Click <b>Add Outbound Data</b> and select <b>REST Endpoint</b>, <b>Outbound Variable</b> or <b>Graph Endpoint</b> as a target for outgoing data. You can add multiple outbound endpoints.
16. For an <b>Outbound Variable</b>, provide a <b>Name</b> and select a <b>Variable Scope</b>, <i>Flow</i> or <i>Session</i>.

    Flow variables are available during the lifecycle of a page flow. Session variables are available during the lifecycle of a user session.

17. For a <b>REST Endpoint</b> or <b>Graph Endpoint</b>, follow the instructions in steps 9 and 10 above.
18. On the <b>Scripts</b> tab, from the <b>Include</b> drop-down menu, select scripts from your app to include in your page.
19. In the <b>Script</b> box, enter the script text for functions that can be called within other script blocks in this PMD. See [Reference: PMD Scripting](/wcp_docs/jab1582081565510.html) for detailed information.

    App Builder automatically encloses your scripts within `<% %>` notation in the background. You don't need to add the symbols here.

20. On the <b>Advanced</b> tab, select up to 3 <b>Security Domains</b> to secure your page. See [Steps: Secure the Pages of an Extend App](/wcp_docs/sfv1677268046417.html) for detailed information.
21. Select a <b>Preferred Label Position</b> for your widget labels:

    -   <i>Atop</i>: The labels display on top of the widgets.
    -   <i>Aside</i>: The labels display on the left of the widgets.
    -   <i>Amiss</i>: The labels don't display.

22. If you want your page to display as a popup window, select the appropriate check box in the <b>Micro Popups</b> section:

    -   <b>Micro</b>: The page displays as a popup window in the edit flow.
    -   <b>Micro First Page Only</b>: The first page displays as a popup window. The next page in the edit flow displays in full.
    -   <b>Micro Conclusion</b>: Displays a confirmation window at the end of an edit flow.

23. In the <b>Application Exceptions</b> section, configure a custom error or warning message to display if the page encounters an exception during page load.


### Related Information

[Tutorial: Advanced Pages with Visual Mode](https://wd5.myworkday.com/workday/learning/course/fd85e31bcb1010009eef3a82128a0000?type=9882927d138b100019b928e75843018d)

