Install integration
Guide a user through installing a new Port data-source integration and setting it up
end-to-end — especially when the goal is to populate the software catalog with data
from that tool.
Prerequisites
- Go over the
port-getting-started skill first if this is your first time working
with Port.
- Port's MCP server
connected, with integration-install and question-asking capabilities available. This
skill is MCP-powered end to end: installing an integration, selecting kinds, and
triggering a sync are actions that only exist through Port (there is no meaningful
non-MCP fallback for them). If a tool referenced below isn't available in your MCP
client, search
search_port_knowledge_sources or fall back to the
install an integration
docs and the Port UI for that step.
Operating Rules
- Call
install_integrations early — before research, blueprint writes, or mapping work. Do not run catalog setup steps until the user has gone through the normal install flow.
- Do not duplicate the MCP vs. catalog question in this skill. If intent is ambiguous, call
ask_user_questions to choose between MCP-only (configure_mcp_servers) and catalog sync (install_integrations), then proceed. If the user chose MCP only, stop this skill.
- Use
ask_user_questions for kind selection, use case selection, and personalization questions — not for plan approval.
- Questions component only — when calling
ask_user_questions, put all options and descriptions inside the tool. Do not also list the same choices as markdown in chat (no bullet lists, tables, or numbered options duplicating what the component shows).
- Do not add a custom "write your own" option — the questions UI automatically adds an "Other" free-text option to every question. Never add options like "Suggest my own use case" or "Write your own" — they duplicate "Other".
- Plan data model and mapping internally. Do not present a setup plan to the user for approval.
- Read before write. Check
list_integrations and list_blueprints before creating anything.
- Never replace a full integration mapping when the integration already has config. Fetch the current mapping with
list_integrations, merge your changes, and pass the full resources array.
- Always provide mapping configuration in YAML format when showing it to the user — Port UI displays YAML, not JSON.
- When calling
update_integration_mapping, pass config as a JSON object directly, not a JSON-encoded string.
- Do not create integration-owned blueprints manually. If the integration should own a blueprint but it is missing after the first full sync, recommend another resync instead of hand-creating it.
- Run
test_integration_mapping on every mapped kind before saving.
- Do not use
apply_integration_mapping on a fresh install. It re-processes existing raw data in the lakehouse — a newly connected integration has none. Use update_integration_mapping instead, which saves the mapping and triggers a full sync (extract from source → transform → load).
- Write a short message before calling
install_integrations explaining what you need and why.
Step 1: Identify the Integration
Determine which integration the user wants:
- If they named a product (e.g. "GitHub", "Jira", "PagerDuty"), map it to the exact type identifier (e.g.
github-ocean, jira, pagerduty). The install_integrations tool description lists all available identifiers — use those exact values, not human-readable names.
- Call
list_integrations to check whether it is already installed.
- If the product has no native Port integration, tell the user a custom Ocean integration must be configured first. Search docs with
search_port_knowledge_sources for guidance, then stop — this skill covers native integrations only.
Step 2: Start Installation
If not yet installed, this is the next action after Step 1 — do not research, ask use cases, or write blueprints first.
- If intent between MCP and catalog sync is ambiguous, call
ask_user_questions per platform rules before installing. If the user chooses MCP only, stop this skill and use configure_mcp_servers.
- Write a short message explaining what will be connected and why.
- Call
install_integrations with { type: "<exact-identifier>" }.
- While the user completes installation (OAuth, credentials, etc.), immediately continue to Step 3 — do not wait idle.
If already installed and the user's goal is catalog sync, skip to Step 3.
Step 3: Discover Kinds, Select Kinds, and Select Use Case
Run this in parallel with the user finishing installation in Step 2.
Discover available kinds
Fetch the full list of kinds the integration supports before asking the user anything:
- Call
search_port_knowledge_sources with queries about the integration's supported resource kinds (e.g. "<integration> supported kinds", "<integration> port-app-config kinds"). Search iteratively until you have a complete kind list with human-readable descriptions.
- Once the integration appears in
list_integrations, call get_integration_port_app_config_schema and extract every kind from the schema definition. Prefer this as the authoritative source when available — merge with doc results and deduplicate.
- Call
list_blueprints to see what catalog structure already exists.
Keep the discovered kinds internal until the next step — do not list them in chat.
Select kinds
Call ask_user_questions to let the user pick which kinds they want to sync. Set allowMultiple: true.
- Include every discovered kind as an option. Put the plain-language description in the label (e.g. label:
Pull requests — changes proposed in your repositories, value: pull_request).
- Add a "Select all" option if the list is long.
- Do not repeat the kind list in your chat message — the question component is the only place the user should see the options.
- Do not proceed to use case selection until the user has chosen at least one kind.
Suggest use cases from selected kinds
Based only on the kinds the user selected, derive 2–4 use-case options. Each use case should describe a concrete catalog outcome that uses those kinds (e.g. if the user picked repository and pull_request → "Track repositories and see open pull requests linked to services").
Call ask_user_questions with the derived use-case options only. Put the one-line catalog outcome in each option's label.
- Do not add a "write your own" or "suggest my own" option — the UI already provides "Other" for free-text input.
- Do not list the use cases in chat — only in the question component.
Once the user selects a use case, restate it in one sentence — including the selected kinds — and proceed to Step 4.
Scope all later steps (blueprints, mapping, testing) to the selected kinds only, unless the use case logically requires an additional kind (e.g. a relation target). If so, explain why before including it.
Step 4: Personalize for the User's Organization
After the use case is chosen, gather context about how the user's company works so you can tailor the data model and mapping.
- Call
search_port_knowledge_sources for implementation patterns related to the chosen integration, use case, and selected kinds. Look for decisions that affect mapping or blueprint structure (e.g. repository-to-service linking strategies, team hierarchy models, incident routing patterns).
- Derive 2–5 targeted questions from what the docs surface and what you still need to know. Questions should be specific to the integration and use case — not generic.
- Call
ask_user_questions with those questions (batch into one call when possible). Examples by integration:
- GitHub: microservices (one repo per service) vs. monorepo? How are teams organized — by repo, by directory, or by GitHub team?
- Jira: project-per-team or shared projects? How do issues map to services or teams?
- PagerDuty: services mapped 1:1 to on-call schedules, or grouped by team/escalation policy?
- Use the answers to shape blueprint properties, relations, selectors, and JQ expressions in Steps 6–7. Plan internally — do not present a setup plan for approval.
If answers reveal the chosen use case is a poor fit, offer to revisit use case selection before building.
Step 5: Confirm Installation
Before building anything, verify the integration is connected:
- Call
list_integrations to confirm the integration appears and note its identifier.
- Check
resyncState — an initial sync may already be running from install.
Do not proceed to Steps 6–8 until the integration is installed. If installation is still pending, wait for the user to finish.
Step 6: Build Data Model and Mapping
Plan internally using the selected kinds, use case, and personalization answers from Step 4, then execute:
Data model
- Re-read target blueprints with
list_blueprints immediately before writing.
- Create or extend blueprints with
upsert_blueprint — preserve existing properties, relations, and user customizations.
- Write properties in dependency order: relations and base properties first, then calculation properties that reference them.
Mapping
- Call
get_integration_port_app_config_schema to confirm valid kinds and selector fields.
- If the integration has existing mapping, fetch it with
list_integrations (include identifiers) and merge — never drop unrelated resources.
- Author the mapping for the chosen use case, scoped to the selected kinds. Include all config parts:
createMissingRelatedEntities, deleteDependentEntities, enableMergeEntity, and resources. See port-integrations for the mapping syntax itself (resources, selectors, JQ entity mappings, relations).
- Show the mapping to the user in YAML format when sharing the final configuration.
Step 7: Test the Mapping
Validate before saving:
- Call
get_integration_kinds_with_examples for every kind in the mapping.
- If any mapped kind has no examples (common on a fresh install before the first sync completes), load this skill's per-integration reference examples instead:
- Call
load_skill({ name: "port-install-integration" }) if your MCP client supports reloading a skill by resource.
- Find references/examples/.md matching the integration you're installing (e.g.
references/examples/github-ocean.md, references/examples/jira.md) — one file per integration, loaded only for the one you need.
- Use the examples in that file for the mapped kinds you need to test.
- If the skill references have no examples for the required kinds, call
search_port_knowledge_sources to find example data structures from Port docs and construct representative examples.
- Call
test_integration_mapping with the proposed config and representative examples for each mapped kind.
- If tests fail:
- Fix JQ expressions, selectors, or blueprint targets
- Re-run tests until all kinds pass
- If stuck, search
search_port_knowledge_sources for mapping syntax help
Gate: Do not save the mapping while hasValidationIssues is true or any kind has errors.
Step 8: Save Mapping and Run Full Sync
Once tests pass:
- Call
update_integration_mapping with the validated config. This saves the mapping and triggers a full sync — the integration extracts fresh data from the source, transforms it with the new mapping, and loads entities into the catalog.
- Do not call
apply_integration_mapping on a fresh install. It only re-applies mapping against raw data already stored in the lakehouse, which does not exist yet on a new integration.
- Monitor progress:
list_integrations — check resyncState
get_integration_sync_metrics — per-kind extract / transform / load counts
get_integration_event_logs — errors if sync fails
- When the sync completes, call
list_entities on the target blueprints so the user can see their data.
Step 9: Report
Return a concise status table:
| Resource |
Action |
Notes |
| Integration |
installed / already present / pending |
Identifier and type |
| Kinds |
selected |
List of kind identifiers |
| Use case |
confirmed |
One-line summary |
| Personalization |
gathered |
Key decisions that shaped the setup |
| Blueprints |
created / extended / unchanged |
List identifiers |
| Mapping |
saved / blocked |
Number of resources |
| Full sync |
completed / in progress / failed |
Link to metrics or errors |
| Entities |
visible / empty / pending |
Per target blueprint |
If entities are empty after a successful sync:
- Check transform-phase metrics for
filteredOut counts (mapping filters too aggressively)
- Check load-phase metrics for failures (relation or validation errors)
- Offer to run
port-integrations' troubleshooting reference if errors persist
Tools Reference
| Tool |
Purpose |
ask_user_questions |
Kind selection, use case selection, and personalization — options go here only, never duplicated in chat |
install_integrations |
Present integration install UI — call early, before catalog setup |
configure_mcp_servers |
MCP-only path — stop this skill if user chose this |
search_port_knowledge_sources |
Discover kinds, implementation patterns, examples, and mapping guidance from Port docs |
list_integrations |
Check install status, fetch current mapping |
get_integration_port_app_config_schema |
Authoritative list of supported kinds and per-kind selector fields |
get_integration_kinds_with_examples |
Raw data examples for mapping and testing |
load_skill |
Reload this skill's per-integration reference examples when live examples are empty |
list_blueprints |
Current data model |
upsert_blueprint |
Create or extend blueprints |
test_integration_mapping |
Validate mapping before saving |
update_integration_mapping |
Save mapping and trigger full sync (extract → transform → load) |
get_integration_sync_metrics |
Monitor sync progress |
get_integration_event_logs |
Diagnose sync errors |
list_entities |
Verify data landed in the catalog |
Important Notes
- Integration config is stored as JSON in the API but displayed and edited as YAML in Port UI.
apply_integration_mapping is for remapping existing raw data. On a fresh install, always use update_integration_mapping to trigger a full sync from the source.
- Default blueprints and pages may appear automatically after install; always check
list_blueprints before creating duplicates.
- Some tools referenced above (
install_integrations, ask_user_questions, configure_mcp_servers) are part of Port's assistant surface and may not be present on every Port MCP client. If your client doesn't expose one of them, use the equivalent step in the Port UI or the install an integration docs instead.
Reference examples
Per-integration mapping examples used in Step 7, one file per integration so only the
relevant one is loaded: references/examples/ — aikido.md,
aws-v3.md, azure-devops.md, azure-rg.md, checkmarx-one.md, github-ocean.md,
gitlab-v2.md, jira.md, opsgenie.md, pagerduty.md, snyk.md, sonarqube.md,
wiz.md.
1---2name: port-install-integration3description: Guide a user through installing a new Port data-source integration end-to-end and populating the software catalog with the right data model and mapping. Use when asked to 'connect a new integration', 'install GitHub/Jira/PagerDuty/etc. in Port', 'add a data source', 'sync external tool data into the catalog for the first time', or 'set up a new Ocean integration'. For mapping-only edits on an already-connected integration, or sync failures after setup, use the parent `port-integrations` skill instead.4license: MIT5---67# Install integration89Guide a user through installing a new Port data-source integration and setting it up10end-to-end — especially when the goal is to **populate the software catalog** with data11from that tool.1213## Prerequisites1415- Go over the `port-getting-started` skill first if this is your first time working16 with Port.17- Port's [MCP server](https://docs.port.io/ai-interfaces/port-mcp-server/overview)18 connected, with integration-install and question-asking capabilities available. This19 skill is MCP-powered end to end: installing an integration, selecting kinds, and20 triggering a sync are actions that only exist through Port (there is no meaningful21 non-MCP fallback for them). If a tool referenced below isn't available in your MCP22 client, search `search_port_knowledge_sources` or fall back to the23 [install an integration](https://docs.port.io/build-your-software-catalog/sync-data-to-catalog/)24 docs and the Port UI for that step.2526## Operating Rules2728- **Call `install_integrations` early** — before research, blueprint writes, or mapping work. Do not run catalog setup steps until the user has gone through the normal install flow.29- **Do not duplicate the MCP vs. catalog question** in this skill. If intent is ambiguous, call `ask_user_questions` to choose between MCP-only (`configure_mcp_servers`) and catalog sync (`install_integrations`), then proceed. If the user chose MCP only, stop this skill.30- Use `ask_user_questions` for **kind selection**, **use case selection**, and **personalization questions** — not for plan approval.31- **Questions component only** — when calling `ask_user_questions`, put all options and descriptions inside the tool. Do **not** also list the same choices as markdown in chat (no bullet lists, tables, or numbered options duplicating what the component shows).32- **Do not add a custom "write your own" option** — the questions UI automatically adds an **"Other"** free-text option to every question. Never add options like "Suggest my own use case" or "Write your own" — they duplicate "Other".33- Plan data model and mapping **internally**. Do not present a setup plan to the user for approval.34- Read before write. Check `list_integrations` and `list_blueprints` before creating anything.35- **Never replace a full integration mapping** when the integration already has config. Fetch the current mapping with `list_integrations`, merge your changes, and pass the full `resources` array.36- **Always provide mapping configuration in YAML format** when showing it to the user — Port UI displays YAML, not JSON.37- When calling `update_integration_mapping`, pass `config` as a JSON object directly, not a JSON-encoded string.38- Do not create integration-owned blueprints manually. If the integration should own a blueprint but it is missing after the first full sync, recommend another resync instead of hand-creating it.39- Run `test_integration_mapping` on every mapped kind **before** saving.40- **Do not use `apply_integration_mapping` on a fresh install.** It re-processes existing raw data in the lakehouse — a newly connected integration has none. Use `update_integration_mapping` instead, which saves the mapping and triggers a **full sync** (extract from source → transform → load).41- Write a short message before calling `install_integrations` explaining what you need and why.4243## Step 1: Identify the Integration4445Determine which integration the user wants:46471. If they named a product (e.g. "GitHub", "Jira", "PagerDuty"), map it to the exact type identifier (e.g. `github-ocean`, `jira`, `pagerduty`). The `install_integrations` tool description lists all available identifiers — use those exact values, not human-readable names.482. Call `list_integrations` to check whether it is already installed.493. If the product has **no native Port integration**, tell the user a custom Ocean integration must be configured first. Search docs with `search_port_knowledge_sources` for guidance, then stop — this skill covers native integrations only.5051## Step 2: Start Installation5253**If not yet installed**, this is the next action after Step 1 — do not research, ask use cases, or write blueprints first.54551. If intent between MCP and catalog sync is ambiguous, call `ask_user_questions` per platform rules before installing. If the user chooses MCP only, stop this skill and use `configure_mcp_servers`.562. Write a short message explaining what will be connected and why.573. Call `install_integrations` with `{ type: "<exact-identifier>" }`.584. **While the user completes installation** (OAuth, credentials, etc.), immediately continue to Step 3 — do not wait idle.5960**If already installed** and the user's goal is catalog sync, skip to Step 3.6162## Step 3: Discover Kinds, Select Kinds, and Select Use Case6364Run this **in parallel with the user finishing installation** in Step 2.6566### Discover available kinds6768Fetch the full list of kinds the integration supports before asking the user anything:69701. Call `search_port_knowledge_sources` with queries about the integration's supported resource kinds (e.g. `"<integration> supported kinds"`, `"<integration> port-app-config kinds"`). Search iteratively until you have a complete kind list with human-readable descriptions.712. Once the integration appears in `list_integrations`, call `get_integration_port_app_config_schema` and extract every kind from the schema definition. Prefer this as the authoritative source when available — merge with doc results and deduplicate.723. Call `list_blueprints` to see what catalog structure already exists.7374Keep the discovered kinds internal until the next step — do not list them in chat.7576### Select kinds7778Call `ask_user_questions` to let the user pick which kinds they want to sync. Set `allowMultiple: true`.7980- Include **every discovered kind** as an option. Put the plain-language description in the **label** (e.g. label: `Pull requests — changes proposed in your repositories`, value: `pull_request`).81- Add a **"Select all"** option if the list is long.82- Do **not** repeat the kind list in your chat message — the question component is the only place the user should see the options.83- Do not proceed to use case selection until the user has chosen at least one kind.8485### Suggest use cases from selected kinds8687Based **only on the kinds the user selected**, derive 2–4 use-case options. Each use case should describe a concrete catalog outcome that uses those kinds (e.g. if the user picked `repository` and `pull_request` → "Track repositories and see open pull requests linked to services").8889Call `ask_user_questions` with the derived use-case options only. Put the one-line catalog outcome in each option's label.9091- Do **not** add a "write your own" or "suggest my own" option — the UI already provides **"Other"** for free-text input.92- Do **not** list the use cases in chat — only in the question component.9394Once the user selects a use case, restate it in one sentence — including the selected kinds — and proceed to Step 4.9596Scope all later steps (blueprints, mapping, testing) to the **selected kinds only**, unless the use case logically requires an additional kind (e.g. a relation target). If so, explain why before including it.9798## Step 4: Personalize for the User's Organization99100After the use case is chosen, gather context about how the user's company works so you can tailor the data model and mapping.1011021. Call `search_port_knowledge_sources` for implementation patterns related to the chosen integration, use case, and selected kinds. Look for decisions that affect mapping or blueprint structure (e.g. repository-to-service linking strategies, team hierarchy models, incident routing patterns).1032. Derive **2–5 targeted questions** from what the docs surface and what you still need to know. Questions should be specific to the integration and use case — not generic.1043. Call `ask_user_questions` with those questions (batch into one call when possible). Examples by integration:105 - **GitHub:** microservices (one repo per service) vs. monorepo? How are teams organized — by repo, by directory, or by GitHub team?106 - **Jira:** project-per-team or shared projects? How do issues map to services or teams?107 - **PagerDuty:** services mapped 1:1 to on-call schedules, or grouped by team/escalation policy?1084. Use the answers to shape blueprint properties, relations, selectors, and JQ expressions in Steps 6–7. Plan internally — do not present a setup plan for approval.109110If answers reveal the chosen use case is a poor fit, offer to revisit use case selection before building.111112## Step 5: Confirm Installation113114Before building anything, verify the integration is connected:1151161. Call `list_integrations` to confirm the integration appears and note its identifier.1172. Check `resyncState` — an initial sync may already be running from install.118119Do not proceed to Steps 6–8 until the integration is installed. If installation is still pending, wait for the user to finish.120121## Step 6: Build Data Model and Mapping122123Plan internally using the selected kinds, use case, and personalization answers from Step 4, then execute:124125### Data model1261271. Re-read target blueprints with `list_blueprints` immediately before writing.1282. Create or extend blueprints with `upsert_blueprint` — preserve existing properties, relations, and user customizations.1293. Write properties in dependency order: relations and base properties first, then calculation properties that reference them.130131### Mapping1321331. Call `get_integration_port_app_config_schema` to confirm valid kinds and selector fields.1342. If the integration has existing mapping, fetch it with `list_integrations` (include identifiers) and **merge** — never drop unrelated resources.1353. Author the mapping for the chosen use case, scoped to the **selected kinds**. Include all config parts: `createMissingRelatedEntities`, `deleteDependentEntities`, `enableMergeEntity`, and `resources`. See `port-integrations` for the mapping syntax itself (resources, selectors, JQ entity mappings, relations).1364. Show the mapping to the user in **YAML format** when sharing the final configuration.137138## Step 7: Test the Mapping139140Validate before saving:1411421. Call `get_integration_kinds_with_examples` for every kind in the mapping.1432. **If any mapped kind has no examples** (common on a fresh install before the first sync completes), load this skill's per-integration reference examples instead:144 1. Call `load_skill({ name: "port-install-integration" })` if your MCP client supports reloading a skill by resource.145 2. Find [references/examples/<integration-type-identifier>.md](references/examples/) matching the integration you're installing (e.g. `references/examples/github-ocean.md`, `references/examples/jira.md`) — one file per integration, loaded only for the one you need.146 3. Use the examples in that file for the mapped kinds you need to test.1473. **If the skill references have no examples for the required kinds**, call `search_port_knowledge_sources` to find example data structures from Port docs and construct representative examples.1484. Call `test_integration_mapping` with the proposed config and representative examples for **each** mapped kind.1495. If tests fail:150 - Fix JQ expressions, selectors, or blueprint targets151 - Re-run tests until all kinds pass152 - If stuck, search `search_port_knowledge_sources` for mapping syntax help153154**Gate:** Do not save the mapping while `hasValidationIssues` is true or any kind has errors.155156## Step 8: Save Mapping and Run Full Sync157158Once tests pass:1591601. Call `update_integration_mapping` with the validated config. This saves the mapping and triggers a **full sync** — the integration extracts fresh data from the source, transforms it with the new mapping, and loads entities into the catalog.1612. **Do not call `apply_integration_mapping`** on a fresh install. It only re-applies mapping against raw data already stored in the lakehouse, which does not exist yet on a new integration.1623. Monitor progress:163 - `list_integrations` — check `resyncState`164 - `get_integration_sync_metrics` — per-kind extract / transform / load counts165 - `get_integration_event_logs` — errors if sync fails1664. When the sync completes, call `list_entities` on the target blueprints so the user can see their data.167168## Step 9: Report169170Return a concise status table:171172| Resource | Action | Notes |173| -------- | ------ | ----- |174| Integration | installed / already present / pending | Identifier and type |175| Kinds | selected | List of kind identifiers |176| Use case | confirmed | One-line summary |177| Personalization | gathered | Key decisions that shaped the setup |178| Blueprints | created / extended / unchanged | List identifiers |179| Mapping | saved / blocked | Number of resources |180| Full sync | completed / in progress / failed | Link to metrics or errors |181| Entities | visible / empty / pending | Per target blueprint |182183If entities are empty after a successful sync:184185- Check transform-phase metrics for `filteredOut` counts (mapping filters too aggressively)186- Check load-phase metrics for failures (relation or validation errors)187- Offer to run `port-integrations`' troubleshooting reference if errors persist188189## Tools Reference190191| Tool | Purpose |192| ---- | ------- |193| `ask_user_questions` | Kind selection, use case selection, and personalization — options go here only, never duplicated in chat |194| `install_integrations` | Present integration install UI — call early, before catalog setup |195| `configure_mcp_servers` | MCP-only path — stop this skill if user chose this |196| `search_port_knowledge_sources` | Discover kinds, implementation patterns, examples, and mapping guidance from Port docs |197| `list_integrations` | Check install status, fetch current mapping |198| `get_integration_port_app_config_schema` | Authoritative list of supported kinds and per-kind selector fields |199| `get_integration_kinds_with_examples` | Raw data examples for mapping and testing |200| `load_skill` | Reload this skill's per-integration reference examples when live examples are empty |201| `list_blueprints` | Current data model |202| `upsert_blueprint` | Create or extend blueprints |203| `test_integration_mapping` | Validate mapping before saving |204| `update_integration_mapping` | Save mapping and trigger full sync (extract → transform → load) |205| `get_integration_sync_metrics` | Monitor sync progress |206| `get_integration_event_logs` | Diagnose sync errors |207| `list_entities` | Verify data landed in the catalog |208209## Important Notes210211- Integration config is stored as JSON in the API but **displayed and edited as YAML in Port UI**.212- `apply_integration_mapping` is for remapping **existing** raw data. On a fresh install, always use `update_integration_mapping` to trigger a full sync from the source.213- Default blueprints and pages may appear automatically after install; always check `list_blueprints` before creating duplicates.214- Some tools referenced above (`install_integrations`, `ask_user_questions`, `configure_mcp_servers`) are part of Port's assistant surface and may not be present on every Port MCP client. If your client doesn't expose one of them, use the equivalent step in the [Port UI](https://app.port.io) or the [install an integration](https://docs.port.io/build-your-software-catalog/sync-data-to-catalog/) docs instead.215216## Reference examples217218Per-integration mapping examples used in Step 7, one file per integration so only the219relevant one is loaded: [references/examples/](references/examples/) — `aikido.md`,220`aws-v3.md`, `azure-devops.md`, `azure-rg.md`, `checkmarx-one.md`, `github-ocean.md`,221`gitlab-v2.md`, `jira.md`, `opsgenie.md`, `pagerduty.md`, `snyk.md`, `sonarqube.md`,222`wiz.md`.