Homeโ€บโšก Advancedโ€บModule 91 min read ยท 10/15

Warp Zones (Intents)

Hands-on

Intents โ€” Cross-App Navigation

Intents let apps navigate to other Dynatrace apps with context. Three ways to trigger:

IntentButton (declarative)

import { IntentButton } from "@dynatrace/strato-components/buttons";

<IntentButton payload={{ "dt.query": "fetch dt.entity.host | limit 10" }}>
  Open in Notebooks
</IntentButton>

sendIntent (programmatic)

import { sendIntent, IntentPayload } from "@dynatrace-sdk/navigation";

const intent: IntentPayload = {
  "dt.query": "fetch logs | filter loglevel == \"ERROR\" | limit 100"
};

sendIntent(intent);

Receiving Intents

Declare what intents the app accepts in app.config.json:

{
  "app": {
    "intents": {
      "dt.custom.my-action": {
        "description": "Open my custom view",
        "params": {
          "entityId": { "type": "string" }
        }
      }
    }
  }
}

๐Ÿ’ก Intents are how Dynatrace apps talk to each other. When triggered, the AppShell shows an "Open with" dialog letting the user choose which app handles it.

๐Ÿ›  Try it: Add an IntentButton to your app: <IntentButton payload={{ "dt.query": "fetch dt.entity.host" }}>Open in Notebooks</IntentButton>. Click it โ€” your app navigates to Notebooks with the query pre-filled. That's cross-app navigation.