BuiltEmail workspace

Account verification contract

Purpose: ask the new user to confirm their Built account. API implementation: App\Mail\confirm. Baseline: resources/views/emails/users/confirm.blade.php. Referenced from signup/signupV2, verification resend and related email-controller paths. This is the custom API confirmation flow, not an assumed second framework-generated email.

Suggested subject: Verify your account. This preserves the current subject.

Suggested preheader: Complete your signup on Built by confirming your account.

Portable placeholder contract

TokenExisting Laravel source / derivationRequirement
{{logo_url}}Existing Built app_name PNGOptional deployment override; concrete project HTTPS logo is the default
{{preheader}}Suggested fixed copy aboveRequired escaped text
{{first_name}}$user->first_nameRequired existing greeting value; escape as text and preserve long names
{{verification_url}}Current Blade expression config('app.url') + '/verifyaccount/' + encrypt($user->id)Required complete trusted URL; use the existing expression/server-generated value without changing identifier semantics

No expiry duration is stated in the existing confirmation email. The draft does not add an expiry, a timestamp, a one-use assertion or an approval claim. Account confirmation remains separate from signup welcome and password recovery.

States and integration

The two populated states are a normal request and a long fictional first name/link. They are layout checks, not different server workflows. No expired/invalid email type has been invented. All demo links are local and inert.

The action label stays Verify your account. The added visible fallback URL repeats the same verification_url; it is not another action or a new backend field. The current view derives the URL directly rather than receiving a data key named verification_url. Translate the portable token to that existing Blade expression or to a trusted value computed in the existing integration layer. Do not interpret a user identifier as a token or encrypt it in a new browser-side script.

ready/verification.txt and matching populated .txt files contain the greeting, confirmation instruction and URL. Use escaped Blade text/attributes and separately validated trusted application URLs. The public logo defaults and optional HTTPS/CID override are documented in integration-notes.html. Both native light/dark CSS and responsive layouts remain email-only HTML/CSS with no preview script.

Framework Registered/verification notifications and older mails.verifyaccount are unresolved/legacy paths in the catalog. Do not create duplicate live verification sends during integration.