<!--
{
  "availability" : [
    "iOS: 8.0.0 -",
    "iPadOS: 8.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.10.0 -",
    "tvOS: -",
    "visionOS: 1.0.0 -",
    "watchOS: 3.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CloudKit",
  "identifier" : "/documentation/CloudKit/CKRecordZoneNotification",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "CloudKit"
    ],
    "preciseIdentifier" : "c:objc(cs)CKRecordZoneNotification"
  },
  "title" : "CKRecordZoneNotification"
}
-->

# CKRecordZoneNotification

A notification that triggers when the contents of a record zone change.

```
class CKRecordZoneNotification
```

## Overview

A record zone subscription executes when a user, or in certain scenarios, CloudKit, modifies a record in that zone, for example, when a field’s value changes in a record. When CloudKit registers the change, it sends push notifications to the user’s devices to inform your app about the change. You can then fetch the changes and cache them on-device. When appropriate, CloudKit excludes the device where the change originates.

You configure a subscription’s notifications by setting its [`notificationInfo`](/documentation/CloudKit/CKSubscription/notificationInfo-swift.property) property. Do this before you save it to the server. A subscription generates either high-priority or medium-priority push notifications. CloudKit delivers medium-priority notifications to your app in the background. High-priority notifications are visual and the system displays them to the user. Visual notifications need the user’s permission. For more information, see <doc://com.apple.documentation/documentation/UserNotifications/asking-permission-to-use-notifications>.

A subscription uses [`CKSubscription.NotificationInfo`](/documentation/CloudKit/CKSubscription/NotificationInfo-swift.class) to configure its notifications. For background delivery, set only its [`shouldSendContentAvailable`](/documentation/CloudKit/CKSubscription/NotificationInfo-swift.class/shouldSendContentAvailable) property to <doc://com.apple.documentation/documentation/Swift/true>. If you set any other property, CloudKit treats the notification as high-priority.

> Note: To receive silent push notifications, add the Background Modes capability to your Xcode project, and select the “Background fetch” and “Remote notifications” options.

Don’t rely on push notifications for specific changes to records because the system can coalesce them. CloudKit can omit data to keep the notification’s payload size under the APNs size limit. Consider notifications an indication of remote changes. Use [`databaseScope`](/documentation/CloudKit/CKRecordZoneNotification/databaseScope) to determine which database contains the changed record zone, and [`recordZoneID`](/documentation/CloudKit/CKRecordZoneNotification/recordZoneID) to determine which zone contains changed records. You can then fetch just those changes using [`CKFetchRecordZoneChangesOperation`](/documentation/CloudKit/CKFetchRecordZoneChangesOperation). A notification’s [`isPruned`](/documentation/CloudKit/CKNotification/isPruned) property is <doc://com.apple.documentation/documentation/Swift/true> if CloudKit omits data.

You don’t instantiate this class. Instead, implement <doc://com.apple.documentation/documentation/UIKit/UIApplicationDelegate/application(_:didReceiveRemoteNotification:fetchCompletionHandler:)> in your app delegate. Initialize [`CKNotification`](/documentation/CloudKit/CKNotification) with the `userInfo` dictionary that CloudKit passes to the method. This returns an instance of the appropriate subclass. Use the [`notificationType`](/documentation/CloudKit/CKNotification/notificationType-swift.property) property to determine the type. Then cast to that type to access type-specific properties and methods.

## Topics

### Getting the Record Zone ID

[`recordZoneID`](/documentation/CloudKit/CKRecordZoneNotification/recordZoneID)

The ID of the record zone that has changes.

### Getting the Database Scope

[`databaseScope`](/documentation/CloudKit/CKRecordZoneNotification/databaseScope)

The type of database for the record zone.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)