From 4c9effcadfc8b64fb7c74e1b7781cd3cd98a3172 Mon Sep 17 00:00:00 2001 From: Bruce Pouncey Date: Thu, 28 May 2026 11:54:33 +0100 Subject: [PATCH 1/2] PEP-1418: Add release note for the Connection Timeline drawer Documents the new per-connection Timeline drawer in the Codat Portal, including the chronological transitions view, connection picker, current status / last sync summary, and the empty state for legacy connections. Also adds Bruce Pouncey to blog/authors.yml and "rgba" to the cspell dictionary. Co-Authored-By: Claude Opus 4.7 (1M context) --- blog/260528-connection-timeline-drawer.md | 105 ++++++++++++++++++ blog/authors.yml | 6 + cspell.json | 1 + .../updates/timeline-connection-completed.png | 3 + .../updates/timeline-connection-unlinked.png | 3 + static/img/updates/timeline-notimeline.png | 3 + 6 files changed, 121 insertions(+) create mode 100644 blog/260528-connection-timeline-drawer.md create mode 100644 static/img/updates/timeline-connection-completed.png create mode 100644 static/img/updates/timeline-connection-unlinked.png create mode 100644 static/img/updates/timeline-notimeline.png diff --git a/blog/260528-connection-timeline-drawer.md b/blog/260528-connection-timeline-drawer.md new file mode 100644 index 000000000..12b72fa54 --- /dev/null +++ b/blog/260528-connection-timeline-drawer.md @@ -0,0 +1,105 @@ +--- +title: "Diagnose connection issues with the new Connection Timeline in Codat Portal" +date: "2026-05-28" +tags: ["Product", "Update", "Portal"] +authors: brucepouncey +--- + +We have added a **Connection Timeline** drawer to the Codat Portal so you can self-serve the history of any data connection, including when it was started, completed, deauthorized, or unlinked, without leaving the Manage Connections page. + + + +## What's new? + +A new **View timeline** button on the Manage Connections page in the [Codat Portal](https://app.codat.io) opens a right-anchored drawer with a per-connection diagnostic history. Until now, status pills told you the current state of a connection but not how it got there. The timeline closes that gap. + +
+
+ Connection Timeline drawer showing a completed connection, with Started and Completed steps +
+
+ Connection Timeline drawer showing an unlinked connection, with the full history of transitions ending in Unlinked +
+
+ +### Chronological view of every status change + +The drawer renders a vertical timeline of status transitions for the selected connection, oldest at the top and newest at the bottom. Each step shows the status, the date and time of the transition, and the reason where one is available for **Deauthorized** and **Unlinked** events. + +Steps map onto the connection statuses you already see on the table: + +- **Started**: when the link flow began +- **Completed**: when the connection became authorized and started syncing data +- **Deauthorized**: when access was revoked or expired +- **Unlinked**: when the connection was manually unlinked + +### Switch between a company's connections without leaving the drawer + +A connection picker at the top of the drawer lists every connection on the company. Selecting another platform replaces the timeline and status summary in place, so you don't need to close the drawer and reopen it from another row. + +### Current status and last sync, at a glance + +Above the timeline, the drawer surfaces the connection's **current status** as a colored pill and the **last successful sync** timestamp in your locale. These values come straight from the connection record, so they are always present even when the underlying transition history is not. + +### Honest about data gaps for older connections + +Connection transitions are only recorded from the release of this feature forward, and there is no historical backfill. Connections that have not transitioned since the recording started show a **"Timeline not available"** banner alongside the current status and creation date. As soon as those connections next change state (a relink, a deauthorization, an unlink), the timeline starts populating itself, so coverage self-heals over time. + +![Connection Timeline drawer showing the "Timeline not available" empty state for a legacy connection without recorded transitions](/img/updates/timeline-notimeline.png) + +The drawer and all of its labels are available in both English and Canadian French. + +## Who is this relevant for? + +This update is most useful for **bankers, implementation managers, and support engineers** who need to answer _"what's going on with this connection?"_, whether that's a client reporting data isn't flowing, a status pill showing **Deauthorized**, or an onboarding that has stalled. It also benefits any Portal user who wants a clear audit trail of how a connection has changed over time. + +## How to get started? + +No action is required to benefit from this update. Open the **Companies** page in the [Codat Portal](https://app.codat.io), pick a company, and click **View timeline** on any connection in the Manage Connections view to see its history. diff --git a/blog/authors.yml b/blog/authors.yml index 9c6cb1ddd..0c0efeef1 100644 --- a/blog/authors.yml +++ b/blog/authors.yml @@ -171,3 +171,9 @@ avanjani: title: Principal Product Manager url: https://github.com/avanjani-codat image_url: https://github.com/avanjani-codat.png + +brucepouncey: + name: Bruce Pouncey + title: Product Engineer + url: https://github.com/brucepouncey + image_url: https://avatars.githubusercontent.com/u/229920420?v=4 diff --git a/cspell.json b/cspell.json index fa8337a9e..2347f6c0f 100644 --- a/cspell.json +++ b/cspell.json @@ -187,6 +187,7 @@ "recategorizing", "Recategorizing", "reengagement", + "rgba", "Recurly", "Rightworks", "Rockstar", diff --git a/static/img/updates/timeline-connection-completed.png b/static/img/updates/timeline-connection-completed.png new file mode 100644 index 000000000..7384c5348 --- /dev/null +++ b/static/img/updates/timeline-connection-completed.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a756dc7b3a8034d94bd372ff02fbe03c3d0fdbdf7f6ad7ec36d3c3d82d3287e +size 48849 diff --git a/static/img/updates/timeline-connection-unlinked.png b/static/img/updates/timeline-connection-unlinked.png new file mode 100644 index 000000000..6a2a8dd21 --- /dev/null +++ b/static/img/updates/timeline-connection-unlinked.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69577ab6fa2d871cdefd4fb4588b4e08638a7677056933630793452b58883b1a +size 55005 diff --git a/static/img/updates/timeline-notimeline.png b/static/img/updates/timeline-notimeline.png new file mode 100644 index 000000000..cbe177072 --- /dev/null +++ b/static/img/updates/timeline-notimeline.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dbc90c73edca2553225584f52e07164490d50c5131a37b7d2eb285a983012c8d +size 40921 From 7a8d4e7deefcf16c99ee53af523a2b719f293163 Mon Sep 17 00:00:00 2001 From: Bruce Pouncey Date: Thu, 28 May 2026 12:09:28 +0100 Subject: [PATCH 2/2] PEP-1418: Address Phil's review comments - Reframe the legacy-connections heading from "Honest about data gaps for older connections" to "Older connections fill in over time" (positive framing, matches the self-healing language already in the section body). - Drop the fr-CA availability line per Phil's feedback. Co-Authored-By: Claude Opus 4.7 (1M context) --- blog/260528-connection-timeline-drawer.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/blog/260528-connection-timeline-drawer.md b/blog/260528-connection-timeline-drawer.md index 12b72fa54..034df2baf 100644 --- a/blog/260528-connection-timeline-drawer.md +++ b/blog/260528-connection-timeline-drawer.md @@ -88,14 +88,12 @@ A connection picker at the top of the drawer lists every connection on the compa Above the timeline, the drawer surfaces the connection's **current status** as a colored pill and the **last successful sync** timestamp in your locale. These values come straight from the connection record, so they are always present even when the underlying transition history is not. -### Honest about data gaps for older connections +### Older connections fill in over time Connection transitions are only recorded from the release of this feature forward, and there is no historical backfill. Connections that have not transitioned since the recording started show a **"Timeline not available"** banner alongside the current status and creation date. As soon as those connections next change state (a relink, a deauthorization, an unlink), the timeline starts populating itself, so coverage self-heals over time. ![Connection Timeline drawer showing the "Timeline not available" empty state for a legacy connection without recorded transitions](/img/updates/timeline-notimeline.png) -The drawer and all of its labels are available in both English and Canadian French. - ## Who is this relevant for? This update is most useful for **bankers, implementation managers, and support engineers** who need to answer _"what's going on with this connection?"_, whether that's a client reporting data isn't flowing, a status pill showing **Deauthorized**, or an onboarding that has stalled. It also benefits any Portal user who wants a clear audit trail of how a connection has changed over time.