Skip to content

Add Resend click tracking domain template#950

Open
cassiozen wants to merge 1 commit intoDomain-Connect:masterfrom
resend:master
Open

Add Resend click tracking domain template#950
cassiozen wants to merge 1 commit intoDomain-Connect:masterfrom
resend:master

Conversation

@cassiozen
Copy link
Copy Markdown

Description

We are introducing the capability of users to choose their own custom
click tracking domain at Resend.

This setup is separate from the domain configurations for sending
and/or receiving emails (whose templates are already available).

Additional Considerations:

  • Bare host variable justification: %trackingSubdomain% is bare because the click tracking subdomain is freely chosen by the customer (e.g. "track", "click", "links") — there is no fixed suffix that would be common across all Resend users.
  • Bare pointsTo variable (%cnameTarget%): The CNAME target is a complete hostname provided by Resend, specific to each customer's account.

Type of change

Please mark options that are relevant.

  • New template
  • Bug fix (non-breaking change which fixes an issue in the template)
  • New feature (non-breaking change which adds functionality to the template)
  • Breaking change (fix or feature that would cause existing template behavior to be not backward compatible)

How Has This Been Tested?

Please mark the following checks done

  • Template functionality checked using Online Editor
  • Template file name follows the pattern <providerId>.<serviceId>.json
  • resource URL provided with logoUrl is actually served by a webserver

Checklist of common problems

Mark all the checkboxes after conducting the check. Comment on any point which is not fulfilled.
See Template Quality Guidelines for details and rationale on each rule.

  • syncPubKeyDomain is set — this is mandatory; omitting it requires explicit justification in the PR description or the PR will be rejected
  • warnPhishing is not set alongside syncPubKeyDomain — the two must not appear together
  • syncRedirectDomain is set whenever the template uses redirect_uri in the synchronous flow
  • no TXT record contains SPF content ("v=spf1 ...") — use the SPFM record type instead
  • txtConflictMatchingMode is set on every TXT record that must be unique per label or content prefix (e.g. DMARC) — N/A, no TXT records
  • no variable is used as a bare full record value (e.g. @ TXT "%foo%") unless necessary — prefer @ TXT "service-foo=%foo%"; if bare, justify in the PR description
    • Justified in the PR description
  • no bare variable is used as the full host label — the non-variable parts are fixed to limit misuse (e.g. %dkimkey%._domainkey, not %dkimhost%); if bare, justify in the PR
    description
    • Justified in the PR description
  • no variable is used in the host field to create a subdomain — use the host parameter or multiInstance instead
  • %host% does not appear explicitly in any host attribute
  • essential is set to OnApply on records the end user may need to modify or remove without breaking the template (e.g. DMARC) — N/A, single CNAME is the core record

Online Editor test results

Editor test link(s):

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 6, 2026

PR Description Check Passed

All required sections are filled in correctly.

Details
  OK  Type of change: 1/4 checkboxes ticked
  OK  How Has This Been Tested?: all 3 checkboxes ticked
  OK  Checklist of common problems: 10/12 checkboxes ticked
  OK  Online Editor test results: 2 link(s) found
  OK  Template coverage: all 1 template(s) covered
Labels to remove: Checklist of common problems not complete, Forged editor links, PR description incomplete, Test links missing

PR description check PASSED

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 6, 2026

JSON Filename Check Passed

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 6, 2026

JSON Schema Validation Passed

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 6, 2026

Linter OK

resend.com.click-tracking.json

Level Code Note

"records": [
{
"type": "CNAME",
"host": "%trackingSubdomain%",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From the description it looks like host parameter shall be used instead of %trackingSubdomain%.

See Rule 8 from README.

{
"type": "CNAME",
"host": "%trackingSubdomain%",
"pointsTo": "%cnameTarget%",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it right to assume, that the pointsTo is always under ".resend.com" domain, so narrow scope like "%cnametarget%.resend.com" is worth consideration?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants