PyTrengo is a lightweight Python client for the Trengo API.
Note: PyTrengo is not affiliated nor endorsed by Trengo.
With pip:
pip install pytrengo
With Poetry:
poetry add pytrengo
Requirement: Python 3.10+
from trengo import Trengo
trengo_client = Trengo(token="...")
# If the token is not provided, it’s read from the TRENGO_TOKEN environment variable
trengo_client = Trengo()
for ticket in trengo_client.get_tickets():
print(...)
List queries are transparently paginated for you.
Note: even if an endpoint is not implemented, you can call it with one of the helper methods:
# GET /v2/some-endpoints?foo=bar
trengo_client.get_json_api("/some-endpoint", params={"foo": "bar"})
# POST /v2/some-other-endpoint with {"foo": "bar"}
trengo_client.post_json_api("/some-other-endpoint",
json={"foo": "bar"})
Endpoint | Method |
---|---|
All endpoints (43%) | |
Tickets | |
List all tickets | get_tickets |
List all aggregates | get_ticket_aggregates |
Create a ticket | create_ticket |
Assign a ticket | assign_ticket |
Close a ticket | close_ticket |
Reopen a ticket | reopen_ticket |
Merge a ticket | merge_ticket |
Attach a label | attach_ticket_label |
Detach a label | detach_ticket_label |
Delete a ticket | delete_ticket |
Mark as spam | mark_ticket_as_spam |
Unmark as spam | unmark_ticket_as_spam |
Set custom data | set_custom_data |
Delete a message | delete_message |
Send a ticket message | send_ticket_message |
Send a ticket media message | send_ticket_media_message |
List all messages | get_messages |
Mark a ticket as favorite | mark_ticket_as_favorite |
Unmark a ticket as favorite | unmark_ticket_as_favorite |
Fetch a message | get_message |
Store a custom channel message | store_custom_channel_message |
Send a WhatsApp template | send_whatsapp_template |
Contacts | |
List contacts | get_contacts |
View a contact | get_contact |
Create a contact | create_contact |
Update a contact | update_contact |
Delete a contact | delete_contact (since 0.1.5) |
Custom fields | set_contact_custom_field (since 0.1.5) |
Add a note | add_contact_note (since 0.1.5) |
Delete a note | delete_contact_note (since 0.1.5) |
Profiles (16%) | |
Create a profile | |
List profiles | get_profiles |
View a profile | get_profile |
Update a profile | |
Custom fields | |
Delete a profile | |
Create a note | |
Delete a note | |
Attach a contact | |
Detach a contact | |
Set profile image | |
Unset profile image | |
SMS messages (33%) | |
List all messages | get_sms_messages |
Send a message | |
Fetch balance | |
Messages (0%) | |
Import text message | |
Import email message | |
Team Chat (0%) | |
Sending a bot message | |
Voip (0%) | |
Push SIP call status | |
List all voip calls | |
Get a voip call | |
Help Center (24%) | |
List all help centers | get_help_centers |
List all categories | get_help_center_categories |
List all articles | |
List all blocks | get_help_center_blocks |
Get a help center | get_help_center |
Get a category | get_help_center_category |
Get an article | get_help_center_article |
Get a block | get_help_center_block |
Create a help center | |
Create a category | |
Create a section | |
Create an article | |
Create a block | |
Update a help center | |
Update a category | |
Update a section | |
Update an article | |
Update a block | |
Delete a help center | delete_help_center |
Delete a category | delete_help_center_category |
Delete a section | |
Delete an article | |
Delete a block | |
Quick Replies (20%) | |
List all quick replies | get_quick_replies |
Create a quick reply | |
Update a quick reply | |
Delete a quick reply | |
Ticket Results (20%) | |
List all ticket results | get_ticket_results |
Get a ticket result | |
Create a ticket result | |
Update a ticket result | |
Delete a ticket result | |
Contact Groups (20%) | |
List all contact groups | get_contact_groups |
Get a contact group | |
Create a contact group | |
Update a contact group | |
Delete a contact group | |
Labels (20%) | |
List all labels | get_labels |
Get a label | |
Create a label | |
Update a label | |
Delete a label | |
Teams (20%) | |
List all teams | get_teams |
Get a team | |
Update a team | |
Create a team | |
Delete a team | |
Users (20%) | |
List all users | get_users |
Get a user | |
Create a user | |
Update a user | |
Delete a user | |
Custom fields (20%) | |
List all custom fields | get_custom_fields |
Create a custom field | |
Get a custom field | |
Update a custom field | |
Delete a custom field | |
Webhooks (60%) | |
List all webhooks | get_webhooks |
Create a webhook | create_webhook |
Get a webhook | get_webhook |
Update a webhook | |
Delete a webhook | |
Quick actions (0%) | |
Send a message | |
Log a phone call | |
BETA - Reporting (20%) | |
BETA - Get reporting metrics | get_reporting_metrics |
BETA - Get user report | |
BETA - Get reporting histograms | |
BETA - Agent performance reporting | |
BETA - Get Ticket Details Report |
We follow the naming used in the Trengo API, but we sometimes have to differ from it for consistency or to follow Python conventions:
- Methods for API endpoints like "List <name>s" are named
get_<name>s
- Methods for API endpoints like "Get <name>" or "View <name>" are named
get_<name>
- We try to stay consistent even when the API isn’t: the field for the relations to include is always named
include
in PyTrengo, while the API usesinclude
in some calls andwith
in some others - Some endpoints take a single ID; their method use an extended name like
contact_id
orticket_id
instead ofid
Copyright 2024 Bixoto.