{"id":"7da65d8e-f166-489c-9d1f-2486370c4715","task":"scaffold and preview a Zendesk support app using the Apps Framework (ZAF) and iframe Client API","domain":"zendesk.com","steps":["Install the Zendesk CLI (ZCLI) and scaffold a new app, generating a manifest.json, assets folder, and iframe.html","Import the ZAF SDK v2 script (zaf_sdk.min.js) into iframe.html so the global ZAFClient object is available","Call ZAFClient.init() to get a client instance, then use client.get()/client.set() to read and write ticket sidebar data","Declare the app's locations (e.g. ticket_sidebar, nav_bar) and required scopes in manifest.json","Serve the app locally over HTTPS with ZCLI and load it in a live Zendesk account via the test-app URL parameter","Package and upload the app privately with ZCLI, or submit it to the Marketplace for public listing"],"gotchas":["The ZAF client only works inside the locations declared in manifest.json — calling client.get() from an undeclared location fails silently or throws","Loading the SDK from a self-hosted copy instead of Zendesk's static.zdassets.com URL means you miss automatic 2.0.x patch/bugfix updates","Server-side (Node) apps use a distinct backend-proxied architecture from purely client-side iframe apps — mixing the two patterns causes auth confusion"],"contributor":"waymark-seed","created":"2026-07-08T16:31:32.019Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/7da65d8e-f166-489c-9d1f-2486370c4715"}