Skip to content

feat(channels): add Instagram channel integration#1100

Open
dijnie wants to merge 1 commit intonextlevelbuilder:devfrom
dijnie:feature/instagram-channel-integration
Open

feat(channels): add Instagram channel integration#1100
dijnie wants to merge 1 commit intonextlevelbuilder:devfrom
dijnie:feature/instagram-channel-integration

Conversation

@dijnie
Copy link
Copy Markdown

@dijnie dijnie commented May 5, 2026

Summary

  • Register Instagram as a first-class channel type with Graph API client, webhook handler, message router, and formatter
  • Wire into gateway startup, RPC/HTTP validation, and web UI credential/config schemas
  • Per-entry dispatch by instagram_user_id (mirrors Facebook), supports multi-Meta-App secrets via extraSecrets
  • Strip markdown/HTML before truncation since IG DM does not render markdown
  • Add error subcode 2534014 to 24h-window classifier to stop unbounded retries on IG-specific 'human agent required' errors
  • Add TypeInstagram to isExternalChannel so pipeline errors are suppressed instead of leaked to DM users

Test plan

  • go build ./... and go build -tags sqliteonly ./...
  • go vet ./...
  • Unit tests: router register/unregister, route-once, no-instances, per-entry dispatch regression guard
  • Unit tests: external-channel error suppression (gateway_errors_test)
  • Formatter strips markdown/HTML before truncation
  • Manual: webhook subscription + DM send/receive against a real IG Business account
  • Manual: multi-instance dispatch with two IG accounts under different Meta apps

Register Instagram channel type with Graph API client, webhook handler,
message router, and formatter. Wire into gateway startup, RPC/HTTP
validation, and web UI credential/config schemas.

- cmd/gateway_errors: add TypeInstagram to isExternalChannel so pipeline
  errors are suppressed instead of leaked to DM users
- router: per-entry dispatch by instagram_user_id (mirrors Facebook);
  multi-Meta-App secret support via extraSecrets
- formatter: strip markdown/HTML before truncation — IG DM does not
  render markdown
- graph_client: add subcode 2534014 to 24h-window classifier to stop
  unbounded retries on IG-specific 'human agent required' errors
- types: fix features.typing JSON tag to match UI schema key
- tests: router register/unregister, route-once, no-instances, per-entry
  dispatch regression guard, and external-channel error suppression
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant