Connect three real services, delegate OAuth to your users, and ship a working agent in minutes. Clone the sample, swap in your tools, and go from zero to multi-connector in a single afternoon.
This repo uses a single SCALEKIT_USER_ID env var to simulate one user. In production, pass each user's real ID as the identifier on every Scalekit call, and send them an authorization link whenever their connector status is not ACTIVE.
tools = client.actions.langchain.get_tools(
identifier="user@example.com",
connection_names=["gong", "attio", "slack"],
)
Three things you'd otherwise build: Gong OAuth, Attio token storage, Slack credentials. All must refresh before the daily cron fires. Handled.
tools = client.actions.langchain.get_tools(
identifier=user_id,
connection_names=["gong", "attio", "slack"],
)
agent = create_tool_calling_agent(llm, tools, prompt)client = ScalekitClient(
env_url=os.environ["SCALEKIT_ENV_URL"],
client_id=os.environ["SCALEKIT_CLIENT_ID"],
client_secret=os.environ["SCALEKIT_CLIENT_SECRET"],
)
# Credentials never in agent code or LLM context# Day 1 or day 180 — same call works
tools = client.actions.langchain.get_tools(
identifier=user_id,
connection_names=["gong", "attio", "slack"],
)Each one runs on delegated identity, scoped per user.
Don't sweat the integration. Point a coding agent at the repo. It clones, swaps in your connectors, and adds new steps for you.
Clone github.com/scalekit-inc/python-connect-demos/langchain. Set connection_names = ["gong", "attio", "slack"]. Build a daily cron agent: fetch Gong call transcripts from the past 24 hours, score each for risk signals (objections, competitor mentions, champion silence), match to Attio deals by attendee email, post a ranked risk brief to Slack. Scalekit refreshes tokens before each cron run. Set SCALEKIT_ENV_URL, SCALEKIT_CLIENT_ID, SCALEKIT_CLIENT_SECRET in .env.