documenso 電子署名サービス draft — 未レビュー

署名依頼の自動リマインダー

未署名の受信者に対し、一定期間ごとに自動でリマインダーメールを送る機能。1人の受信者に送れる自動リマインダーの回数には上限があり、上限に達すると自動送信は止まるが、送信者が手動で「再送信」すると回数はリセットされ再び自動送信されるようになる。

この仕様は、実際にマージされたプルリクエストから Askless が自動生成したものです。
生成元: documenso/documenso#3016 — feat: cap automated reminders before resend
文中の [1] などの番号は、その記述の根拠になったソースコードの行へのリンクです。すべてクリックして確認できます。

概要

書類の署名を依頼したのに相手がなかなか署名してくれない場合、Documenso は自動的に「リマインダー(催促)メール」を送ることができます。いつ最初のリマインダーを送るか、その後どのくらいの間隔で繰り返すかは、書類ごと・チームごと・組織ごとに設定できます。

今回の変更で追加されたのは「送りすぎ防止」の仕組みです。同じ受信者に対して自動リマインダーを送れる回数には上限(既定で5回)があり、これに達すると、たとえ書類がまだ有効期限内で未署名であっても、それ以上自動ではリマインダーが送られなくなります。

ただし、送信者(書類のオーナーやチームメンバー)が管理画面から手動で「リマインダーを送る(再送信)」を行うと、そのときにリマインダーの送信回数はゼロに戻り、そこからまた自動リマインダーのカウントが始まります。つまり、自動送信が止まってしまった相手でも、担当者が一度手動で背中を押せば、また自動リマインダーの対象に戻ります。

ユーザーから見た振る舞い

仕様の詳細

制約・既知の制限

コードからは判断できなかったこと

Askless は、コードから確定できない事柄を推測で埋めません。以下は「開発チームへの確認が必要」として記録された項目です。

  1. MAX_REMINDERS_BEFORE_RESEND(既定5回)は現状コード上の固定値だが、将来的に組織/チーム/書類単位で変更可能にする予定があるか開発に確認が必要。
  2. 上限到達により自動リマインダーが停止していることを、CSやユーザーが管理画面上で識別する手段(表示・通知)が今後追加される予定か不明。
  3. reminderCount が5に達した状態で書類のリマインダー設定(sendAfter/repeatEvery)だけを変更した場合、自動送信は再開されない(reminderCount のリセットは手動再送信でのみ発生)という理解で正しいか、意図した仕様か開発に確認したい。

詳細情報

開発者向け — 画面とエンドポイント6件
書類の再送信ダイアログ(Resend Document)
/t/:teamUrl
書類詳細画面のアクションメニューから開くダイアログ。未署名の受信者を選んで手動でリマインダーメールを再送信する。送信すると対象受信者の自動リマインダー回数がリセットされる。
リマインダー設定
/t/:teamUrl/settings/document, /o/:orgUrl/settings/document など
書類/テンプレート編集画面、チーム設定、組織設定。最初のリマインダーを送るまでの日数(sendAfter)と、その後の繰り返し間隔(repeatEvery)を設定するUI。今回の上限回数(5回)はこの画面には表示されず、コード上の固定値。
POSTenvelope.redistribute
tRPC
受信者を指定して書類を手動で再送信するミューテーション。内部で resendDocument を呼び出し、対象受信者の自動リマインダー回数をリセットする。
POSTdocument.redistribute
tRPC
書類の手動再送信用ミューテーション(envelope版のラッパー)。resendDocument を呼び出す。
POST書類の再送信(公開API v1・非推奨)
/api/v1/documents/:id/resend
同じく resendDocument を呼び出すため、手動再送信によるリマインダー回数リセットが適用される。
内部ジョブprocess-signing-reminder
packages/lib/jobs/definitions/internal/
自動リマインダーを実際に送信する内部ジョブ。送信対象になった受信者の reminderCount を1つ増やしてから送信する。
開発者向け — 権限とロール2件
書類のオーナー / 所属チームメンバー
書類の再送信(手動リマインダー送信、自動リマインダー回数のリセットを含む)ができる。アカウントが無効化されている場合は再送信も自動リマインダーもできない。
CCとして追加された受信者
署名アクションが不要なため、自動リマインダーも手動再送信の対象にもならない。
QA向け — テスト観点12件

正常系

  • 受信者に4回まで自動リマインダーが送られたあと、5回目が送られると reminderCount が5になり、以降は自動リマインダーが送られないことを確認する。
  • 自動リマインダー上限に達した受信者に対し、送信者が手動で『再送信』を行うと即座にメールが届き、以降また自動リマインダーの間隔設定に従って送信が再開されることを確認する。
  • 手動再送信を行った受信者の reminderCount がDB上で0にリセットされていることを確認する。

異常系

  • 署名済みの受信者やCC受信者に対しては、手動再送信・自動リマインダーどちらも送られないことを確認する。
  • 書類の有効期限が切れている受信者には自動リマインダーが送られないことを確認する(reminderCount の上限とは独立した既存ガード)。
  • 組織のメール送信数上限に達している状態で自動リマインダーが送信対象になった場合、reminderCount が増えずにスキップされる(レート制限の判定順序)ことを確認する。

回帰テスト対象

  • リマインダー設定(sendAfter / repeatEvery)を変更したときの nextReminderAt 再計算が、既存の reminderCount を壊さず正しく反映されるか。
  • 手動再送信時に、これまで通り受信者の有効期限(expiresAt)延長が正しく行われるか。
  • 自動リマインダーが一度も送られていない受信者について、sendAfter の初回リマインダー計算が従来通り機能するか。
  • Webhook(DOCUMENT_REMINDER_SENT)が自動送信・手動再送信それぞれで従来通り発火するか。
  • 監査ログ(DocumentAuditLog, EMAIL_SENT/isResending)が自動リマインダーと手動再送信で従来通り正しく記録されるか。

E2E シナリオ — 自動リマインダーが上限回数で停止し、手動再送信で再開する

  • リマインダー間隔を短く設定した書類を作成し、未署名の受信者に送付する。
  • 自動リマインダージョブを5回分実行させる。
  • 6回目のリマインダーが自動送信されないことを確認する。
  • 書類詳細画面から対象受信者を選んで『再送信』を手動実行する。
  • 手動再送信メールが届き、reminderCount が0にリセットされていることを確認する。
  • その後、再び自動リマインダージョブを実行し、送信が再開されることを確認する。
用語4件
自動リマインダー
リマインダーメール / 催促メール / 自動催促 — process-signing-reminder / resolveNextReminderAt
手動再送信
再送信 / リマインダーを送る / Resend — resendDocument / envelope.redistribute
リマインダー送信回数上限
5回制限 / リマインダー上限 — MAX_REMINDERS_BEFORE_RESEND
リマインダー送信可能期間
30日ウィンドウ — MAX_REMINDER_WINDOW_DAYS
出典19件・すべて実在を検証済み

    この仕様について質問する

    回答は、このページに表示されている仕様1件だけを根拠にします。書かれていないことは「わかりません」と答えます。

    1日10問までお試しいただけます。

    これを、あなたのリポジトリで。

    Askless はマージされたPRから、この仕様を自動で生成・更新します。

    先行アクセスに登録する