Skip to content

[EN-145] Document custom tracking domains - #548

Merged
quzhi1 merged 3 commits into
mainfrom
codex/en-145-custom-tracking-domains
Aug 7, 2026
Merged

[EN-145] Document custom tracking domains#548
quzhi1 merged 3 commits into
mainfrom
codex/en-145-custom-tracking-domains

Conversation

@quzhi1

@quzhi1 quzhi1 commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Description

Summary

  • Document the existing tracking_options.domain_name hash contract for regular Send.
  • Add Transactional Send, draft create/update, and scheduled-send examples.
  • Clarify that a Transactional sender domain is distinct from the custom tracking hostname.
  • Add request-forwarding and JSON-shape regression coverage.
  • Add an unreleased changelog entry linking to the public message-tracking guide.

Why

Implements EN-145. The Ruby SDK already forwards hash-based request bodies, so custom tracking hostnames need documented request shapes and regression coverage rather than a new typed model.

Developer impact

Ruby callers can pass an active organization-owned hostname as tracking_options.domain_name alongside links and/or opens. Requests that omit the field remain unchanged and continue using the default Nylas tracking hostname.

The examples also document draft inheritance, scheduled-send revalidation, and the distinction between the Transactional Send route's sender domain and the body field's tracking hostname.

Validation

  • bundle exec rspec spec - 315 examples, 0 failures
  • bundle exec rubocop --config .rubocop.yml - 80 files, no offenses
  • bundle exec yard doc --no-output - succeeds
  • git diff --check - clean

License

I confirm that this contribution is made under the terms of the MIT license and that I have the authority necessary to make this contribution on behalf of its copyright owner.

@quzhi1
quzhi1 marked this pull request as ready for review August 3, 2026 20:31
@quzhi1
quzhi1 requested a review from AaronDDM August 3, 2026 20:31
@quzhi1 quzhi1 self-assigned this Aug 3, 2026
@quzhi1
quzhi1 requested review from googsvg and radenkovic August 3, 2026 20:31

@AaronDDM AaronDDM left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Good morning! Reviewed EN-145. This is docs + regression coverage only, no production logic change, so risk is low and it looks good.

What I checked:

  • Unreleased CHANGELOG entry: present.
  • Doc comments on drafts.create/drafts.update/messages.send: added and accurate.
  • Test coverage: JSON-shape serialization test in http_client_spec plus passthrough specs for send/scheduled/drafts. The http_client_spec case is the one that actually proves domain_name serializes correctly; the resource specs mostly re-assert existing passthrough, which is fine.

One small doc nit inline. Approving.

Comment thread examples/README.md Outdated
@quzhi1
quzhi1 merged commit 51aa43e into main Aug 7, 2026
9 checks passed
@quzhi1
quzhi1 deleted the codex/en-145-custom-tracking-domains branch August 7, 2026 16:22
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