Changelog
Every product update, in reverse chronological order. New tools, infrastructure changes, and platform improvements.
Content Intelligence Engine
20 new tools for content analytics, writing style AI, comment intelligence, A/B testing, and learned preferences. 160 tools total.
- AddedWriting style engine: AI-generated messaging and posting style guides learned from your LinkedIn activity. Clone the style of up to 3 influencer profiles.
- AddedContent analytics dashboard: content summary, top posts ranked by any metric, cached post analytics with content type filtering, profile analytics trends, and one-click cache seeding for historical data.
- AddedComment intelligence: unanswered comments ranked by commenter value (title, reactions), comment reach ROI analysis, and batch reply with rate-limit pacing (up to 20 replies per call).
- AddedA/B testing engine with SPRT (Sequential Probability Ratio Test) for statistical significance. Launch experiments on campaign variants, track per-variant stats, and promote winners automatically.
- AddedLearned preferences system: Crispy remembers your outreach tone, content formality, and follow-up frequency across all tools. Set, get, or reset preferences at any time.
- ImprovedEvery analytics response now includes an intelligence block with assessment, actionable insights, and recommended next actions, computed instantly with zero LLM cost.
Agency plan with client workspaces
Multi-tenant workspace isolation for agencies managing LinkedIn on behalf of clients.
- AddedAgency plan - dedicated workspace per client with full data isolation at the database row level
- AddedSeat reconciliation cron - nightly job synchronises billed seats against active members and auto-cancels orphaned subscriptions
- AddedVolume pricing - per-seat cost decreases at 5, 10, and 20+ seat thresholds, calculated in real time on the billing page
- AddedCost preview and confirmation dialog before adding or removing seats, showing prorated charges for the current billing period
- ImprovedOrganisation plan_type kept in sync with Stripe subscription metadata on every webhook event
- FixedRace condition guard on seat provisioning prevents double-charging when two requests arrive within the same billing second
API key security hardening
HMAC-SHA256 with per-installation pepper, key prefix display, and stale session detection.
- SecurityAPI keys are now hashed with HMAC-SHA256 using a server-side pepper - raw keys are never persisted after generation
- AddedKey prefix display - dashboard shows the first 8 characters of each key so you can identify which key is in use without exposing the secret
- AddedStale session detection - keys tied to expired LinkedIn sessions surface a warning in the dashboard with a one-click reconnect flow
- ImprovedKey revocation is now immediate and propagates to the edge cache within one request cycle
Storage modes: managed, BYOS, and stateless
Choose where LinkedIn data lives - Crispy-managed Supabase, your own Supabase project, or no persistence at all.
- AddedManaged storage (default) - Crispy provisions and maintains a dedicated Supabase schema per organisation
- AddedBYOS (Bring Your Own Supabase) - connect any Supabase project via service role key; all data stays in your infrastructure
- AddedStateless mode - tool responses are returned directly without writing any LinkedIn data to persistent storage; suitable for GDPR-strict environments
- ImprovedStorage mode can be changed per-organisation from the dashboard settings tab without re-provisioning API keys
Warm-up program for new accounts
New LinkedIn accounts start with conservative daily limits that ramp up gradually over 30 days.
- AddedWarm-up scheduler - day-0 accounts receive 10% of plan limits; limits increase by 10 percentage points per day until they reach 100% at day 30
- AddedWarm-up status indicator on the dashboard shows current limit percentage and days remaining
- ImprovedLimit enforcement now reads from the warm-up table first, falling back to plan defaults - no duplicate enforcement logic
Webhook system with 29 event types
Subscribe to real-time events for messages, connections, posts, leads, and billing - all signed with HMAC-SHA256.
- AddedWebhook endpoint management - create, test, and delete endpoints from the dashboard or via REST API
- Added29 event types across five categories: messaging, network, content, leads, and billing lifecycle
- SecurityEvery delivery is signed with HMAC-SHA256 using a per-endpoint secret; the X-Crispy-Signature header lets you verify authenticity
- AddedDelivery log - inspect the last 100 deliveries per endpoint with request body, response status, and latency
- AddedManual replay - resend any failed delivery from the log without code changes
Writing style AI analysis
Analyse a LinkedIn profile's post history to extract a writing style fingerprint for use in AI-generated content.
- AddedWriting style analyser - scans up to 50 recent posts and returns tone, sentence length distribution, vocabulary level, and common structural patterns
- AddedStyle prompt builder - converts the fingerprint into a system prompt fragment that can be injected into any LLM call
- ImprovedPost drafting tools now accept an optional style_profile_id parameter to apply a stored fingerprint automatically
Lead management and campaign tracking
Full CRM-style lead pipeline with campaign tagging, attribution, and content analytics.
- AddedLead pipeline - save prospects with status, notes, and next-action dates; view as list or kanban
- AddedCampaign tagging - attach a campaign_id to any outbound action; all downstream events inherit the tag for attribution
- AddedContent analytics - cached post metrics with impressions, reactions, comments, and engagement rate
- AddedTop posts endpoint - rank your best-performing content by any metric over a configurable time window
- AddedSequence executor - multi-step outbound campaigns with configurable delay between steps and automatic pause on reply
Sales Navigator support
Advanced search filters, InMail sending, and saved lead list management for Sales Navigator subscribers.
- AddedSales Navigator search - filter by seniority, company headcount, function, geography, and keyword with up to 1,000 results per query
- AddedInMail sending - compose and send InMail messages to out-of-network prospects directly from MCP tools
- AddedSaved lead list management - create, update, and export Sales Navigator lead lists
- ImprovedStandard search tools fall back gracefully when Sales Navigator is not active on the connected account
Direct LinkedIn connection flow
Connect your LinkedIn account directly from the dashboard. No third-party tools, no OAuth redirect loops.
- AddedDirect connection flow from the dashboard. Link your LinkedIn account in under a minute
- AddedSession health monitoring. Crispy detects LinkedIn session expiry and surfaces a reconnect prompt in the dashboard
- ImprovedMultiple connection methods supported with automatic fallback for maximum reliability
- SecuritySession tokens are encrypted at rest using AES-256-GCM and are never logged or included in error reports
OAuth 2.1 with PKCE for Claude.ai
First-party OAuth 2.1 server lets Claude.ai users authorise Crispy without manually copying API keys.
- AddedOAuth 2.1 authorisation server with PKCE - implements the full code flow required by Claude.ai remote MCP connections
- AddedDynamic client registration - third-party MCP clients can register without a pre-shared secret
- AddedToken introspection and revocation endpoints per RFC 7662 and RFC 7009
- SecurityAll authorisation codes are single-use and expire after 60 seconds; refresh tokens rotate on every use
LinkedIn tools and MCP Streamable HTTP transport
Production launch with LinkedIn tools across multiple categories and the MCP 2025-03-26 Streamable HTTP transport.
- AddedLinkedIn tools covering profile read/write, direct messaging, connection management, content publishing, search, analytics, campaign operations, lists, and lead management
- AddedMCP Streamable HTTP transport (spec: 2025-03-26) - single /api/mcp endpoint handles both regular JSON responses and server-sent event streams
- AddedPermission scopes - read-only, outbound, content, and full-access; each API key is issued with a declared scope
- AddedRate limiting per plan tier enforced at the transport layer before any LinkedIn request is made
- AddedStructured logging with pino - all request/response cycles are logged with trace IDs for end-to-end observability
- AddedSentry error tracking on all MCP tool handlers with scrubbing of LinkedIn session tokens before reporting