elsa-workflows / elsa-workflows/elsa-extensions

Add HubSpot Integration

Open
#15 0 comments 0 reactions 0 assignees View on GitHub
triaged
Dominant language
C#
Stars
49
Forks
48
Avg merge
21h 35m
Merged PRs (30d)
20

Description

This issue tracks the implementation of an integration for **HubSpot CRM** in Elsa Workflows. The module should allow workflows to interact with HubSpot CRM, supporting contact management, deals, engagements, tasks, marketing, and event monitoring.

## **Tasks**
- [ ] Create a new module: `Elsa.Integrations.HubSpotCRM`
- [ ] Implement **Workflow Activities**:
- [ ] **AddContactsToList** - Adds existing contacts to a contact list.
- [ ] **AddContactToWorkflow** - Adds a contact to a specific workflow.
- [ ] **CreateCall** - Creates a call with the given properties and returns its ID.
- [ ] **CreateCommunication** - Creates a communication record with specified properties.
- [ ] **CreateCompany** - Creates a company and returns its ID.
- [ ] **CreateContact** - Creates a contact and returns its ID.
- [ ] **CreateCustomObjectRecord** - Creates a custom object record.
- [ ] **CreateDeal** - Creates a deal with given properties.
- [ ] **CreateFolder** - Creates a new folder.
- [ ] **CreateLineItem** - Creates a line item.
- [ ] **CreateMeeting** - Creates a meeting record.
- [ ] **CreateNote** - Creates a note.
- [ ] **CreateProduct** - Creates a product record.
- [ ] **CreateQuote** - Creates a new quote.
- [ ] **CreateTask** - Creates a task.
- [ ] **CreateTicket** - Creates a support ticket.
- [ ] **CreateTimelineEvent** - Creates or updates a timeline event (developer access required).
- [ ] **CreateAssociation** - Associates two CRM objects.
- [ ] **CreateEmail** - Creates an email record.
- [ ] **CreateEngagement** - Logs an engagement (note, task, or activity).
- [ ] **CreateOrder** - Creates an order.
- [ ] **CreateOrUpdateContact** - Creates a new contact if the email doesn’t exist, otherwise updates the existing one.
- [ ] **DeleteCall** - Moves a call record to the recycling bin.
- [ ] **DeleteCommunication** - Moves a communication record to the recycling bin.
- [ ] **DeleteCompany** - Moves a company record to the recycling bin.
- [ ] **DeleteContact** - Moves a contact record to the recycling bin.
- [ ] **DeleteCustomObjectRecord** - Moves a custom object record to the recycling bin.
- [ ] **DeleteDeal** - Moves a deal to the recycling bin.
- [ ] **DeleteFile** - Permanently deletes a file.
- [ ] **DeleteFolder** - Marks a folder as deleted.
- [ ] **DeleteLineItem** - Moves a line item to the recycling bin.
- [ ] **DeleteMeeting** - Moves a meeting record to the recycling bin.
- [ ] **DeleteNote** - Moves a note to the recycling bin.
- [ ] **DeleteProduct** - Moves a product to the recycling bin.
- [ ] **DeleteQuote** - Deletes a quote.
- [ ] **DeleteTask** - Moves a task to the recycling bin.
- [ ] **DeleteTicket** - Deletes a support ticket.
- [ ] **DeleteAssociation** - Removes an association between two CRM objects.
- [ ] **DeleteEmail** - Moves an email to the recycling bin.
- [ ] **DeleteEngagement** - Deletes an engagement (task or activity).
- [ ] **DeleteOrder** - Moves an order to the recycling bin.
- [ ] **GetCall** - Retrieves details about a call.
- [ ] **GetCommunication** - Retrieves details about a communication.
- [ ] **GetCompany** - Retrieves details about a company.
- [ ] **GetContact** - Retrieves details about a contact.
- [ ] **GetCustomObjectRecord** - Retrieves details about a custom object record.
- [ ] **GetDeal** - Retrieves details about a deal.
- [ ] **GetFileUploadedViaForm** - Retrieves a file uploaded via a form submission.
- [ ] **GetLineItem** - Retrieves details about a line item.
- [ ] **GetMeeting** - Retrieves details about a meeting.
- [ ] **GetNote** - Retrieves details about a note.
- [ ] **GetProduct** - Retrieves details about a product.
- [ ] **GetQuote** - Retrieves a quote by ID.
- [ ] **GetRecordProperty** - Retrieves metadata for a specific record property.
- [ ] **GetTask** - Retrieves details about a task.
- [ ] **GetTicket** - Retrieves a ticket by ID.
- [ ] **GetEmail** - Retrieves details about an email.
- [ ] **GetInvoice** - Retrieves details about an invoice.
- [ ] **GetOrder** - Retrieves details about an order.
- [ ] **GetOwner** - Retrieves details about an owner.
- [ ] **ListAssociations** - Retrieves IDs of CRM objects associated with a given object.
- [ ] **ListContacts** - Retrieves a list of contacts.
- [ ] **ListDealTicketPipelines** - Retrieves deal and ticket pipelines.
- [ ] **ListFiles** - Retrieves a list of stored files.
- [ ] **ListForms** - Retrieves a list of forms.
- [ ] **ListOwners** - Retrieves all HubSpot owners.
- [ ] **ListTimelineEventTemplates** - Retrieves timeline event templates (developer access required).
- [ ] **MakeAPICall** - Performs an arbitrary authorized API call.
- [ ] **MergeContacts** - Merges two contacts.
- [ ] **RemoveContactFromList** - Removes a contact from a contact list.
- [ ] **RemoveContactFromWorkflow** - Removes a contact from a workflow.
- [ ] **SearchCRMObjects** - Searches CRM objects (contacts, companies, deals, etc.).
- [ ] **SearchCalls** - Retrieves a list of calls based on filters.
- [ ] **SearchCommunications** - Retrieves a list of communications.
- [ ] **SearchCompanies** - Retrieves a list of companies.
- [ ] **SearchContacts** - Searches for contacts using a query.
- [ ] **SearchDeals** - Retrieves a list of deals.
- [ ] **SearchEmails** - Retrieves a list of emails.
- [ ] **SearchInvoices** - Retrieves a list of invoices.
- [ ] **SearchLineItems** - Retrieves a list of line items.
- [ ] **SearchMeetings** - Retrieves a list of meetings.
- [ ] **SearchNotes** - Retrieves a list of notes.
- [ ] **SearchOrders** - Retrieves a list of orders.
- [ ] **SearchProducts** - Retrieves a list of products.
- [ ] **SearchQuotes** - Retrieves a list of quotes.
- [ ] **SearchTasks** - Retrieves a list of tasks.
- [ ] **SearchTickets** - Retrieves a list of tickets.
- [ ] **SubmitDataToForm** - Submits data to a form.
- [ ] **SubscribeContact** - Subscribes a contact to given email lists.
- [ ] **UnsubscribeContact** - Unsubscribes a contact from email lists.
- [ ] **UpdateFileProperties** - Moves a file to a different folder.
- [ ] **UpdateCall** - Updates call details.
- [ ] **UpdateCommunication** - Updates communication details.
- [ ] **UpdateCompany** - Updates company details.
- [ ] **UpdateContact** - Updates contact details.
- [ ] **UpdateCustomObjectRecord** - Updates a custom object record.
- [ ] **UpdateDeal** - Updates a deal.
- [ ] **UpdateLineItem** - Updates a line item.
- [ ] **UpdateMeeting** - Updates a meeting.
- [ ] **UpdateNote** - Updates a note.
- [ ] **UpdateProduct** - Updates a product.
- [ ] **UpdateQuote** - Updates a quote.
- [ ] **UpdateTask** - Updates a task.
- [ ] **UpdateTicket** - Updates a ticket.
- [ ] **UpdateEmail** - Updates an email.
- [ ] **UpdateOrder** - Updates an order.
- [ ] **UploadFile** - Uploads a new file.
- [ ] **WatchCRMObjects** - Triggers when a CRM object is created or updated.
- [ ] **WatchCompanies** - Triggers when a new company is created.
- [ ] **WatchContacts** - Triggers when a new contact is created.
- [ ] **WatchContactsAddedToList** - Triggers when a contact is added to a list.
- [ ] **WatchDeals** - Triggers when a new deal is created.
- [ ] **WatchEngagements** - Triggers when a new engagement is created.
- [ ] **WatchFiles** - Triggers when a new file is stored.
- [ ] **WatchTickets** - Triggers when a new ticket is created.

- [ ] Add Unit Tests
- [ ] Add Documentation (`README.md`)

## **References**
- 📖 [HubSpot API Docs](https://developers.hubspot.com/docs/api)
- 🛠️ [HubSpot Developer Resources](https://developers.hubspot.com/)

## **Notes**
- This should follow the standard structure used for Elsa Integrations.
- The integration should support authentication via OAuth 2.0.
- Some actions, such as timeline events and advanced webhook subscriptions, require a developer connection.

## **Contributor Guidelines**
If you're interested in working on this issue:

1. Comment below to claim it.
2. Follow the [CONTRIBUTING.md](https://github.com/elsa-workflows/elsa-integrations/blob/main/CONTRIBUTING.md) guide.
3. Submit a PR referencing this issue.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.