> ## Documentation Index
> Fetch the complete documentation index at: https://ahasend.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Roadmap

> Where AhaSend is headed, from active work to future ideas.

Follow our progress from active work to future ideas. Timelines may shift as we
learn and iterate.

<p style={{ fontSize: "0.85rem", opacity: 0.7 }}>Last updated 2 July 2026</p>

<p className="rm-jump"><a href="#shipped">See what we've shipped recently ↓</a></p>

<div className="rm">
  <section>
    <div className="rm-head">
      <h2 className="rm-badge is-active">Active (4)</h2>
    </div>

    <div className="rm-list">
      <div className="rm-card is-active">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Sub Accounts <span className="rm-tag is-early">Early access</span></p>
          <p>Isolated sending environments so you can separate clients, brands or stages.</p>
        </div>
      </div>

      <div className="rm-card is-active">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">JavaScript SDK <span className="rm-tag is-new">New feature</span></p>
          <p>An official JavaScript and TypeScript client for the AhaSend API.</p>
        </div>
      </div>

      <div className="rm-card is-active is-sub">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">AhaSend NPM package <span className="rm-tag is-new">New feature</span></p>
          <p>Install the AhaSend JavaScript SDK straight from NPM.</p>
        </div>
      </div>

      <div className="rm-card is-active is-sub">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">18+ integration guides <span className="rm-tag is-improvement">Improvement</span></p>
          <p>Step-by-step guides for integrating AhaSend with popular frameworks and platforms.</p>
        </div>
      </div>

      <div className="rm-card is-active">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Bounce details in webhook payloads <span className="rm-tag is-improvement">Improvement</span></p>
          <p>Full bounce details included directly in the raw webhook payload.</p>
        </div>
      </div>

      <div className="rm-card is-active">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Prettify dashboard errors <span className="rm-tag is-improvement">Improvement</span></p>
          <p>Cleaner, clearer error messages across the dashboard and API, without internal stack traces.</p>
        </div>
      </div>

      <div className="rm-card is-active is-sub">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Slow-down notice on held messages</p>
          <p>When a provider asks us to slow down, show a clear status on the affected messages instead of leaving them looking stuck.</p>
        </div>
      </div>

      <div className="rm-card is-active is-sub">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Rename Received status to Queued</p>
          <p>Use Queued instead of Received as the outbound status name in the dashboard.</p>
        </div>
      </div>
    </div>
  </section>

  <section>
    <div className="rm-head">
      <h2 className="rm-badge is-planned">Planned (23)</h2>
    </div>

    <div className="rm-list">
      <div className="rm-card is-planned">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Temporary AhaSend accounts for AI agents <span className="rm-tag is-new">New feature</span></p>
          <p>Short-lived accounts designed for use by AI agents.</p>
        </div>
      </div>

      <div className="rm-card is-planned">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Filter messages by deferred attempts <span className="rm-tag is-improvement">Improvement</span></p>
          <p>Filter the message log down to messages that had deferred delivery attempts.</p>
        </div>
      </div>

      <div className="rm-card is-planned">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">SEPA payments <span className="rm-tag is-improvement">Improvement</span></p>
          <p>Pay your AhaSend invoices by SEPA direct debit.</p>
        </div>
      </div>

      <div className="rm-card is-planned">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Message count on the search page <span className="rm-tag is-improvement">Improvement</span></p>
          <p>Show a result count when searching your messages.</p>
        </div>
      </div>

      <div className="rm-card is-planned">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Cleaner messages pagination <span className="rm-tag is-improvement">Improvement</span></p>
          <p>Hide the Next button when there are no further messages to show.</p>
        </div>
      </div>

      <div className="rm-card is-planned">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Cumulative message status <span className="rm-tag is-improvement">Improvement</span></p>
          <p>Message status that reflects the full delivery history at a glance.</p>
        </div>
      </div>

      <div className="rm-card is-planned">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Simplified credentials and API keys <span className="rm-tag is-improvement">Improvement</span></p>
          <p>Credentials and API keys combined into one place.</p>
        </div>
      </div>

      <div className="rm-card is-planned is-sub">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">v2 keys by default</p>
          <p>Make v2 keys the default and reduce v1/v2 key confusion.</p>
        </div>
      </div>

      <div className="rm-card is-planned">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Account ID after creating credentials <span className="rm-tag is-improvement">Improvement</span></p>
          <p>Surface the Account ID right after you create sending credentials.</p>
        </div>
      </div>

      <div className="rm-card is-planned">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">More bounce categories in the dashboard <span className="rm-tag is-improvement">Improvement</span></p>
          <p>A broader set of bounce categories surfaced in the dashboard.</p>
        </div>
      </div>

      <div className="rm-card is-planned">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Email address validation <span className="rm-tag is-product">New product</span></p>
          <p>Validate email addresses to catch typos and reduce bounces.</p>
        </div>
      </div>

      <div className="rm-card is-planned is-sub">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Real-time verification API</p>
          <p>Verify a single address on demand through the API.</p>
        </div>
      </div>

      <div className="rm-card is-planned is-sub">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Automatic in-account validation</p>
          <p>Validate addresses automatically as they are added to your account.</p>
        </div>
      </div>

      <div className="rm-card is-planned">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Inbound message forwarding <span className="rm-tag is-new">New feature</span></p>
          <p>Forward inbound messages straight to another email address.</p>
        </div>
      </div>

      <div className="rm-card is-planned">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">IPv6 support for the API <span className="rm-tag is-improvement">Improvement</span></p>
          <p>IPv6 connectivity for api.ahasend.com.</p>
        </div>
      </div>

      <div className="rm-card is-planned">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Sandbox sending from unverified domains <span className="rm-tag is-improvement">Improvement</span></p>
          <p>Send test messages from unverified domains while in Sandbox mode.</p>
        </div>
      </div>

      <div className="rm-card is-planned">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Move off Cloudflare <span className="rm-tag is-improvement">Improvement</span></p>
          <p>Reduce third-party dependencies in our infrastructure.</p>
        </div>
      </div>

      <div className="rm-card is-planned">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Campaign Builder <span className="rm-tag is-product">New product</span></p>
          <p>Send marketing campaigns to your contact lists, with list import and unsubscribe handling.</p>
        </div>
      </div>

      <div className="rm-card is-planned is-sub">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">View sent campaign content</p>
          <p>Review a campaign's content after it has been sent.</p>
        </div>
      </div>

      <div className="rm-card is-planned is-sub">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Require an unsubscribe link</p>
          <p>Block sending a campaign when no unsubscribe link is present.</p>
        </div>
      </div>

      <div className="rm-card is-planned">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Billing contacts <span className="rm-tag is-improvement">Improvement</span></p>
          <p>Add a dedicated billing contact to receive invoices.</p>
        </div>
      </div>

      <div className="rm-card is-planned">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Bad domain check API endpoint <span className="rm-tag is-new">New feature</span></p>
          <p>An API endpoint to check addresses against our known bad-domain list.</p>
        </div>
      </div>

      <div className="rm-card is-planned">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Marketing Automation 1.0 <span className="rm-tag is-product">New product</span></p>
          <p>Triggered, multi-step email journeys that go beyond one-off campaigns.</p>
        </div>
      </div>

      <div className="rm-card is-planned">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Team roles and permissions <span className="rm-tag is-new">New feature</span></p>
          <p>User groups with granular permissions for your team.</p>
        </div>
      </div>

      <div className="rm-card is-planned is-sub">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Hide message data per team</p>
          <p>Disable viewing of message contents for selected user groups.</p>
        </div>
      </div>

      <div className="rm-card is-planned">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Link webhook invocation data to messages <span className="rm-tag is-improvement">Improvement</span></p>
          <p>See the webhook delivery attempts tied to each individual message.</p>
        </div>
      </div>

      <div className="rm-card is-planned">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Link branding <span className="rm-tag is-new">New feature</span></p>
          <p>Whitelabel tracking and link domains, available as a Pro add-on.</p>
        </div>
      </div>

      <div className="rm-card is-planned">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Clearer <code>message\_id\_header</code> in CreateMessage <span className="rm-tag is-improvement">Improvement</span></p>
          <p>Remove the confusion around the <code>message\_id\_header</code> field in the v2 CreateMessage API.</p>
        </div>
      </div>

      <div className="rm-card is-planned">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">DKIM rotation for older domains <span className="rm-tag is-improvement">Improvement</span></p>
          <p>Add DKIM rotation support when upgrading legacy domains.</p>
        </div>
      </div>
    </div>
  </section>

  <section>
    <div className="rm-head">
      <h2 className="rm-badge is-shipped" id="shipped">Shipped (5)</h2>
    </div>

    <div className="rm-list">
      <div className="rm-card is-shipped">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Improve Sub Account Delivery Tier assignment <span className="rm-tag is-improvement">Improvement</span></p>
          <p>Better delivery tier assignment for sub accounts, aligned with the parent account.</p>
          <span className="rm-date">Q3 2026</span>
        </div>
      </div>

      <div className="rm-card is-shipped">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Higher default rate limits <span className="rm-tag is-improvement">Improvement</span></p>
          <p>Increased default sending rate limits, with higher ceilings on Pro and Max plans.</p>
          <span className="rm-date">Q3 2026</span>
        </div>
      </div>

      <div className="rm-card is-shipped">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Domain management locked while suspended <span className="rm-tag is-improvement">Improvement</span></p>
          <p>Domain management is disabled while an account is suspended.</p>
          <span className="rm-date">Q3 2026</span>
        </div>
      </div>

      <div className="rm-card is-shipped">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">IP allow list for API keys</p>
          <p>Restrict API key usage to specific IP addresses, managed from the dashboard.</p>
          <span className="rm-date">Q2 2026</span>
        </div>
      </div>

      <div className="rm-card is-shipped">
        <div className="rm-accent" />

        <div>
          <p className="rm-title">Domain-level DKIM selector</p>
          <p>Choose a custom DKIM selector for each of your domains.</p>
          <span className="rm-date">Q2 2026</span>
        </div>
      </div>
    </div>
  </section>

  <p className="rm-note">
    This roadmap reflects our current plans and priorities, not commitments. Items
    may move, change, or be dropped as we learn. Missing something you need?
    <a href="mailto:support@ahasend.com"> Send us a feature request</a>.
  </p>
</div>
