Πήγαινε στο κύριο περιεχόμενο

Παρακολούθηση του Κύκλου Ζωής Εγγράφου και Παραλήπτη με Συνδρομές

Χρησιμοποιήστε τις συνδρομές GraphQL για να λαμβάνετε ενημερώσεις κύκλου ζωής σε πραγματικό χρόνο, όπως:

  • δημιουργία εγγράφου
  • δημιουργία τελικού PDF
  • απόρριψη εγγράφου
  • αποστολή email σε παραλήπτη
  • επίσκεψη παραλήπτη
  • ολοκλήρωση παραλήπτη
  • απόρριψη παραλήπτη
  • άνοιγμα email από παραλήπτη

Για το γενικό συμβόλαιο φορτίου δεδομένων, δείτε:

Ροές και Κατηγορίες

Τα γεγονότα κύκλου ζωής παραδίδονται συνήθως στο:

  • subscribeGroupFeed

Ορισμένα γεγονότα κύκλου ζωής μπορεί επίσης να διανεμηθούν στο:

  • subscribeUserFeed

Κατηγορίες:

  • documentLifecycle
  • recipientLifecycle

Ονόματα Γεγονότων

Κύκλος ζωής εγγράφου

  • documentCreated
  • documentFinalPdfCreated
  • documentRejected

Κύκλος ζωής παραλήπτη

  • recipientSentEmail
  • recipientVisiting
  • recipientCompleted
  • recipientRejected
  • recipientEmailOpened

Μορφές Φορτίου Δεδομένων

Κύκλος ζωής εγγράφου

{
"version": "1.0",
"eventId": "evt...",
"timestamp": "2026-04-24T10:38:36.822Z",
"level": "INFO",
"event": "documentCreated",
"category": "documentLifecycle",
"groupId": "grp...",
"userId": "usr...",
"requestId": null,
"batchId": null,
"error": null,
"data": {
"id": "doc...",
"documentName": "Example document"
}
}

Κύκλος ζωής παραλήπτη

{
"version": "1.0",
"eventId": "evt...",
"timestamp": "2026-04-24T10:38:36.822Z",
"level": "INFO",
"event": "recipientVisiting",
"category": "recipientLifecycle",
"groupId": "grp...",
"userId": "usr...",
"requestId": null,
"batchId": null,
"error": null,
"data": {
"id": "rec...",
"documentId": "doc...",
"documentName": "Example document",
"firstName": "Ada",
"lastName": "Lovelace"
}
}

Ενέργεια Συνδρομής

subscription SubscribeGroupFeed($groupId: String!) {
subscribeGroupFeed(groupId: $groupId) {
groupId
data
}
}

Παράδειγμα JavaScript

const parseEnvelope = (payload) => {
const raw = payload?.data;
if (!raw) return null;
return typeof raw === 'string' ? JSON.parse(raw) : raw;
};

const handleGroupFeed = ({ data }) => {
const wrapper = data?.subscribeGroupFeed;
const event = parseEnvelope(wrapper);

if (event?.category === 'documentLifecycle') {
switch (event.event) {
case 'documentCreated':
case 'documentFinalPdfCreated':
case 'documentRejected':
console.log('document lifecycle event', event.event, event.data.id);
break;
default:
break;
}
}

if (event?.category === 'recipientLifecycle') {
switch (event.event) {
case 'recipientSentEmail':
case 'recipientVisiting':
case 'recipientCompleted':
case 'recipientRejected':
case 'recipientEmailOpened':
console.log('recipient lifecycle event', event.event, event.data.id);
break;
default:
break;
}
}
};

Πότε να το χρησιμοποιήσετε

Αυτό είναι χρήσιμο όταν θέλετε να:

  • ενημερώνετε μια λίστα εγγράφων ή μια ροή δραστηριότητας σε πραγματικό χρόνο
  • εμφανίζετε γεγονότα αλληλεπίδρασης παραλήπτη χωρίς polling
  • αντιδράτε άμεσα όταν είναι έτοιμο το τελικό PDF
  • οδηγείτε ειδοποιήσεις ροής εργασίας σε ένα ταμπλό

Σχετικά