Resolve a URL, issue key or external ID to a Record ID
Changed onTurn an external reference into the matching PipesHub record. Accepts a pasted link, a Jira-style issue key, or a bare external system ID from any connected source. Repeat identifiers to batch-resolve up to ten in one call.
The response carries a rendered text view — each match's metadata block followed by a Next: line naming a follow-up call. The structured fields carry the same information for programmatic use.
Accepted identifiers
- Jira issue URL — https://acme.atlassian.net/browse/PA-1787
- Jira issue key — PA-1787
- Confluence page URL — https://acme.atlassian.net/wiki/spaces/SD/pages/450625553/Agent+Loop
- Google Drive / Docs URL — https://docs.google.com/document/d/1AbC.../edit
- Slack message link — https://acme.slack.com/archives/C0123/p1720000000000100
- Bare external system ID — 450625553
When to use this vs. the other record endpoints:
- This endpoint converts an external reference into an internal Record ID. Reach for it whenever you meet a link or ticket key and need the record behind it.
- GET /connectors/record/{recordId}/content reads a record you have already identified. It needs an internal Record ID, which is exactly what this endpoint returns.
- GET /connectors/navigate browses the hierarchy when you have a position in the tree rather than a specific identifier.
Typical flow: call this with the reference, take a match's id from the response, then call GET /connectors/record/{recordId}/content to read the record.
Multiple matches: one identifier can legitimately match more than one record — the same external ID may exist in several connected instances. In that case the response sets ambiguous: true and matches holds every candidate. Present the choice rather than taking the first; connectorName narrows a retry.
Misses are not errors.
Only records the caller can see are returned, and a miss is a 200 with an empty matches array and the input echoed in not_found_identifiers — not a 404. The identifier resolved to nothing or to something the caller may not access; the two are deliberately indistinguishable, because an identifier is caller-supplied and guessable, and confirming existence would leak records across organizations. searched_connectors names what was covered, so a retry with connectorName is often the right next move.
Scope: resolution searches every connector the caller can access, regardless of any source filter used elsewhere.
A connected app with a limit: each match's context_block names nothing outside the limit beside the record. Its External Parent ID reads N/A for a parent the limit leaves out, and a code file's Path: line is left out unless the limit covers the whole app. Linked records, related tables, a deal's orgs and products, and live Jira parent, epic, sub-task and linked-issue lines appear only for records inside the limit. Web URL is kept, though it can contain folder names.
An OAuth token holding connector:read instead of kb:read is accepted too.
Request
- Base URLhttps://app.pipeshub.com/api/v1
- URLhttps://app.pipeshub.com/api/v1/connectors/record/lookup
- Auth
- HTTP bearer
- or OAuth 2Authorization code: /api/v1/oauth2/authorizeClient credentialsToken URL: /api/v1/oauth2/token scopes: kb:read
Query parameters
The reference(s) to resolve: a URL, an issue key such as PA-1787, or a bare external system ID. Repeat the parameter to batch: ?identifiers=PA-1787&identifiers=PA-1788. Maximum 10.
Optional hint that prioritises resolution order, e.g. JIRA, CONFLUENCE, DRIVE, SLACK (the ConnectorNameEnum values). Any other non-empty string is accepted too and simply matches no connector, so it changes nothing. It cannot widen the search beyond the connectors the caller can already access. Useful on a retry when a lookup came back empty. An empty or blank value is refused with 400 (the value is trimmed before it is checked).
Response
Successful operation. Identifiers that resolved to nothing the caller can access are echoed in not_found_identifiers rather than producing an error status.
Changes
- breaking
removed the enum value
ATTACHMENTSfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
AZURE BLOBfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
AZURE FILESfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
BOOKSTACKfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
BOXfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
CALENDARfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
CODING_SANDBOXfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
CONFLUENCEfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
CONFLUENCE DATA CENTERfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
CONFLUENCE DATA CENTER PERSONALfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
DATABASE_SANDBOXfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
DRIVEfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
DRIVE WORKSPACEfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
DROPBOXfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
DROPBOX PERSONALfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
DRUPAL WIKIfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
GCSfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
GITHUBfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
GITHUB TEAMSfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
GITLABfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
GITLAB PERSONALfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
GMAILfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
GMAIL WORKSPACEfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
IMAGE_GENERATIONfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
JIRAfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
JIRA DATA CENTERfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
JIRA DATA CENTER PERSONALfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
JIRA PERSONALfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
KBfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
LINEARfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
LOCAL_FSfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
MARIADBfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
MICROSOFT TEAMSfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
MINIOfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
NEXTCLOUDfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
NOTIONfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
NOTION PERSONALfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
ONEDRIVEfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
OUTLOOKfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
OUTLOOK CALENDARfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
OUTLOOK PERSONALfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
POSTGRESQLfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
RSSfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
S3from thequeryrequest parameterconnectorName - breaking
removed the enum value
SALESFORCEfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
SERVICENOWfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
SHAREPOINT ONLINEfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
SLACKfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
SLACK WORKSPACEfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
SNOWFLAKEfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
UNKNOWNfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
WEBfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
ZAMMADfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
ZENDESKfrom thequeryrequest parameterconnectorName - breaking
removed the enum value
ZOOMfrom thequeryrequest parameterconnectorName - breaking
for the
queryrequest parameterconnectorName, the minLength was increased from0to1 - breaking
added the pattern
\Sto thequeryrequest parameterconnectorName - info
the security scope
kb:readwas added to the endpoint's security schemeoauth2 - info
the security scope
connector:readwas removed from the endpoint's security schemeoauth2
- breaking
- info
added the new enum value
ZENDESKto thequeryrequest parameterconnectorName
- info