airbytehq / airbytehq/airbyte

Feature Request: Dynamic dropdown for account/resource IDs in connector configuration

Abierto
#71,352 3 comentarios 0 reacciones 0 asignados Ver en GitHub
area/connectors area/platform autoteam team/compose team/platform-move type/enhancement
Lenguaje dominante
Python
Estrellas
22.1k
Forks
5.3k
Métricas de merge de PR
Métricas de PR pendientes

Descripción

## Summary

Users currently have to manually find and enter account/resource IDs (e.g., Facebook Ad Account IDs, Google Ads Customer IDs, YouTube Channel IDs) when configuring connectors. This creates significant UX friction during onboarding.

**Requested by:** teo@airbyte.io

## Problem Statement

When configuring connectors like Facebook Marketing, users must:
1. Leave Airbyte
2. Navigate to external platforms (e.g., Meta Ads Manager)
3. Locate their account/page/channel IDs
4. Manually copy-paste them into Airbyte configuration forms

This is error-prone and creates a poor onboarding experience, especially for non-technical users.

## Proposed Solution

After OAuth authentication completes, Airbyte should:
1. Make an API call using the obtained credentials to fetch available accounts/resources
2. Populate a dropdown with the results
3. Allow users to select from the fetched options instead of manual entry

## Technical Analysis

Show/Hide Detailed Technical Analysis

### API Capability (Facebook Marketing Example)

The Facebook Graph API supports fetching ad accounts via `GET /me/adaccounts`. This endpoint is already referenced in the Facebook Marketing connector test fixtures (`conftest.py`).

### Current Limitation

Airbyte connector specifications are static JSON Schema. There is no platform-level mechanism to:
1. Trigger an API call after OAuth completes
2. Dynamically populate a dropdown with the results
3. Let users select from fetched options

### Existing Pattern (Instagram Connector)

The Instagram connector demonstrates runtime account discovery:
- Has an "Api" stream that calls `GET /me/accounts`
- Uses it as a parent stream via `SubstreamPartitionRouter`
- Dynamically discovers accounts at sync time

However, this happens during sync execution, not during configuration, so it does not solve the UX problem.

### What Would Be Needed

1. **Platform Enhancement**: Add support for "dynamic enum" or "dependent fields" in connector specs that can:
- Trigger after OAuth completes
- Make an API call using the obtained credentials
- Populate field options from the response

2. **Connector Updates**: Modify affected connectors to use this new capability

## Affected Connectors

This is a common pain point across many connectors that require account/workspace/project IDs:
- Facebook Marketing (Ad Account IDs)
- Google Ads (Customer IDs)
- YouTube Analytics (Channel IDs)
- Instagram (Business Account IDs)
- LinkedIn Ads (Account IDs)
- And many others...

## Impact

- **User Experience**: Significantly reduces friction during connector setup
- **Error Reduction**: Eliminates manual copy-paste errors
- **Onboarding**: Improves time-to-first-sync for new users

## Additional Context

This feature request originated from user feedback about the difficulty of connecting Facebook/Meta data sources. The user specifically mentioned: "We are encountering a massive amount of friction here."

---
**Internal Tracking:** https://github.com/airbytehq/oncall/issues/10885

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.