extensions icon indicating copy to clipboard operation
extensions copied to clipboard

Update pipedrive extension

Open ahpatel opened this issue 3 weeks ago • 3 comments

Description

Primarly added ability to add and edit contacts, organizations and deals directly from Raycast.

New Features

  • Create deals, contacts, and organizations directly from Raycast
  • Edit deals, contacts, and organizations from search results
  • Create a person/organization inline from form dropdowns and auto-select it

Improvements

  • Searchable dropdown selectors for related records
  • Cache organizations for faster contact creation and fewer API calls
  • Duplicate detection with confirmation prompts and post-create quick actions
  • Centralized API client helpers for URL building, consistent error handling, and abort-safe requests
  • Single animated toast for create/update flows to reduce noisy notifications

Security

  • Validate Pipedrive domain before API calls and browser actions
  • Redact API tokens from surfaced error messages

Bug Fixes

  • Fix shortcuts for quick access to create new items
  • Abort in-flight requests on navigation
  • Suppress failure toasts on intentional aborted requests

Screencast

image image

Checklist

ahpatel avatar Dec 19 '25 04:12 ahpatel

Thank you for the update! :tada:

Due to our current reduced availability, the initial review may take up to 10-15 business days.

raycastbot avatar Dec 19 '25 04:12 raycastbot

Greptile Summary

This PR adds comprehensive create and edit functionality for contacts, deals, and organizations to the Pipedrive extension. The implementation introduces several new files and significantly enhances the existing search interface.

Key changes:

  • New commands: Add Contact and Create Deal with full form-based interfaces
  • Inline creation: Create organizations/people from dropdowns within other forms and auto-select them
  • Duplicate detection: Search for existing records before creating, with confirmation prompts
  • Searchable dropdowns: Dynamic search for related records (people, organizations) when creating deals/contacts
  • Organization caching: 10-minute TTL cache reduces API calls during contact creation
  • Security improvements: Domain validation (must be .pipedrive.com with https), API token redaction from all error messages
  • Enhanced UX: Single animated toast per operation, abort-safe requests, detail views with edit actions
  • Photo management: Upload contact photos with proper MIME type detection (PNG, JPG, GIF)
  • Bug fix: Removed duplicate onSaved() call in add-contact.tsx

Architecture:

  • pipedrive-client.ts: Centralized API helpers for URL building and fetch with error handling
  • pipedrive-security.ts: Domain validation and secret redaction
  • pipedrive-avatar-cache.ts: LocalStorage + filesystem caching for contact avatars
  • Form components properly handle abort signals, state hydration for edit mode, and validation

Confidence Score: 5/5

  • This PR is safe to merge with minimal risk
  • Well-architected feature addition with proper security measures (domain validation, token redaction), good error handling, abort-safe requests, comprehensive duplicate detection, and appropriate use of caching. Code follows Raycast patterns, properly handles edge cases, and the recent fix removed a double callback issue. No security vulnerabilities, logical errors, or architectural concerns identified.
  • No files require special attention

Important Files Changed

Filename Overview
extensions/pipedrive/src/pipedrive-security.ts Comprehensive domain validation ensuring Pipedrive URLs are secure (https, .pipedrive.com suffix) and API token redaction from error messages.
extensions/pipedrive/src/pipedrive-client.ts Centralized API client with URL building, abort-safe requests, consistent error handling with redacted secrets.
extensions/pipedrive/src/add-contact.tsx Feature-rich contact creation/editing with organization caching, duplicate detection, inline organization creation, multiple emails/phones support. Recent fix removed duplicate onSaved() call.
extensions/pipedrive/src/add-deal.tsx Deal creation/editing with searchable person/organization dropdowns, inline creation capabilities, duplicate detection with confirmation prompts.
extensions/pipedrive/src/index.tsx Enhanced search with type filtering, quick-create actions from search, detail views for all entity types, comprehensive action panels.

greptile-apps[bot] avatar Dec 19 '25 05:12 greptile-apps[bot]

Hi 👋

Can you look into the feedback from Greptile here @ahpatel

pernielsentikaer avatar Dec 19 '25 09:12 pernielsentikaer

@greptileai can you do a fresh review here?

pernielsentikaer avatar Dec 27 '25 15:12 pernielsentikaer

Pushed a fix already 9f1ff0a

Please re-review @pernielsentikaer

ahpatel avatar Dec 28 '25 07:12 ahpatel

Greptile's behavior is changing!

From now on, if a review finishes with no comments, we will not post an additional "statistics" comment to confirm that our review found nothing to comment on. However, you can confirm that we reviewed your changes in the status check section.

This feature can be toggled off in your Code Review Settings by deselecting "Create a status check for each PR".

greptile-apps[bot] avatar Dec 28 '25 07:12 greptile-apps[bot]

Published to the Raycast Store: https://raycast.com/ahp/pipedrive

github-actions[bot] avatar Dec 28 '25 19:12 github-actions[bot]

:tada: :tada: :tada:

We've rewarded your Raycast account with some credits. You will soon be able to exchange them for some swag.

raycastbot avatar Dec 28 '25 19:12 raycastbot