Elorus

Learn how to use Elorus with Composio

Overview

SLUG: ELORUS

Description

Elorus is an online invoicing and time-tracking software designed for freelancers and small businesses to manage their finances and projects efficiently.

Authentication Details

generic_api_key
stringRequired
generic_id
stringRequired

Connecting to Elorus

Create an auth config

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

1

Select App

Navigate to Elorus.

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

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the Elorus toolkit’s playground

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=["ELORUS"])
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: Create Invoice

Description

Tool to create a new invoice. use after gathering all invoice details.

Action Parameters

client_id
stringRequired
contact_address_id
string
currency_id
stringRequired
discount
number
document_number
string
issue_date
stringRequired
items
arrayRequired
kind
stringRequired
notes
string
payable_date
string
series_id
stringRequired
tags
array

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: CREATE_PRODUCT

Description

Tool to create a new product or service in elorus. use when you need to add or configure items/services in your product catalog.

Action Parameters

code
string
description
string
is_active
boolean
name
stringRequired
price
number
sku
string
tax_category_id
integer
type
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Email Invoice

Description

Tool to email an existing invoice to specified contacts. use after generating an invoice and obtaining contact ids.

Action Parameters

bcc
array
cc
array
contacts
arrayRequired
email_body
stringRequired
email_subject
stringRequired
invoice_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Bills

Description

Tool to retrieve a list of bills. use when you need to list bills with optional filters after creation.

Action Parameters

due_date__gte
string
due_date__lte
string
issued_at__gte
string
issued_at__lte
string
page
integer
page_size
integer
search
string
status
string
supplier
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Contacts

Description

Tool to retrieve a list of contacts. use after authentication to fetch contacts in batches. example: 'list page 2 of active company contacts sorted by name.'

Action Parameters

contact_ids
array
custom_fields
object
is_company
boolean
items_per_page
integer
order_by
string
page
integer
search
string
show_archived
boolean
sort_order
string
statuses
array

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Credit Notes

Description

Tool to retrieve a list of credit notes. use when you need to fetch credit notes filtered by page, contact, date range, or currency.

Action Parameters

contact
integer
currency
string
issued_on__gte
string
issued_on__lte
string
page
integer
page_size
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Email Templates

Description

Tool to retrieve a list of email templates. use when you need to fetch and page through existing templates in the organization.

Action Parameters

page
integer
page_size
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Estimates

Description

Tool to retrieve a list of estimates. use when you need to list estimates with pagination after creation.

Action Parameters

page
integer
page_size
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Invoices

Description

Tool to retrieve a list of invoices. use when you need to list invoices with filtering and pagination options.

Action Parameters

contact
string
currency
string
due_date__gte
string
due_date__lte
string
issue_date__gte
string
issue_date__lte
string
number
string
ordering
string
page
integer
page_size
integer
status
string
tags
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Products

Description

Tool to retrieve a list of products/services with optional filtering, sorting, and pagination. use when you need to fetch products for reports, ui lists, or inventory management.

Action Parameters

fields
string
filter
string
limit
integer
page
integer
sort
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Taxes

Description

Tool to retrieve a list of taxes. use after authentication to list taxes with optional filters.

Action Parameters

page
integer
per_page
integer
q
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Templates

Description

Tool to retrieve a list of document templates. use when you need to list and paginate available templates.

Action Parameters

page
integer
per_page
integer

Action Response

current_page
integerRequired
data
arrayRequired
error
string
from_index
integerRequired
last_page
integerRequired
next_page_url
string
per_page
integerRequired
prev_page_url
string
successful
booleanRequired
to
integerRequired
total
integerRequired

Tool Name: Update Contact

Description

Tool to update an existing contact by id. use when you need to modify contact details after retrieving current information.

Action Parameters

address
string
city
string
code
string
contact_persons
array
country_id
integer
currency_id
integer
email
string
id
integerRequired
name
string
notes
string
phone
string
postal_code
string
tax_number
string
tax_office
string
vat_status
string

Action Response

data
objectRequired
error
string
successful
booleanRequired