celigo/ai

getting-started

Orientation for Celigo integrations -- core concepts, build order, account discovery, planning discipline, sandbox awareness, and which skill to use for each task.

查看源码
仓库原始内容

按源仓库内容呈现,保留标题、案例、代码、表格、链接以及原文引用的演示图片。

<!-- TIER:1 -->

Getting Started with Celigo Integrations

Core Concepts

Celigo integrations move data between external systems through a small set of resource types:

  • Connection -- credentials and configuration that authenticate to an external system (Salesforce, NetSuite, HTTP API, database, FTP, etc.)
  • Export -- data source step that fetches records from a connected system (or receives them via webhook)
  • Import -- data destination step that writes records to a connected system
  • Flow -- pipeline that connects exports to imports, with optional branching, transformation, and scripting
  • Integration -- named container that groups related flows, connections, and resources
  • Script -- JavaScript hook that runs at specific points in the data pipeline (preSavePage, preMap, postMap, postSubmit, postResponseMap)
  • API -- custom HTTP endpoint that exposes integration logic for synchronous external consumption
  • Tool -- reusable building block (input schema -> routers with lookups/imports -> output contract) callable from flows, APIs, AI agents, MCP servers, and other tools
  • AI agent -- LLM-powered pipeline step (stored as an import) that classifies, extracts, summarizes, or generates data mid-pipeline
  • Guardrail -- safety/compliance check (PII, moderation, AI evaluation) that flags records; the parent pipeline decides what happens to flagged records
  • Lookup cache -- account-level key-value store for fast in-memory reference lookups (cross-reference IDs, large translation tables, dedup markers)

How each surface is invoked

The three pipeline-carrying resources differ mainly in what starts them:

ResourceStarted bySchedule/listenersRuntime controls
FlowItself -- cron schedule, listener/webhook, or another flow chaining into itYesYes (proceedOnFailure, skipRetries, chaining, ...)
APIAn external HTTP caller; the request IS the source recordNoNo -- errors land on the fail response; retries are the caller's concern
ToolA consumer -- flow step, AI agent, API, MCP server, or another toolNoNo -- the consumer decides error behavior

"Every night at 2 AM" or "when a webhook fires" always points at a flow. "Reachable from outside Celigo over HTTP" points at an API. "Reusable from multiple places inside Celigo" points at a tool (and a recipe needed both inside and outside is a tool exposed behind an API).

Build Order

Always build bottom-up. Resources reference each other, so dependencies must exist first:

1. Connection     (credentials for each system)
2. Export + Import (data source and destination steps, each referencing a connection)
3. Flow           (pipeline wiring exports to imports)

Never start by creating a flow -- its exports and imports must exist first, and those require connections.

At each layer, match the connector to the target application -- raw HTTP is the fallback, not the default. Use the application-specific adaptor when one exists (NetSuite, Salesforce, databases, FTP/S3); otherwise check for a pre-built HTTP connector (550+ apps: celigo http-connectors list); hand-write HTTP config only when neither covers the target. See configuring-connections and the adaptor decision matrices in configuring-exports / configuring-imports.

For APIs and tools, the same principle applies: build the connections, exports, and imports that the API/tool will use, then wire them into the API/tool definition.

<!-- TIER:2 -->

First Steps

0. Pick your surface: CLI or MCP

Skills in this pack show celigo ... CLI commands, but there are two equivalent ways to execute most operations:

  • The Celigo CLI -- what the command blocks in these skills show.
  • The Celigo Platform MCP server -- if your agent is connected to it, the same operations are MCP tools. Translate CLI blocks directly: list_<type> / upsert_<type> replace celigo <type> list|get|create|update, delete_resource replaces celigo <type> delete, and run_flow, cancel_job, list_jobs, list_flow_errors, list_execution_logs, deploy_template, and get_schema cover running, monitoring, deploying, and schema lookups. The MCP server also has tools with no CLI equivalent, such as search_knowledge_base and triage_flow_errors.

A few operations are CLI-only (no MCP tool): the local account index (celigo account snapshot|search|dependencies|lint), API-token management (celigo accesstokens ...), stacks, on-premise agents, and user management. For those, use the CLI, the integrator.io REST API, or the UI.

1. Configure the CLI

bash
celigo config set api_token <your-token>       # Set your API bearer token
celigo config set base_url <url>               # Optional: override base URL for sandbox/EU
celigo config show                             # Verify configuration

The CLI accepts either token kind from Resources > API tokens as its bearer token: a personal access token (any user can generate one; inherits your own permissions; expires after 90 days by default) or an account API token (owner/admin-created, scopeable, long-lived -- prefer it for CI). See managing-api-tokens.

Which account the CLI targets. The CLI keeps one profile per account or environment (celigo profile list; each holds its own token). Every command resolves its profile as --profile > CELIGO_PROFILE > the machine-wide active profile that celigo profile use <name> selects. A person switching with profile use moves every session that did NOT pin a profile -- a session still passing --profile <name> keeps hitting <name>. An agent once carried a stale --profile for a day and wrote flows into another customer's account while the person believed their switch had moved it. Rules:

  1. Confirm the target before the first write of a session -- run celigo profile whoami, and read the celigo: profile '<name>' → <host> line every write prints on stderr. If it names a profile other than the one the user means, stop and ask.
  2. Do not pass `--profile` unless the user asked for that specific profile in this request. Work on the active profile. If a session must stay on one account, bind it once with export CELIGO_PROFILE=<name> rather than repeating the flag -- a repeated flag is how a stale value survives a switch.
  3. `(pinned with --profile; the active profile is '<other>')` on a stderr line is a stop sign (CLI 2026.9.2 and later, printed on reads too): the person switched profiles and your pin did not follow. Ask which account they mean before the next command. Under profile_pin_policy = strict the CLI refuses such a command outright -- do not run celigo profile use, change profile_pin_policy, or edit ~/.celigo/config.json to get past it; which account a machine targets is the person's decision, never the agent's.
  4. Never run `config set api_token` or `profile use` in response to an error. Profile 'x' does not exist means the NAME is wrong, not the token; celigo profile list shows what exists -- pick from it, never guess a name.

2. Build the Account Index

The account index is a local snapshot of all resources in your Celigo account. It enables fast search, dependency analysis, and linting without repeated API calls.

bash
celigo account snapshot                        # Fetch all resources, build dependency graph
celigo account search <keyword>                # Find resources by name or keyword
celigo account dependencies <type> <id>        # Show what a resource uses and what uses it
celigo account lint                            # Find orphaned resources, offline connections, untriggered flows
celigo account stats                           # Resource counts by type

The index auto-refreshes when stale (default: 4 hours, configurable via CELIGO_INDEX_STALE_HOURS). Commands that depend on the index refresh it automatically unless --no-refresh is passed.

3. Discover Before Building

Before creating new resources, always check what already exists:

  • celigo account search "customer sync" -- find existing flows, exports, imports by keyword
  • celigo account dependencies flow <id> -- see the full resource tree for an existing flow
  • celigo account lint -- identify orphaned exports/imports you might reuse

Planning Discipline

Before writing any JSON or CLI commands, answer these questions:

What kind of operation is this?

  • Modifying an existing resource's config (export settings, import mappings, scripts) -- work on the resource directly with celigo <type> set or celigo <type> get + edit + celigo <type> update. Don't rebuild the flow
  • Modifying an existing flow's structure (add/remove steps, change schedule) -- GET the flow, modify the structure, PUT it back
  • Building something new where every step is clear -- build directly, bottom-up
  • Any ambiguity about what to build -- design first (see checklist below)

Design checklist (when ambiguity exists):

  • What source systems? What destination systems?
  • What data moves between them, in which direction?
  • How often? (cron schedule, webhook trigger, on-demand)
  • What happens when a step fails? (proceedOnFailure, error notifications)
  • Do downstream steps need data from upstream responses? (response mapping)
  • Is this a one-off or a reusable template? (abstract/instance flow)
  • Sandbox or production? (never mix -- sandbox: true flows only use sandbox: true connections)

<!-- TIER:3 -->

Sandbox vs Production

Celigo enforces strict separation:

  • A sandbox: true connection can only be used by sandbox: true flows
  • A production (non-sandbox) connection can only be used by production flows
  • Mixing sandbox and production resources will cause runtime errors

When testing, always create flows with disabled: true and verify before enabling.

Which Skill to Use

TaskSkillKey sections
Set up credentials for an external systemconfiguring-connectionsConnection Type Decision Matrix, iClients
Fetch data from a system (export)configuring-exportsAdaptor Decision Matrix, Export Execution Pipeline
Write data to a system (import)configuring-importsAdaptor Decision Matrix, Import Execution Pipeline
Wire exports to imports in a pipelinebuilding-flowsFlow Topologies, How to Build a Flow
Build a synchronous HTTP endpointbuilding-apisBuilder vs Script mode, API Execution Pipeline
Build a reusable operationbuilding-toolsTool Concepts, Tool Execution Pipeline
Map fields between source and destinationwriting-mappingsMapper 2.0 Workflow, Transformation 2.0
Write dynamic expressions in configswriting-handlebarsHelper Catalog, Expression Patterns
Write JavaScript hookswriting-scriptsHook Point Decision Matrix
Set up EDI/B2B trading partner integrationsbuilding-b2bEDI Standards, Trading Partner Onboarding
Debug a failing flowtroubleshooting-flowsError Diagnosis Framework, Diagnostic Workflow
Configure filters on exports or importsconfiguring-filtersExpression Syntax, Filter Placement
Set up AI-powered import processingconfiguring-ai-agentsProvider Decision Matrix
Add PII/moderation/policy checksconfiguring-guardrailsType Decision Matrix, Guardrails Flag, They Don't Enforce
Configure lookup cachesconfiguring-lookup-cachesHow to Build a Lookup Cache
Expose tools via MCP for AI agentsbuilding-mcp-serversHow to Build an MCP Server
Manage account users and accessmanaging-usersAccess Strategy Decision Matrix
Organize flows/APIs in a container; clone or promote across environmentsmanaging-integrationsClone Decision Matrix, ILM Reference
Install a prebuilt Template or Integration App from the Marketplaceusing-marketplace-templatesTemplates vs Integration Apps
Create inbound API tokens for scripts, pipelines, or MCP serversmanaging-api-tokensAccess Scope Decision Matrix
Run extension code on your own server or AWS Lambdamanaging-stacksDo You Need a Stack?, server vs lambda
Reach a private system behind your firewallmanaging-on-premise-agentsDo You Need an On-Premise Agent?

When No Skill Covers the Shape

The reference schemas shipped with these skills cover the high-stakes shapes where guessing corrupts data, not the whole API surface. When you need a field or resource no skill documents, use the live sources — in this order:

  1. A real resource is ground truth. celigo <type> get <id> returns the exact wire shape; request bodies for create/update are exactly what GET returns. Copying a live resource beats any documentation.
  2. The developer docs are agent-native and always current. Every API reference page is fetchable as markdown — append .md to any page URL (e.g. https://developer.celigo.com/api/api-reference/flows.md), start from the index at https://developer.celigo.com/llms.txt, or ask a direct question: GET https://developer.celigo.com/readme.md?ask=<question>.
  3. Prefer a shipped schema when one exists — schemas under each skill's references/ are synced from the API specs and reviewed before shipping, and their x-celigo-ai-guidance notes carry hazards the raw docs don't.
来自同一仓库

更多 Skills

全部 Skills