Carbone

Learn how to use Carbone with Composio

Overview

SLUG: CARBONE

Description

Carbone is a fast and simple report generator that converts JSON data into various document formats such as PDF, DOCX, XLSX, ODT, and more, using templates.

Authentication Details

generic_api_key
stringRequired

Connecting to Carbone

Create an auth config

Use the dashboard to create an auth config for the Carbone toolkit. This allows you to connect multiple Carbone accounts to Composio for agents to use.

1

Select App

Navigate to the Carbone toolkit page and click “Setup Integration”.

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Integration”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using API Key

1from composio import Composio
2from composio.types import auth_scheme
3
4# Replace these with your actual values
5carbone_auth_config_id = "ac_YOUR_CARBONE_CONFIG_ID" # Auth config ID created above
6user_id = "0000-0000-0000" # UUID from database/app
7
8composio = Composio()
9
10def authenticate_toolkit(user_id: str, auth_config_id: str):
11 # Replace this with a method to retrieve an API key from the user.
12 # Or supply your own.
13 user_api_key = input("[!] Enter API key")
14
15 connection_request = composio.connected_accounts.initiate(
16 user_id=user_id,
17 auth_config_id=auth_config_id,
18 config={"auth_scheme": "API_KEY", "val": user_api_key}
19 )
20
21 # API Key authentication is immediate - no redirect needed
22 print(f"Successfully connected Carbone for user {user_id}")
23 print(f"Connection status: {connection_request.status}")
24
25 return connection_request.id
26
27
28connection_id = authenticate_toolkit(user_id, carbone_auth_config_id)
29
30# You can verify the connection using:
31connected_account = composio.connected_accounts.get(connection_id)
32print(f"Connected account: {connected_account}")

Tools

Executing tools

Python
1from composio import Composio
2from openai import OpenAI
3import json
4
5openai = OpenAI()
6composio = Composio()
7
8# User ID must be a valid UUID format
9user_id = "0000-0000-0000" # Replace with actual user UUID from your database
10
11tools = composio.tools.get(user_id=user_id, toolkits=["CARBONE"])
12
13print("[!] Tools:")
14print(json.dumps(tools))
15
16def invoke_llm(task = "What can you do?"):
17 completion = openai.chat.completions.create(
18 model="gpt-4o",
19 messages=[
20 {
21 "role": "user",
22 "content": task, # Your task here!
23 },
24 ],
25 tools=tools,
26 )
27
28 # Handle Result from tool call
29 result = composio.provider.handle_tool_calls(user_id=user_id, response=completion)
30 print(f"[!] Completion: {completion}")
31 print(f"[!] Tool call result: {result}")
32
33invoke_llm()

Tool List

Tool Name: Delete Carbone Template

Description

Tool to delete a template from the carbone server. use after confirming you have the correct template id.

Action Parameters

templateId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Download Template

Description

Tool to download a template from carbone by template id. use when you need to retrieve the original template file.

Action Parameters

template_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Generate Carbone Report

Description

Tool to generate a carbone report from a template and json data. use when you need to render documents in various formats.

Action Parameters

batchOutput
string
batchSplitBy
string
carbone-webhook-headers
object
carbone-webhook-url
string
complement
object
convertTo
string
currencyRates
object
currencySource
string
currencyTarget
string
data
objectRequired
enum
object
hardRefresh
boolean
lang
string
reportName
string
templateId
stringRequired
timezone
string
translations
object
variableStr
string

Action Response

data
object
error
string
success
booleanRequired
successful
booleanRequired

Tool Name: Generate Template ID

Description

Tool to generate a unique template id for a new template. use when you need the template identifier before uploading.

Action Parameters

template
stringRequired

Action Response

data
objectRequired
error
string
success
booleanRequired
successful
booleanRequired

Tool Name: Get Carbone Server Status

Description

Tool to retrieve the current status and health of the carbone server. use before generating reports to ensure the service is operational.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Upload a template

Description

Tool to upload a template to the carbone server. use when you need to add or replace a template by providing its content.

Action Parameters

template
stringRequired

Action Response

data
objectRequired
error
string
success
booleanRequired
successful
booleanRequired

Tool Name: Set Carbone API Version

Description

Tool to set the carbone api version to be used for subsequent requests. use before rendering or managing templates to ensure correct version is applied.

Action Parameters

version
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired