1
0
-1

We have a requirement to mask/obfuscate data in the PDF receipt.  This include sensitive PII such as SSN, driver’s license number, etc.

However, we need to deliver a completely unmasked version of the PDF through the Delivery Process service. 

The solution implements a Job Controller with multiple review steps, and several routes to “Complete”, including “Approve”, “Cancel”, “Decline” and “Withdraw”.  The reviewers must not be allowed to access the unmasked PDF.

In other words, the PDF receipt must remain masked for the entire workflow, until the PDF is delivered through the Delivery Process.

Looking for ideas/experience/examples on how best to meet this requirement.

    CommentAdd your comment...

    2 answers

    1.  
      2
      1
      0

       
      Miroslav solved this issue for us. We had to make sure the "Use Delivery Receipt" checkbox was selected. Our form then had a bound field to ReceiptMode and a simple script that checked for {ReceiptMode} == 'Delivery'. The result was the receipt provided to the applicant had masked data but the receipt used in the Delivery channel and the receipts downloadable within TM all had unmasked fields.

        CommentAdd your comment...
      1.  
        2
        1
        0

        This can be done in the composer form implementation only. No collab job or services needed to be modified on the TM side. Since TM 4.3.2? I think, the composer form will have a phase variable of the receipt mode "ReceiptMode" set to

        • Web > PDF receipt is being accessed by a user from user space (receipt link clicked)
        • Delivery > PDF receipt is being accessed by a delivery service
        • Email > Indicates that a receipt render via the email

        Note: If the ReceiptMode phase value element is not present in the form, create it as per the image bellow. Binding: $record.SFMData.SystemProfile.ReceiptMode

        In the form's rules you can read the receipt mode:

        sfc.getPhaseValue('ReceiptMode')=='Delivery'

         

        Based on this you can do your logic in the composer form under the condition

        sfc.getPhaseValue('ReceiptMode')=='Web' && sfc.isReceipt() 

        • either masking via a custom CSS class
        • alternatively you can do a calc rule on the masked fields to read and mask its own value onInit

        Other example where this has been used is where the delivered PDFs must have a visible originator request metadata section (IP address, times, ...) but this should not be visible to the customer accessing a PDF receipt via submission confirmation page or via a user workspace (History).

         

        I assume sfc.isReceipt() might not needed to be checked as the ReceiptMode phase value should be populated in receipts only.

         

        ReceiptMode phase value binding config:

          CommentAdd your comment...