BumblebeeBumblebee

ConnectWise

Overview

The ConnectWise integration enables seamless automation between Bumblebee and ConnectWise Manage (formerly ConnectWise PSA). Automate service tickets, opportunities, companies, contacts, projects, and more across your business operations.

Prerequisites & Setup

Before setting up the ConnectWise integration, you need:

  • An active ConnectWise Manage account
  • API Member credentials (Company ID, Public Key, Private Key, Client ID)
  • API access enabled in your ConnectWise instance
  • Appropriate security roles and permissions

Create API Member in ConnectWise

  1. Log in to ConnectWise Manage
  2. Navigate to System > Members > API Members
  3. Click New to create a new API Member
  4. Configure the following:
    • API Member ID: Unique identifier for the API user
    • Public Key: Will be auto-generated
    • Private Key: Will be auto-generated (save this securely)
    • Security Role: Assign appropriate permissions
  5. Note your Company ID (found in System > Company Information)
  6. Note your Site URL (e.g., https://yourcompany.connectwise.com)
  7. Client ID: Generate a "Client ID" in the ConnectWise developer portal if required.

Configure in Bumblebee

  1. Navigate to the Integrations page
  2. Select ConnectWise
  3. Enter your credentials:
    • Company ID
    • Public Key
    • Private Key
    • Client ID
    • Site URL
  4. Click Test Connection
  5. Save the configuration

Available Tools

Service Tickets

  • get_ticket - Get complete ticket information by ticket ID. Returns raw JSON response from ConnectWise API. Required: ticket_id (int)
  • list_tickets - List tickets. Returns raw JSON response from ConnectWise API. Optional: company_id (int), board_name (str), status_name (str), priority_name (str), max_records (int)
  • create_ticket - Create a new service ticket in ConnectWise. Returns the created ticket as raw JSON. Required: summary (str), company_id (int), board_id (int). Optional: priority_id (int), status_id (int), initial_description (str), contact_name (str), contact_phone_number (str), contact_email_address (str)
  • update_ticket - Update an existing service ticket in ConnectWise. Returns the updated ticket as raw JSON. Required: ticket_id (int). Optional: summary (str), priority_id (int), status_id (int), type_id (int), subtype_id (int), item_id (int), impact (str), sla_id (int), initial_description (str), contact_name (str), contact_phone_number (str), contact_email_address (str)
  • list_ticket_notes - Get all notes/comments for a ticket including ticket notes, time entry notes, and meeting notes. Required: ticket_id (int). Optional: max_records (int)
  • post_ticket_note - Create a new note/comment on a service ticket. Required: ticket_id (int), text (str). Optional: internal_flag (bool), external_flag (bool), detail_description_flag (bool), internal_analysis_flag (bool), resolution_flag (bool)

Companies

  • get_company - Get complete company information by company ID. Returns raw JSON response from ConnectWise API. Required: company_id (int)
  • list_companies - List companies with optional filters. Optional: name (str), identifier (str), status_name (str), max_records (int)
  • create_company - Create a new company in ConnectWise. Returns the created company as raw JSON. Required: name (str), identifier (str). Optional: address_line1 (str), address_line2 (str), city (str), state (str), zip (str), phone_number (str), fax_number (str), website (str)
  • update_company - Update an existing company in ConnectWise. Returns the updated company as raw JSON. Required: company_id (int). Optional: name (str), phone_number (str), fax_number (str), website (str), address_line1 (str), address_line2 (str), city (str), state (str), zip (str)

Contacts

  • get_contact - Get complete contact information by contact ID. Returns raw JSON response from ConnectWise API. Required: contact_id (int)
  • list_contacts - List contacts with optional filters. Optional: company_id (int), first_name (str), last_name (str), max_records (int)
  • create_contact - Create a new contact in ConnectWise. Returns the created contact as raw JSON. Required: first_name (str), last_name (str), company_id (int). Optional: title (str), address_line1 (str), address_line2 (str), city (str), state (str), zip (str)
  • update_contact - Update an existing contact in ConnectWise. Returns the updated contact as raw JSON. Required: contact_id (int). Optional: first_name (str), last_name (str), title (str), address_line1 (str), address_line2 (str), city (str), state (str), zip (str)

Opportunities

  • get_opportunity - Get complete opportunity information by opportunity ID. Returns raw JSON response from ConnectWise API. Required: opportunity_id (int)
  • list_opportunities - List opportunities with optional filters. Optional: company_id (int), status_name (str), max_records (int)
  • create_opportunity - Create a new sales opportunity in ConnectWise. Returns the created opportunity as raw JSON. Required: name (str), primary_sales_rep_id (int), company_id (int), contact_id (int). Optional: expected_close_date (str), notes (str), source (str)
  • update_opportunity - Update an existing sales opportunity in ConnectWise. Returns the updated opportunity as raw JSON. Required: opportunity_id (int). Optional: name (str), expected_close_date (str), notes (str), source (str)

Projects

  • get_project - Get complete project information by project ID. Returns raw JSON response from ConnectWise API. Required: project_id (int)
  • list_projects - List projects with optional filters. Optional: company_id (int), status_name (str), max_records (int)
  • create_project - Create a new project in ConnectWise. Returns the created project as raw JSON. Required: name (str), company_id (int), board_id (int), billing_method (str), estimated_start (str), estimated_end (str). Optional: description (str)
  • update_project - Update an existing project in ConnectWise. Returns the updated project as raw JSON. Required: project_id (int). Optional: name (str), description (str), estimated_start (str), estimated_end (str)

Service Boards & Configuration

  • list_service_boards - List service boards with optional filters. Optional: name (str), max_records (int)
  • get_service_board_details - Get complete service board configuration details including types, subtypes, items, statuses, and teams. Required: board_id (int)
  • get_service_ticket_configuration - Get service ticket configuration including priorities, impacts, and SLAs.

Callbacks (Webhooks)

  • list_callbacks - List all callback entries (webhooks) with pagination. Returns raw JSON array response from ConnectWise API.
  • create_callback - Create a new callback entry (webhook) in ConnectWise. Returns the created callback as raw JSON. Required: url (str), type (str), level (str), object_id (int). Optional: description (str), inactive_flag (bool), member_id (int)
  • update_callback - Update an existing callback entry (webhook) in ConnectWise. Returns the updated callback as raw JSON. Required: callback_id (int). Optional: url (str), description (str), inactive_flag (bool), object_id (int), type (str), level (str)
  • delete_callback - Delete a callback entry (webhook) from ConnectWise. Required: callback_id (int)

Finance - Agreements

  • get_agreement - Get complete agreement details by ID from ConnectWise Finance module. Required: agreement_id (int)
  • list_agreements - List agreements from ConnectWise Finance module. Optional: company_id (int), agreement_status (str), max_records (int)
  • get_agreement_additions - List additions (line items) for a specific agreement. Required: agreement_id (int). Optional: max_records (int)
  • get_agreement_adjustments - List adjustments (credits/debits) for a specific agreement. Required: agreement_id (int). Optional: max_records (int)

Finance - Invoices

  • get_invoice - Get complete invoice details by ID from ConnectWise Finance module. Required: invoice_id (int)
  • list_invoices - List invoices from ConnectWise Finance module. Optional: company_id (int), agreement_id (int), max_records (int)
  • get_invoice_payments - List payments applied to a specific invoice. Required: invoice_id (int). Optional: max_records (int)