The quick answer
In this account’s custom Email Approval solution, Approval completed means the demonstrated link no longer presents an approval action. Reconcile it with the saved request’s Approval Status. Illegal link, Visits exceeded!! and Message expired are different application responses. Retain the original email and link, verify the affected request, and ask the solution administrator about the supported next step. These messages do not establish the general rules or recovery behavior behind each response. In this example, changing the URL produced Illegal link; the separate visit-limit and expiry conditions remain unknown.
This walkthrough uses a custom leave approval record and fictional people. It follows one pending request through Agree, the portal’s Approved status, the saved custom record’s Approved status, and reopening the completed link. The visit-limit and expiry screens are separate existing examples; they are not shown as later states of that approved request.
Before you start
Use an account with this custom approval solution installed and an authorized test request. Have its original approval email and link available in a controlled mailbox. This example starts with an existing saved request; it does not demonstrate email setup or delivery testing.
The request is Personal leave — 20 Oct, for Riley Chen, with Jordan Patel as approver. It shows Personal appointment, start date 10/20/2026, end date 10/21/2026, and Leave Duration(Day): 1. The displayed duration is part of the example’s custom record.
01. Review the pending request
Open the saved Leave Approval request. Match its name, applicant, approver, dates and reason. Confirm Approval Status: Pending before following the original approval link.
Open the original approval link. On Leave approval, match the request details again. The custom portal displays Approval Status: in approval, with Agree and Reject available.
02. Approve and verify the saved record
If this request should be approved, click Agree. The external page changes to Approval Status: Approved and no longer shows the action buttons in this example. Reject is present before approval but is not exercised here.
Return to and refresh the same saved custom leave record. Check Approval Status: Approved there too. This second observation verifies the demonstrated saved record; the external page alone would not establish it.
03. Compare completed and invalid links
Open the original approval link again. The page shows Approval completed, with The approval has been completed, and no re approval is required and Complete!!. It does not present Agree or Reject on this response. Reconcile the saved request before taking any further action.
The controlled example then opens a changed approval URL. It returns Illegal link, with illegal link!! below it. This is the application’s response to the demonstrated modification; it does not establish how every unusable link is handled. Use the original approval link when reproducing the demonstrated flow.
04. Distinguish visit limits and expiry
Inspect the separate existing screen displaying Visits exceeded!!. The example does not show its configured limit, counted visits or reset behavior. Do not treat it as a later state of the approved leave request.
The separate expiry example shows Message expired, This message has expired, and email is overdue. Its generation time and configured expiration interval are not demonstrated.
For either response, retain the original email and link. Where a corresponding request is known, confirm its saved status. Preserve the separate response evidence and ask the solution administrator about the supported next step. Do not infer that retrying or generating another request is available from these messages alone.
Common questions
Does Approval completed mean I should approve again?
The demonstrated response says no reapproval is required and presents no approval action. Check the matching saved request’s status before taking further action.
Does Approved on the portal prove the saved request changed?
The walkthrough verifies both screens: the portal shows Approved, then the refreshed saved custom record shows Approved. If you only have the portal response, inspect the saved request separately.
What if the link says completed but the saved record is not Approved?
The demonstrated sequence shows both as Approved; it does not establish how disagreements are handled. Do not infer approval from the completed message alone. Compare the saved record and ask the solution administrator to investigate the discrepancy.
What does Illegal link mean?
In this demonstrated test, changing the approval URL produced Illegal link. The example does not establish how other malformed or unusable links are handled. Retain the original email and link and ask the solution administrator about the supported next step.
How many visits are allowed, and how long is a link valid?
Those settings are not established here. The screens show Visits exceeded!! and Message expired, but not the numeric visit limit, counting rules, configured expiration interval or link-generation time.
Did the approved request later exceed its visit limit or expire?
That sequence is not demonstrated. The visit-limit and expiry screens are separate existing examples with unknown conditions. The completed-link result belongs to the demonstrated approved request.
Is this standard NetSuite SuiteApprovals behavior?
This is an account-specific custom Email Approval solution using a custom leave record. Do not generalize these fields, controls or responses to native SuiteApprovals or other installed solutions.