TypeScript
import { Kombo } from "@kombo-api/sdk";
const kombo = new Kombo({
api_key: "<YOUR_BEARER_TOKEN_HERE>",
});
async function run() {
const result = await kombo.general.createSetupLink({
integration_id: "personio:93fCvorjZ2jas7ZekX1V1n5d",
body: {
link_type: "EMBEDDED",
},
});
console.log(result);
}
run();require 'kombo'
Models = ::Kombo::Models
s = ::Kombo::Kombo.new(
security: Models::Shared::Security.new(
api_key: '<YOUR_BEARER_TOKEN_HERE>'
)
)
res = s.general.create_setup_link(integration_id: 'personio:93fCvorjZ2jas7ZekX1V1n5d', body: Models::Shared::PostIntegrationsIntegrationIdSetupLinkRequestBody.new(
link_type: Models::Shared::PostIntegrationsIntegrationIdSetupLinkRequestBodyLinkType::EMBEDDED
))
unless res.post_integrations_integration_id_setup_link_positive_response.nil?
# handle response
endfrom kombo import Kombo
with Kombo(
api_key="<YOUR_BEARER_TOKEN_HERE>",
) as k_client:
res = k_client.general.create_setup_link(integration_id="personio:93fCvorjZ2jas7ZekX1V1n5d", link_type="EMBEDDED", language="en")
# Handle response
print(res)curl --request POST \
--url https://api.kombo.dev/v1/integrations/{integration_id}/setup-link \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"language": "en",
"link_type": "EMBEDDED"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({language: 'en', link_type: 'EMBEDDED'})
};
fetch('https://api.kombo.dev/v1/integrations/{integration_id}/setup-link', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.kombo.dev/v1/integrations/{integration_id}/setup-link",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'language' => 'en',
'link_type' => 'EMBEDDED'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.kombo.dev/v1/integrations/{integration_id}/setup-link"
payload := strings.NewReader("{\n \"language\": \"en\",\n \"link_type\": \"EMBEDDED\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.kombo.dev/v1/integrations/{integration_id}/setup-link")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"language\": \"en\",\n \"link_type\": \"EMBEDDED\"\n}")
.asString();{
"status": "success",
"data": {
"link": "<string>"
}
}Kombo Connect
Create Setup Flow link
Create a link that lets your customer run the Setup Flow for an integration. Use this to send customers back into setup steps like field mapping or employee filtering without having to go through the initial connection flow again. Pass the returned URL to showKomboConnect from the Kombo Connect SDK, the same way you do with a connection link.
POST
/
integrations
/
{integration_id}
/
setup-link
TypeScript
import { Kombo } from "@kombo-api/sdk";
const kombo = new Kombo({
api_key: "<YOUR_BEARER_TOKEN_HERE>",
});
async function run() {
const result = await kombo.general.createSetupLink({
integration_id: "personio:93fCvorjZ2jas7ZekX1V1n5d",
body: {
link_type: "EMBEDDED",
},
});
console.log(result);
}
run();require 'kombo'
Models = ::Kombo::Models
s = ::Kombo::Kombo.new(
security: Models::Shared::Security.new(
api_key: '<YOUR_BEARER_TOKEN_HERE>'
)
)
res = s.general.create_setup_link(integration_id: 'personio:93fCvorjZ2jas7ZekX1V1n5d', body: Models::Shared::PostIntegrationsIntegrationIdSetupLinkRequestBody.new(
link_type: Models::Shared::PostIntegrationsIntegrationIdSetupLinkRequestBodyLinkType::EMBEDDED
))
unless res.post_integrations_integration_id_setup_link_positive_response.nil?
# handle response
endfrom kombo import Kombo
with Kombo(
api_key="<YOUR_BEARER_TOKEN_HERE>",
) as k_client:
res = k_client.general.create_setup_link(integration_id="personio:93fCvorjZ2jas7ZekX1V1n5d", link_type="EMBEDDED", language="en")
# Handle response
print(res)curl --request POST \
--url https://api.kombo.dev/v1/integrations/{integration_id}/setup-link \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"language": "en",
"link_type": "EMBEDDED"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({language: 'en', link_type: 'EMBEDDED'})
};
fetch('https://api.kombo.dev/v1/integrations/{integration_id}/setup-link', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.kombo.dev/v1/integrations/{integration_id}/setup-link",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'language' => 'en',
'link_type' => 'EMBEDDED'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.kombo.dev/v1/integrations/{integration_id}/setup-link"
payload := strings.NewReader("{\n \"language\": \"en\",\n \"link_type\": \"EMBEDDED\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.kombo.dev/v1/integrations/{integration_id}/setup-link")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"language\": \"en\",\n \"link_type\": \"EMBEDDED\"\n}")
.asString();{
"status": "success",
"data": {
"link": "<string>"
}
}The integration must have at least one Setup Flow step enabled (e.g. field mapping or employee filtering); otherwise this endpoint returns a
PLATFORM.INPUT_INVALID error. Steps can be enabled from the Integration Settings tab in the dashboard or via the Create Connection Link endpoint.Authorizations
Path Parameters
POST /integrations/:integration_id/setup-link Parameter
Body
application/json
POST /integrations/:integration_id/setup-link Request body
The type of link you want to create. EMBEDDED is for the embedded flow using the Kombo Connect SDK (these links are valid for 1 hour) and MAGIC_LINK is for magic links which you send out manually to customers (these are valid for 1 year).
Available options:
EMBEDDED, MAGIC_LINK Language of the setup flow UI.
Available options:
en, de, fr, it, es Was this page helpful?