diff --git a/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes.mdx b/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes.mdx
index dac7a9bd..d82a58a3 100644
--- a/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes.mdx
+++ b/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes.mdx
@@ -3,7 +3,12 @@ sidebar_position: 4
---
import SettingContextAttributes from "./context-attributes/setting-context-attributes/_setting-context-attributes.mdx";
+import SystemAttributes from "./context-attributes/system-attributes/_system-attributes.mdx";
# Context Attributes
+
+## System Attributes
+
+
diff --git a/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes/system-attributes/_system-attributes.mdx b/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes/system-attributes/_system-attributes.mdx
new file mode 100644
index 00000000..a66626fa
--- /dev/null
+++ b/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes/system-attributes/_system-attributes.mdx
@@ -0,0 +1,56 @@
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import CodeBlock from "@theme/CodeBlock";
+
+import JsSystemAttributes from "!!raw-loader!./js/systemAttributes.js";
+
+You can opt-in to automatically include system attributes in every publish
+payload. These attributes provide metadata about the SDK and environment that
+generated the event, which can be useful for debugging and filtering in the Web
+Console.
+
+To enable this, set the `includeSystemAttributes` option to `true` when creating
+the context:
+
+
+
+
+
+{JsSystemAttributes}
+
+
+
+
+
+When enabled, the following attributes are automatically prepended before any
+user-defined attributes in every publish payload:
+
+| Attribute | Description |
+|:---|---|
+| `sdk_name` | The SDK agent name (e.g. `"absmartly-javascript-sdk"`) |
+| `sdk_version` | The SDK version (e.g. `"1.13.4"`) |
+| `application` | The application name from the SDK configuration |
+| `environment` | The environment from the SDK configuration |
+| `app_version` | The application version, only included if set (number greater than `0` or non-empty string) |
+
+:::note
+The `app_version` attribute is derived from the `application` option passed
+during SDK initialization. To set it, pass `application` as an object instead
+of a string. The version can be a number or a semver string:
+
+```javascript
+const sdk = new absmartly.SDK({
+ // ...
+ application: { name: "your-app", version: "1.2.3" },
+});
+```
+
+If `application` is passed as a plain string, the version defaults to `0` and
+`app_version` will not be included.
+:::
+
+:::info
+System attributes are disabled by default to avoid adding extra data to the
+payload for existing integrations. You must explicitly opt-in by setting
+`includeSystemAttributes: true`.
+:::
diff --git a/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes/system-attributes/js/systemAttributes.js b/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes/system-attributes/js/systemAttributes.js
new file mode 100644
index 00000000..fdab4336
--- /dev/null
+++ b/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes/system-attributes/js/systemAttributes.js
@@ -0,0 +1,3 @@
+const context = sdk.createContext(request, {
+ includeSystemAttributes: true,
+});
diff --git a/docs/APIs-and-SDKs/SDK-Documentation/getting-started/import-and-initialize/js/import.js b/docs/APIs-and-SDKs/SDK-Documentation/getting-started/import-and-initialize/js/import.js
index c1ff79f7..301703fa 100644
--- a/docs/APIs-and-SDKs/SDK-Documentation/getting-started/import-and-initialize/js/import.js
+++ b/docs/APIs-and-SDKs/SDK-Documentation/getting-started/import-and-initialize/js/import.js
@@ -10,3 +10,7 @@ const sdk = new absmartly.SDK({
environment: process.env.NODE_ENV,
application: process.env.APPLICATION_NAME,
});
+
+// You can also pass application as an object to track the app version.
+// The version can be a number or a semver string:
+// application: { name: "your-app", version: "1.2.3" }