Connect a SoftSolz service (form, chat, blog, newsletter, payments, bookings, sign-in) to the site.
Installs the service if needed, validates or creates the resource, mints the public key and records the integration. Never spends AI credits. When placed is true the site already had a designed slot and nothing else is needed. When placed is false you must add it yourself with files/apply: in embed mode paste placement.snippet exactly once inside a section with id placement.anchor_id on one of placement.suggested_pages; in api mode merge placement.config.values into window.SITE_CONFIG in config.js and build the section per placement.instruction. Errors: 400 unsupported_integration or api_mode_unsupported, 402 when the workspace has no plan or a required email sender is missing, 404 resource_not_found, 409 already_connected, 409 site_busy (retry shortly).
https://app.softsolz.uk/api/v1/services/site-builder/projects/{id}/integrationsRecent Requests
Log in to see full request historyPath Params
idstringrequiredHeaders
AuthorizationstringrequiredBearer token: `Bearer sk_live_...` (or `sk_test_...` for sandbox). A login token will not work here.
Idempotency-KeystringOptional idempotency key for safe retries.
Body Params
service_idstringThe service to connect.
modestringembed (default) = ready-made hosted widget snippet. api = you build a custom section in the site design against the public widget endpoints (forms, blogs, newsletter, smart-chat, payments only; sign-in is widget-only).
resourceobjectWhich resource to connect. forms: { form_slug } or { create_form: { name, fields: [{ id, type, label, required }] } }. newsletter: { card_slug }. appointments: { booking_slug }. payments: { payment_link_id }. smart-chat: { kb_collection_ids? }. customer-auth: { view: "auth" | "profile" }. blogs: {}.
Response
Response Body
integrationobjectThe connected row.placedbooleantrue when the site already had a designed slot and nothing else is needed. false means you must place it: read placement and edit the pages with files/apply.pagesarray of stringsPages changed by a slot connect.changedarray of stringsFiles the platform wrote (config.js, a blog reader page).placementobject | nullPlacement pack when placed is false: mode, snippet (embed) or config {file, key, values} + descriptor (api), instruction, suggested_pages, anchor_id and marker (text that must appear on a page once placed).Request
import { SoftSolz } from '@softsolz/sdk';
const client = new SoftSolz({ apiKey: process.env.SOFTSOLZ_API_KEY });
const result = await client.siteBuilder.connectProjectIntegration('<id>', {});console.log(result);Credentials
Sent as a Bearer token. Stored only in your browser.
Response · 201
{ "data": { "integration": {}, "placed": true, "pages": [], "changed": [], "placement": "string" }}