kickserv
Ce que fait ce MCP
Manages Kickserv customers, field-service jobs, tasks, notes, charges, employee assignments and technician time entries.
Outils
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['customer_number', 'note'], 'properties': {'note': {'type': 'string', 'maxLength': 20000, 'minLength': 1, 'description': 'Note text.'}, 'public': {'type': 'boolean', 'description': 'True to make the note public (customer-visible).'}, 'customer_number': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Customer number.', 'exclusiveMinimum': 0}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['job_number', 'job_charge_type_id'], 'properties': {'details': {'type': 'string', 'maxLength': 5000, 'description': 'Line-item details.'}, 'item_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Item `id` from kickserv_list_items.', 'exclusiveMinimum': 0}, 'discount': {'type': 'number', 'maximum': 10000000, 'minimum': 0, 'description': 'Discount.'}, 'quantity': {'type': 'number', 'maximum': 1000000, 'minimum': 0, 'description': 'Quantity.'}, 'job_number': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Job number.', 'exclusiveMinimum': 0}, 'description': {'type': 'string', 'maxLength': 1000, 'description': 'Line-item description.'}, 'price_per_unit': {'type': 'number', 'maximum': 10000000, 'minimum': 0, 'description': 'Unit price.'}, 'job_charge_type_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Job charge type id.', 'exclusiveMinimum': 0}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['job_number', 'note'], 'properties': {'note': {'type': 'string', 'maxLength': 20000, 'minLength': 1, 'description': 'Note text.'}, 'public': {'type': 'boolean', 'description': 'True to make the note public (customer-visible).'}, 'job_number': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Job number.', 'exclusiveMinimum': 0}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['name'], 'properties': {'fax': {'type': 'string', 'maxLength': 64, 'description': 'Fax number.'}, 'name': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'Customer name (required).'}, 'mobile': {'type': 'string', 'maxLength': 64, 'description': 'Mobile number.'}, 'company': {'type': 'boolean', 'description': 'True if the customer is a company rather than a person.'}, 'contact': {'type': 'string', 'maxLength': 255, 'description': 'Primary contact name.'}, 'is_active': {'type': 'boolean', 'description': 'False to mark the customer inactive (reversible).'}, 'last_name': {'type': 'string', 'maxLength': 255, 'description': 'Contact last name.'}, 'first_name': {'type': 'string', 'maxLength': 255, 'description': 'Contact first name.'}, 'alt_contact': {'type': 'string', 'maxLength': 255, 'description': 'Alternate contact name.'}, 'billing_city': {'type': 'string', 'maxLength': 128, 'description': 'Billing city.'}, 'company_name': {'type': 'string', 'maxLength': 255, 'description': 'Company name.'}, 'phone_number': {'type': 'string', 'maxLength': 64, 'description': 'Phone number.'}, 'service_city': {'type': 'string', 'maxLength': 128, 'description': 'Service city.'}, 'billing_state': {'type': 'string', 'maxLength': 64, 'description': 'Billing state.'}, 'email_address': {'type': 'string', 'format': 'email', 'pattern': "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'maxLength': 255, 'description': 'Email address.'}, 'service_state': {'type': 'string', 'maxLength': 64, 'description': 'Service state (2-letter abbreviation in the US).'}, 'account_number': {'type': 'string', 'maxLength': 64, 'description': 'Your own account number for the customer.'}, 'notify_via_sms': {'type': 'boolean', 'description': 'Send the customer SMS notifications.'}, 'billing_address': {'type': 'string', 'maxLength': 255, 'description': 'Billing address (where invoices go), line 1.'}, 'billing_country': {'type': 'string', 'maxLength': 64, 'description': 'Billing country.'}, 'service_address': {'type': 'string', 'maxLength': 255, 'description': 'Service address (where the work happens), line 1.'}, 'service_country': {'type': 'string', 'maxLength': 64, 'description': 'Service country (2-letter code).'}, 'alt_phone_number': {'type': 'string', 'maxLength': 64, 'description': 'Alternate phone number.'}, 'billing_zip_code': {'type': 'string', 'maxLength': 32, 'description': 'Billing ZIP/postal code.'}, 'customer_type_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Customer type id.', 'exclusiveMinimum': 0}, 'notify_via_email': {'type': 'boolean', 'description': 'Send the customer email notifications.'}, 'service_zip_code': {'type': 'string', 'maxLength': 32, 'description': 'Service ZIP/postal code.'}, 'billing_address_2': {'type': 'string', 'maxLength': 255, 'description': 'Billing address line 2.'}, 'service_address_2': {'type': 'string', 'maxLength': 255, 'description': 'Service address line 2.'}, 'customer_source_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Customer source (lead source) id.', 'exclusiveMinimum': 0}, 'special_instructions': {'type': 'string', 'maxLength': 5000, 'description': 'Special instructions shown to technicians.'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['customer_id', 'job_type_id'], 'properties': {'name': {'type': 'string', 'maxLength': 255, 'description': 'Job name/title.'}, 'ends_at': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'When the job ends. A date/time string Kickserv can parse, e.g. `2026-10-02 09:30` or `10/2/2026 09:30am`.'}, 'duration': {'type': 'number', 'maximum': 100000, 'minimum': 0, 'description': 'Job duration.'}, 'estimate': {'type': 'boolean', 'description': 'True to create the job as an estimate.'}, 'po_number': {'type': 'string', 'maxLength': 64, 'description': 'Customer purchase-order number.'}, 'customer_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': "The customer's internal `id` (NOT the customer_number).", 'exclusiveMinimum': 0}, 'description': {'type': 'string', 'maxLength': 10000, 'description': 'Job description / work to be done.'}, 'job_type_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Job category (job type) id.', 'exclusiveMinimum': 0}, 'employee_ids': {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'maxItems': 50, 'description': 'Employee `id`s (from kickserv_list_employees) to assign. Replaces the current assignment.'}, 'scheduled_on': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'When the job is scheduled. A date/time string Kickserv can parse, e.g. `2026-10-02 09:30` or `10/2/2026 09:30am`.'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['job_id', 'name', 'task_type_id'], 'properties': {'name': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'Task name.'}, 'job_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': "The job's internal `id` (NOT the job_number).", 'exclusiveMinimum': 0}, 'ends_at': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'When the task ends. A date/time string Kickserv can parse, e.g. `2026-10-02 09:30` or `10/2/2026 09:30am`.'}, 'duration': {'type': 'integer', 'maximum': 100000, 'minimum': 0, 'description': 'Task duration.'}, 'customer_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': "The customer's internal `id`.", 'exclusiveMinimum': 0}, 'description': {'type': 'string', 'maxLength': 10000, 'description': 'Task description.'}, 'employee_ids': {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'maxItems': 50, 'description': 'Employee `id`s (from kickserv_list_employees) to assign. Replaces the current assignment.'}, 'scheduled_at': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'When the task is scheduled. A date/time string Kickserv can parse, e.g. `2026-10-02 09:30` or `10/2/2026 09:30am`.'}, 'task_type_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Task type id.', 'exclusiveMinimum': 0}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['customer_number'], 'properties': {'include': {'type': 'array', 'items': {'enum': ['contacts', 'jobs', 'tasks', 'notes', 'tax_entity', 'custom_field_assignments'], 'type': 'string'}, 'description': 'Related data to embed: contacts, jobs, tasks, notes, tax_entity, custom_field_assignments.'}, 'customer_number': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Customer number (as shown in Kickserv).', 'exclusiveMinimum': 0}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['job_number'], 'properties': {'include': {'type': 'array', 'items': {'enum': ['customer', 'employees', 'job_charges', 'time_entries', 'notes', 'job_type', 'job_status', 'tax_entity', 'custom_field_assignments'], 'type': 'string'}, 'description': 'Related data to embed: customer, employees, job_charges, time_entries, notes, job_type, job_status, tax_entity, custom_field_assignments.'}, 'job_number': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Job number (as shown in Kickserv).', 'exclusiveMinimum': 0}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['task_id'], 'properties': {'task_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Task id.', 'exclusiveMinimum': 0}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['customer_number'], 'properties': {'only': {'type': 'string', 'pattern': '^[a-z0-9_]+(,[a-z0-9_]+)*$', 'description': 'Comma-separated list of columns to return, e.g. `customer_number,name`. Kickserv recommends this: it makes responses much smaller and faster.'}, 'page': {'type': 'integer', 'maximum': 10000, 'minimum': 1, 'description': 'Page number (Kickserv returns 30 records per page). Omit for page 1.'}, 'include': {'type': 'array', 'items': {'enum': ['customer', 'employees', 'job_charges', 'time_entries', 'notes', 'job_type', 'job_status', 'tax_entity', 'custom_field_assignments'], 'type': 'string'}, 'description': 'Related data to embed: customer, employees, job_charges, time_entries, notes, job_type, job_status, tax_entity, custom_field_assignments.'}, 'customer_number': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Customer number.', 'exclusiveMinimum': 0}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['customer_number'], 'properties': {'customer_number': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Customer number.', 'exclusiveMinimum': 0}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'name': {'type': 'string', 'maxLength': 255, 'description': 'Exact customer name.'}, 'only': {'type': 'string', 'pattern': '^[a-z0-9_]+(,[a-z0-9_]+)*$', 'description': 'Comma-separated list of columns to return, e.g. `customer_number,name`. Kickserv recommends this: it makes responses much smaller and faster.'}, 'page': {'type': 'integer', 'maximum': 10000, 'minimum': 1, 'description': 'Page number (Kickserv returns 30 records per page). Omit for page 1.'}, 'include': {'type': 'array', 'items': {'enum': ['contacts', 'jobs', 'tasks', 'notes', 'tax_entity', 'custom_field_assignments'], 'type': 'string'}, 'description': 'Related data to embed: contacts, jobs, tasks, notes, tax_entity, custom_field_assignments.'}, 'billing_city': {'type': 'string', 'maxLength': 128, 'description': 'Billing city.'}, 'phone_number': {'type': 'string', 'maxLength': 64, 'description': 'Exact phone number, e.g. 800-555-1212.'}, 'service_city': {'type': 'string', 'maxLength': 128, 'description': 'Service city.'}, 'billing_state': {'type': 'string', 'maxLength': 64, 'description': 'Billing state.'}, 'email_address': {'type': 'string', 'maxLength': 255, 'description': 'Exact email address.'}, 'service_state': {'type': 'string', 'maxLength': 64, 'description': 'Service state (2-letter abbreviation).'}, 'customer_number': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Customer number.', 'exclusiveMinimum': 0}, 'service_zip_code': {'type': 'string', 'maxLength': 32, 'description': 'Service ZIP (full zip+4 if the record has one).'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'name': {'type': 'string', 'maxLength': 255, 'description': 'Filter by item name.'}, 'page': {'type': 'integer', 'maximum': 10000, 'minimum': 1, 'description': 'Page number (Kickserv returns 30 records per page). Omit for page 1.'}, 'which': {'enum': ['active', 'inactive', 'all'], 'type': 'string', 'description': 'Which items to return: active (default), inactive, or all.'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['job_number'], 'properties': {'job_number': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Job number.', 'exclusiveMinimum': 0}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'only': {'type': 'string', 'pattern': '^[a-z0-9_]+(,[a-z0-9_]+)*$', 'description': 'Comma-separated list of columns to return, e.g. `customer_number,name`. Kickserv recommends this: it makes responses much smaller and faster.'}, 'page': {'type': 'integer', 'maximum': 10000, 'minimum': 1, 'description': 'Page number (Kickserv returns 30 records per page). Omit for page 1.'}, 'status': {'enum': ['unscheduled', 'scheduled', 'in_progress', 'on_hold', 'canceled', 'complete'], 'type': 'string', 'description': 'Job status.'}, 'include': {'type': 'array', 'items': {'enum': ['customer', 'employees', 'job_charges', 'time_entries', 'notes', 'job_type', 'job_status', 'tax_entity', 'custom_field_assignments'], 'type': 'string'}, 'description': 'Related data to embed: customer, employees, job_charges, time_entries, notes, job_type, job_status, tax_entity, custom_field_assignments.'}, 'scheduled': {'enum': ['today', 'tomorrow', 'yesterday', 'this_week', 'next_week', 'last_week', 'this_month', 'next_month', 'last_month', 'this_year', 'last_year'], 'type': 'string', 'description': 'Scheduled-date window, e.g. today or this_week.'}, 'job_type_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Only jobs in this category (job type id).', 'exclusiveMinimum': 0}, 'job_status_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Only jobs with this custom job status id.', 'exclusiveMinimum': 0}, 'employee_number': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Only jobs assigned to this employee number.', 'exclusiveMinimum': 0}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['job_number'], 'properties': {'job_number': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Job number.', 'exclusiveMinimum': 0}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['job_number', 'employee_id', 'started_on', 'number_of_hours'], 'properties': {'note': {'type': 'string', 'maxLength': 5000, 'description': 'Note about the work.'}, 'mileage': {'type': 'number', 'maximum': 100000, 'minimum': 0, 'description': 'Mileage driven.'}, 'billable': {'type': 'boolean', 'description': 'Whether the time is billable.'}, 'ended_on': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'When the work ended. A date/time string Kickserv can parse, e.g. `2026-10-02 09:30` or `10/2/2026 09:30am`.'}, 'job_number': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Job number.', 'exclusiveMinimum': 0}, 'started_on': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'When the work started, e.g. `2026-10-02 13:00` or `10/02/2026 01:00pm`.'}, 'employee_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': "The employee's `id`.", 'exclusiveMinimum': 0}, 'number_of_hours': {'type': 'number', 'maximum': 1000, 'description': 'Hours worked, e.g. 1.25.', 'exclusiveMinimum': 0}, 'time_entry_type_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Time entry type id.', 'exclusiveMinimum': 0}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['customer_number'], 'properties': {'fax': {'type': 'string', 'maxLength': 64, 'description': 'Fax number.'}, 'name': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'New customer name.'}, 'mobile': {'type': 'string', 'maxLength': 64, 'description': 'Mobile number.'}, 'company': {'type': 'boolean', 'description': 'True if the customer is a company rather than a person.'}, 'contact': {'type': 'string', 'maxLength': 255, 'description': 'Primary contact name.'}, 'is_active': {'type': 'boolean', 'description': 'False to mark the customer inactive (reversible).'}, 'last_name': {'type': 'string', 'maxLength': 255, 'description': 'Contact last name.'}, 'first_name': {'type': 'string', 'maxLength': 255, 'description': 'Contact first name.'}, 'alt_contact': {'type': 'string', 'maxLength': 255, 'description': 'Alternate contact name.'}, 'billing_city': {'type': 'string', 'maxLength': 128, 'description': 'Billing city.'}, 'company_name': {'type': 'string', 'maxLength': 255, 'description': 'Company name.'}, 'phone_number': {'type': 'string', 'maxLength': 64, 'description': 'Phone number.'}, 'service_city': {'type': 'string', 'maxLength': 128, 'description': 'Service city.'}, 'billing_state': {'type': 'string', 'maxLength': 64, 'description': 'Billing state.'}, 'email_address': {'type': 'string', 'format': 'email', 'pattern': "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'maxLength': 255, 'description': 'Email address.'}, 'service_state': {'type': 'string', 'maxLength': 64, 'description': 'Service state (2-letter abbreviation in the US).'}, 'account_number': {'type': 'string', 'maxLength': 64, 'description': 'Your own account number for the customer.'}, 'notify_via_sms': {'type': 'boolean', 'description': 'Send the customer SMS notifications.'}, 'billing_address': {'type': 'string', 'maxLength': 255, 'description': 'Billing address (where invoices go), line 1.'}, 'billing_country': {'type': 'string', 'maxLength': 64, 'description': 'Billing country.'}, 'customer_number': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Customer number to update.', 'exclusiveMinimum': 0}, 'service_address': {'type': 'string', 'maxLength': 255, 'description': 'Service address (where the work happens), line 1.'}, 'service_country': {'type': 'string', 'maxLength': 64, 'description': 'Service country (2-letter code).'}, 'alt_phone_number': {'type': 'string', 'maxLength': 64, 'description': 'Alternate phone number.'}, 'billing_zip_code': {'type': 'string', 'maxLength': 32, 'description': 'Billing ZIP/postal code.'}, 'customer_type_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Customer type id.', 'exclusiveMinimum': 0}, 'notify_via_email': {'type': 'boolean', 'description': 'Send the customer email notifications.'}, 'service_zip_code': {'type': 'string', 'maxLength': 32, 'description': 'Service ZIP/postal code.'}, 'billing_address_2': {'type': 'string', 'maxLength': 255, 'description': 'Billing address line 2.'}, 'service_address_2': {'type': 'string', 'maxLength': 255, 'description': 'Service address line 2.'}, 'customer_source_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Customer source (lead source) id.', 'exclusiveMinimum': 0}, 'special_instructions': {'type': 'string', 'maxLength': 5000, 'description': 'Special instructions shown to technicians.'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['job_number'], 'properties': {'name': {'type': 'string', 'maxLength': 255, 'description': 'Job name/title.'}, 'ends_at': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'When the job ends. A date/time string Kickserv can parse, e.g. `2026-10-02 09:30` or `10/2/2026 09:30am`.'}, 'duration': {'type': 'number', 'maximum': 100000, 'minimum': 0, 'description': 'Job duration.'}, 'po_number': {'type': 'string', 'maxLength': 64, 'description': 'Customer purchase-order number.'}, 'job_number': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Job number to update.', 'exclusiveMinimum': 0}, 'description': {'type': 'string', 'maxLength': 10000, 'description': 'Job description / work to be done.'}, 'job_type_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'New job category (job type) id.', 'exclusiveMinimum': 0}, 'employee_ids': {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'maxItems': 50, 'description': 'Employee `id`s (from kickserv_list_employees) to assign. Replaces the current assignment.'}, 'scheduled_on': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'When the job is scheduled. A date/time string Kickserv can parse, e.g. `2026-10-02 09:30` or `10/2/2026 09:30am`.'}, 'job_status_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'New custom job status id.', 'exclusiveMinimum': 0}}}
Modifications récentes des outils
Serveurs MCP similaires
freedom-mcp
Supports company operations through commitments, teams, agents, customer evidence, leads, content workflows, spreadsheets, commer…
Meta Council
Provides governed workflows for consulting, outreach, sales deals, invoices, marketing campaigns, content approvals, accounting a…
GestãoClick
Connects to the GestãoClick ERP to manage customers, suppliers, products, sales, service orders, budgets, and financial records.
Odichat
Manages WhatsApp, Instagram, and Facebook inboxes with contacts, conversations, agents, automation rules, labels, canned response…
Coordinalo — Service Business Operations
Manages appointment-based service businesses, including clients, providers, services, availability, public booking agendas, recur…
StackFast FractWin Expert Brain
Provides governed sales, negotiation, strategy, operations, CRM, estimation, artifact, and risk-management workflows with human a…
GrowthKit Revenue Intelligence
Supports B2B revenue operations with lead campaigns, ICP and company enrichment, CRM records and activities, outreach drafting, t…
KaiCalls
Provides AI phone reception, outbound calling campaigns, call transcripts and recordings, lead management, routing, staff alerts,…