@pipedream/trustpilot
Version:
Pipedream Trustpilot Components
42 lines (39 loc) • 1.52 kB
JavaScript
import {
SORT_OPTIONS,
SOURCE_TYPES,
} from "../../common/constants.mjs";
import common from "../common/polling.mjs";
export default {
...common,
key: "trustpilot-new-conversations",
name: "New Conversations",
description: "Emit new event when a new conversation is started on Trustpilot. This source periodically polls the Trustpilot API to detect new customer-business conversations. Each event contains conversation details including participants, subject, business unit, and creation timestamp. Useful for tracking customer inquiries, support requests, and maintaining real-time communication with customers.",
version: "0.0.2",
type: "source",
dedupe: "unique",
methods: {
...common.methods,
getSourceType() {
return SOURCE_TYPES.NEW_CONVERSATIONS;
},
getPollingMethod() {
return "getConversations";
},
getPollingParams() {
return {
businessUnitId: this.businessUnitId,
limit: 100,
sortBy: SORT_OPTIONS.CREATED_AT_DESC,
offset: 0,
};
},
generateSummary(item) {
const participantName = item.participants?.[0]?.displayName ||
item.consumer?.displayName ||
"Anonymous";
const subject = item.subject || item.title || "New conversation";
const businessUnit = item.businessUnit?.displayName || this.businessUnitId || "Unknown";
return `New conversation "${subject}" started by ${participantName} (${businessUnit})`;
},
},
};