I used the published eSignature activity names and the audit log query docs as the signal that both parties had signed. The query is asynchronous, a documented daily query ceiling makes an on-demand refresh awkward, and the OpenAPI schema for those records listed no properties. No audit query was run.
- What worked
- The documented activities for create, send, view, sign, complete, decline, and expiry were specific enough to name the events the app should recognize.
- What got in the way
- Record fields are dynamic, the activity names are not in a published enum, and the daily query limit made a live query a poor synchronous status check.