Configuring Trellus as a Source
In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Trellus option from the list of connectors. Click Next and you’ll be prompted to add your access.1. Add account access
You’ll need your Trellus API key for this connection. The key authenticates every request and determines which team’s sessions can be read.Obtaining Your API Key
1
Access Trellus
Log in to your Trellus account at app.trellus.ai.
2
Open the API settings
Go to Settings and open the API tab.
3
Copy your API key
Copy the API key shown on that page.
The API key is tied to the Trellus user it belongs to, and the data returned is limited to the teams that user can read. If you want the source to cover a whole sales team, use a key from a user with team-wide access.
Configuration Fields
The following configurations are available:- API Key: Your Trellus API key, copied from Settings > API in the Trellus web app.
- Start Date: The earliest session start date from which records will be synced. Leave it empty to sync from January 1st, 2024.
- Team ID: The Trellus team to read sessions from. Only needed when your API key can read more than one team; leave it empty to use your default team.
- Session Window (seconds): Size of each request window used to read sessions. Defaults to 604800 (7 days). See the note on extraction limits below.
- Minimum Session Window (seconds): The smallest window the connector will request when it has to split a full window. Defaults to 60 seconds.
The Trellus API returns at most 1000 sessions per request and has no pagination — a request that reaches that limit silently leaves out the oldest sessions in the window. The connector handles this automatically: whenever a window comes back full, it splits the window in half and requests both halves, repeating until every window fits under the limit. You normally do not need to touch the two window settings.If a single 60-second window still comes back full — which would require more than 1000 sessions in one minute — the connector reports it in the run log, because in that case the API itself cannot return the missing records.
2. Select streams
Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones.Tip: The stream can be found more easily by typing its name.Select the streams and click Next.
3. Configure data streams
Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.- Layer: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
- Folder: a folder can be created inside the selected layer to group all tables being created from this new data source.
- Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once and make this process faster!
- Sync Type: you can choose between INCREMENTAL and FULL_TABLE.
- Incremental: every time the extraction happens, we’ll get only the new data - which is good if, for example, you want to keep every record ever fetched.
- Full table: every time the extraction happens, we’ll get the current state of the data - which is good if, for example, you don’t want to have deleted data in your catalog.
4. Configure data source
Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). Optionally, you can define some additional settings:- Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource here.
- Determine when to execute an Additional Full Sync. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while.
5. Check your new source
You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.Streams and Fields
Below you’ll find all available data streams from Trellus and their corresponding fields:Sessions
Sessions
Every Trellus session — an outbound dial, an inbound call, or a messaging/chat conversation — with the telephony, quality, sales and disposition metrics Trellus derives from it. Synced incrementally by
started_at.Identification:session_id- Unique identifier of the Trellus sessionteam_id- Identifier of the Trellus team the session belongs toprovisioning_team_id- Identifier of the team that provisioned the phone resource usedresource_id- Identifier of the rep/resource that owned the session; joins touser_idon the Users streamstarted_at- Date and time the session started, used as the incremental replication keyconversation_type- Type of conversation as a numeric code (1 call, 2 messaging, 3 chat)conversation_type_name- Readable label for the conversation type: call, messaging or chattelephony_customer_call_id- Identifier of the call in the underlying telephony provider
customer_address- Phone number or address of the customer side of the conversationagent_address- Phone number or address of the sales rep side of the conversationaddress_type- Kind of address used for the conversationcustomer_joined/customer_joined_at- Whether and when the customer joinedagent_joined/agent_joined_at- Whether and when the sales rep joined;agent_joinedfalse marks a missed callduration- Total duration of the session in secondsend_reason- Reason the session endedcustomer_words/agent_words- Number of words spoken by each sidecustomer_turn_duration/agent_turn_duration- Total duration in seconds of each side’s speaking turns
platform- Sales engagement platform the session was dialled frombase_path- Path within the source platform where the session originatedclient_version- Version of the Trellus client that produced the sessionphone_type- Type of phone number involved in the session
dial_metric_sip_code- SIP status code from the telephony provider (200 answered, 486 busy, 487 cancelled)dial_metric_is_connected- Whether the provider reported the call as connecteddial_metric_is_dial- Whether the session was an outbound dialdial_metric_is_inbound- Whether the call was inbound rather than outbounddial_metric_ringing_at- Date and time the call started ringingdial_metric_telephony- Telephony provider that carried the calldial_metric_is_live- Whether the call reached a live conversationdial_metric_live_duration- Duration in seconds of the live conversation; Trellus recommends this over the SIP code as the practical signal of a connected calldial_metric_live_open_ended_at- Date and time the live conversation window endeddial_metric_live_open_known_at- Date and time Trellus first knew the conversation was livedial_metric_live_open_is_bridged- Whether the live conversation was bridged to the sales repdial_metric_live_open_delay_to_bridge- Delay in seconds between going live and being bridgeddial_metric_live_stated_at- Date and time the conversation was marked as livedial_metric_has_voicemail/dial_metric_left_voicemail- Whether the call reached a voicemail box, and whether one was leftdial_metric_has_screen/dial_metric_left_screen- Whether the call hit a screening step, and whether a message was leftdial_metric_has_menu- Whether the call hit a phone menu (IVR)dial_metric_is_trellus_telephony- Whether the call was carried by Trellus telephonydial_metric_is_autodial- Whether the call was placed by the Trellus auto-dialerdial_metric_parallel_lines- Number of lines dialled in parallel for this sessiondial_metric_is_bridge_user_first- Whether the sales rep was bridged onto the call before the customer
call_metric_customer_talk_duration/call_metric_agent_talk_duration- Seconds each side spent talkingcall_metric_customer_tempo/call_metric_agent_tempo- Speaking tempo measured for each sidecall_metric_customer_dropped_duration/call_metric_agent_dropped_duration- Seconds of each side’s audio that was dropped
quality_metric_said_do_not_call, quality_metric_said_not_audible, quality_metric_said_angry, quality_metric_said_spam, quality_metric_said_scam, quality_metric_said_risky_numbers, quality_metric_said_risky_credentials, quality_metric_said_risky_payment, quality_metric_said_representativeSales signals:sales_metric_has_prospect- Whether the intended prospect was reachedsales_metric_has_gatekeeper- Whether the call went through a gatekeeper- Objections:
sales_metric_has_obj_deny,sales_metric_has_obj_wrong_person,sales_metric_has_obj_not_decision_maker,sales_metric_has_obj_not_relevant,sales_metric_has_obj_not_now,sales_metric_has_obj_no_call,sales_metric_has_obj_no_email,sales_metric_has_obj_no_meeting,sales_metric_has_obj_no_need,sales_metric_has_obj_no_budget,sales_metric_has_obj_using_competitors - Asks:
sales_metric_has_ask_referral,sales_metric_has_ask_business,sales_metric_has_ask_responsibilities - Offers:
sales_metric_has_offer_meeting,sales_metric_has_offer_call,sales_metric_has_offer_email - Confirmations:
sales_metric_has_meeting_confirm,sales_metric_has_call_confirm,sales_metric_has_email_confirm,sales_metric_has_referral_provided,sales_metric_has_product_interest sales_metric_stage- Sales stage Trellus inferred for the conversationsales_metric_trellus_disposition- Disposition Trellus inferred automatically
prior_activity_num_sessions- Number of previous Trellus sessions with the same contactprior_activity_days_since_first- Days elapsed since the first session with the same contactprior_activity_num_out_dials- Number of previous outbound dials to the same contact
customer_data_name- Name of the contact on the customer sidecustomer_data_title- Job title of the contactcustomer_data_occupation- Occupation of the contactcustomer_data_seniority- Seniority level of the contactcustomer_data_company_name- Company the contact works forcustomer_data_company_url- Website of the company the contact works for
user_log_disposition- Disposition the sales rep logged for the call; the possible values are the team’s own option strings, listed in the Autodialer Mapping Options streamuser_log_sentiment- Sentiment the sales rep logged for the calluser_log_purpose- Purpose the sales rep logged for the calluser_log_notes- Free-text notes the sales rep logged for the call
privacy_customer_recorded, privacy_agent_recorded, privacy_customer_transcript_persisted, privacy_agent_transcript_persisted, privacy_customer_transcribed, privacy_agent_transcribed, privacy_is_zdr, privacy_transcribe_may_logSession Turns
Session Turns
The call transcripts, with one record per spoken turn. Synced incrementally by the parent session’s start date.Key Fields:
session_id- Identifier of the session the turn belongs toturn_index- Zero-based position of the turn within the session transcriptsession_started_at- Date and time the parent session started, used as the incremental replication keyresource_id- Identifier of the rep/resource that owned the session; joins touser_idon the Users streamis_customer- Whether the turn was spoken by the customer rather than the sales repspeaker- Who spoke the turn: customer or agentturn_start- Start marker of the turn within the session, as returned by the Trellus APIturn_end- End marker of the turn within the session, as returned by the Trellus APItext- Transcribed text of the turn
Only sessions that Trellus transcribed produce turns. Calls that were not transcribed — because they were not recorded, or because the team’s privacy settings prevent it — appear on the Sessions stream with no records here.
Users
Users
The Trellus users reachable with the configured API key: the key’s own user plus the colleagues visible in their directory. Use it to put names on the
resource_id of a session.Key Fields:user_id- Unique identifier of the Trellus user; matchesresource_idon the Sessions streamuser_name- Display name of the userplatform_email- Email address of the user on the connected sales engagement platformis_authenticated_user- Whether this is the user whose API key is configured on the source, as opposed to a colleague visible in their directory
Autodialer Mapping Options
Autodialer Mapping Options
The team’s own option catalogue: the exact disposition, sentiment and purpose strings a rep can pick, per sales engagement platform. These are the values that show up in the
user_log_disposition, user_log_sentiment and user_log_purpose fields of a session, so this stream is the lookup table for them.Key Fields:platform- Sales engagement platform the option belongs toautomation_type- Which field the option applies to, such as disposition, sentiment or purposeoption_value- Exact option string a rep can log