Follow this guide to install either the ECL Menu Connector, ECL Menu Item Connector, or both together. Review the options below and choose the right connector(s) for your use case before getting started.
Which Connector Should You Install?
| Connector | What It Creates | Use When |
|---|---|---|
| ECL Menu Connector | One entity per entire menu | You want to represent each menu as a single entity with sections and items nested as subfields |
| ECL Menu Item Connector | One entity per unique menu item across all menus | You want individual entities for each menu item with subfields containing the menu name and section data |
| Both connectors | Menu entities + Menu Item entities with linked entity relationships |
Note: Neither connector will delete your ECLs. Your ECLs will continue to power your listings across platforms.
Step 1: Create an App in Your Yext Account
Before installing either connector, create an app in your Yext account to generate an API key.
- Navigate to the Developer Console.
- Click Add App. Grant read-only permissions to the Management API Entities endpoint.
- Within your app, click the API Credentials tab, then API Keys > Show API Key. Copy this value and keep it accessible for the steps ahead.
Tip: If you have already installed one of the connectors and are now installing the other, you can reuse the same Yext App and API Key.
Step 2: Install the ECL Menu Connector
The ECL Menu Connector pulls menu data directly from the ECLs in your account and converts them into Menu entities. It uses a custom entity type called "Menu" built specifically for storing ECL data as entities.
Menu Fields
- Menu Section (custom field type, comprised of the following subfields)
- Section Name
- Section ID
- Section Description
- Menu Item (custom field type, comprised of the following subfields)
- Item Name
- Item ID
- Item Price (Value)
- Item Description
- Item Photo
Tip: Menu entities allow you to nest menu item data to mimic the structure of your ECLs. However, menu item options and other sub-option fields cannot be added directly to Menu entities. If you need to reference menu item option fields, we recommend installing both connectors and using Streams to link Menu Item entities to Menu entities.
Installation Steps
- Navigate to Apps > Directory and search for ECL Menu Connector.
- Review the app details and click Install.
- Click Next to allow the connector to access your Yext account.
- Enter the API Key generated in Step 1.
- Click Authorize. The connector will install and run automatically, and you will be redirected to the ECL Menu Connector overview page.
- Click Run Connector to pull in all of your Menu entities.
After installing, click Edit Configuration to add additional data transforms or field mappings.
Menu Entity Relationship Mapping
- Item Photo Field: Any menu item that does not have a Photo URL will be uploaded with a gray placeholder image. If you would like to update the placeholder image, you can replace the link in Transform #27 in the Connector with the link to whichever photo you would prefer. If you don’t have any item photos, you can unmap all of the photo fields in bulk by selecting all of the photo columns in the mappings tab, and then clicking More Actions > Clear Field Mapping.
-
Index Mapping: By default, this connector includes mapping for 20 menu sections and 20 menu items within each section. If your menus have more than 20 sections or items per section, you will need to add the additional selectors and mappings manually.
- You can do this either in the UI or in the Admin Console. For each field, you would need to add an additional index number
[x]starting with 20 (the first 20 sections/items are index 0-19). You can copy the formatting in the Admin Console or in the UI for each field.
- You can do this either in the UI or in the Admin Console. For each field, you would need to add an additional index number
Troubleshooting
Download the connector run details and open the entity diagnostics file to review error messages.
| Error | Resolution |
|---|---|
| Photo field errors | Verify that all photo links are formatted correctly. Add transforms to fix link errors as needed based on the diagnostics file. |
429 error |
You are hitting an API rate limit from running the connector too frequently. Wait an hour and re-run. |
Step 3: Install the ECL Menu Item Connector
The ECL Menu Item Connector pulls menu item data directly from the ECLs in your account and converts them into Menu Item entities. It uses a custom entity type called "Menu Item" built specifically for storing ECL data as entities.
Tip: Since many menu ECLs have similar menu item offerings, there will be a lot of duplicate menu items brought in as entities if duplicates aren’t filtered out. As a built-in part of this app, there is a function called isDupe that is automatically applied and filters out duplicate menu items from the connector. The output is a single menu item entity for each unique menu item name. The first occurrence of each menu item is the one that will be uploaded to your Yext account.
Menu Item Fields
- Name
- Entity ID
- Item Description
- Photo
- Item Option (custom field type, comprised of the following subfields)
- Option Name
- Option Price (Value)
- Associated Menus (ID)
- Associated Menus
- Item Calories
Installation Steps
- Navigate to Apps > Directory and search for ECL Menu Item Connector.
- Review the app details and click Install.
- Click Next to allow the connector to access your Yext account.
- Enter the API Key generated in Step 1.
- Click Authorize. You will be redirected to the ECL Menu Item Connector overview page.
Before running the connector, follow the instructions below based on how many menu ECLs are in your account.
Fewer Than 100 Menu ECLs
- Click Run Connector to pull in all Menu Item entities.
- Check out the newly created Menu Item entities in the Knowledge Graph
100 or More Menu ECLs
Pulling in and deduplicating all menu items from 100 or more menus may cause the connector to hit a rate limit. To avoid this, configure the connector to pull from a single "Corporate Menu" that contains all menu items. The connector will still map all associated menus as linked entities on Menu Item entities, as long as the ECL Menu Connector is also installed.
- If you don't have an existing Corporate Menu containing all menu items:
- Export all of your menu ECLs and remove duplicate menu item names in Excel (keep only one instance of each item name).
- Re-upload this as a new Menu ECL called "Corporate Menu." See the Create an Enhanced Content List help article for instructions.
- Copy the ECL menu ID for the Corporate Menu.
- Click into the connector and click Edit Configuration.
- Scroll to Step 2: Settings and click Edit.
- Change the Operation dropdown to Fetch Items from One Menu.
- Enter the menu ID you copied and click Continue.
- Save the connector, then click Run Connector.
After installing, click Edit Configuration to add additional data transforms or field mappings.
Menu Item Entity Relationship Mapping
There are two options for creating relationships between Menu Item entities and their associated menus. You may use one or both depending on your use case.
| Options | Details |
|---|---|
| Associated Menus (text list) | This is the built-in configuration. If you don’t change any settings, the “Associated Menus” column will be mapped to a custom “Associated Menus” text list field that will populate with the names of all of the menus that offer the item. You will be able to reference these menu names in the front-end, but they won’t be linked to any Menu entities. |
| Associated Menus (ID) | Follow Step 4 of this guide to use the ECL Menu connector with the ECL Menu Items connector. |
Additional Data Configuration
If you would like your Menu Item entities to include more data than what is configured in the default settings, such as section data or additional item option data, there are a few options:
Use a Corporate Menu
Use the Menu entity or Menu Item connector to pull in data from just one “corporate menu.” This would allow you to pull in more menu item subfields, as you could map data such as parent section or item options subfields to just one menu item.
These mappings aren’t built in by default because when using the Menu Item connector, you are running through many duplicate items across all menus using the “isDupe” function and you keep one menu item. Because of this, there could be variation across your menus on the options for each item, so we are unable to by default map just one value to a given field on a menu item entity.
Pull In All Duplicates
You could remove the “isDupe” function within the menu item connector, pulling in duplicate entities for each menu item that appears across all of your menus. You can then add whichever additional mappings such as section name or option price to each individual menu item entity, and filter your entities using saved filters or folders so that your menu items are organized by parent menu, section, or any other filterable field.
If you have many menus and duplicate menu items and you are concerned about exceeding entity capacity, we wouldn’t recommend using this approach. Instead, you can use the corporate menu option or add additional data via spreadsheet upload.
Step 4: Use Both Connectors Together
Using both connectors together lets you create Menu entities and Menu Item entities with linked entity relationships between them. Using Streams, you can then reference data across linked entities, which is optimal for representing menu offerings by location in Pages or Search.
Steps to Install
To link your Menu entities to your Menu Item entities, follow these steps:
- Make sure the ECL Menu Connector is installed in your account. This will create Menu entities and will store the Entity ID on the entity.
- Make sure the ECL Menu Item Connector is installed in your account.
- Make the following adjustments to the ECL Menu Item Connector:
- Click into Edit Configuration
- Scroll down to Transform #8, Function on a Single Cell. Click Edit, then click the drop-down next to Plugin.
- Select
eclItem_getAssociatedMenuIdsand change the Function togetMenuIdArray. Click Apply.
- Click into the Map Data tab, and scroll down to the Associated Menus column.
- Change the field mapping to Associated Menus (ID).
- Click Save and run the connector.
Since you already have Menu entities in your account, the linked Menu entities will be added to your Menu Item entities based on matching the Entity IDs of the associated Menus.
Tip: To map both menu names and linked Menu entities to your Menu Item entities, duplicate the Associated Menus column using a transform, then map the duplicate to the Associated Menus field.