Skip to main content
Trellus is an AI dialer and real-time sales coaching platform for outbound sales teams. It plugs into sales engagement platforms such as Salesloft, Outreach, HubSpot and Apollo to power auto-dialing and parallel dialing, and it transcribes and scores every call — producing dispositions, sentiment, objection detection and talk-time analytics for each conversation.

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.
Store your key securely. Treat it like a password and do not share it publicly.
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.
Once you’re done, click Next.

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.
Once you are done configuring, click Next.

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.
Once you are ready, click Next to finalize the setup.

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.
For you to be able to see it on your Catalog, you need at least one successful source run.

Streams and Fields

Below you’ll find all available data streams from Trellus and their corresponding fields:
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 session
  • team_id - Identifier of the Trellus team the session belongs to
  • provisioning_team_id - Identifier of the team that provisioned the phone resource used
  • resource_id - Identifier of the rep/resource that owned the session; joins to user_id on the Users stream
  • started_at - Date and time the session started, used as the incremental replication key
  • conversation_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 chat
  • telephony_customer_call_id - Identifier of the call in the underlying telephony provider
Participants and timing:
  • customer_address - Phone number or address of the customer side of the conversation
  • agent_address - Phone number or address of the sales rep side of the conversation
  • address_type - Kind of address used for the conversation
  • customer_joined / customer_joined_at - Whether and when the customer joined
  • agent_joined / agent_joined_at - Whether and when the sales rep joined; agent_joined false marks a missed call
  • duration - Total duration of the session in seconds
  • end_reason - Reason the session ended
  • customer_words / agent_words - Number of words spoken by each side
  • customer_turn_duration / agent_turn_duration - Total duration in seconds of each side’s speaking turns
Source platform:
  • platform - Sales engagement platform the session was dialled from
  • base_path - Path within the source platform where the session originated
  • client_version - Version of the Trellus client that produced the session
  • phone_type - Type of phone number involved in the session
Dial metrics:
  • 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 connected
  • dial_metric_is_dial - Whether the session was an outbound dial
  • dial_metric_is_inbound - Whether the call was inbound rather than outbound
  • dial_metric_ringing_at - Date and time the call started ringing
  • dial_metric_telephony - Telephony provider that carried the call
  • dial_metric_is_live - Whether the call reached a live conversation
  • dial_metric_live_duration - Duration in seconds of the live conversation; Trellus recommends this over the SIP code as the practical signal of a connected call
  • dial_metric_live_open_ended_at - Date and time the live conversation window ended
  • dial_metric_live_open_known_at - Date and time Trellus first knew the conversation was live
  • dial_metric_live_open_is_bridged - Whether the live conversation was bridged to the sales rep
  • dial_metric_live_open_delay_to_bridge - Delay in seconds between going live and being bridged
  • dial_metric_live_stated_at - Date and time the conversation was marked as live
  • dial_metric_has_voicemail / dial_metric_left_voicemail - Whether the call reached a voicemail box, and whether one was left
  • dial_metric_has_screen / dial_metric_left_screen - Whether the call hit a screening step, and whether a message was left
  • dial_metric_has_menu - Whether the call hit a phone menu (IVR)
  • dial_metric_is_trellus_telephony - Whether the call was carried by Trellus telephony
  • dial_metric_is_autodial - Whether the call was placed by the Trellus auto-dialer
  • dial_metric_parallel_lines - Number of lines dialled in parallel for this session
  • dial_metric_is_bridge_user_first - Whether the sales rep was bridged onto the call before the customer
Call metrics:
  • call_metric_customer_talk_duration / call_metric_agent_talk_duration - Seconds each side spent talking
  • call_metric_customer_tempo / call_metric_agent_tempo - Speaking tempo measured for each side
  • call_metric_customer_dropped_duration / call_metric_agent_dropped_duration - Seconds of each side’s audio that was dropped
Quality signals: booleans flagging what Trellus detected the customer saying — 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 reached
  • sales_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 conversation
  • sales_metric_trellus_disposition - Disposition Trellus inferred automatically
Prior activity with the contact:
  • prior_activity_num_sessions - Number of previous Trellus sessions with the same contact
  • prior_activity_days_since_first - Days elapsed since the first session with the same contact
  • prior_activity_num_out_dials - Number of previous outbound dials to the same contact
Contact data:
  • customer_data_name - Name of the contact on the customer side
  • customer_data_title - Job title of the contact
  • customer_data_occupation - Occupation of the contact
  • customer_data_seniority - Seniority level of the contact
  • customer_data_company_name - Company the contact works for
  • customer_data_company_url - Website of the company the contact works for
Rep-logged outcome:
  • 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 stream
  • user_log_sentiment - Sentiment the sales rep logged for the call
  • user_log_purpose - Purpose the sales rep logged for the call
  • user_log_notes - Free-text notes the sales rep logged for the call
Privacy flags: 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_log
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 to
  • turn_index - Zero-based position of the turn within the session transcript
  • session_started_at - Date and time the parent session started, used as the incremental replication key
  • resource_id - Identifier of the rep/resource that owned the session; joins to user_id on the Users stream
  • is_customer - Whether the turn was spoken by the customer rather than the sales rep
  • speaker - Who spoke the turn: customer or agent
  • turn_start - Start marker of the turn within the session, as returned by the Trellus API
  • turn_end - End marker of the turn within the session, as returned by the Trellus API
  • text - 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.
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; matches resource_id on the Sessions stream
  • user_name - Display name of the user
  • platform_email - Email address of the user on the connected sales engagement platform
  • is_authenticated_user - Whether this is the user whose API key is configured on the source, as opposed to a colleague visible in their directory
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 to
  • automation_type - Which field the option applies to, such as disposition, sentiment or purpose
  • option_value - Exact option string a rep can log