{
  "entries": [
    {
      "id": "2026-09-09-upgrade-charges-full-budget-difference",
      "date": "2026-09-09",
      "title": "Mid-cycle upgrades charge the full budget difference",
      "type": "fix",
      "announcement": null,
      "bullets": [
        "Upgrading your monthly budget now charges the full difference between tiers, not a leftover-days amount",
        "The extra budget is available immediately; your billing date stays the same"
      ]
    },
    {
      "id": "2026-09-08-dashboard-integrations-catalog",
      "date": "2026-09-08",
      "title": "Find n8n, MCP, CLI, and more in Settings",
      "type": "feature",
      "announcement": null,
      "bullets": [
        "Settings → Integrations now lists official Pingram integrations in one place, including n8n, Make, Apprise, GitHub Actions, MCP, Hermes, Skills, the CLI, and Auth0",
        "Copy the MCP server URL or an install command from a card, then open the setup guide"
      ]
    },
    {
      "id": "2026-09-04-email-editor-preserves-pasted-html",
      "date": "2026-09-04",
      "title": "Pasted email HTML is saved as-is",
      "type": "fix",
      "announcement": null,
      "bullets": [
        "Pasting a full HTML email into a template no longer rewrites the markup when you save",
        "Preview and the editor now show the same HTML you pasted"
      ]
    },
    {
      "id": "2026-09-03-logs-updating-results",
      "date": "2026-09-03",
      "title": "Logs finish loading instead of staying on Updating results",
      "type": "fix",
      "announcement": null,
      "bullets": [
        "Opening a log no longer stays on Updating results when loading delivery details"
      ]
    },
    {
      "id": "2026-09-03-paid-plan-changes-in-place",
      "date": "2026-09-03",
      "title": "Paid plan changes apply in place",
      "type": "improvement",
      "announcement": null,
      "bullets": [
        "Changing your paid plan in Settings no longer sends you through checkout again",
        "Upgrades apply immediately; downgrades take effect at the end of the current billing period",
        "The Plan page shows the scheduled plan and when it starts"
      ]
    },
    {
      "id": "2026-08-28-create-account-returns-api-key",
      "date": "2026-08-28",
      "title": "Create account returns the new API key",
      "type": "improvement",
      "announcement": null,
      "bullets": [
        "`POST /accounts` and `accounts.createAccount` now include `apiKey` — the new account's default secret key (`pingram_sk_…`)",
        "Use a personal access token to create the account, then send with the returned key without a follow-up `GET /keys`"
      ]
    },
    {
      "id": "2026-08-26-stop-creating-environments",
      "date": "2026-08-26",
      "title": "Creating additional environments is no longer supported",
      "type": "deprecation",
      "announcement": null,
      "bullets": [
        "You can no longer add a new environment from the dashboard, `POST /environments`, or `createEnvironment` in the SDKs",
        "Existing environments and API keys keep working"
      ]
    },
    {
      "id": "2026-08-25-a2p-10dlc-registration-apis",
      "date": "2026-08-25",
      "title": "A2P 10DLC registration APIs",
      "type": "feature",
      "announcement": null,
      "bullets": [
        "Create, read, and update your US A2P 10DLC brand registration through the API and SDKs",
        "Read and update campaign registration fields (use case, samples, opt-in/out flows, and related compliance details) before carrier submission",
        "SDKs (v1.0.26) add `registrations` methods for brand and campaign registration on Node, Python, Go, PHP, Java, C#, and Ruby",
        "MCP can list and manage brand and campaign registrations for accounts you authenticate as"
      ]
    },
    {
      "id": "2026-08-25-voice-editor-shows-saved-agent",
      "date": "2026-08-25",
      "title": "Voice agent editor opens the saved configuration",
      "type": "fix",
      "announcement": null,
      "bullets": [
        "Opening a voice agent now always shows the configuration saved on the agent, not a leftover local draft",
        "Unsaved edits still support Save changes and Discard changes, and leaving the page asks before those edits are lost"
      ]
    },
    {
      "id": "2026-08-21-create-accounts-cli-mcp",
      "date": "2026-08-21",
      "title": "Create extra accounts from the CLI and MCP",
      "type": "feature",
      "announcement": null,
      "bullets": [
        "`pingram accounts create` and `pingram accounts list` manage extra accounts from the terminal — log in with a personal access token (`pingram_pat_…`), not an account API key",
        "Pass `--plan '{\"tier\":\"budget_50\",\"sourceBillingAccountId\":\"…\"}'` to attach a budget using another account's payment method",
        "After you connect Pingram MCP, an agent signed in as you can use **Create Account** and **List Accounts**"
      ]
    },
    {
      "id": "2026-08-20-bulk-unsuppress-starts-in-background",
      "date": "2026-08-20",
      "title": "Bulk email unsuppress starts in the background",
      "type": "improvement",
      "announcement": null,
      "bullets": [
        "`DELETE /email/suppressions/{reason}` now queues removal and returns immediately — it no longer waits until every address is cleared",
        "The response is a confirmation that the job started; matching suppressions finish clearing in the background"
      ]
    },
    {
      "id": "2026-08-18-log-suppression-remove",
      "date": "2026-08-18",
      "title": "Remove recipients from suppression in log details",
      "type": "improvement",
      "announcement": null,
      "bullets": [
        "Bounce and complaint log details now explain that the recipient is on the email suppression list, including after the first permanent bounce or complaint",
        "Remove that recipient from the suppression list directly from the log"
      ]
    },
    {
      "id": "2026-08-13-fix-voice-agent-tool-serialization",
      "date": "2026-08-13",
      "title": "Fix saving voice agents that use transfer, MCP, or knowledge tools",
      "type": "fix",
      "announcement": null,
      "bullets": [
        "Saving or updating a voice agent with transfer, MCP, or knowledge tools no longer fails with an invalid request body",
        "Assigning a phone number after adding those tools works again (save could fail before the bind step)"
      ]
    },
    {
      "id": "2026-08-13-multiple-accounts",
      "date": "2026-08-13",
      "title": "Multiple accounts",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/announcing-multiple-accounts",
      "bullets": [
        "Create extra accounts from the dashboard sidebar or the API (`accounts.createAccount`), then switch between them",
        "Optionally attach a plan using another account's payment method",
        "Add teammates who already share an account with you, or invite new members by email"
      ]
    },
    {
      "id": "2026-08-11-bulk-remove-email-suppressions",
      "date": "2026-08-11",
      "title": "Bulk remove email suppressions",
      "type": "feature",
      "announcement": null,
      "bullets": [
        "Clear email suppressions in bulk from the Users page, with filters by suppression type",
        "Choose retryable suppressions and/or permanent bounces (complaints stay managed one at a time)",
        "New API: `DELETE /email/suppressions/{reason}` to remove matching suppressions for an environment"
      ]
    },
    {
      "id": "2026-08-11-personal-access-tokens",
      "date": "2026-08-11",
      "title": "Personal access tokens",
      "type": "feature",
      "announcement": null,
      "bullets": [
        "Create, list, and revoke personal access tokens from your profile",
        "Set an optional expiry (30, 90, or 365 days) or keep a token that never expires",
        "The full token is shown only once at creation; afterward you can identify tokens by name and prefix"
      ]
    },
    {
      "id": "2026-08-10-trim-to-and-from-on-sms-send",
      "date": "2026-08-10",
      "title": "Trim whitespace on SMS send to and from fields",
      "type": "fix",
      "announcement": null,
      "bullets": [
        "`POST /sms` now trims leading and trailing whitespace on `to` and `from` before send"
      ]
    },
    {
      "id": "2026-08-07-account-owner-role",
      "date": "2026-08-07",
      "title": "Account owner role for team members",
      "type": "feature",
      "announcement": null,
      "bullets": [
        "Account creators are owners; team settings shows an Owner tag next to owners",
        "Owners can promote other members to owner or set them to admin via the members API",
        "Member list responses always include each member's account role (`owner` or `admin`)"
      ]
    },
    {
      "id": "2026-08-07-announcing-github-actions-notifications",
      "date": "2026-08-07",
      "title": "Announcing Pingram notifications for GitHub Actions",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/announcing-github-actions-notifications",
      "bullets": [
        "Send email and SMS from CI with [`pingram-io/github-actions-send-email`](https://github.com/pingram-io/github-actions-send-email) and [`pingram-io/github-actions-send-sms`](https://github.com/pingram-io/github-actions-send-sms)",
        "Notify on failed builds or page on-call from a workflow step; `to` accepts a comma-separated list"
      ]
    },
    {
      "id": "2026-08-07-fix-mcp-oauth-session-renewal",
      "date": "2026-08-07",
      "title": "Keep Pingram MCP connected after the access token expires",
      "type": "fix",
      "announcement": null,
      "bullets": [
        "MCP clients now receive a refresh token after login, so sessions renew instead of failing",
        "Expired API tokens during tool calls return HTTP 401 at the MCP layer so clients can refresh and retry"
      ]
    },
    {
      "id": "2026-08-07-mobile-push-discontinued",
      "date": "2026-08-07",
      "title": "Mobile Push discontinued",
      "type": "deprecation",
      "announcement": null,
      "bullets": [
        "Mobile Push (APNs/FCM) is no longer delivered — `PUSH` is dropped from send routing even if it remains on a notification or in the request",
        "Dashboard setup for Mobile Push is removed: settings, channel toggles, templates, and mobile code samples no longer expose the channel"
      ]
    },
    {
      "id": "2026-08-06-product-changelog-at-pingram-io",
      "date": "2026-08-06",
      "title": "Product changelog at pingram.io/changelog",
      "type": "feature",
      "announcement": null,
      "bullets": [
        "Browse every ship at [/changelog](https://www.pingram.io/changelog) — grouped by month with feature, improvement, fix, and deprecation labels",
        "Machine-readable JSON feed at `/changelog.json` for integrations and tooling"
      ]
    },
    {
      "id": "2026-08-03-add-get-account-invoices-and-plan-tab-invoices-modal",
      "date": "2026-08-03",
      "title": "Add GET /account/invoices and Plan tab invoices modal",
      "type": "feature",
      "announcement": null,
      "bullets": []
    },
    {
      "id": "2026-07-23-announcing-pingram-mcp",
      "date": "2026-07-23",
      "title": "Announcing Pingram MCP",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/announcing-pingram-mcp",
      "bullets": [
        "Connect Claude, ChatGPT, or Cursor to your Pingram account with our hosted MCP server. Sign in once and let an AI agent send notifications and manage your account on your behalf",
        "Send email and SMS",
        "Query delivery logs by tracking ID"
      ]
    },
    {
      "id": "2026-07-23-announcing-pingram-cli",
      "date": "2026-07-23",
      "title": "Announcing the Pingram CLI",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/announcing-pingram-cli",
      "bullets": [
        "Manage domains, send messages, and inspect logs from your terminal. Install via npm, Homebrew, cURL, or PowerShell"
      ]
    },
    {
      "id": "2026-07-17-single-corner-sign-out-on-verify-phone-page",
      "date": "2026-07-17",
      "title": "Single corner sign out on verify-phone page",
      "type": "fix",
      "announcement": null,
      "bullets": []
    },
    {
      "id": "2026-06-15-announcing-hermes-notification-gateway-plugin",
      "date": "2026-06-15",
      "title": "Official Hermes Notification Gateway Plugin",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/announcing-hermes-notification-gateway-plugin",
      "bullets": [
        "Hermes Agent plugin for SMS, email, and voice through Pingram. Install, run setup, done"
      ]
    },
    {
      "id": "2026-05-27-smtp-canada-europe",
      "date": "2026-05-27",
      "title": "SMTP Now Available in Canada and Europe",
      "type": "improvement",
      "announcement": "https://www.pingram.io/blog/smtp-canada-europe",
      "bullets": [
        "SMTP relay is now available in Canada and Europe, bringing local email infrastructure to more regions",
        "**Canada**",
        "**Europe**"
      ]
    },
    {
      "id": "2026-05-27-supabase-integration-canada-europe",
      "date": "2026-05-27",
      "title": "Supabase Integration Now Available in Canada and Europe",
      "type": "improvement",
      "announcement": "https://www.pingram.io/blog/supabase-integration-canada-europe",
      "bullets": [
        "Connect your Supabase project to Pingram in Canada and Europe for better deliverability and data residency compliance",
        "**Canada**",
        "**Europe**"
      ]
    },
    {
      "id": "2026-05-04-announcing-pingram-notification-skills",
      "date": "2026-05-04",
      "title": "Announcing Pingram Notification Skills",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/announcing-pingram-notification-skills",
      "bullets": [
        "Agent skills for sending and receiving email, SMS, voice, and WhatsApp with Pingram. Use them from Claude, Cursor, Copilot, and other coding assistants"
      ]
    },
    {
      "id": "2026-04-22-announcing-mms-sms-notifications",
      "date": "2026-04-22",
      "title": "Announcing: MMS (picture) for SMS notifications",
      "type": "improvement",
      "announcement": "https://www.pingram.io/blog/announcing-mms-sms-notifications",
      "bullets": [
        "Two-way MMS on the same SMS send API, with the Pingram team helping you meet US A2P 10DLC and sender requirements alongside your sends"
      ]
    },
    {
      "id": "2026-03-27-announcing-sms-custom-sender-number",
      "date": "2026-03-27",
      "title": "Announcing: Multi-Number SMS Support",
      "type": "improvement",
      "announcement": "https://www.pingram.io/blog/announcing-sms-custom-sender-number",
      "bullets": [
        "Send SMS notifications from multiple phone numbers. Perfect for multi-brand businesses, regional messaging, and dedicated support lines",
        "Separate communications for different brands",
        "Use regional numbers to improve delivery and trust"
      ]
    },
    {
      "id": "2026-02-17-announcing-full-inbound-messaging",
      "date": "2026-02-17",
      "title": "Announcing: Full Inbound Messaging",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/announcing-full-inbound-messaging",
      "bullets": [
        "Receive any incoming email or SMS from your users with built-in inboxes, custom domains, and reply tracking",
        "Every Pingram account now gets a built-in email inbox (`yourcompany@mail.pingram.io`) ready to receive messages immediately",
        "You can also add custom domains to receive emails at addresses like `support@mail.yourcompany.com`"
      ]
    },
    {
      "id": "2026-02-04-announcing-supabase-integration",
      "date": "2026-02-04",
      "title": "Announcing: Supabase Integration",
      "type": "improvement",
      "announcement": "https://www.pingram.io/blog/announcing-supabase-integration",
      "bullets": [
        "Hitting the Supabase email rate limit? Our one-click SMTP integration lets you send emails with full tracking, analytics, and better deliverability",
        "**Bypass Supabase's email rate limits** - Send as many emails as your application needs",
        "**Improve deliverability** - Benefit from Pingram's optimized email infrastructure"
      ]
    },
    {
      "id": "2026-01-27-announcing-smtp",
      "date": "2026-01-27",
      "title": "Announcing: SMTP Relay for Pingram",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/announcing-smtp",
      "bullets": [
        "Send emails through Pingram using standard SMTP configuration, perfect for platforms that only support SMTP credentials"
      ]
    },
    {
      "id": "2026-01-21-notificationapi-is-now-pingram",
      "date": "2026-01-21",
      "title": "NotificationAPI is Now Pingram",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/notificationapi-is-now-pingram",
      "bullets": [
        "We are rebranding from NotificationAPI to Pingram. Same team, same product, same commitment to developers — just a new name that better reflects our mission",
        "Developer Experience",
        "Simplicity"
      ]
    },
    {
      "id": "2026-01-15-unlock-premium-date-ranges-and-detail-levels-for-insights-pr",
      "date": "2026-01-15",
      "title": "Unlock premium date ranges and detail levels for Insights Pro accounts",
      "type": "feature",
      "announcement": null,
      "bullets": []
    },
    {
      "id": "2025-12-16-announcing-email-inbound-webhooks",
      "date": "2025-12-16",
      "title": "Announcing: Email Inbound Webhooks",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/announcing-email-inbound-webhooks",
      "bullets": [
        "Pingram can capture replies to your email notifications and send them to your webhooks. Great for implementing automated and conversational flows",
        "**AI Powered Workflows**: Build AI powered workflows that respond to user replies or take action based on the content of the reply.",
        "**Pre-defined Auto Replies**: Automatically reply to user replies with a pre-defined message; e.g. \"We got your message!\""
      ]
    },
    {
      "id": "2025-12-16-announcing-sms-inbound-webhooks",
      "date": "2025-12-16",
      "title": "Announcing: SMS Inbound Webhooks",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/announcing-sms-inbound-webhooks",
      "bullets": [
        "Enable two-way SMS notifications with your users. Receive SMS replies via our easy-to-use webhooks and build interactive notification experiences",
        "**Appointment confirmations**: Let users reply YES or NO to confirm appointments",
        "**Customer support**: Route SMS replies to your support system"
      ]
    },
    {
      "id": "2025-10-28-new-notification-logs-v2-api-endpoints",
      "date": "2025-10-28",
      "title": "New Notification Logs v2 API Endpoints",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/new-notification-logs-v2-api-endpoints",
      "bullets": [
        "Access your notification logs programmatically with new API endpoints for tailing, searching, and bulk retrieval"
      ]
    },
    {
      "id": "2025-10-13-announcing-easy-email-attachments",
      "date": "2025-10-13",
      "title": "Send Email Attachments without Storing Files",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/announcing-easy-email-attachments",
      "bullets": [
        "Send email attachments directly via base64 content without hosting files elsewhere. Perfect for dynamic content and temporary files",
        "Send Emails → Attachments",
        "API Reference: attachments"
      ]
    },
    {
      "id": "2025-10-07-unsubscribe-webhook-events",
      "date": "2025-10-07",
      "title": "Introducing Unsubscribe Webhook Events",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/unsubscribe-webhook-events",
      "bullets": [
        "Get real-time webhook notifications when users opt out of your notifications"
      ]
    },
    {
      "id": "2025-08-29-announcing-notification-insights-v2",
      "date": "2025-08-29",
      "title": "Notification Insights V2: Unified Cross-Channel Analytics",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/announcing-notification-insights-v2",
      "bullets": [
        "Insights V2 adds time-series charts across channels for improved analytics and deeper breakdowns",
        "Time-series charts for requests, sends, deliveries, opens, clicks",
        "Filters by notification type and channel"
      ]
    },
    {
      "id": "2025-07-10-suppression-list-management",
      "date": "2025-07-10",
      "title": "Announcing: Email Suppression Management",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/suppression-list-management",
      "bullets": [
        "Take full control of your email suppression lists"
      ]
    },
    {
      "id": "2025-07-07-announcing-soc2-type-ii-compliance",
      "date": "2025-07-07",
      "title": "SOC2 Type II Compliance",
      "type": "improvement",
      "announcement": "https://www.pingram.io/blog/announcing-soc2-type-ii-compliance",
      "bullets": [
        "Pingram is now SOC2 Type II certified with a new Trust Center showcasing our security posture and compliance reports"
      ]
    },
    {
      "id": "2025-07-06-send-notification-content-without-templates",
      "date": "2025-07-06",
      "title": "Send Notification Content Without Templates",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/send-notification-content-without-templates",
      "bullets": [
        "You can now send notifications without designing and using templates, by directly passing content in your API calls"
      ]
    },
    {
      "id": "2025-05-03-introducing-competitive-sms-pricing",
      "date": "2025-05-03",
      "title": "Introducing Industry-Leading SMS Pricing",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/introducing-competitive-sms-pricing",
      "bullets": [
        "Pingram now offers competitive, transparent SMS pricing",
        "Custom sender numbers and branding",
        "Regional compliance and smart routing"
      ]
    },
    {
      "id": "2025-05-02-faster-notification-logs",
      "date": "2025-05-02",
      "title": "Improved Notification Logs V2 Interface",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/faster-notification-logs",
      "bullets": [
        "We've completely rebuilt our logs interface from the ground up for blazing fast performance and improved usability",
        "Faster log loading",
        "Instant search results"
      ]
    },
    {
      "id": "2025-01-23-announcing-notification-logs-v2",
      "date": "2025-01-23",
      "title": "Announcing: Notification Logs v2",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/announcing-notification-logs-v2",
      "bullets": [
        "Introducing the revamped Notification Logs feature on Pingram: Better tracking, faster searches, and richer data for teams that want to debug notifications",
        "**Notification Open & Click Tracking**",
        "**Faster Search**"
      ]
    },
    {
      "id": "2025-01-23-introducing-notificationapi-s-european-data-center",
      "date": "2025-01-23",
      "title": "Introducing: Pingram's European Data Center",
      "type": "improvement",
      "announcement": "https://www.pingram.io/blog/introducing-notificationapi-s-european-data-center",
      "bullets": [
        "Pingram now supports an EU region, based out of Frankfurt, ensuring better performance and data residency compliance for our European customers and users",
        "**Enhanced Performance for European Customers**",
        "**GDPR Compliance**"
      ]
    },
    {
      "id": "2024-12-11-introducing-notification-events-webhook-api",
      "date": "2024-12-11",
      "title": "Introducing Notification Events Webhook API",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/introducing-notification-events-webhook-api",
      "bullets": [
        "We are excited to roll out our Notification Events Webhook. This feature calls your APIs with important notification events, such as Delivery or Click"
      ]
    },
    {
      "id": "2024-07-23-announcing-logs-api",
      "date": "2024-07-23",
      "title": "Announcing: Logs API",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/announcing-logs-api",
      "bullets": [
        "Pingram’s new Logs API grants developers full access to their notification system’s logs & data"
      ]
    },
    {
      "id": "2024-05-01-announcing-user-dashboard",
      "date": "2024-05-01",
      "title": "Announcing: User Dashboard",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/announcing-user-dashboard",
      "bullets": [
        "Pingram"
      ]
    },
    {
      "id": "2024-04-11-announcing-api-documentation",
      "date": "2024-04-11",
      "title": "Announcing: API Documentation",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/announcing-api-documentation",
      "bullets": [
        "Pingram now has REST API documentation and Administrative API features in addition to SDKs, letting you manage your Pingram account via our API"
      ]
    },
    {
      "id": "2024-03-25-announcing-server-side-c-net-sdk",
      "date": "2024-03-25",
      "title": "Announcing Server-Side C# .NET SDK",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/announcing-server-side-c-net-sdk",
      "bullets": [
        "Pingram now officially supports a C# .NET library. This library is available on NuGet and thoroughly documented on our server SDK documentation website"
      ]
    },
    {
      "id": "2024-03-10-announcing-notification-scheduling",
      "date": "2024-03-10",
      "title": "Announcing: Notification Scheduling",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/announcing-notification-scheduling",
      "bullets": [
        "Notification scheduling is built into Pingram and replaces the cron, databases or other systems you have in place to send notifications at future dates"
      ]
    },
    {
      "id": "2022-08-31-announcing-insights",
      "date": "2022-08-31",
      "title": "Announcing: Insights",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/announcing-insights",
      "bullets": [
        "With Pingram Insights, teams get high-level reports and an understanding of what notifications they are sending, where they go, and what happens to them",
        "Outgoing notifications by notification",
        "Outgoing notifications by channel"
      ]
    },
    {
      "id": "2022-06-24-announcing-no-code-unsubscribe-links",
      "date": "2022-06-24",
      "title": "Announcing: No-Code Unsubscribe Links",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/announcing-no-code-unsubscribe-links",
      "bullets": [
        "Unsubscribe Links allows you to append an unsubscribe link to any of your notifications and improve your notifications user experience without writing any code"
      ]
    },
    {
      "id": "2022-06-09-announcing-notificationapi-logs",
      "date": "2022-06-09",
      "title": "Announcing Logs: In-Depth and Searchable History of All Notifications",
      "type": "feature",
      "announcement": "https://www.pingram.io/blog/announcing-notificationapi-logs",
      "bullets": [
        "With Logs, you can search and review all your outgoing notifications in order to address customer tickets or debug software issues"
      ]
    }
  ]
}