How to send or skip a notification when an entry is edited
To send a Gravity Forms notification when someone edits an entry in GravityView, set the notification’s Event to GravityView - Entry is updated. The notification goes out every time someone saves the Edit Entry screen, whoever saves it and whether or not a value changed. To limit it to people editing their own entries, or to edits that change a certain field, add one of the code snippets below.
Choose the event #
The event you pick decides which edits send the notification.
| GravityView - Entry is updated | GravityView - Entry approval is reset | GravityRevisions - Entry is updated, revision is saved | |
|---|---|---|---|
| Someone saves the Edit Entry screen in a View | Yes, on every save | Only when the save changes the status to Unapproved | Yes, if the form saves revisions |
| An administrator saves the entry on its page in Gravity Forms | No | No | Yes, if the form saves revisions |
| A user edits a field inline with GravityEdit | No | No | Only if the form saves revisions for inline edits |
| A visitor submits the form for the first time | No | Yes | No |
| A moderator changes the status in the Entries list | No | Only for a reset | No |
Code updates the entry with GFAPI::update_entry() | No | No | No |
GravityView - Entry approval is reset fires after an edit only when Unapprove Entries After Edit is on for the View and the person saving can’t moderate entries. The entry must also have been Approved or Disapproved before the save. Administrators and Editors can moderate entries by default.
A save that also changes the status, through the Approve Entries field or the Approve/Reject field on the Edit Entry screen, sends GravityView - Entry is updated and the approval notifications. How to send email notifications when an entry is approved covers those.
With multi-page editing turned on, each click on Next or Previous saves the entry, so each click sends these notifications.
To send a notification after an inline edit, follow How to trigger form notifications when editing with GravityEdit. To show the old and new values in the email, follow How to send form notifications after an entry has been updated, which uses GravityRevisions.
Add the notification #
- Go to Forms, open your form, then click Settings and Notifications.
- Click Add New.

- Enter a Name and set Event to GravityView - Entry is updated.

- Under Send To, enter an address, or choose Select a Field to use the form’s email field. Fill in the Subject and Message.
- Click Update Notification.
To send only when a field holds a certain value, turn on Conditional Logic at the bottom of the notification. A rule such as Availability is Fully booked reads the values after the save, so it can’t tell whether the value changed. The last snippet on this page compares the two.
Find the notification’s ID #
Each snippet below names one notification, so your other notifications keep sending. On the Notifications page, click the notification’s name and look at the address in your browser. The ID is the value after nid=, which is 6a4f1c2d9e3c8 in this address:
https://example.com/wp-admin/admin.php?page=gf_edit_forms&view=settings&subview=notification&id=12&nid=6a4f1c2d9e3c8Send the notification only when people edit their own entries #
This snippet compares the logged-in user with the person who created the entry. An administrator or Editor who saves someone else’s entry sends nothing, and an administrator who saves an entry they created does send the notification.
Someone who edits through a Magic Links link without logging in isn’t a logged-in user, so the snippet skips the notification for that edit, whether or not the entry has a creator.
/**
* Sends a notification only when a logged-in person edits an entry they created.
*
* @param bool $is_disabled Whether the notification is already disabled.
* @param array $notification The notification being sent.
* @param array $form The form the notification belongs to.
* @param array $entry The entry that was edited.
*
* @return bool True to skip the notification.
*/
add_filter( 'gform_disable_notification', function ( $is_disabled, $notification, $form, $entry ) {
// Change this to your notification's ID.
if ( 'abc123def456' !== rgar( $notification, 'id' ) ) {
return $is_disabled;
}
$user_id = get_current_user_id();
// Nobody is logged in, or the person saving the edit did not create this entry.
if ( ! $user_id || (int) rgar( $entry, 'created_by' ) !== $user_id ) {
return true;
}
return $is_disabled;
}, 10, 4 );Note: To add this code to your site, follow Adding custom PHP code snippets to your website.
To skip the notification for everyone who can moderate entries, use this version instead. It also skips an administrator’s edits to their own entries, and it still sends when someone with a custom role edits another person’s entry without being able to moderate it.
/**
* Skips a notification when the person saving the edit can moderate entries.
*
* @param bool $is_disabled Whether the notification is already disabled.
* @param array $notification The notification being sent.
*
* @return bool True to skip the notification.
*/
add_filter( 'gform_disable_notification', function ( $is_disabled, $notification ) {
// Change this to your notification's ID.
if ( 'abc123def456' !== rgar( $notification, 'id' ) ) {
return $is_disabled;
}
return GVCommon::has_cap( 'gravityview_moderate_entries' ) ? true : $is_disabled;
}, 10, 2 );Note: To add this code to your site, follow Adding custom PHP code snippets to your website.
Skip the notification on a first submission #
GravityView - Entry approval is reset fires on every new entry, because GravityView gives a new entry the Unapproved status when the form is submitted. On a form with the Approve/Reject field, GravityView - Entry is approved or GravityView - Entry is disapproved fires on submission too. The notification’s settings can’t tell a first submission from a later change, so this snippet checks whether the entry was created during the same page request.
If someone edits an entry twice with no approval in between, the second edit doesn’t send GravityView - Entry approval is reset, because the status is already Unapproved.
/**
* Skips a notification when the entry was created during this request, which means it's a first submission.
*
* @param bool $is_disabled Whether the notification is already disabled.
* @param array $notification The notification being sent.
*
* @return bool True to skip the notification.
*/
add_filter( 'gform_disable_notification', function ( $is_disabled, $notification ) {
// Change this to your notification's ID.
if ( 'abc123def456' !== rgar( $notification, 'id' ) ) {
return $is_disabled;
}
return did_action( 'gform_entry_created' ) ? true : $is_disabled;
}, 10, 2 );Note: To add this code to your site, follow Adding custom PHP code snippets to your website.
Skip the notification when a field didn’t change #
Gravity Forms passes the entry as it was before the edit to its gform_after_update_entry action. This snippet compares the field you choose in that copy with the saved entry. If they match, it skips the notification with gform_disable_notification.
Set $form_id to your form’s ID, and $field_id to the ID that the form editor shows at the top of Field Settings when you click the field.

Name, Address, and Checkboxes fields store one value per input. Use the main ID, such as 3, and the snippet compares them all. In a File Upload field, removing a file is a change too, and so is adding or replacing one.
These cases affect the result:
- A field that isn’t on the View’s Edit Entry layout can’t change, so the notification never goes out.
- If conditional logic hides the field during the edit, GravityView clears its value. That counts as a change, and the notification goes out.
- An entry created through the Gravity Forms API can have values rewritten the first time someone saves it. A Phone field’s
5035550134becomes(503) 555-0134, a Number field’s1,200.50becomes1200.50, and an Address field’sUnited StatesbecomesUS. Line breaks and rich text can change too. The snippet treats each of these as a change once, even if nobody touched the field.
/**
* Skips a notification when an edit leaves the watched field as it was.
*
* Name, Address, and Checkboxes fields store one value per input (3.1, 3.2), so the code compares them all.
*
* @param array $form The form the entry belongs to.
* @param int $entry_id The ID of the entry that was edited.
* @param array $original_entry The entry as it was before the edit.
*/
add_action( 'gform_after_update_entry', function ( $form, $entry_id, $original_entry ) {
// Change these to your form's ID, your field's ID, and your notification's ID.
$form_id = 100;
$field_id = '3';
$notification_id = 'abc123def456';
if ( $form_id !== (int) rgar( $form, 'id' ) ) {
return;
}
$get_values = function ( $entry ) use ( $field_id ) {
$values = array();
foreach ( $entry as $key => $value ) {
if ( (string) $key === $field_id || 0 === strpos( (string) $key, $field_id . '.' ) ) {
$values[ (string) $key ] = (string) $value;
}
}
ksort( $values );
return $values;
};
// The watched field changed, so the notification goes out as usual.
if ( $get_values( $original_entry ) !== $get_values( GFAPI::get_entry( $entry_id ) ) ) {
return;
}
// Skip the notification for this entry only.
add_filter( 'gform_disable_notification', function ( $is_disabled, $notification, $notification_form, $entry ) use ( $entry_id, $notification_id ) {
if ( $notification_id === rgar( $notification, 'id' ) && (int) $entry_id === (int) rgar( $entry, 'id' ) ) {
return true;
}
return $is_disabled;
}, 10, 4 );
}, 10, 3 );Note: To add this code to your site, follow Adding custom PHP code snippets to your website.
The snippet also works on a notification that uses GravityRevisions - Entry is updated, revision is saved.
If you adapt this code, keep using the action’s copy of the entry. A GFAPI::get_entry() call in gravityview/edit_entry/before_update runs after GravityView has removed any deleted file, so a removed file would compare as unchanged.