The client already ran their automations in Make, so I built the system there to fit the existing stack instead of forcing a tool change. The main scenario watches HubSpot for any deal moved into the In Production stage, then routes it through a chain of conditions that pick the right ClickUp list based on the deal's Interested In product. To kill the duplication problem, I write the new ClickUp task ID back to a custom field on the HubSpot deal as soon as the task gets created. Every subsequent run of the scenario checks that field first: if the task already exists, it skips. If not, it creates. The created task carries the deal's full context, a HubSpot Breeze AI summary of the deal so the production team gets the picture without opening HubSpot, and a direct link back to the source deal. A Slack notification fires the moment the task lands, carrying the deal name, brief project context, links to both the HubSpot deal and the new ClickUp task, and a tag for the assigned project manager so they see the work in their feed without anyone forwarding it. After the main system shipped, I added two patches: a back-fill scenario that pulled existing deals with a ClickUp task ID and updated those tasks with their HubSpot deal URL, and a reverse-direction sync that watches ClickUp task status changes and writes them to a custom Project Status field on the HubSpot deal. ClickUp is the source of truth for project status; the HubSpot field mirrors it so the sales side can see project state without opening ClickUp.