> ## Documentation Index
> Fetch the complete documentation index at: https://support.fieldko.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Add Fields and Picklists to the Mobile App

> Add a custom field or picklist to the FieldKo Atlas app, from field-level security and page layouts to the Metadata Collector and Reset Sync.

Reps see a field in the FieldKo Atlas app only when 4 things line up: the rep can read the field, the field is on the page layout the app uses for that rep, FieldKo has collected the layout, and the rep's device has downloaded the new metadata. Use this page to add a field or picklist so it reliably reaches reps, and to check which field types the app supports.

## User Permissions Needed

| To do this | You need |
| - | - |
| Create fields and edit page layouts | Customize Application |
| Edit field-level security in permission sets | Manage Profiles and Permission Sets |
| Run the Metadata Collector | FieldKo Manager Permission Set and FieldKo Native Permission Set |

## Before You Begin

* Check which page layout each rep profile uses for the object and record type. Visits and tasks have a layout per status record type. See [Record Pages, Layouts, and List Views](/platform/customize/record-pages-and-list-views#page-layouts).
* If the field is on one of your own objects, check that the object syncs. See [Add an Object to the App](/admin/offline-data#add-an-object-to-the-app).
* Make the change in a sandbox first if reps rely on the layout every day.

## Add a Field to the App

Follow these steps for a new field, or for an existing field that reps can't see:

<Steps>
  <Step title="Create the Field">
    From Setup, open **Object Manager**, select the object, click **Fields & Relationships**, and then click **New**. Choose a [supported field type](#field-types-the-app-supports). For field basics, see [Create Custom Fields](https://help.salesforce.com/s/articleView?id=sf.adding_fields.htm\&type=5) in Salesforce Help.
  </Step>

  <Step title="Give Reps Field Access">
    Grant **Read** access, and **Edit** access if reps fill it in, in a permission set that reps have. FieldKo's packaged permission sets can't be edited, so use your own permission set or permission set group. See [Profiles, Permission Sets, and Permission Set Groups](/platform/access/permission-sets).

    The app never downloads a field that the rep can't read, and skips fields the rep can't edit when it uploads, without showing a message.
  </Step>

  <Step title="Add It to the Page Layout">
    Add the field to the page layout assigned to the reps' profile for every record type they use. Set it to **Read-Only** or **Required** on the layout if you need to: the app follows both settings.
  </Step>

  <Step title="Run the Metadata Collector">
    From the App Launcher, find and select **Metadata Collector**. Click **Collect Objects and Layouts Metadata**, and then **Collect Profiles Metadata**. See [Run the Metadata Collector](/admin/offline-data#run-the-metadata-collector).
  </Step>

  <Step title="Ask Reps to Reset Sync">
    Ask reps to tap **Sync** first, so their unsynced work uploads, and then run [Reset Sync](/sync/reset-sync). The field appears after the reset.
  </Step>
</Steps>

**To confirm:** Log in to the app as a test rep, or ask one rep to reset first, and open a record of that record type. The field is in the section where you placed it.

For why each step is needed, see [How Configuration Reaches Devices](/admin/overview#how-configuration-reaches-devices).

<Warning>
  A **Reset Sync** removes everything on the device and downloads it again. Changes that haven't synced are lost. Always ask reps to tap **Sync** and wait for it to finish before they reset.
</Warning>

## Picklists, Record Types, and Dependencies

* **New picklist values:** Adding a value to a picklist is a field change. Add the value to each record type that should offer it, rerun the Metadata Collector, and ask reps to reset.
* **Values by record type:** When reps create or edit a record in the app's record screens, the app offers only the values allowed for that record's record type.
* **Record types:** When a rep creates a record of an object that has several record types available to them, the app asks them to choose one, and then shows that record type's layout. Reps can't change a record's record type in the app.
* **Dependent picklists:** The app follows field dependencies. When a rep changes the controlling field, the app clears dependent values that are no longer valid. Put both fields on the layout.

To learn more, see [Define Dependent Picklists](https://help.salesforce.com/s/articleView?id=sf.fields_defining_field_dependencies.htm\&type=5) in Salesforce Help.

## Field Types the App Supports

The app shows and edits these field types on its record screens.

| Field Type | In the App |
| - | - |
| Text, Text Area, Text Area (Long) | Text box. Long fields open a multi-line box. |
| Number, Currency, Percent | Number keyboard, formatted as currency or percent |
| Checkbox | Toggle |
| Picklist, Picklist (Multi-Select) | Single or multiple choice |
| Date, Date/Time | Date or date and time picker |
| Email, Phone, URL | Text box. On the record, reps can tap to email, call, or open the link. |
| Lookup | Search of the related object's records **on the device**. The related object syncs only if FieldKo collects it, for example because the lookup is on a layout. Reps can't pick a record that isn't on their device. |
| Address | Address fields |
| Formula, roll-up summary, auto number | Read-only. Salesforce calculates the value, so it shows the value from the last time the record downloaded and doesn't recalculate offline. |

These field types don't work as you might expect:

* **Geolocation** fields don't appear on the app's record screens.
* **Encrypted text** appears as plain text, not masked.
* **Time** and other types not in the table appear as a plain text box. Test them with a rep user before you rely on them.

## What Doesn't Show in the App

| Change | Why Reps Don't See It |
| - | - |
| A field added only to a Lightning record page or Dynamic Forms | The app uses page layouts, not Lightning pages. |
| A field on a layout for a different profile or record type | The app uses the rep's own assignment, or a FieldKo Layout Override. |
| A field the rep can't read | Field-level security always applies. |
| A field on an object that isn't collected | Add the object to **Objects To be Fetched**. |
| A layout change without a rerun of the Metadata Collector or a Reset Sync | The device still has the old layout. |

FieldKo's own screens, such as surveys, ordering, and core ranging, have fixed fields or their own settings. Page layouts change the app's record screens, not those screens. See [Configuration Reference](/admin/configuration-reference).

## See Also

* [Control What Syncs to the App](/admin/offline-data)
* [FieldKo for Admins](/admin/overview#how-configuration-reaches-devices)
* [Record Pages, Layouts, and List Views](/platform/customize/record-pages-and-list-views)
* [Record Types and Validation Rules](/platform/customize/record-types-and-validation-rules)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.