Skip to content

feat(llc): Outbound project management sync — wire LLC work item completion to connector framework #8257

Closed

Description

@mrveiss

Summary

AutoBot has an existing integrations/project_management_integration.py module with Jira, Trello, and Asana connectors. LLC work items complete their lifecycle inside AutoBot, but there is no wiring that pushes state changes (created, transitioned, completed, commented) outward to these external project management systems.

Problem

Teams that run AutoBot alongside external ticketing systems need bidirectional sync: LLC work items should appear and update in their external system of record. Without this wiring, the LLC module operates in isolation and cannot integrate into existing engineering workflows.

Acceptance Criteria

Sync Service

  • autobot-backend/llc/sync/outbound_sync.py — LLCOutboundSyncService
  • Subscribes to llc:work_item:* Redis pub/sub events (created, transitioned, commented, completed)
  • On each event, looks up the company's external_pm_config (connector type + credentials)
  • Dispatches to the appropriate connector via project_management_integration.py

Company Configuration

  • llc_companies table gains: external_pm_type (nullable enum: jira, azure_devops, trello, asana, none), external_pm_config (encrypted JSON for credentials/project keys)
  • PATCH /api/llc/companies/{company_id}/pm-config endpoint to set external PM connection
  • POST /api/llc/companies/{company_id}/pm-config/test to verify connectivity

Field Mapping

  • Epic → external Epic (Jira Epic / Azure DevOps Feature)
  • PBI → external Story/User Story
  • Task → external Task/Sub-task
  • LLC status transitions map to external workflow states (configurable per company)
  • LLC agent as assignee maps to a configured service-account user in external system

Quality

  • Sync failures are non-fatal — logged to llc_activity_log as sync_failed event, work item continues unaffected
  • Sync is async (does not block the work item transition API response)
  • Credentials stored encrypted (not in plaintext in DB)
  • Unit tests for field mapping logic
  • Integration test: create work item → verify outbound sync call made with correct payload

Phase

Phase 4 (integrations)

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions