Rendered evidence belongs to a revision
Drupal already models content entities, revisions, translations, workflows, and canonical routes. A screenshot job should carry those identifiers rather than receiving only a URL. This lets an editor connect the artifact to the content state that was approved or published.
Resolve the absolute public URL on the server. It is easier to authorize and audit than an unrestricted destination submitted from a browser form.
Respect the cache path
A successful save does not mean every visitor-facing cache contains the new revision. Coordinate capture with render cache, page cache, reverse proxy, CDN, and image-style generation. The correct trigger may be a queue item created after publication and released only when the intended route is observable.
Responsive media also depends on viewport. Store width and language because they can change the selected image and layout.
Use queues for editorial reliability
Queue workers survive the page request and provide a place for retry, concurrency, and status. Make the handler idempotent so redelivery does not silently overwrite the approved artifact. Record terminal failures where editors or operators can act.
Unpublished pages need an authorized preview design. A persistent bypass link is not an acceptable substitute for access control. Apply the same permissions and retention to screenshots as to the content they represent.
Use the PHP SDK for package-oriented server integration and compliance archiving for provenance, retention, and review policy.