Entity History | Yext Hitchhikers Platform
Overview
Entity History displays the historical updates made to entities. The entity history can be accessed by navigating to Content > Configuration > Entity History in the Yext platform, or via the Logs API.
Below are the main differences between Entity History in the UI and via API:
UI | API | |
---|---|---|
Requires Developer App | No | Yes |
Includes Update Metadata (Event Type, Timestamp, Value (Rendered), etc.) | Yes | Yes |
Filterable | Yes (limited) | Yes |
Sortable by Timestamp | Yes | Yes |
View Previous Content for a Given Update | Yes | No |
Restore Field Values | Yes | No |
Returns Entity UID (Yext ID) | No | Yes |
Maximum Page Size (total records returned per request/page) | 100 | 1,000 |
See the
Events
and
Actors
sections for lists of the events and actors that can be displayed in Entity History.
Entity History UI
The Entity History page displays a table of past entity updates. Each row in the table corresponds to a single update, or event, on a given entity.
By default, updates are listed in descending chronological order. Update details can be viewed by clicking the View button on a given row.
Default Columns
These columns appear as part of the default view on the Entity History page:
Column Name | Description |
---|---|
Timestamp | The timestamp of the update. This column is sortable. |
Operation ID | Unique identifier for the operation responsible for the update (includes bulk updates). A single operation can contain multiple events. For example, if a user updates a field on an entity with three language profiles, this will appear in entity history as three separate rows (one for each language profile that was edited), but all three rows will have the same Operation ID. |
Entity | The entity that the event pertains to. This column displays a preview with an icon, name, and entity ID. |
Event Type | The type of update that took place. Event type descriptions can be found in the table below. |
Profile Language | The language profile that the update was made on. |
Field | The field that was updated (if applicable). |
Value (Rendered) | Represents the value present on the entity profile after inherited values have been resolved. If an embedded field is included, the embedded field’s value will appear. |
Actor | The actor responsible for the event. Can be one of the following: |
Additional Columns
These columns can be added to the Entity History table by selecting them from the Columns dropdown. Click Reset Columns to restore the default view.
Column Name | Description |
---|---|
Value (Raw) | Value representing how the field data is stored in Yext Content. |
Primary Profile | Boolean. Indicates whether the profile is the primary profile for the entity. |
Profile ID | Unique identifier for the entity profile that was updated. Profile IDs vary between an entity’s primary profile and its alternate language profiles. |
Actor Details | Description attributing the update to a specific actor and the interface through which the update was made. |
Restore Field Values
In the Entity History UI, you can restore field values on entities to the values reflected on a given row in the entity history. This applies only to Field Updated type events, and can only be done in the UI.
Restoring field values is not supported for these cases:
- Any event type besides Field Updated (note that the
FIELD_UPDATED_INHERITED
event type is not supported for restoring field values) - Multiple changes on the same field for the same entity
- Newly created entities whose ID shows “Value Pending”
- Field values cannot be restored on the following fields:
- Country Code
- Coordinates (Display, Dropoff, Pickup, Routable, Walkable)
- Locale
- Any image fields
Entity History via API
Entity History can be accessed by querying the entityHistory
table in the POST query endpoint of the Logs API. Before doing this, you will need to configure an app in the Developer Console and set the Logs endpoint permissions to read-only.
To do this, follow the steps in the Create an App in the Developer Console guide.
For details on a sample request and payload, and a sample response, see the Logs API documentation.
Events
These are the types of events that can take place on entities, and how they appear in Entity History:
Event Type | Description |
---|---|
ENTITY_CREATED | The entity was created |
PROFILE_CREATED | A language profile was created for the entity |
FIELD_UPDATED | A field value was updated on the entity profile |
FIELD_UPDATED_INHERITED | The rendered value for a field was updated due to an update to the inherited field’s value. The raw value for the inheriting field was not updated. Updates that result in this event include: field value updates on an entity’s primary language profile carrying over to its alternate language profiles; source field value for an embedded field being updated |
PROFILE_HIERARCHY_UPDATED | The primary language profile on an entity was changed from one profile to another |
PROFILE_DELETED | A language profile was deleted |
ENTITY_DELETED | The entire entity was deleted |
Actors
An actor is the source responsible for an event in an entity’s history in Yext. In addition to the actor, Entity History includes actor details, which is further information about the exact source of the event. For example, an event could have happened due to a change made by a User (the actor), specifically via Entity Edit (the actor details).
An event in an entity’s history can be attributed to any of these actors:
- App
- Yext System
- Yext User
- Yext Account Team
- Connector
Most Yext System updates appear as a separate action triggered by a Yext User event. For example, if a user updates the Address field on an entity, the backend system would then need to geocode that new address. The update would then appear as two rows in Entity History (one with an actor of Yext User for the field edit in the UI, and one with an actor of Yext System for the geocoding).
Actor Details
An actor responsible for a particular event can be further specified by any of these actor details:
Actor Detail | Description |
---|---|
Entity Edit | Edits made to fields on an entity from the Entity Edit screen in the Yext UI |
Storm | Edits made directly in the Yext UI, outside of the Entity Edit screen |
Entity Upload | Edits made via the File Upload tool (under Content > Entities > Add Content > Entity Upload) |
API | Edits made via an API endpoint |
EnhancedLists | An edit made to an entity via Content > Menus (as opposed to on the entity itself) |
M4 | An edit made via Configuration as Code (the CLI or Admin Console), by pushing CaC resources that update an entity or modify a file in the admin console |
Employee [ID] on behalf of User [ID] (TemplateServer:applyTemplate) |
An internal tool used by Yext employees for applying entity templates on a client’s behalf |
SmartLabeler | The backend system that displays which saved filters an entity is part of |
GeocodeServer | The backend system that creates a geocode for an entity based on its address. You will see additional details about the creation of the geocode, similar to this format: (source user id: 12345678, details: PIN_YOUR_BUSINESS) (source user id: 1234, details: Geocode Validation Task) (source user id: 1234, details: Validated from TASKPROCESSING) |
TimezoneServer | The backend system that assigns a time zone to an entity based on its address and/or geocode |
ListingsProfileUpdaterMessageHandler | The backend system for monitoring a listing’s Google Place ID. If a new Google Place ID is found for a listing during the scanning process, Yext will update the entity in Content that powers that listing with the new Place ID. |
match set change | The backend system that monitors the Facebook listing being synced to. This indicates when a new Facebook match is pulled in for a listing. |
profile pic fetch for partner 559 due to linkage change | Specific events related to the “match set change” actor details. If a new Facebook match is pulled in for a listing, the following fields may be updated on the corresponding entity in Content: Facebook cover photo, Facebook page URL, Facebook profile photos. |
Bing (approved by [insert publisher name] ) |
A user approved a suggestion from some other publisher, coming from Bing |
EntityTypeUpdateHandler | The backend system that handles converting entity types. If an entity is changed from one type to another, this system will make the change from one type to another. |
EntityReferenceUpdater | The backend system that handles updates for entity references. If a user has a two-way entity relationship set up between Entity A and Entity B, and edits the Description field for Entity A, the same update will be made on Entity B by the EntityReferenceUpdater. |
PurgeReopenDateTask | The backend system for removing holiday hours from entities once they are in the past |
feedback | The backend system that pulls in publisher data for some fields. For example, if an entity in Content does not have a profile picture specified, and it then syncs to a Facebook listing for the first time, this system will populate the profile picture on the entity with the profile picture on the Facebook listing. |
IsoRegionServer | The backend system that provides an ISO code for a given location |
Legacy Actor Details
You may see these actor details when reviewing past entity history, but they will not appear on new entity history events moving forward:
Actor Detail | Description |
---|---|
Feed Upload | Legacy name for Entity Upload, prior to 2018 |
Publisher Suggested Edits | Legacy version of publisher suggestions, prior to 2020 |
Limitations
Global
- Entity History is limited to the last three years (1,095 days). Events older than three years are deleted from the history.
- Newly created entities will appear in the Entity History UI with an undefined entity type and an ID of “Value Pending.” It may take up to one hour for these values to sync. Field updates cannot be restored for these entities until these values are resolved.
- It may take up to five minutes for new update logs to appear in Entity History.
UI
- The ability to export logs is not currently supported. Field Updated (Inherited) events cannot be restored.
- Field values cannot be restored on the following fields:
- Country Code
- Coordinates (Display, Dropoff, Pickup, Routable, Walkable)
- Locale
- Any image fields
API
- Field values cannot be restored.