Matthew Meszaros
|
af4fa7b1d2
|
Merge remote-tracking branch 'origin/main' into referral-credits
|
2026-06-28 06:38:50 +00:00 |
|
Matthew Meszaros
|
315c25c158
|
chore(security): sync web package.json vite range to ^7.3.6 to match the security-patched lockfiles
|
2026-06-28 06:10:03 +00:00 |
|
Matthew Meszaros
|
3cb3616899
|
fix(security): bump web vite to 7.3.6, form-data to 4.0.6, and linkify-it to 5.0.1 in both lockfiles to clear CVE-2026-53571, CVE-2026-12143, and CVE-2026-48801
|
2026-06-28 06:09:35 +00:00 |
|
Matthew Meszaros
|
b618a9d6d4
|
feat: widen the billing compare-plans grid to the full settings panel (sm two / xl four columns) so all four plan cards fit comfortably
|
2026-06-28 05:58:31 +00:00 |
|
Matthew Meszaros
|
bbc07be875
|
feat: default the settings Section primitive to a stacked full-width layout and keep the title-rail look as an opt-in split layout so wide content is no longer squeezed into a narrow column
|
2026-06-28 05:58:31 +00:00 |
|
Matthew Meszaros
|
2f4e4f7ee6
|
feat: bound the settings layout to its container height so the left rail and content panes scroll internally instead of sliding under the sticky Settings topbar
|
2026-06-28 05:58:31 +00:00 |
|
Matthew Meszaros
|
db94ce0c47
|
feat: capture the ?ref= referral code in the web signup flow and thread it through registration
|
2026-06-28 05:10:04 +00:00 |
|
Matthew Meszaros
|
faad54b6a3
|
feat: add a redeemed promo codes table to the web billing settings page with its client, hook, and model
|
2026-06-28 05:10:04 +00:00 |
|
Matthew Meszaros
|
8aec22ba71
|
feat: invalidate referral query keys on the referral and referral_credit realtime audit events in the web spine
|
2026-06-28 05:10:04 +00:00 |
|
Matthew Meszaros
|
ae09a1646c
|
feat: build the dashboard referral settings page with its API clients, hooks, models, and route registration in web
|
2026-06-28 05:10:04 +00:00 |
|
Matthew Meszaros
|
38e9ca980f
|
fix: correct the dashboard /auth/me avatar and password endpoints, guard self-row actions on the members page, align the steps-page permission gate with the server, harden realtime event handling, and remove the dead admin roles client
|
2026-06-15 08:12:35 +02:00 |
|
Matthew Meszaros
|
2c910dcdeb
|
feat: make a campaign step's Original a first-class weighted A/B arm driven by a single draggable traffic-split bar, persisting the control share as an is_control variant row
|
2026-06-15 08:11:53 +02:00 |
|
Matthew Meszaros
|
a72addabeb
|
feat: add OAuth app webhook configuration with an event picker, signing-secret reveal and rotate, per-org installs, and a cross-org delivery log
|
2026-06-15 08:11:35 +02:00 |
|
Matthew Meszaros
|
d655ff4f59
|
feat: add the webhooks settings page with delivery observability, an onboarding setup step, and the webhook API client, hooks, and models
|
2026-06-15 08:11:35 +02:00 |
|
Matthew Meszaros
|
c5dfa5e4e7
|
feat: remove the HTTP-request action from campaign steps and automations in favor of signed webhooks, keep fire_event for custom payloads, and drop the now-unused outbound quota plumbing
|
2026-06-15 08:11:35 +02:00 |
|
Matthew Meszaros
|
899bdfb2f0
|
fix: stop the automation builder from showing 'Updated by a teammate' when the change was made by the same user elsewhere (e.g. toggling enabled from the automations list) by consulting the global self-mutation signal
|
2026-06-14 11:12:07 +02:00 |
|
Matthew Meszaros
|
c51946e4da
|
fix: track the current user's own audited mutations from the realtime actor id so collaborative editors can tell a self-made change (list-row toggle, another tab) apart from a teammate's edit
|
2026-06-14 11:12:07 +02:00 |
|
Matthew Meszaros
|
fcafac4195
|
refactor: remove the campaign 'notify (webhook)' step type now that the HTTP request step covers outbound calls and there is no webhook setup surface
|
2026-06-14 10:48:06 +02:00 |
|
Matthew Meszaros
|
5cee0375f9
|
fix: let portaled pickers/menus nest inside capture-phase and popover containers via a shared data-floating marker, and migrate the last native date/time inputs (contact activity range, unibox snooze + send-later) to the themed pickers
|
2026-06-14 10:48:06 +02:00 |
|
Matthew Meszaros
|
ab24d8bbc8
|
feat: add a 'Fire event' action and campaign step that publish custom events to the realtime gateway (no public URL), an HTTP-request campaign step, a configurable automation dry-run test with per-step toggles, and fix the false 'updated by a teammate' toast on your own save
|
2026-06-14 09:52:49 +02:00 |
|
Matthew Meszaros
|
b94a053ac9
|
feat: replace native date/time inputs with the themed pickers across the dashboard (audit log, admin audit, CRM tasks/deals, contacts and unibox filters, new meeting, campaign schedule)
|
2026-06-14 09:52:49 +02:00 |
|
Matthew Meszaros
|
736bb3d0c0
|
feat: add themed DatePicker, TimePicker, and DateTimePicker primitives so the dashboard never falls back to native browser date/time controls
|
2026-06-14 09:52:49 +02:00 |
|
Matthew Meszaros
|
e24c75a7db
|
feat: render Pipedrive's real monogram in white on a Green Haze tile in integrations, via a full-bleed brand-logo option
|
2026-06-14 09:52:49 +02:00 |
|
Matthew Meszaros
|
9cf56ee0af
|
feat: match the analytics tab's range/metric controls to the deliverability tab (slate-100 track with a white active pill) instead of the dark slate-900 blocks
|
2026-06-14 09:52:49 +02:00 |
|
Matthew Meszaros
|
fc5e014766
|
fix: remove dead admin Roles/Users/Plans tabs, point the deliverability 'all mailboxes' link at /app/emails, and add the missing document titles so those dashboard tabs no longer read 'Page not found'
|
2026-06-14 09:52:49 +02:00 |
|
Matthew Meszaros
|
f598237348
|
feat: redesign the Settings tab into grouped sections with a framer-motion sliding active indicator and animated content transitions
|
2026-06-14 09:52:49 +02:00 |
|
Matthew Meszaros
|
e3c49fe571
|
feat: move the OAuth apps developer portal into Settings with a multi-step registration onboarding wizard (stepper, animated modal, logo upload) and an animated apps/authorized tab switch
|
2026-06-14 09:52:49 +02:00 |
|
Matthew Meszaros
|
b06a11315f
|
feat: add the OAuth 2.1 dashboard UI: an OAuth apps page (register apps with a scope picker, one-time client secret, rotate, delete, authorized-apps tab with revoke) and a standalone consent screen at /oauth/authorize, plus the API client, hooks, and sidebar entry
|
2026-06-13 14:07:21 +02:00 |
|
Matthew Meszaros
|
c5226147ac
|
fix: use Pipedrive's Green Haze (#08A742) for the provider glyph background instead of the darker favicon green
|
2026-06-13 13:28:35 +02:00 |
|
Matthew Meszaros
|
a7fc7263a8
|
fix: make HTTP request headers/body placeholders visible with normal input colors and fix the Set variables Add variable button (stop filtering the blank row on edit)
|
2026-06-13 13:27:29 +02:00 |
|
Matthew Meszaros
|
501b5009b4
|
feat: add an on-error branch to automation action nodes (try/catch routing, rose on-error handle, executor follows the error edge and treats the failure as handled instead of failing the run)
|
2026-06-13 13:15:41 +02:00 |
|
Matthew Meszaros
|
9aa3300f46
|
feat: capture per-action output in automation run history (HTTP status/ok, set-variables values, rendered channel/url/message) and render it under each action in the builder History panel
|
2026-06-13 13:11:58 +02:00 |
|
Matthew Meszaros
|
977daf8a01
|
feat: surface the inbound webhook trigger in the automations builder with a copyable per-automation webhook URL and caller-defined payload conditions
|
2026-06-13 13:08:04 +02:00 |
|
Matthew Meszaros
|
9904919ae3
|
feat: replace the Pipedrive provider glyph with its real mark, a Green Haze circle and white blocky lowercase p, instead of a generic letter tile
|
2026-06-13 12:55:57 +02:00 |
|
Matthew Meszaros
|
2d41cb541e
|
feat: use Slack's real four-color hash and Close's colored orb mark, fix Calendly, and give Pipedrive a branded Green Haze tile in the integrations provider glyph
|
2026-06-13 12:37:49 +02:00 |
|
Matthew Meszaros
|
534928cfdd
|
feat: add a safe Set-variables (transform) automation node — computes named values from Go templates against the event + prior step output and writes them back for later steps to reuse, running the same sandboxed text/template engine as every other action value (no I/O, no arbitrary code execution)
|
2026-06-13 12:18:45 +02:00 |
|
Matthew Meszaros
|
5118033389
|
feat: render real brand logos in the integrations tab — ProviderGlyph now draws the official simple-icons (CC0) SVG marks for Slack, Discord, HubSpot, Salesforce, Zapier, n8n, Calendly, Make, and Cal.com in each brand's color on a neutral tile, falling back to a tinted initial for providers without a bundled mark
|
2026-06-13 12:15:06 +02:00 |
|
Matthew Meszaros
|
dfdb304033
|
feat: add the HTTP request / webhook node to the automation builder — method/url/headers/body/output-key editor, registered in the action picker with a globe glyph, surfacing how to read the response in later steps and branch on {{.response.ok}}
|
2026-06-13 12:07:04 +02:00 |
|
Matthew Meszaros
|
aed4a06190
|
feat: unify pagination by making the offset-based CRM deals/tasks search and meetings endpoints expose the same opaque next_cursor and {total, next_cursor, has_more} envelope as every keyset list (offset hidden inside the token), updating web clients, the OpenAPI spec, and the reference docs
|
2026-06-13 10:47:17 +02:00 |
|
Matthew Meszaros
|
587eae774e
|
feat: serve the entire customer API (auth + resources) only under /v1 with no unversioned alias, and repoint the web and admin clients to the versioned base accordingly
|
2026-06-13 07:18:23 +02:00 |
|
Matthew Meszaros
|
71abb12a38
|
feat: stop campaigns silently stalling on a transient scheduler error by retrying instead of completing the task, end past-end-date campaigns cleanly, record scheduler failures to the campaign log, add a campaign-chain reconciler, and surface failures live in the dashboard activity panel
|
2026-06-13 06:27:01 +02:00 |
|
Matthew Meszaros
|
969d53af6d
|
feat: animate the top-left Add-step dropdown the same as the drag-create menu (AnimatePresence scale + fade growing from the top-left) instead of appearing instantly
|
2026-06-12 17:47:05 +02:00 |
|
Matthew Meszaros
|
e321d582dc
|
feat: smoother campaign steps canvas — position-preserving layout (no jump on connect/disconnect), an animated drag-create dropdown, Condition adds the if-branch directly instead of a router you drag from, an open then dot instead of an auto-STOP, then-targets placed to the right for clean branch lanes, and the label-email action
|
2026-06-12 16:44:29 +02:00 |
|
Matthew Meszaros
|
c41205ec9a
|
feat: rework the automation canvas — drag a node's dot to empty for an animated create dropdown (reliable react-flow pane detection), unified dagre spacing for smoother branch lines, and the label-email built-in action gated to reply triggers
|
2026-06-12 16:44:29 +02:00 |
|
Matthew Meszaros
|
13e7663b03
|
feat: add the label_email action to the web action models — the campaign label_ids field plus the automation NATIVE_ACTIONS/labels/needs entries and a triggerCarriesThread reply-trigger gate
|
2026-06-12 16:44:29 +02:00 |
|
Matthew Meszaros
|
5c7045d742
|
fix: open the drag-create dropdown reliably by detecting drops on the react-flow pane (via onConnectStart ref + pane-class check) instead of connectionState.toNode, and route IF-block drags through the menu too so you can chain another condition
|
2026-06-12 12:55:54 +02:00 |
|
Matthew Meszaros
|
eb74b7dafb
|
feat: fix the Steps tab still pointing at /sequences and replace remaining user-facing Sequences with Steps (route page + folder renamed to steps, document title regex, permission labels, not-found hint, campaign count)
|
2026-06-12 10:03:02 +02:00 |
|
Matthew Meszaros
|
aba0878833
|
feat: replace the per-node amber if-dot with a single output dot that opens a drag-drop create menu (email, action, or condition) on release, and add a Condition router node (kind wait) you can chain into nested decision trees
|
2026-06-12 09:51:11 +02:00 |
|
Matthew Meszaros
|
a7a43e0c4c
|
feat: rename the campaign sequences resource to steps across the API and URL (/campaigns/:id/steps), the JSON fields (target_step_id, step_id/step_name/step_index, analytics steps[], create body steps), the web client/models/route segment/labels, the audit step entity type, and the wire-contract docs; internal Go type names and the Kafka avro schema stay
|
2026-06-12 09:38:11 +02:00 |
|
Matthew Meszaros
|
a69bf78b2c
|
feat: move the full email toolset (template picker, save as template, write with AI, content score) into the shared EmailContentEditor and have the original step composer use it too, so every A/B variant has the identical tools as the main email
|
2026-06-12 09:09:34 +02:00 |
|