diff --git a/.claude/skills/docs-writing.md b/.claude/skills/docs-writing.md
index 6f6d985..01327e4 100644
--- a/.claude/skills/docs-writing.md
+++ b/.claude/skills/docs-writing.md
@@ -77,6 +77,7 @@ Follow this process when creating ConductorOne documentation:
## Technical Standards
- Add language tags to all code blocks
+- For CEL expressions, use `go` as the language tag (CEL isn't recognized for syntax highlighting)
- Use relative paths for internal links
- Include alt text on all images
- List prerequisites at the start of procedural content
diff --git a/product/admin/attribute-push-rules.mdx b/product/admin/attribute-push-rules.mdx
new file mode 100644
index 0000000..42d9aef
--- /dev/null
+++ b/product/admin/attribute-push-rules.mdx
@@ -0,0 +1,153 @@
+---
+title: "Attribute push rules"
+og:title: "Attribute push rules"
+description: "Automatically sync user attributes from ConductorOne to connected applications to keep user data consistent across your integrated systems."
+og:description: "Automatically sync user attributes from ConductorOne to connected applications to keep user data consistent across your integrated systems."
+sidebarTitle: "Attribute push rules"
+---
+
+Attribute push rules let you control which user attributes are synchronized to specific applications and how they're mapped. You can:
+
+- Sync ConductorOne attributes to application user profiles
+- Transform attribute values using CEL expressions
+- Target specific users based on conditions
+- Map to both standard and custom attributes (when supported by the connector)
+
+## When to use attribute push rules
+
+Use attribute push rules when you need to:
+
+- Keep user profile data synchronized across applications
+- Populate custom user fields in connected applications
+- Maintain consistent user attributes for compliance or operational purposes
+- Transform or derive attribute values before syncing
+
+## How attribute push works
+
+When you create a push rule:
+
+1. Select the connector you want to push attributes to
+2. Map ConductorOne attributes to the target application's user attributes
+3. Optionally use CEL expressions to transform values
+4. Choose which users to target (all users or specific users)
+5. Enable the configuration to begin syncing
+
+Attributes are pushed to the connected application automatically when:
+
+- The push configuration is created or updated
+- A user's attribute values change in ConductorOne
+- You manually trigger a push
+
+## Configure attribute push rules
+
+### Prerequisites
+
+- Admin permissions in ConductorOne
+- A configured connector for the target application
+- User attribute mappings defined in ConductorOne (**Admin** > **Settings** > **User data sources**)
+
+### Create a push rule
+
+
+
+Navigate to **Admin** > **Settings** > **User data sources**.
+
+
+Select the **Push rules** tab.
+
+
+Click **Add push rule**.
+
+
+Select the connector you want to push attributes to.
+
+
+For each attribute you want to sync:
+
+ - Choose the target attribute name from the connector's available attributes
+ - Select a ConductorOne attribute to map, or write a CEL expression for custom logic
+ - If the connector supports custom attributes, you can specify a custom name
+
+
+Under **User targeting**, choose:
+
+ - **All users**: Push attributes for all users in your tenant
+ - **Specific users**: Use a CEL expression to target users matching specific criteria
+
+
+Enable the push rule.
+
+
+Click **Save**.
+
+
+
+### Edit or disable a push rule
+
+
+
+Navigate to **Admin** > **Settings** > **User data sources** > **Push rules**.
+
+
+Find the push rule in the list.
+
+
+Click the menu button (...) and select:
+
+ - **Edit**: Modify attribute mappings or user targeting
+ - **Enable** or **Disable**: Turn the push rule on or off
+ - **Delete**: Remove the push rule completely
+
+
+
+## Attribute mappings
+
+### Direct attribute mapping
+
+Select a ConductorOne attribute from the dropdown to sync its value directly to the target application.
+
+**Example**: Map the `Department` attribute in ConductorOne to the `department` field in the target application.
+
+### CEL expressions
+
+For more advanced scenarios, use CEL (Common Expression Language) expressions to transform or derive attribute values.
+
+**Example**: Combine first and last name into a display name
+
+```go
+user.first_name + " " + user.last_name
+```
+
+**Example**: Set a value based on a condition
+
+```go
+user.department == "Engineering" ? "tech@company.com" : "general@company.com"
+```
+
+## User targeting
+
+### All users
+
+Syncs attributes for all users in your ConductorOne tenant.
+
+### Specific users
+
+Use a CEL expression to target specific users based on their attributes.
+
+**Example**: Target only active employees
+
+```go
+user.status == "active" && user.employment_type == "full_time"
+```
+
+**Example**: Target users in specific departments
+
+```go
+user.department in ["Engineering", "Product", "Design"]
+```
+
+## Custom attributes
+
+Some connectors support pushing to custom attributes that aren't part of the standard user schema. When configuring a push rule for these connectors, you can specify custom attribute names.
+
+Check the connector's documentation to see if custom attributes are supported.