From f3fe75f8d6477e82bd8de91d08a8e078690c26af Mon Sep 17 00:00:00 2001 From: Sriniketh J Date: Mon, 16 Mar 2026 12:09:05 +0530 Subject: [PATCH 1/4] feat: hybrid retrieval approach --- requirements.txt | 4 + search.py | 346 +++ test_queries_results.json | 5226 +++++++++++++++++----------------- test_queries_results.parquet | Bin 0 -> 179918 bytes 4 files changed, 2963 insertions(+), 2613 deletions(-) create mode 100644 search.py create mode 100644 test_queries_results.parquet diff --git a/requirements.txt b/requirements.txt index b196bf1..6140e12 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,3 +6,7 @@ faiss-cpu numpy tqdm pyarrow +haystack-ai>=2.0.0 +qdrant-client>=2.8.0 +fastembed-haystack +fastembed>=0.3.0 diff --git a/search.py b/search.py new file mode 100644 index 0000000..b3e580d --- /dev/null +++ b/search.py @@ -0,0 +1,346 @@ +""" +DevRev Search — BM42 Hybrid Retrieval with Haystack + Qdrant. + +Hybrid search system combining sparse (BM42) and dense (mxbai-embed-large-v1) +embeddings for information retrieval on the DevRev knowledge base. + +Indexing Pipeline: + DocumentCleaner → FastembedSparseDocumentEmbedder (BM42) + → SentenceTransformersDocumentEmbedder (1024-dim) + → DocumentWriter (Qdrant) + +Retrieval Pipeline: + FastembedSparseTextEmbedder (BM42) + SentenceTransformersTextEmbedder + → QdrantHybridRetriever (RRF fusion) +""" + +from __future__ import annotations + +import json +from enum import Enum + +import pandas as pd +from datasets import load_dataset +from tqdm import tqdm +from qdrant_client import QdrantClient + +# Haystack core imports +from haystack import Document, Pipeline +from haystack.components.preprocessors import DocumentCleaner +from haystack.components.writers import DocumentWriter +from haystack.document_stores.types import DuplicatePolicy + +# Qdrant document store and retriever +from haystack_integrations.document_stores.qdrant import QdrantDocumentStore +from haystack_integrations.components.retrievers.qdrant import QdrantHybridRetriever + +# Embedders (pip install fastembed-haystack) +from haystack.components.embedders import ( + SentenceTransformersDocumentEmbedder, + SentenceTransformersTextEmbedder, +) +from haystack_integrations.components.embedders.fastembed import ( + FastembedSparseDocumentEmbedder, + FastembedSparseTextEmbedder, +) + +# ------------------------------------------- +# Configuration +BATCH_SIZE = 256 +EMBEDDING_DIM = 1024 + +# Dense model — 1024-dim +DENSE_MODEL = "mixedbread-ai/mxbai-embed-large-v1" + +# BGE query prefix recommended by the model authors +DENSE_QUERY_PREFIX = "Represent this sentence for searching relevant passages: " + +# Sparse model — BM42 +SPARSE_MODEL = "Qdrant/bm42-all-minilm-l6-v2-attentions" + +# Qdrant connection +QDRANT_HOST = "localhost" +QDRANT_PORT = 6333 + +# Number of documents to retrieve per query +TOP_K = 10 + +# Output files +OUTPUT_JSON = "test_queries_results.json" +OUTPUT_PARQUET = "test_queries_results.parquet" + + +# Dataset helper +class DatasetType(Enum): + ANNOTATED_QUERIES = "annotated_queries" + TEST_QUERIES = "test_queries" + KNOWLEDGE_BASE = "knowledge_base" + + +def get_dataset(dataset_type: DatasetType) -> pd.DataFrame: + """Load a split of the devrev/search dataset and return as a DataFrame. + + Args: + dataset_type: Enum specifying which dataset split to load. + + Returns: + DataFrame containing the requested dataset split. + + Raises: + ValueError: If dataset_type is not recognized. + """ + if dataset_type == DatasetType.ANNOTATED_QUERIES: + df = load_dataset("devrev/search", "annotated_queries") + return df["train"].to_pandas() + elif dataset_type == DatasetType.TEST_QUERIES: + df = load_dataset("devrev/search", "test_queries") + return df["test"].to_pandas() + elif dataset_type == DatasetType.KNOWLEDGE_BASE: + df = load_dataset("devrev/search", "knowledge_base") + return df["corpus"].to_pandas() + else: + raise ValueError(f"Unknown dataset type: {dataset_type}") + + +# Document store +def get_document_store(recreate: bool = False) -> QdrantDocumentStore: + """ + Get or create a QdrantDocumentStore configured for hybrid search. + + Args: + recreate: If True, delete and recreate the collection. Uses raw + QdrantClient to bypass version-mismatch bugs with recreate_index. + + Returns: + Configured QdrantDocumentStore instance. + """ + collection_name = "devrev_search" + + if recreate: + raw_client = QdrantClient( + host=QDRANT_HOST, + port=QDRANT_PORT, + check_compatibility=False, + ) + existing = {c.name for c in raw_client.get_collections().collections} + if collection_name in existing: + raw_client.delete_collection(collection_name) + print(f"✓ Dropped existing Qdrant collection '{collection_name}'.") + raw_client.close() + + return QdrantDocumentStore( + host=QDRANT_HOST, + port=QDRANT_PORT, + index=collection_name, + embedding_dim=EMBEDDING_DIM, + use_sparse_embeddings=True, + recreate_index=recreate, + similarity="cosine", + return_embedding=False, + ) + + +# Indexing pipeline +def build_indexing_pipeline(document_store: QdrantDocumentStore) -> Pipeline: + """ + Build the document indexing pipeline + """ + cleaner = DocumentCleaner( + remove_empty_lines=True, + remove_extra_whitespaces=True, + remove_repeated_substrings=False, + ) + + sparse_doc_embedder = FastembedSparseDocumentEmbedder( + model=SPARSE_MODEL, + batch_size=BATCH_SIZE, + ) + + dense_doc_embedder = SentenceTransformersDocumentEmbedder( + model=DENSE_MODEL, + batch_size=BATCH_SIZE, + ) + + writer = DocumentWriter( + document_store=document_store, + policy=DuplicatePolicy.OVERWRITE, + ) + + indexing = Pipeline() + indexing.add_component("cleaner", cleaner) + indexing.add_component("sparse_doc_embedder", sparse_doc_embedder) + indexing.add_component("dense_doc_embedder", dense_doc_embedder) + indexing.add_component("writer", writer) + + indexing.connect("cleaner.documents", "sparse_doc_embedder.documents") + indexing.connect("sparse_doc_embedder.documents", "dense_doc_embedder.documents") + indexing.connect("dense_doc_embedder.documents", "writer.documents") + + return indexing + + +def index_knowledge_base(document_store: QdrantDocumentStore) -> None: + """ + Load and index the DevRev knowledge base + """ + kb_df = get_dataset(DatasetType.KNOWLEDGE_BASE) + + # Drop rows with null/empty text upfront (DocumentCleaner would skip them anyway) + original_count = len(kb_df) + kb_df = kb_df[kb_df["text"].notna() & (kb_df["text"].str.strip() != "")] + dropped = original_count - len(kb_df) + if dropped: + print(f"⚠ Dropped {dropped} row(s) with null/empty 'text' before indexing.") + + documents: list[Document] = [] + for _, row in kb_df.iterrows(): + doc = Document( + content=row["text"], + meta={ + "doc_id": row["id"], + "title": row["title"], + "source": "devrev/search::knowledge_base", + }, + ) + documents.append(doc) + + print(f"Indexing {len(documents):,} documents …") + + indexing_pipeline = build_indexing_pipeline(document_store) + indexing_pipeline.run({"cleaner": {"documents": documents}}) + + print(f"✓ Indexed {len(documents):,} documents into Qdrant.") + + +# Retrieval pipeline +def build_retrieval_pipeline(document_store: QdrantDocumentStore) -> Pipeline: + """ + Build the hybrid query retrieval pipeline + """ + sparse_text_embedder = FastembedSparseTextEmbedder( + model=SPARSE_MODEL, + ) + + dense_text_embedder = SentenceTransformersTextEmbedder( + model=DENSE_MODEL, + prefix=DENSE_QUERY_PREFIX, + ) + + retriever = QdrantHybridRetriever( + document_store=document_store, + top_k=TOP_K, + ) + + retrieval = Pipeline() + retrieval.add_component("sparse_text_embedder", sparse_text_embedder) + retrieval.add_component("dense_text_embedder", dense_text_embedder) + retrieval.add_component("retriever", retriever) + + retrieval.connect( + "sparse_text_embedder.sparse_embedding", + "retriever.query_sparse_embedding", + ) + retrieval.connect( + "dense_text_embedder.embedding", + "retriever.query_embedding", + ) + + return retrieval + + +def search(query: str, retrieval_pipeline: Pipeline) -> list[dict]: + """ + Execute a hybrid search query and return ranked results + """ + result = retrieval_pipeline.run( + { + "sparse_text_embedder": {"text": query}, + "dense_text_embedder": {"text": query}, + } + ) + + retrievals = [] + for doc in result["retriever"]["documents"]: + retrievals.append( + { + "id": doc.meta.get("doc_id", ""), + "text": doc.content or "", + "title": doc.meta.get("title", ""), + } + ) + + return retrievals + + +# Evaluation on test queries +def run_evaluation( + retrieval_pipeline: Pipeline, + output_json: str = OUTPUT_JSON, + output_parquet: str = OUTPUT_PARQUET, +) -> list[dict]: + """ + Run hybrid retrieval on all test queries and save results + """ + test_df = get_dataset(DatasetType.TEST_QUERIES) + + test_results: list[dict] = [] + + for _, row in tqdm( + test_df.iterrows(), total=len(test_df), desc="Evaluating test queries" + ): + query_id = row["query_id"] + query = row["query"] + + retrievals = search(query, retrieval_pipeline) + + test_results.append( + { + "query_id": query_id, + "query": query, + "retrievals": retrievals, + } + ) + + with open(output_json, "w") as f: + json.dump(test_results, f, indent=2) + print(f"✓ Results saved to {output_json}") + + results_df = pd.DataFrame(test_results) + results_df.to_parquet(output_parquet, index=False) + print(f"✓ Results also saved to {output_parquet}") + + # Display summary + print("=" * 60) + print("Test Queries Results Summary") + print("=" * 60) + print(f"Total queries : {len(test_results)}") + print(f"Retrievals/query : {TOP_K}") + print(f"\nOutput files:") + print(f" - {output_json}") + print(f" - {output_parquet}") + print("\nFormat matches annotated_queries structure:") + print(" - query_id : string") + print(" - query : string") + print(" - retrievals: list of {id, text, title}") + + return test_results + + +# Main driver +def main() -> None: + """ + Run the complete search pipeline: index and retrieve + """ + # Index knowledge base + document_store = get_document_store(recreate=True) + index_knowledge_base(document_store) + + # Build retrieval pipeline + retrieval_pipeline = build_retrieval_pipeline(document_store) + + # Evaluate on test queries + run_evaluation(retrieval_pipeline) + + +if __name__ == "__main__": + main() diff --git a/test_queries_results.json b/test_queries_results.json index 74c199a..2bb9d51 100644 --- a/test_queries_results.json +++ b/test_queries_results.json @@ -4,54 +4,54 @@ "query": "end customer organization name not appearing in ticket or conversation", "retrievals": [ { - "id": "ART-1981_KNOWLEDGE_NODE-30", - "text": "conversation of which you are not the owner, let the owner know to respond. It's beneficial to retain the same point of contact for the duration of the conversation unless the owner refers some another user.\\n* If the conversation has a customer org that's unidentified or is new, add yourself (the customer experience engineer) as the owner of the ticket. Try to find the appropriate owner for the customer org and update the customer record accordingly.\\n* Change the stage of the conversation to", - "title": "Support best practices | Computer for Support Teams | DevRev" + "id": "ART-1978_KNOWLEDGE_NODE-44", + "text": "URL and not on the support portal of some other customer.\\n* Customer admin isn't able to see all the tickets of the organization.\\n\\n + This could happen if the customer isn't logged in on the correct URL. If the customer is logged in on the correct URL, then check if there are any tickets that are reported by the other customers in that organization or not. Check if the customer is added as a customer admin or not by logging in to your DevRev application.\\n* You are not able to add customer", + "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-1981_KNOWLEDGE_NODE-34", - "text": "ticket.\\n* Make sure all tickets have the customer org field populated.\\n* Cancel any internal ticket without a customer org that has been created by a developer. Ask them to create an issue instead.\\n* If a customer raises a feature request that aligns with the product strategy, but needs significant development effort and will not be delivered in the near future, move it to the *accepted* stage, rather than keeping the ticket open. Inform the customer accordingly.\\n* If a customer reports a", - "title": "Support best practices | Computer for Support Teams | DevRev" + "id": "ART-17650_KNOWLEDGE_NODE-8", + "text": "correct team with preserved context\\n* Minimize handoff loss and shorten time-to-resolution\\n\\n**Controlling support entry points**\\n\\nThe company deployed a custom Snap-in that restricts ticket creation to verified email domains. This has:\\n\\n* Cut down on ticket noise\\n* Prevented duplication\\n* Ensured high-quality, accountable issue tracking\\n\\n#### The email Snap-in changed our entire intake game. It's security-conscious by design, and that's crucial for us.\\xe2\\x80\\x9d\\n\\n**Improving", + "title": "American cybersecurity leader unifies security & support with DevRev" }, { - "id": "ART-1953_KNOWLEDGE_NODE-30", - "text": "linked to a conversation\\n-------------------------------\\n\\n* **Trigger**: A ticket is linked to an existing conversation.\\n* **Action**: The system sends out a notification with the linked ticket number.\\n* **Sender**: {Company\\\\_Name} [support@yourdomain.com](mailto:support@yourdomain.com)\\n* **Subject**: \"\"\\n\\n![]()\\n\\nThis email is only sent to the organizations with [Convergence snap-in](https://docs.devrev.ai/automations/converge)\\n\\nChange of", - "title": "Customer email notifications | Computer by DevRev | DevRev" + "id": "ART-4271_KNOWLEDGE_NODE-29", + "text": "end user.\\n\\n## Why you should convert a Conversation to a Ticket\\n\\nConsider converting a conversation to a ticket in these scenarios:\\n\\n * **Complex issues** : When a customer inquiry requires in-depth investigation that can't be resolved in a quick conversation.\\n * **Cross-team collaboration** : Issues requiring input from multiple departments or specialists.\\n * **Escalation needs** : When a conversation needs to be escalated to a higher support tier.\\n * **Feature requests** :", + "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" }, { - "id": "ART-1953_KNOWLEDGE_NODE-29", - "text": "[support@yourdomain.com](mailto:support@yourdomain.com)\\n* **Subject**: \"You are missing messages from \"\\n\\nReply to the customer on a ticket\\n---------------------------------\\n\\n* **Trigger**: When a reply is made to a customer on a ticket.\\n* **Action**: The system sends out a notification to the customer with the reply message.\\n* **Sender**: {Company\\\\_Name} [support@yourdomain.com](mailto:support@yourdomain.com)\\n* **Subject**: \"[{Company\\\\_Name}] Update on TKT-XXX\"\\n\\nTicket", - "title": "Customer email notifications | Computer by DevRev | DevRev" + "id": "ART-2002_KNOWLEDGE_NODE-25", + "text": "about the customer initiating the conversation. Similarly, tickets on DevRev can capture who the ticket was reported by (or reported for).\\n\\nConcepts\\n--------\\n\\nCustomer identity in DevRev includes the following important constructs:\\n\\n* **External User/contact**: Your end user or customer or users associated with organization Accounts or Workspaces.\\n* **Account/workspace**: Any logical grouping that an external user is part of. It could represent a customer account for your B2B product", + "title": "Contacts | Computer for Growth Teams | DevRev" }, { - "id": "ART-1953_KNOWLEDGE_NODE-5", - "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", - "title": "Customer email notifications | Computer by DevRev | DevRev" + "id": "ART-16806_KNOWLEDGE_NODE-27", + "text": "Internal Ticket** from the **Ticket Creation** dropdown.\\n* **Focused UI:** The **Customer Messages** tab is disabled on internal tickets to prevent unintended communication.\\n\\nThis feature supports internal workflows while giving you control over when customer engagement begins.\\n\\n![]()\\xc2\\xa0For more information about *Conversation and Ticket Workflows*, refer to the following articles: \\xe2\\x80\\xa3 [Auto parts to conversation | Automate | Snap-ins](/docs/automations/auto-parts)", + "title": "July 2025 | Changelog | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-63", - "text": "support tickets on behalf of customers\\xe2\\x80\\x94without granting customers access to these tickets. This feature enables internal collaboration while keeping the ticket invisible to the customer until explicitly made external.\\n\\nEven if a ticket contains customer-related information (such as the customer workspace or the **Reported by** field), it remains inaccessible to the customer unless it is explicitly converted into an external ticket. The **Customer Messages** tab is unavailable for", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1986_KNOWLEDGE_NODE-45", + "text": "selected on the ticket is not assigned any SLA.\\n\\n\\xc2\\xa0\\xc2\\xa0 \\xc2\\xa0 - Action: Check your SLA assignment rules or add the customer as an exception to any of your SLAs.\\n\\n![]()\\n\\nThe **SLA Name** is never empty if your organization has a default SLA.\\n\\n1. Verify policy conditions:\\n\\n\\xc2\\xa0\\xc2\\xa0 - If the **SLA Name** is populated but you still see no SLA metrics running on the ticket, the ticket does not satisfy the conditions of any policy within the SLA.\\n\\n\\xc2\\xa0\\xc2\\xa0", + "title": "Service-level agreement | Computer for Support Teams | DevRev" }, { - "id": "ART-1978_KNOWLEDGE_NODE-44", - "text": "URL and not on the support portal of some other customer.\\n* Customer admin isn't able to see all the tickets of the organization.\\n\\n + This could happen if the customer isn't logged in on the correct URL. If the customer is logged in on the correct URL, then check if there are any tickets that are reported by the other customers in that organization or not. Check if the customer is added as a customer admin or not by logging in to your DevRev application.\\n* You are not able to add customer", - "title": "Customer portal | Computer for Support Teams | DevRev" + "id": "ART-2012_KNOWLEDGE_NODE-26", + "text": "customer knows why a new ticket was created. The following fields are automatically set on the follow-up ticket based on the archived ticket:\\n\\n * **Title**\\n * **Customer**\\n * **Reported By**\\n * **Tag** is_followup In addition, the tag has_followup is added to the archived ticket.\\n\\nIf the customer responds to a ticket in the terminal stage for the second time, their message will be added to that ticket and the **Needs response** toggle will be enabled. However, no follow-up tickets", + "title": "Follow-up ticket | Automate | Snap-ins | DevRev" }, { - "id": "ART-1953_KNOWLEDGE_NODE-36", - "text": "conversation](#ticket-linked-to-a-conversation)\\n* [Change of stage of a ticket/conversation](#change-of-stage-of-a-ticketconversation)\\n* [CSAT survey for conversation/ticket](#csat-survey-for-conversationticket)\\n* [Auto customer reply](#auto-customer-reply)\\n* [Auto reply on email](#auto-reply-on-email)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer", - "title": "Customer email notifications | Computer by DevRev | DevRev" + "id": "ART-3208_KNOWLEDGE_NODE-25", + "text": "the target organization. Those marked as **Supported** are eligible for import.\\n\\n| DevRev Object | Sync to DevRev |\\n| --- | --- |\\n| Issue | \\xe2\\x9c\\x85 |\\n| Ticket | \\xe2\\x9c\\x85 |\\n| DevUser | \\xe2\\x9c\\x85 |\\n| Customer | \\xe2\\x9c\\x85 |\\n| Tag | \\xe2\\x9c\\x85 |\\n| Product | \\xe2\\x9c\\x85 |\\n| Capability | \\xe2\\x9c\\x85 |\\n| Enhancement | \\xe2\\x9c\\x85 |\\n| Feature | \\xe2\\x9c\\x85 |\\n| Runnable | \\xe2\\x9c\\x85 |\\n| Links on works | \\xe2\\x9c\\x85 |\\n| Timeline Comment | \\xe2\\x9c\\x85 |\\n| Account |", + "title": "DevRev AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-1953_KNOWLEDGE_NODE-24", - "text": "conversation](#reply-to-the-customer-on-a-conversation)\\n* [Reply to the customer on a ticket](#reply-to-the-customer-on-a-ticket)\\n* [Ticket linked to a conversation](#ticket-linked-to-a-conversation)\\n* [Change of stage of a ticket/conversation](#change-of-stage-of-a-ticketconversation)\\n* [CSAT survey for conversation/ticket](#csat-survey-for-conversationticket)\\n* [Auto customer reply](#auto-customer-reply)\\n* [Auto reply on email](#auto-reply-on-email)\\n\\n1. [Documentation](/docs)\\n3.", - "title": "Customer email notifications | Computer by DevRev | DevRev" + "id": "ART-4271_KNOWLEDGE_NODE-24", + "text": "[Support](/docs/product/support?)\\n 4. [Conversations](/docs/product/conversation?)\\n 5. [Convert Conversations to Tickets](/docs/product/Conversation-Tickets?)\\n\\n# Convert Conversations to Tickets\\n\\nYou can now convert conversations from PLuG and Slack directly into tickets. Previously, conversations were only linked to tickets. This update streamlines workflows and enhances the customer experience.\\n\\nFor conversations originating from PLuG or Slack, the **Link to Ticket** functionality", + "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" }, { - "id": "ART-1953_KNOWLEDGE_NODE-31", - "text": "stage of a ticket/conversation\\n----------------------------------------\\n\\n* **Trigger**: When there\\'s a change of stage in a ticket or conversation.\\n* **Action**: The system sends out a notification detailing the Ticket/Conversation number and stage change.\\n* **Sender**: {Company\\\\_Name} [support@yourdomain.com](mailto:support@yourdomain.com)\\n* **Subject**:\\n + For ticket: \"[{Company\\\\_Name}] Update on TKT-XXX - Ticket Title\"\"\"\\n + For conversations:", - "title": "Customer email notifications | Computer by DevRev | DevRev" + "id": "ART-2024_KNOWLEDGE_NODE-27", + "text": "help now... ask again in 5d\\n\\nSample response:\\n\\n> I am unable to assist you at the moment, however please reach out to me again in five days and I will be happy to help you.\\n\\n### Summarize\\n\\nUsing the summarize command, you can sum up the entire conversation. It applies to the following:\\n\\n* Conversation\\n* Tickets\\n* Issues\\n* Part\\n* Workspace\\n* Customer\\n* Account\\n\\nSample response:\\n\\n> **Summary:**\\n>\\n> * Rahul from DummyOrg is having difficulty installing the Plug Widget.\\n> *", + "title": "Slash commands | Automate | Snap-ins | DevRev" } ] }, @@ -60,53 +60,53 @@ "query": "Android SDK session generated with Unknown user", "retrievals": [ { - "id": "ART-2898_KNOWLEDGE_NODE-10", - "text": "identification\\n\\nThe anonymous identification method allows you to create an anonymous user with an optional or random user identifier, ensuring that no other data is stored or associated with the user.\\n\\n###### Kotlin\\n\\n###### Java\\n\\n[code]\\n\\n 1| DevRev.identifyAnonymousUser( \\n ---|--- \\n 2| userId: String \\n 3| )\\n[/code] \\n \\n### Unverified identification\\n\\nThe unverified identification method identifies users with a unique identifier, but it does not verify their", - "title": "Android integration \u2014 DevRev | Docs" - }, - { - "id": "ART-15513_KNOWLEDGE_NODE-1", - "text": "[Exchange your AAT for a session token](/sdks/android/features#exchange-your-aat-for-a-session-token)\\n* [Identify the verified user](/sdks/android/features#identify-the-verified-user)\\n* [Updating the user](/sdks/android/features#updating-the-user)\\n* [Logout](/sdks/android/features#logout)\\n* [Identity model](/sdks/android/features#identity-model)\\n* [Properties](/sdks/android/features#properties)\\n* [User traits](/sdks/android/features#user-traits)\\n* [Organization", - "title": "Features | DevRev | Docs" + "id": "ART-15792_KNOWLEDGE_NODE-13", + "text": "on data\\n\\nLight-weight SDK: Collect session recordings without affecting speed\\n\\nSource: [DevRev User Observability](https://devrev.ai/plug-observability)'", + "title": "DevRev Products and Agents" }, { "id": "ART-2898_KNOWLEDGE_NODE-1", - "text": "identification](/public/sdks/mobile/android#unverified-identification)\\n * [Update user information](/public/sdks/mobile/android#update-user-information)\\n * [PLuG support chat](/public/sdks/mobile/android#plug-support-chat)\\n * [Analytics](/public/sdks/mobile/android#analytics)\\n * [Session analytics](/public/sdks/mobile/android#session-analytics)\\n * [Opt in or out](/public/sdks/mobile/android#opt-in-or-out)\\n * [Session recording](/public/sdks/mobile/android#session-recording)\\n *", + "text": "identification](/public/sdks/mobile/android#unverified-identification)\\n * [Update user information](/public/sdks/mobile/android#update-user-information)\\n * [PLuG support chat](/public/sdks/mobile/android#plug-support-chat)\\n * [Analytics](/public/sdks/mobile/android#analytics)\\n * [Session analytics](/public/sdks/mobile/android#session-analytics)\\n * [Opt in or out](/public/sdks/mobile/android#opt-in-or-out)\\n * [Session recording](/public/sdks/mobile/android#session-recording)\\n *", "title": "Android integration \u2014 DevRev | Docs" }, { - "id": "ART-15506_KNOWLEDGE_NODE-29", - "text": "window.plugSDK.shutdown(); |\\n| 6 | } |\\n| 7 | window.plugSDK.init({ |\\n| 8 | app_id: appId, |\\n| 9 | |\\n| 10 | // Pass the session details |\\n| 11 | session_recording_options: { |\\n| 12 | sessionDetails: { |\\n| 13 | sessionId: sessionId, |\\n| 14 | tabId: tabId, |\\n| 15 | }, |\\n| 16 | }, |\\n| 17 | |\\n| 18 | // With session token |\\n| 19 | session_token: sessionToken, |\\n| 20 | // Or without session token |\\n| 21 | identity: {}, |\\n| 22 | }); |\\n```\\n\\nWas this page", - "title": "Identify your users with Plug | DevRev | Docs" + "id": "ART-2982_KNOWLEDGE_NODE-7", + "text": "SDK will automatically create an anonymous user for you immediately after the SDK is configured.\\n\\n#####\\n\\nThe `Identity` structure allows for custom fields in the user, organization, and account traits. These fields must be configured through the DevRev app before they can be utilized. For more information, refer to [Object customization](https://devrev.ai/docs/product/object-customization).\\n\\nYou can select from the following methods to identify users within your application:\\n\\n###", + "title": "React Native integration \u2014 DevRev | Docs" }, { - "id": "ART-4255_KNOWLEDGE_NODE-10", - "text": "DevRev.identifyAnonymousUser( \\n ---|--- \\n 2| userId: String \\n 3| )\\n[/code] \\n \\n### Unverified identification\\n\\nThe unverified identification method identifies users with a unique identifier, but it does not verify their identity with the DevRev backend.\\n\\n###### Kotlin\\n\\n###### Java\\n\\n[code]\\n\\n 1| DevRev.identifyUnverifiedUser( \\n ---|--- \\n 2| identity: Identity \\n 3| )\\n[/code] \\n \\nThe function accepts the `Identity` object, where the user", - "title": "DevRev SDK for Android \u2014 DevRev | Docs" + "id": "ART-12476_KNOWLEDGE_NODE-3", + "text": "faster load times of the SDK, reduced latency, and higher availability for end-users across regions\\n\\nSystem status transparency: Stay informed about system performance with proactive notifications through our status page at [https://status.devrev.ai/](https://status.devrev.ai/)\\n\\nSupercharged performance & scale\\n\\nA platform that grows with you without any hiccups\\n\\nRobust session ingestion: Our battle-tested system handles global peaks of 1.5 million requests/minute and regularly manages", + "title": "The Future of Sessions - Powered By DevRev" }, { - "id": "ART-15506_KNOWLEDGE_NODE-4", - "text": "RevUser Session Token(5) Return Session Token(6) Call plugSDK.init() with token\\n\\nGenerate an application access token\\n------------------------------------\\n\\n1. In DevRev, go to **Settings > Support > Plug Tokens** through the settings icon on the top-left corner.\\n2. Under the **Application access tokens** panel, click **New token** and copy the token that\\xe2\\x80\\x99s displayed.\\n\\n##### \\n\\nEnsure you copy your access token, as you cannot view it again.\\n\\nGenerate a session", - "title": "Identify your users with Plug | DevRev | Docs" + "id": "ART-2898_KNOWLEDGE_NODE-8", + "text": "earlier.\\n\\n 2. Ensure that the custom application is specified in the `AndroidManifest.xml`, as shown below:\\n[code] 1| \\n 3| \\n[/code] \\n \\n\\n## Identification\\n\\nTo use certain features of the DevRev SDK, user identification is required. You can select from the following methods to identify users within your application:\\n\\n#####\\n\\nThe identification function should be placed appropriately", + "title": "Android integration \u2014 DevRev | Docs" }, { - "id": "ART-4255_KNOWLEDGE_NODE-1", - "text": "information](/public/sdks/android#update-user-information)\\n * [PLuG support chat](/public/sdks/android#plug-support-chat)\\n * [Analytics](/public/sdks/android#analytics)\\n * [Session analytics](/public/sdks/android#session-analytics)\\n * [Opt in or out](/public/sdks/android#opt-in-or-out)\\n * [Session recording](/public/sdks/android#session-recording)\\n * [Session properties](/public/sdks/android#session-properties)\\n * [Timers](/public/sdks/android#timers)\\n * [Screen", - "title": "DevRev SDK for Android \u2014 DevRev | Docs" + "id": "ART-15515_KNOWLEDGE_NODE-5", + "text": "page\\n\\nIdentification\\n--------------\\n\\nTo access certain features of the DevRev SDK, user identification is required.\\n\\nThe identification function should be placed appropriately in your app after the user logs in. If you have the user information available at app launch, call the function after the `DevRev.configure(appID:)` method.\\n\\n##### \\n\\nIf you haven\\xe2\\x80\\x99t previously identified the user, the DevRev SDK will automatically create an anonymous user for you immediately after the", + "title": "Features | DevRev | Docs" }, { - "id": "ART-4255_KNOWLEDGE_NODE-33", - "text": "\\n**Solution** : Confirm that user identification is performed before using the `showSupport()` function or XML button.\\n\\n * **Issue** : Incorrect operation due to `App ID` and `secret` misconfiguration. \\n**Solution** : Ensure correct functionality by double-checking that both `App ID` and `secret` values are accurately configured in your application or sample app.\\n\\nWas this page helpful?YesNo\\n\\n[DevRev SDK for iOSUp Next](/public/sdks/ios)\\n\\n[Built", - "title": "DevRev SDK for Android \u2014 DevRev | Docs" + "id": "ART-12475_KNOWLEDGE_NODE-1", + "text": ".\\n\\nProceed to integrate the DevRev PLuG SDK. For specific platform migration guides, refer to the following resources:\\n\\nAndroid SDK migration guide: Android Migration Guide\\n\\niOS SDK migration guide: iOS Migration Guide\\n\\nReact Native & Expo SDK migration guide: React Native Migration Guide\\n\\nCordova SDK migration guide: Cordova Migration Guide\\n\\nWeb SDK migration guide: Web Migration Guide\\n\\nOnce the integration is complete, you will be able to view sessions on the Session", + "title": "Migrating from UserExperior to DevRev" }, { - "id": "ART-4255_KNOWLEDGE_NODE-8", - "text": "Identification\\n\\nTo use certain features of the DevRev SDK, user identification is required. You can select from the following methods to identify users within your application:\\n\\n#####\\n\\nThe identification function should be placed appropriately in your app after the user logs in. If you have the user information available at app launch, call the function after the `DevRev.configure(context, appID)` method.\\n\\n#####\\n\\nThe `Identity` structure allows for custom fields in the user,", - "title": "DevRev SDK for Android \u2014 DevRev | Docs" + "id": "ART-15513_KNOWLEDGE_NODE-0", + "text": "b'Features | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\nOn this page\\n\\n* [Identification](/sdks/android/features#identification)\\n* [Identify an anonymous user](/sdks/android/features#identify-an-anonymous-user)\\n* [Identify an unverified user](/sdks/android/features#identify-an-unverified-user)\\n* [Identify a verified user](/sdks/android/features#identify-a-verified-user)\\n* [Generate an AAT](/sdks/android/features#generate-an-aat)\\n*", + "title": "Features | DevRev | Docs" }, { - "id": "ART-2898_KNOWLEDGE_NODE-9", - "text": "in your app after the user logs in. If you have the user information available at app launch, call the function after the `DevRev.configure(context, appID)` method.\\n\\n#####\\n\\nThe `Identity` structure allows for custom fields in the user, organization, and account traits. These fields must be configured through the DevRev app before they can be utilized. For more information, refer to [Object customization](https://devrev.ai/docs/product/object-customization).\\n\\n### Anonymous", + "id": "ART-12449_KNOWLEDGE_NODE-2", + "text": "identification](/public/sdks/android/features#verified-identification)\\n * [Updating the user](/public/sdks/android/features#updating-the-user)\\n * [Logout](/public/sdks/android/features#logout)\\n * [PLuG support chat](/public/sdks/android/features#plug-support-chat)\\n * [Creating a new conversation](/public/sdks/android/features#creating-a-new-conversation)\\n * [In-app link handling](/public/sdks/android/features#in-app-link-handling)\\n *", + "title": "Features \u2014 DevRev | Docs" + }, + { + "id": "ART-2898_KNOWLEDGE_NODE-21", + "text": "session properties in scenarios such as user logout or when the session ends, use the following method:\\n\\n###### Kotlin\\n\\n###### Java\\n\\n[code]\\n\\n 1| DevRev.clearSessionProperties() \\n ---|---\\n[/code] \\n \\n### Timers\\n\\nThe DevRev SDK offers a timer mechanism to measure the time spent on specific tasks, allowing you to track events such as response time, loading time, or any other duration-based metrics.\\n\\nThe mechanism utilizes balanced start and stop methods, both of which", "title": "Android integration \u2014 DevRev | Docs" } ] @@ -116,53 +116,53 @@ "query": "email reply received on wrong ticket", "retrievals": [ { - "id": "ART-1953_KNOWLEDGE_NODE-29", - "text": "[support@yourdomain.com](mailto:support@yourdomain.com)\\n* **Subject**: \"You are missing messages from \"\\n\\nReply to the customer on a ticket\\n---------------------------------\\n\\n* **Trigger**: When a reply is made to a customer on a ticket.\\n* **Action**: The system sends out a notification to the customer with the reply message.\\n* **Sender**: {Company\\\\_Name} [support@yourdomain.com](mailto:support@yourdomain.com)\\n* **Subject**: \"[{Company\\\\_Name}] Update on TKT-XXX\"\\n\\nTicket", - "title": "Customer email notifications | Computer by DevRev | DevRev" - }, - { - "id": "ART-1979_KNOWLEDGE_NODE-36", - "text": "contact](https://docs.devrev.ai/product/plug) must be created first for any emails to be added as subscribers.\\n* **Needs response**: Set to true whenever a new customer message is received on the ticket to ensure that no customer messages are missed. If a particular customer message does not need a response, the **Needs response** toggle can be turned off by the user. Turning off the **Needs response** toggle does not affect the SLA metrics.\\n\\nThese attributes can be effectively used in", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1978_KNOWLEDGE_NODE-43", + "text": "with that email or not.\\n + This could also be because your customer hasn't logged in.\\n* Customer isn't able to view the tickets they have created.\\n\\n + Check if there are any reported tickets by that customer. You can do so by logging into your DevRev app and then going into the tickets section. Here you can filter based on **reported by** and see if any tickets have been reported by the customer who isn't able to view the tickets.\\n + Check if the customer has logged in on the correct", + "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-1986_KNOWLEDGE_NODE-37", - "text": "a customer * The ticket was created by a customer experience engineer but reported by a customer | A new comment on the ticket by the customer after the customer experience engineer replied | * The agent added a comment to the customer chat * The ticket is moved to Awaiting Customer Response, or the ticket is closed | | |\\n| Full resolution time | * Ticket created by a customer * The ticket was created by a customer experience engineer but reported by a customer | Ticket created | The", - "title": "Service-level agreement | Computer for Support Teams | DevRev" + "id": "ART-3207_KNOWLEDGE_NODE-38", + "text": "Step 2: Define the Primary Use Case\\n\\nChoose how DevRev should interpret emails sent to the primary address:\\n\\n* Choose between generating a **Ticket or a Conversation** from the incoming email.\\n\\nToggle on **Set email as the default channel for tickets** to ensure that:\\n\\n* Customer chat replies are sent via email as well as to the original source of the channel.\\n\\n### Step 3: Add Additional Support Emails\\n\\nYou can add more addresses to handle support requests.\\n\\n* **Tickets**: Emails", + "title": "Email snap-in configuration | Email | Integrate | Snap-ins | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-61", - "text": "following scenarios can lead to the creation of follow up ticket:\\n\\n* Customers communicated on an archived/immutable ticket from any channel such as email.\\n* Customer communicated on a merged ticket and the primary ticket is also archived.\\n\\nAfter creation of a follow up ticket the customer messages will reflect only on the new followup ticket and the customer will continue to see response on the same thread in channels like email & slack. The user can continue responding on the new follow", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-2027_KNOWLEDGE_NODE-43", + "text": "recipients in the **To** or **Cc**\\n\\nThreading\\n---------\\n\\nEmail integration preserves threading by using the **References** and **In-Reply-To** email headers and by correlating the email **Subject** field and the ticket title. If either the ticket title or the email subject is changed at any point after ticket creation, follow up emails may cause a new ticket to be created.\\n\\n![]()\\n\\nOnce a ticket is created from an email, it is recommended to avoid changing the email subject or the", + "title": "Email | Integrate | Snap-ins | DevRev" }, { - "id": "ART-1953_KNOWLEDGE_NODE-5", - "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", + "id": "ART-1953_KNOWLEDGE_NODE-29", + "text": "[support@yourdomain.com](mailto:support@yourdomain.com)\\n* **Subject**: \"You are missing messages from \"\\n\\nReply to the customer on a ticket\\n---------------------------------\\n\\n* **Trigger**: When a reply is made to a customer on a ticket.\\n* **Action**: The system sends out a notification to the customer with the reply message.\\n* **Sender**: {Company\\\\_Name} [support@yourdomain.com](mailto:support@yourdomain.com)\\n* **Subject**: \"[{Company\\\\_Name}] Update on TKT-XXX\"\\n\\nTicket", "title": "Customer email notifications | Computer by DevRev | DevRev" }, { - "id": "ART-2027_KNOWLEDGE_NODE-36", - "text": "Receives Replies From | Thread is visible in portal |\\n| --- | --- | --- | --- |\\n| Email to support | [support@yourcompany.com](mailto:support@yourcompany.com) | [support@yourcompany.com](mailto:support@yourcompany.com) | Yes |\\n| Ticket via Customer Portal or Plug widget (Channel on ticket = Plug or Portal) | Ticket form on Customer Portal or conversation converted to ticket from Plug widget | - If Channel is set as email in the config, replies are sent via the configured email address. -", + "id": "ART-2027_KNOWLEDGE_NODE-29", + "text": "your communication requirements.\\n\\nThe visibility and interaction capabilities with a ticket in DevRev are determined by the user's role and how they were added to the email thread.\\n\\nEnd users\\n\\n* Original sender\\n\\n *Added to:* **Reported by** or **Email members** field.\\n\\n *Is able to:* View the ticket on the portal and reply via email.\\n* An end user in the same organization\\n\\n *Added to:* **To** or **CC** fields in the email thread; **Reported by** field, **Email members** field,", "title": "Email | Integrate | Snap-ins | DevRev" }, { - "id": "ART-1953_KNOWLEDGE_NODE-24", - "text": "conversation](#reply-to-the-customer-on-a-conversation)\\n* [Reply to the customer on a ticket](#reply-to-the-customer-on-a-ticket)\\n* [Ticket linked to a conversation](#ticket-linked-to-a-conversation)\\n* [Change of stage of a ticket/conversation](#change-of-stage-of-a-ticketconversation)\\n* [CSAT survey for conversation/ticket](#csat-survey-for-conversationticket)\\n* [Auto customer reply](#auto-customer-reply)\\n* [Auto reply on email](#auto-reply-on-email)\\n\\n1. [Documentation](/docs)\\n3.", + "id": "ART-1978_KNOWLEDGE_NODE-28", + "text": "eliminating the need for scattered email chains.\\n* **Improved collaboration**: Customer admins can access and manage tickets from their team, enabling seamless collaboration and knowledge sharing.\\n\\nFeatures\\n--------\\n\\n### Ticket creation, tracking, and team collaboration\\n\\n* Customers can create tickets with relevant details, such as issue description, priority, and category.\\n + To create a ticket, go to **+ Ticket**. Enter a title and description for the ticket and click **Submit**.\\n*", + "title": "Customer portal | Computer for Support Teams | DevRev" + }, + { + "id": "ART-1953_KNOWLEDGE_NODE-30", + "text": "linked to a conversation\\n-------------------------------\\n\\n* **Trigger**: A ticket is linked to an existing conversation.\\n* **Action**: The system sends out a notification with the linked ticket number.\\n* **Sender**: {Company\\\\_Name} [support@yourdomain.com](mailto:support@yourdomain.com)\\n* **Subject**: \"\"\\n\\n![]()\\n\\nThis email is only sent to the organizations with [Convergence snap-in](https://docs.devrev.ai/automations/converge)\\n\\nChange of", "title": "Customer email notifications | Computer by DevRev | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-52", - "text": "don\\xe2\\x80\\x99t forget to give \\xf0\\x9f\\x91\\x8d on the suggestion if you like it or \\xf0\\x9f\\x91\\x8e to dislike it.\\n\\n![]()\\n\\nDuplicate ticket merging\\n------------------------\\n\\nDuplicate tickets in a support system pose a significant challenge by creating inefficiencies, increasing the workload for support agents, and negatively impacting user experience. These tickets often result from user frustration or misunderstandings of the resolution process, leading to confusion and disrupting", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1981_KNOWLEDGE_NODE-26", + "text": "a small number of tags to help categorize tickets. For example, at DevRev we have the following: bug, feature-request, other-request, question, and incident.\\n* Designate one or more customer experience engineers to be on call. Add them to the **Support** group inside **Settings > Groups** and as default owner in the **Support Routing** snap-in. Default owners are notified through email and the DevRev app as soon as a new conversation is started.\\n\\nMonitor the inbox\\n-----------------\\n\\n*", + "title": "Support best practices | Computer for Support Teams | DevRev" }, { - "id": "ART-1953_KNOWLEDGE_NODE-35", - "text": "installed [Auto-reply snap-in](https://docs.devrev.ai/automations/auto-reply).\\n\\n[PreviousUpdates](/docs/product/updates)[NextRoles](/docs/product/roles)\\n\\n#### On this page\\n\\n* [White-label customer email notifications](#whitelabel-customer-email-notifications)\\n* [Reply to the customer on a conversation](#reply-to-the-customer-on-a-conversation)\\n* [Reply to the customer on a ticket](#reply-to-the-customer-on-a-ticket)\\n* [Ticket linked to a", - "title": "Customer email notifications | Computer by DevRev | DevRev" + "id": "ART-2012_KNOWLEDGE_NODE-26", + "text": "customer knows why a new ticket was created. The following fields are automatically set on the follow-up ticket based on the archived ticket:\\n\\n * **Title**\\n * **Customer**\\n * **Reported By**\\n * **Tag** is_followup In addition, the tag has_followup is added to the archived ticket.\\n\\nIf the customer responds to a ticket in the terminal stage for the second time, their message will be added to that ticket and the **Needs response** toggle will be enabled. However, no follow-up tickets", + "title": "Follow-up ticket | Automate | Snap-ins | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-47", - "text": "validate the fix with the user and then to *resolved*. If the user wants to cancel the ticket then the stage moves to *canceled*.\\n\\n**Closed**\\n\\n* *Canceled* (C)\\n\\n The ticket is determined to be invalid either by the user or the customer experience engineer. In certain scenarios, a ticket may have been created by accident and may be canceled by the creator. In other scenarios, garbage tickets may be created through automation or because of spam. Automation or the customer experience", + "id": "ART-1979_KNOWLEDGE_NODE-61", + "text": "following scenarios can lead to the creation of follow up ticket:\\n\\n* Customers communicated on an archived/immutable ticket from any channel such as email.\\n* Customer communicated on a merged ticket and the primary ticket is also archived.\\n\\nAfter creation of a follow up ticket the customer messages will reflect only on the new followup ticket and the customer will continue to see response on the same thread in channels like email & slack. The user can continue responding on the new follow", "title": "Tickets | Computer for Support Teams | DevRev" } ] @@ -172,54 +172,54 @@ "query": "manage access and privileges in DevRev", "retrievals": [ { - "id": "ART-1958_KNOWLEDGE_NODE-24", - "text": "policies](#mfz-policies)\\n* [Sharing](#sharing)\\n* [Vista privileges](#vista-privileges)\\n\\n1. [Documentation](/docs)\\n3. [Computer by DevRev](/docs/intro)\\n[Access control](/docs/product/access-control)\\n\\nAccess control\\n==============\\n\\nAccess control in DevRev is a system that authorizes an actor to perform actions on different targets within the application. In this context, an actor is any entity that interacts with the app, such as an organization member, a customer, a system user, or a", - "title": "Access control | Computer by DevRev | DevRev" + "id": "ART-12584_KNOWLEDGE_NODE-13", + "text": "analytical and time management skills.\\n * Self-motivated, goal-oriented, and able to work independently in a fast-paced environment. \\n \\n\\n**Benefits**\\n\\n * Immense personal and professional development, and career growth opportunities.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the earth\\xe2\\x80\\x99s most customer-centric companies. Our mission is to leverage", + "title": "DevRev Careers | Demand Generation Manager" }, { - "id": "ART-1955_KNOWLEDGE_NODE-46", - "text": "admins on revus.\\n\\n Privileges: revu object ['CREATE', 'READ', 'UPDATE', 'DELETE']\\n* *devo Admin:* Contains privileges for admins on devos.\\n\\n Privileges: devo object ['CREATE', 'READ', 'UPDATE', 'DELETE']\\n* *flow Admin:* Contains privileges for admins on flows.\\n\\n Privileges: flow object ['CREATE', 'READ', 'UPDATE', 'DELETE']\\n* *webhook Admin:* Contains privileges for admins on webhooks.\\n\\n Privileges: webhook object ['CREATE', 'READ', 'UPDATE', 'DELETE']\\n* *product Admin:*", + "id": "ART-1955_KNOWLEDGE_NODE-0", + "text": "b\"Default privileges by group | Roles | Computer by DevRev | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n +", "title": "Default privileges by group | Roles | Computer by DevRev | DevRev" }, { - "id": "ART-1963_KNOWLEDGE_NODE-1", - "text": "[Groups](/docs/product/groups)\\n + [Parts & trails](/docs/product/parts)\\n + [Vistas](/docs/product/vistas)\\n\\n - [Vista Reports](/docs/product/vista-reports)\\n - [Board view](/docs/product/board-view)\\n + [Tasks](/docs/product/tasks)\\n + [Updates](/docs/product/updates)\\n + [Customer email notifications](/docs/product/customer-emails)\\n + [Roles](/docs/product/roles)\\n\\n - [Default privileges by group](/docs/product/privs)\\n + [Access control](/docs/product/access-control)\\n +", - "title": "Accessing DevRev | Computer by DevRev | DevRev" + "id": "ART-16570_KNOWLEDGE_NODE-8", + "text": "access\\n--------------------------------------------------------------\\n\\n**The Transformation Journey**\\n\\nThe shift from FAME\\'s previous fragmented information landscape to DevRev\\'s unified memory represented a fundamental change in how teams work. What once required navigating multiple platforms, piecing together incomplete information, and spending hours searching for answers became as simple as having a conversation.\\n\\nDevRev\\'s AirSync technology seamlessly ingested FAME\\'s existing", + "title": "FAME transforms information access with AI-powered enterprise search" }, { - "id": "ART-1958_KNOWLEDGE_NODE-23", - "text": "2025](/docs/changelog/_2025-06-01)\\n + [May 2025](/docs/changelog/_2025-05-01)\\n + [March and April 2025](/docs/changelog/_2025-04-01)\\n + [February 2025](/docs/changelog/_2025-02-01)\\n* [Developer \\xe2\\x86\\x97\\xef\\xb8\\x8f](https://developer.devrev.ai/)\\n* [DevRevU \\xe2\\x86\\x97\\xef\\xb8\\x8f](/docs/DevRevU)\\n\\n + [Product demos](/docs/DevRevU/demos)\\n\\nOn this page\\n\\n* [Privilege determination](#privilege-determination)\\n* [Granting access permissions](#granting-access-permissions)\\n* [MFZ", - "title": "Access control | Computer by DevRev | DevRev" + "id": "ART-17233_KNOWLEDGE_NODE-13", + "text": "and groups.\\n\\n##### \\n\\nOnly 1-way sync (from the external system to DevRev) is supported for authorization policy.\\n\\n### Object fields\\n\\nThe Authorization policy object supports the following fields:\\n\\n* `groups` (optional): A list of group identifiers from the external system to which this policy applies.\\n* `users` (optional): A list of user identifiers from the external system to which this policy applies.\\n* `targets`: Defines the DevRev record types the permissions apply to. It uses", + "title": "Permissions | DevRev | Docs" }, { - "id": "ART-1955_KNOWLEDGE_NODE-66", - "text": "Privileges: devu object ['CREATE', 'READ', 'UPDATE', 'DELETE']\\n* *revu Admin:* Contains privileges for admins on revus.\\n\\n Privileges: revu object ['CREATE', 'READ', 'UPDATE', 'DELETE']\\n* *devo Admin:* Contains privileges for admins on devos.\\n\\n Privileges: devo object ['CREATE', 'READ', 'UPDATE', 'DELETE']\\n* *flow Admin:* Contains privileges for admins on flows.\\n\\n Privileges: flow object ['CREATE', 'READ', 'UPDATE', 'DELETE']\\n* *webhook Admin:* Contains privileges for admins on", - "title": "Default privileges by group | Roles | Computer by DevRev | DevRev" + "id": "ART-15203_KNOWLEDGE_NODE-10", + "text": "Technical knowledge of web solutions including APIs and Webhooks. Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n* Outstanding communication (written and verbal), with fluency in English.\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who", + "title": "DevRev Careers | Senior Customer Success Manager" }, { - "id": "ART-1955_KNOWLEDGE_NODE-93", - "text": "Teams](/for-support-teams)\\n* [For Builders](/for-builders)\\n* [For Customers](/for-customers)\\n* [For User Insights](/for-user-insights)\\n* [Marketplace](https://marketplace.devrev.ai/)\\n\\nResources\\n\\n* [Blog](/blog)\\n* [Our Customers](/case-study)\\n* [Snap-In Extensions](https://developer.devrev.ai/public/snapin-development/concepts)\\n* [DevRevU training](/docs/DevRevU)\\n* [Documentation](https://docs.devrev.ai/)\\n* [API References](https://docs.devrev.ai/api/)\\n\\nCompany\\n\\n*", + "id": "ART-1955_KNOWLEDGE_NODE-66", + "text": "Privileges: devu object ['CREATE', 'READ', 'UPDATE', 'DELETE']\\n* *revu Admin:* Contains privileges for admins on revus.\\n\\n Privileges: revu object ['CREATE', 'READ', 'UPDATE', 'DELETE']\\n* *devo Admin:* Contains privileges for admins on devos.\\n\\n Privileges: devo object ['CREATE', 'READ', 'UPDATE', 'DELETE']\\n* *flow Admin:* Contains privileges for admins on flows.\\n\\n Privileges: flow object ['CREATE', 'READ', 'UPDATE', 'DELETE']\\n* *webhook Admin:* Contains privileges for admins on", "title": "Default privileges by group | Roles | Computer by DevRev | DevRev" }, { - "id": "ART-1955_KNOWLEDGE_NODE-29", - "text": "revUsers for revUsers to view there revUsers with same email.\\n\\n Privileges: revu object ['READ']\\n* *RevUser License Viewer:* A role that enables a user to view licenses assigned to them.\\n\\n Privileges: license\\\\_assignment object ['READ']\\n\\n\\xe2\\x80\\x9cPlatform Users\\xe2\\x80\\x9d group\\n----------------------\\n\\nGroup for all internal employees, includes default privileges to do common operations.\\n\\n**Privileges:**\\n\\n* *Devu Self Interactor:* Contains privileges on user for members of", - "title": "Default privileges by group | Roles | Computer by DevRev | DevRev" + "id": "ART-1966_KNOWLEDGE_NODE-31", + "text": "\"DevRev\" that you created earlier under Enterprise applications. Within the application, go to **Users and Groups** and assign the users who can access the app.\\n\\nConfigure DevRev to use your identity provider\\n----------------------------------------------\\n\\nAfter registering DevRev as an application in your identity provider, you need to create an authentication connection in DevRev that links to your identity provider. This connection enables DevRev to authenticate users through your", + "title": "External identity provider setup | Computer by DevRev | DevRev" }, { - "id": "ART-1955_KNOWLEDGE_NODE-87", - "text": "['CREATE', 'READ', 'UPDATE', 'DELETE']\\n* *credit revuser admin:* Contains workspace billing admin privileges for credit.\\n\\n Privileges: credit object ['CREATE', 'READ', 'UPDATE', 'DELETE']\\n* *RevOrg Billing Admin AccountCommerceDetails Manager:* Contains workspace billing admin privileges for accountCommerceDetails objects.\\n\\n Privileges: account\\\\_commerce\\\\_details object ['READ', 'UPDATE']\\n* *RevOrg Billing Admin License Assignment Manager:* Contains workspace billing admin privileges", - "title": "Default privileges by group | Roles | Computer by DevRev | DevRev" + "id": "ART-16798_KNOWLEDGE_NODE-9", + "text": "skills are also valued.\\n\\n* Outstanding communication (written and verbal), with fluency in English.\\n\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the earth\\xe2\\x80\\x99s most customer-centric companies. Our mission is", + "title": "DevRev Careers | Partner Success Manager" }, { - "id": "ART-1955_KNOWLEDGE_NODE-95", - "text": "Status](/status)\\n\\n\\xc2\\xa9 2025 DevRev Inc.\"", - "title": "Default privileges by group | Roles | Computer by DevRev | DevRev" + "id": "ART-15962_KNOWLEDGE_NODE-9", + "text": "areas.\\n\\n**Preferred Qualifications** \\nList additional skills, experience, or attributes that are advantageous but not required.\\n\\n* MBA or related advanced degree.\\n* 10+ years of experience in software product marketing, with direct experience in AI, large language models, machine learning, or related fields preferred.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the", + "title": "DevRev Careers | Senior Product Marketing Manager" }, { - "id": "ART-1955_KNOWLEDGE_NODE-55", - "text": "Contact Admin field access role\\n\\n Privileges: revu object None\\n* *Vista Creator:* A role that allows a user to create a vista\\n\\n Privileges: vista object ['CREATE']\\n* *Vista Owner:* A role that allows the creator to view, edit and delete a vista\\n\\n Privileges: vista object ['READ', 'UPDATE', 'DELETE']\\n* *Issue Admin Field Access:* Issue admin field access role\\n\\n Privileges: issue object None\\n* *Dashboard Admin:* A role that allows CRUDL operations to admins\\n\\n Privileges:", - "title": "Default privileges by group | Roles | Computer by DevRev | DevRev" + "id": "ART-1170_KNOWLEDGE_NODE-5", + "text": "DevRev APIs on behalf of the corresponding dev user. The lifetime of a PAT is usually in days. The subject of the PAT is set to the corresponding dev users DON (for example, `don:identity:dvrv-us-1:devo/0:devu/30`).\\n\\nPersonal access token usage\\n---------------------------\\n\\nAuthentication to DevRev APIs requires a personal access token (PAT). A PAT is used to uniquely identify a dev user in context of a dev org and can be used by external third-party applications to access DevRev APIs on", + "title": "Authentication | DevRev | Docs" } ] }, @@ -228,54 +228,54 @@ "query": "SSO setup SAML IDP metadata connection string Google Workspace", "retrievals": [ { - "id": "ART-1966_KNOWLEDGE_NODE-39", - "text": "authentication methods to enforce SSO-only login. This is commonly done to ensure all users authenticate through your organization\\'s identity provider.\\n\\n**Common scenario**: If users were previously logging in with Google OAuth and you\\'ve now enabled SSO, you can disable Google authentication to force all users to use SSO.\\n\\nFirst, get the Google OAuth connection ID:\\n\\n```\\n```\\n1 curl --location --request GET \\'https://api.devrev.ai/dev-orgs.auth-connections.list\\' \\\\\\n\\n\\n\\n2 --header", - "title": "External identity provider setup | Computer by DevRev | DevRev" + "id": "ART-15701_KNOWLEDGE_NODE-16", + "text": "created\\n\\nEnter the SSO URL in case you have configured SAML login as identity management in amazon connect instance.\\n\\nEnter the complete S3 Bucket names and path for call recording and transcript. The complete bucket names and path can be found here. Copy the complete path directly.\\n\\nSelect Invite All checkbox if you would like to invite all the support agents to DevRev workspace if not present.\\n\\nClick on install snap-in.\\n\\nAfter the snap-in status shows Active, go to the configured", + "title": "Amazon Connect Telephony Integration Guide" }, { - "id": "ART-1005_KNOWLEDGE_NODE-13", - "text": "model\\n\\n\\nWhat did we choose?\\nGoogle Workspace (Gsuite)\\n\\nWhy did we choose this?\\nAs mentioned in the IdP section above, I\\xe2\\x80\\x99ve worked a lot with Exchange, Sharepoint, and other Microsoft products and I like the simplicity of the Google Workspace solution. Does it have all of the features of Microsoft 360? No, but it gives us enough of what we need and integrates beautifully with Okta. If we had gone Azure AD on the IdP front, that obviously would have impacted this choice.\\n\\nWhat", - "title": "Choosing the Right Systems For Your Startup" + "id": "ART-1545_KNOWLEDGE_NODE-168", + "text": "for the organization and the user will need to explicitly enable this. Keep in mind that at a time, only one authentication connection can be enabled for a Dev organization. At present, only 5 enterprise connections can be created by an organization.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nGoogle Apps\\n\\nObject encapsulating the configuration parameters for a Google Apps authentication connection.\\n\\nShow 5 properties\\nOR\\nOidc\\n\\nObject encapsulating the configuration parameters for", + "title": "Create (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1966_KNOWLEDGE_NODE-29", - "text": "are some common examples:\\n\\nAzure ADGoogle WorkspaceJump CloudOkta\\n\\n1. Log in to Azure Active Directory and select **Enterprise applications > + New application**.\\n2. Search for \"Azure AD SAML Toolkit\" in the **Browse Azure AD Gallery** and select it.\\n3. Enter DevRev as the name and click **Create**.\\n4. Select **Single sign-on > SAML**.\\n5. Edit the **Basic SAML Configuration** and enter the following parameters.\\n\\n * **Identifier** (Entity ID):", + "id": "ART-1966_KNOWLEDGE_NODE-26", + "text": "setup](/docs/product/sso-saml)\\n\\nExternal identity provider setup\\n================================\\n\\nDevRev can be configured to use external identity providers for SSO.\\n\\n![]()\\n\\nIf you want DevRev to use an external identity provider, follow the instructions for your organization\\xe2\\x80\\x99s provider.\\n\\nBefore you begin\\n----------------\\n\\nTo register DevRev as a SAML 2.0 application, you need the slug for your dev org.\\n\\nTo get the dev\\\\_oid and slug, run the following", "title": "External identity provider setup | Computer by DevRev | DevRev" }, { - "id": "ART-1966_KNOWLEDGE_NODE-20", - "text": "Datacenter AirSync](/docs/integrations/confluence-datacenter)\\n - [Google Docs](/docs/integrations/google-doc)\\n - [Google Drive](/docs/integrations/google-drive)\\n - [Gmail AirSync](/docs/integrations/gmail-airdrop)\\n - [Monday.com AirSync](/docs/integrations/monday)\\n - [Intercom AirSync](/docs/integrations/intercom)\\n - [Figma AirSync](/docs/integrations/figma-airdrop)\\n - [ServiceNow AirSync](/docs/integrations/servicenow)\\n - [ServiceNow KB", - "title": "External identity provider setup | Computer by DevRev | DevRev" + "id": "ART-1564_KNOWLEDGE_NODE-168", + "text": "for the organization and the user will need to explicitly enable this. Keep in mind that at a time, only one authentication connection can be enabled for a Dev organization. At present, only 5 enterprise connections can be created by an organization.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nGoogle Apps\\n\\nObject encapsulating the configuration parameters for a Google Apps authentication connection.\\n\\nShow 5 properties\\nOR\\nOidc\\n\\nObject encapsulating the configuration parameters for", + "title": "List (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1966_KNOWLEDGE_NODE-35", - "text": "false,\\n\\n\\n\\n6 \"type\": \"samlp\",\\n\\n\\n\\n7 \"sign_in_endpoint\": \"\",\\n\\n\\n\\n8 \"connection_name\": \"\",\\n\\n\\n\\n9 }\\n\\n\\n\\n10 }\\n```\\n\\nShow more\\n```\\n\\nImportant\\n\\n* The connection\\\\_name must follow the naming pattern described earlier.\\n* Save the id field from the response\\xe2\\x80\\x94you need it for the next step.\\n* The connection is created with enabled: false by default for security.\\n\\n### Step 2: Enable the authentication connection\\n\\nAfter", - "title": "External identity provider setup | Computer by DevRev | DevRev" + "id": "ART-4052_KNOWLEDGE_NODE-1", + "text": "authentication connections, refer to [External identity provider setup](https://docs.devrev.ai/product/sso-saml).\\n\\nWas this page helpful?YesNo\\n\\n[Security tokensUp Next](/public/api-reference/auth-tokens/security-tokens)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n[Enterprise grade security to protect customer dataLearn more about it.](https://devrev.ai/blog/soc-compliance)\\n\\nProduct\\n\\n *", + "title": "Identity provider \u2014 DevRev | Docs" }, { - "id": "ART-1966_KNOWLEDGE_NODE-34", - "text": "application/json\\' \\\\\\n\\n\\n\\n4 --data-raw \\'{\\n\\n\\n\\n5 \"type\": \"samlp\",\\n\\n\\n\\n6 \"sign_in_endpoint\": \"\",\\n\\n\\n\\n7 \"signing_cert\": \"\",\\n\\n\\n\\n8 \"connection_name\": \"\",\\n\\n\\n\\n9 \"display_name\": \"\"\\n\\n\\n\\n10 }\\'\\n```\\n\\nShow more\\n```\\n\\n**Expected successful response:**\\n\\n```\\n```\\n1 {\\n\\n\\n\\n2 \"auth_connection\": {\\n\\n\\n\\n3 \"id\": \"con_12345678\",\\n\\n\\n\\n4 \"display_name\": \"\",\\n\\n\\n\\n5 \"enabled\":", - "title": "External identity provider setup | Computer by DevRev | DevRev" + "id": "ART-1543_KNOWLEDGE_NODE-168", + "text": "for the organization and the user will need to explicitly enable this. Keep in mind that at a time, only one authentication connection can be enabled for a Dev organization. At present, only 5 enterprise connections can be created by an organization.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nGoogle Apps\\n\\nObject encapsulating the configuration parameters for a Google Apps authentication connection.\\n\\nShow 5 properties\\nOR\\nOidc\\n\\nObject encapsulating the configuration parameters for", + "title": "Metric Definitions List Post (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1966_KNOWLEDGE_NODE-30", - "text": "urn:auth0:tf-devrev-prod:\\n * **Reply URL** (Assertion Consumer Service URL): https://auth.devrev.ai/login/callback?connection=\\n * **Sign on URL**: https://app.devrev.ai/\\n\\n ![]()\\n\\n The must be the same in both parameters and follow the naming pattern described earlier.\\n6. Go to **Copy > SAML Certificates** and save the **App Federation Metadata URL**.\\n7. In the Azure portal, go to the application named", - "title": "External identity provider setup | Computer by DevRev | DevRev" + "id": "ART-12476_KNOWLEDGE_NODE-1", + "text": "designed to meet GDPR and SOC 2 compliance requirements, with controls in place to support your data privacy needs.\\n\\nAdvanced enterprise login: Seamless SAML compliance for all enterprise logins regardless of your SSO provider.\\n\\nRegional data residency options: We offer data residency options in Europe, Australia, US East (Virginia), and India, with logical data isolation and access control features.\\n\\nSelf-serve user management: Easily add or remove users from your workspace and manage", + "title": "The Future of Sessions - Powered By DevRev" }, { - "id": "ART-4275_KNOWLEDGE_NODE-27", - "text": "Documentation](https://support.google.com/cloudidentity/answer/10070793).\\n* Enable contact sharing in directory settings, following guidelines provided by Google.\\n* Ensure the following scopes are added:\\n\\n + https://www.googleapis.com/auth/cloud-identity.groups.readonly: Required\\n for groups and group members.\\n + https://www.googleapis.com/auth/directory.readonly: Required for the People\\n API.\\n\\nThese steps are necessary only if a non-admin initiates the import before an\\nadmin", - "title": "Google Docs | AirSync | Snap-ins | DevRev" + "id": "ART-1562_KNOWLEDGE_NODE-168", + "text": "for the organization and the user will need to explicitly enable this. Keep in mind that at a time, only one authentication connection can be enabled for a Dev organization. At present, only 5 enterprise connections can be created by an organization.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nGoogle Apps\\n\\nObject encapsulating the configuration parameters for a Google Apps authentication connection.\\n\\nShow 5 properties\\nOR\\nOidc\\n\\nObject encapsulating the configuration parameters for", + "title": "Get (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-15369_KNOWLEDGE_NODE-3", - "text": "encapsulating the configuration parameters for a Google Apps\\nauthentication connection.\\n\\nShow 5 properties\\n\\nOR\\n\\noidcobjectRequired\\n\\nObject encapsulating the configuration parameters for an OIDC\\nauthentication connection.\\n\\nShow 5 properties\\n\\nOR\\n\\noktaobjectRequired\\n\\nObject encapsulating the configuration parameters for an Okta\\nauthentication connection.\\n\\nShow 5 properties\\n\\nOR\\n\\nsamlpobjectRequired\\n\\nObject encapsulating the configuration parameters for a", - "title": "Create Dev Orgs Auth Connection | DevRev | Docs" + "id": "ART-1966_KNOWLEDGE_NODE-42", + "text": "process from your identity provider\\'s portal. The latter is not supported on DevRev.\\n\\nA workaround for supporting IDP-initiated SSO is to bookmark your DevRev workspace URL (that is https://app.devrev.ai/) in your IDP. With only SSO Auth connection enabled, the experience would be as seamless as SP-initiated SSO.\\n\\n### Parameter reference\\n\\n* : Your Personal Access Token with admin permissions\\n* : Your DevRev organization ID (from the initial API", + "title": "External identity provider setup | Computer by DevRev | DevRev" }, { - "id": "ART-1966_KNOWLEDGE_NODE-40", - "text": "\\'Authorization: Bearer \\'\\n```\\n```\\n\\nLook for the Google OAuth connection in the response and note its id field.\\n\\nDisable Google authentication:\\n\\n```\\n```\\n1 curl --location --request POST \\'https://api.devrev.ai/dev-orgs.auth-connections.toggle\\' \\\\\\n\\n\\n\\n2 --header \\'Authorization: Bearer \\' \\\\\\n\\n\\n\\n3 --header \\'Content-Type: application/json\\' \\\\\\n\\n\\n\\n4 --data-raw \\'{\\n\\n\\n\\n5 \"id\": \"\",\\n\\n\\n\\n6 \"toggle\": \"disable\"\\n\\n\\n\\n7", - "title": "External identity provider setup | Computer by DevRev | DevRev" + "id": "ART-1566_KNOWLEDGE_NODE-168", + "text": "for the organization and the user will need to explicitly enable this. Keep in mind that at a time, only one authentication connection can be enabled for a Dev organization. At present, only 5 enterprise connections can be created by an organization.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nGoogle Apps\\n\\nObject encapsulating the configuration parameters for a Google Apps authentication connection.\\n\\nShow 5 properties\\nOR\\nOidc\\n\\nObject encapsulating the configuration parameters for", + "title": "Transition (Beta) \u2014 DevRev | Docs" } ] }, @@ -284,24 +284,9 @@ "query": "restrict users from linking opportunities and meetings", "retrievals": [ { - "id": "ART-15404_KNOWLEDGE_NODE-7", - "text": "Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/links/list-post)[#### Count Meetings\\n\\nNext](/api-reference/meetings/count)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Replace Links | DevRev | Docs" - }, - { - "id": "ART-13009_KNOWLEDGE_NODE-3", - "text": "meeting.\\n\\nlinks.targetstringOptional`format: \"id\"`\\n\\nFilters for target id in links associated with the meeting.\\n\\nlinks.target_object_typestringOptional`format: \"text\"`\\n\\nFilters for target object type in links associated with the meeting.\\n\\nmemberslist of stringsOptional\\n\\nFilter for meeting on specified Member Ids.\\n\\nmodeenumOptional\\n\\nThe iteration mode to use, otherwise if not set, then \\xe2\\x80\\x9cafter\\xe2\\x80\\x9d is used.\\n\\nAllowed values: afterbefore\\n\\norganizerlist of", - "title": "List Meetings \u2014 DevRev | Docs" - }, - { - "id": "ART-3008_KNOWLEDGE_NODE-2", - "text": "meeting.\\n\\nlinks.targetstringOptional`format: \"id\"`\\n\\nFilters for target id in links associated with the meeting.\\n\\nlinks.target_object_typestringOptional`format: \"text\"`\\n\\nFilters for target object type in links associated with the meeting.\\n\\nmemberslist of stringsOptional\\n\\nFilter for meeting on specified Member Ids.\\n\\nmodeenumOptional\\n\\nThe iteration mode to use, otherwise if not set, then \\xe2\\x80\\x9cafter\\xe2\\x80\\x9d is used.\\n\\nAllowed values: afterbefore\\n\\norganizerlist of", - "title": "List Meetings (Beta) \u2014 DevRev | Docs" - }, - { - "id": "ART-13009_KNOWLEDGE_NODE-2", - "text": "stringsOptional\\n\\nFilters for meetings created by the specified user(s).\\n\\ncursorstringOptional`format: \"text\"`\\n\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\n\\nexternal_reflist of stringsOptional\\n\\nFilters for meetings with the provided external_ref(s).\\n\\nlimitintegerOptional\\n\\nThe maximum number of meetings to return.\\n\\nlinks.link_typestringOptional`format: \"text\"`\\n\\nFilters for link type in links associated with the", - "title": "List Meetings \u2014 DevRev | Docs" + "id": "ART-12471_KNOWLEDGE_NODE-8", + "text": "endpoints that reference meetings\\n\\n### Link Summary\\n\\nModified link summary schema to support custom link types across multiple endpoints\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/beta/changelog/2025/6/2)[#### April 24, 2025\\n\\nNext](/beta/changelog/2025/4/24)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", + "title": "May 19, 2025 | DevRev | Docs" }, { "id": "ART-15422_KNOWLEDGE_NODE-5", @@ -309,29 +294,44 @@ "title": "List Meetings | DevRev | Docs" }, { - "id": "ART-1834_KNOWLEDGE_NODE-456", - "text": "set, then \"after\" is used.\\nAllowed values: after before\\nopportunity.account string Optional\\nFilters for opportunities belonging to any of the provided accounts.\\nopportunity.contacts string Optional\\nFilters for opportunities with any of the provided contacts.\\nopportunity.subtype string Optional\\nFilters for opportunity with any of the provided subtypes.\\nowned_by string Optional\\nFilters for work owned by any of these users.\\nreported_by string Optional\\nFilters for work reported by any of", - "title": "Delete \u2014 DevRev | Docs" + "id": "ART-3002_KNOWLEDGE_NODE-1", + "text": "https://api.devrev.ai/meetings.delete \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -H \"Content-Type: application/json\" \\\\ \\n >| -d \\'{ \\n >| \"id\": \"id\" \\n >| }\\'\\n[/code] \\n \\nTry it\\n\\n200Successful\\n\\n[code]\\n\\n 1| {} \\n ---|---\\n[/code] \\n \\n[Get MeetingUp Next](/beta/api-reference/meetings/get)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n'", + "title": "Delete Meeting (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-3008_KNOWLEDGE_NODE-1", - "text": "user(s).\\n\\ncursorstringOptional`format: \"text\"`\\n\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\n\\ncustom_fieldsobjectOptional\\n\\nFilters for meeting on custom fields.\\n\\nexternal_reflist of stringsOptional\\n\\nFilters for meetings with the provided external_ref(s).\\n\\nlimitintegerOptional\\n\\nThe maximum number of meetings to return.\\n\\nlinks.link_typestringOptional`format: \"text\"`\\n\\nFilters for link type in links associated with the", - "title": "List Meetings (Beta) \u2014 DevRev | Docs" + "id": "ART-13005_KNOWLEDGE_NODE-2", + "text": "stringsOptional\\n\\nFilters for meetings created by the specified user(s).\\n\\nexternal_reflist of stringsOptional\\n\\nFilters for meetings with the provided external_ref(s).\\n\\nlinks.link_typestringOptional`format: \"text\"`\\n\\nFilters for link type in links associated with the meeting.\\n\\nlinks.targetstringOptional`format: \"id\"`\\n\\nFilters for target id in links associated with the meeting.\\n\\nlinks.target_object_typestringOptional`format: \"text\"`\\n\\nFilters for target object type in links", + "title": "Count Meetings \u2014 DevRev | Docs" }, { - "id": "ART-1575_KNOWLEDGE_NODE-449", - "text": "opportunities with any of the provided contacts.\\nopportunity.subtype string Optional\\nFilters for opportunity with any of the provided subtypes.\\nowned_by string Optional\\nFilters for work owned by any of these users.\\nreported_by string Optional\\nFilters for work reported by any of these users.\\nsort_by string Optional\\nFields to sort the work items by and the direction to sort them.\\nstage.name string Optional\\nFilters for records in the provided stage(s) by name.\\nstaged_info.is_staged", - "title": "Delete \u2014 DevRev | Docs" + "id": "ART-3197_KNOWLEDGE_NODE-14", + "text": "endpoints that reference meetings\\n\\n### Link Summary\\n\\nModified link summary schema to support custom link types across multiple endpoints\\n\\n---\\n\\n[April 24, 2025](/beta/changelog/2025/4/24)\\n\\n[April 24, 2025](/beta/changelog/2025/4/24)\\n\\nNew Endpoints\\n-------------\\n\\n### Service Accounts\\n\\n* Added [`POST /service-accounts.create`](/beta/api-reference/service-accounts/create) for creating service accounts\\n\\n### Widgets\\n\\n* Added [`GET /widgets.get`](/beta/api-reference/widgets/get)", + "title": "Changelog | DevRev | Docs" }, { - "id": "ART-1821_KNOWLEDGE_NODE-446", - "text": "opportunities with any of the provided contacts.\\nopportunity.subtype string Optional\\nFilters for opportunity with any of the provided subtypes.\\nowned_by string Optional\\nFilters for work owned by any of these users.\\nreported_by string Optional\\nFilters for work reported by any of these users.\\nsort_by string Optional\\nFields to sort the work items by and the direction to sort them.\\nstage.name string Optional\\nFilters for records in the provided stage(s) by name.\\nstaged_info.is_staged", - "title": "Delete \u2014 DevRev | Docs" + "id": "ART-3003_KNOWLEDGE_NODE-1", + "text": "user(s).\\n\\ncustom_fieldsobjectOptional\\n\\nFilters for meeting on custom fields.\\n\\nexternal_reflist of stringsOptional\\n\\nFilters for meetings with the provided external_ref(s).\\n\\nlinks.link_typestringOptional`format: \"text\"`\\n\\nFilters for link type in links associated with the meeting.\\n\\nlinks.targetstringOptional`format: \"id\"`\\n\\nFilters for target id in links associated with the meeting.\\n\\nlinks.target_object_typestringOptional`format: \"text\"`\\n\\nFilters for target object type in links", + "title": "Count Meetings (Beta) \u2014 DevRev | Docs" }, { "id": "ART-15416_KNOWLEDGE_NODE-2", "text": "created by the specified user(s).\\n\\nexternal\\\\_reflist of stringsOptional\\n\\nFilters for meetings with the provided external\\\\_ref(s).\\n\\nlinks.link\\\\_typestringOptional`format: \"text\"`\\n\\nFilters for link type in links associated with the meeting.\\n\\nlinks.targetstringOptional`format: \"id\"`\\n\\nFilters for target id in links associated with the meeting.\\n\\nlinks.target\\\\_object\\\\_typestringOptional`format: \"text\"`\\n\\nFilters for target object type in links associated with the", "title": "Count Meetings | DevRev | Docs" + }, + { + "id": "ART-3004_KNOWLEDGE_NODE-1", + "text": "curl -X POST https://api.devrev.ai/meetings.get \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -H \"Content-Type: application/json\" \\\\ \\n >| -d \\'{ \\n >| \"id\": \"id\" \\n >| }\\'\\n[/code] \\n \\nTry it\\n\\n200Successful\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"meeting\": { \\n 3| \"id\": \"id\", \\n 4| \"members\": [ \\n 5| { \\n 6| \"type\": \"dev_user\", \\n 7| \"id\": \"id\", \\n 8|", + "title": "Get Meeting (POST) (Beta) \u2014 DevRev | Docs" + }, + { + "id": "ART-3008_KNOWLEDGE_NODE-2", + "text": "meeting.\\n\\nlinks.targetstringOptional`format: \"id\"`\\n\\nFilters for target id in links associated with the meeting.\\n\\nlinks.target_object_typestringOptional`format: \"text\"`\\n\\nFilters for target object type in links associated with the meeting.\\n\\nmemberslist of stringsOptional\\n\\nFilter for meeting on specified Member Ids.\\n\\nmodeenumOptional\\n\\nThe iteration mode to use, otherwise if not set, then \\xe2\\x80\\x9cafter\\xe2\\x80\\x9d is used.\\n\\nAllowed values: afterbefore\\n\\norganizerlist of", + "title": "List Meetings (Beta) \u2014 DevRev | Docs" + }, + { + "id": "ART-15409_KNOWLEDGE_NODE-4", + "text": "object.\\n\\nidstringRequired`format: \"id\"`\\n\\nThe meeting\\'s ID.\\n\\n### Response\\n\\nSuccess.\\n\\nmeetingobject\\n\\nShow 6 properties\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n404\\n\\nNot Found Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/meetings/get)[#### List Meetings\\n\\nNext](/api-reference/meetings/list)[Built", + "title": "Get Meeting (POST) | DevRev | Docs" } ] }, @@ -345,48 +345,48 @@ "title": "WhatsApp | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2029_KNOWLEDGE_NODE-30", - "text": "phone number to sync WhatsApp messages sent to the business with DevRev Inbox.\\n4. **Register for WhatsApp webhook:** In the **Discussion** tab, enter **/whatsapp** to register to the WhatsApp webhook URL to receive WhatsApp messages in the DevRev Inbox.\\n5. **Use template messages:** As per WhatsApp policies, template messages are required to communicate with customers once 24 hours have passed since their last message. To ensure continuity in customer conversations, the following template", + "id": "ART-2029_KNOWLEDGE_NODE-24", + "text": "[Limitations](#limitations)\\n* [Set up the snap-in](#set-up-the-snapin)\\n\\n1. [Documentation](/docs)\\n3. [Snap-ins](/docs/snapins)\\n[Integrate](/docs/integrate)\\n[WhatsApp](/docs/integrations/whatsapp)\\n\\nWhatsApp\\n========\\n\\nUsing DevRev, you can connect with your customers through WhatsApp. This new communication channel allows your customers to reach out with their questions and concerns directly on WhatsApp. The messages from WhatsApp seamlessly appear in your DevRev Inbox, making it easy", "title": "WhatsApp | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2029_KNOWLEDGE_NODE-27", - "text": "work with 360dialog for WhatsApp Integration. If you have an existing WhatsApp for Business Account, follow the steps to [migrate to 360dialog](https://docs.360dialog.com/partner/account-setup/migrating-phone-numbers).\\n\\nInstalling the WhatsApp snap-in\\n-------------------------------\\n\\nTo use this snap-in, you\\'ll need to connect your WhatsApp with Business API with DevRev.\\n\\n1. Install [WhatsApp](/marketplace/whatsapp) from the DevRev marketplace.\\n2. Select the workspace to install the", + "id": "ART-2029_KNOWLEDGE_NODE-30", + "text": "phone number to sync WhatsApp messages sent to the business with DevRev Inbox.\\n4. **Register for WhatsApp webhook:** In the **Discussion** tab, enter **/whatsapp** to register to the WhatsApp webhook URL to receive WhatsApp messages in the DevRev Inbox.\\n5. **Use template messages:** As per WhatsApp policies, template messages are required to communicate with customers once 24 hours have passed since their last message. To ensure continuity in customer conversations, the following template", "title": "WhatsApp | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2029_KNOWLEDGE_NODE-24", - "text": "[Limitations](#limitations)\\n* [Set up the snap-in](#set-up-the-snapin)\\n\\n1. [Documentation](/docs)\\n3. [Snap-ins](/docs/snapins)\\n[Integrate](/docs/integrate)\\n[WhatsApp](/docs/integrations/whatsapp)\\n\\nWhatsApp\\n========\\n\\nUsing DevRev, you can connect with your customers through WhatsApp. This new communication channel allows your customers to reach out with their questions and concerns directly on WhatsApp. The messages from WhatsApp seamlessly appear in your DevRev Inbox, making it easy", - "title": "WhatsApp | Integrate | Snap-ins | DevRev" + "id": "ART-15716_KNOWLEDGE_NODE-20", + "text": "them, reach out to DevRev support with details (article titles, migration date, etc.) for assistance.\\n\\nSupport for Incoming Text Messages (SMS and WhatsApp)\\n\\nYes, DevRev does allow for incoming text messages\\xe2\\x80\\x94if you use a supported SMS integration.\\n\\nThe main provider currently supported is Exotel. When you connect your Exotel account to DevRev, customers can send SMS to your Exotel number, and those messages will show up as conversations in your DevRev inbox.\\n\\nWhatsApp is also", + "title": "Support queries related playbook" }, { - "id": "ART-2029_KNOWLEDGE_NODE-28", - "text": "snap-in, confirm installation, and click **Deploy snap-in**.\\n\\nLimitations\\n-----------\\n\\n* Group Conversations are not supported by WhatsApp for Business API.\\n* If you do not respond to the customer\\xe2\\x80\\x99s message within 24 hours, you can only respond to the conversation using Meta-approved template messages.\\n\\nSet up the snap-in\\n------------------\\n\\nFollow these steps to ensure WhatsApp messages sent to your business are synced with the DevRev Inbox.\\n\\n1. **Install the snap-in:**", + "id": "ART-2029_KNOWLEDGE_NODE-0", + "text": "b'WhatsApp | Integrate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", "title": "WhatsApp | Integrate | Snap-ins | DevRev" }, { "id": "ART-2029_KNOWLEDGE_NODE-29", - "text": "Install the WhatsApp snap-in from the marketplace as mentioned above.\\n2. **Create a connection:** In the **Connections** tab, add your existing connection or create a new connection.\\n * Give your connection a name, and ensure that you completed the required steps in the prerequisites.\\n * Click **Connect**.\\n * Open the dialog and follow the process to finish creating a connection.\\n\\n ![]()\\n3. **Configure business phone number:** In the **Configuration** tab, enter the business", + "text": "Install the WhatsApp snap-in from the marketplace as mentioned above.\\n2. **Create a connection:** In the **Connections** tab, add your existing connection or create a new connection.\\n * Give your connection a name, and ensure that you completed the required steps in the prerequisites.\\n * Click **Connect**.\\n * Open the dialog and follow the process to finish creating a connection.\\n\\n ![]()\\n3. **Configure business phone number:** In the **Configuration** tab, enter the business", "title": "WhatsApp | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2029_KNOWLEDGE_NODE-26", - "text": "Business Manager. For detailed information, refer to [creating a Business Account](https://m.facebook.com/help/1710077379203657) in Meta Business Manager.\\n2. **Number compatibility:** Ensure the designated number isn\\'t linked to another WhatsApp account. If it is, either delete that account or [migrate your number](https://developers.facebook.com/docs/whatsapp/cloud-api/get-started/migrate-existing-whatsapp-number-to-a-business-account/) to a business account.\\n3. **Partner integration:** We", + "id": "ART-2029_KNOWLEDGE_NODE-28", + "text": "snap-in, confirm installation, and click **Deploy snap-in**.\\n\\nLimitations\\n-----------\\n\\n* Group Conversations are not supported by WhatsApp for Business API.\\n* If you do not respond to the customer\\xe2\\x80\\x99s message within 24 hours, you can only respond to the conversation using Meta-approved template messages.\\n\\nSet up the snap-in\\n------------------\\n\\nFollow these steps to ensure WhatsApp messages sent to your business are synced with the DevRev Inbox.\\n\\n1. **Install the snap-in:**", "title": "WhatsApp | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2029_KNOWLEDGE_NODE-23", - "text": "2025](/docs/changelog/_2025-06-01)\\n + [May 2025](/docs/changelog/_2025-05-01)\\n + [March and April 2025](/docs/changelog/_2025-04-01)\\n + [February 2025](/docs/changelog/_2025-02-01)\\n* [Developer \\xe2\\x86\\x97\\xef\\xb8\\x8f](https://developer.devrev.ai/)\\n* [DevRevU \\xe2\\x86\\x97\\xef\\xb8\\x8f](/docs/DevRevU)\\n\\n + [Product demos](/docs/DevRevU/demos)\\n\\nOn this page\\n\\n* [Prerequisites](#prerequisites)\\n* [Installing the WhatsApp snap-in](#installing-the-whatsapp-snapin)\\n*", - "title": "WhatsApp | Integrate | Snap-ins | DevRev" + "id": "ART-10697_KNOWLEDGE_NODE-27", + "text": "bidirectional synchronization between DevRev objects and Slack channels.\\n* A workflow node has been added to create a Slack channel and automatically invite specified users.\\n* A random wait time (1-20 seconds) has been added before creating a conversation to prevent duplicate conversations on WhatsApp when messages are sent rapidly.\\n* Customer identification in Slack has been enhanced by resolving users via their Slack ID when their email is hidden.\\n* An optional field has been added to the", + "title": "February 2025 | Changelog | DevRev" }, { - "id": "ART-2029_KNOWLEDGE_NODE-0", - "text": "b'WhatsApp | Integrate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", - "title": "WhatsApp | Integrate | Snap-ins | DevRev" + "id": "ART-10697_KNOWLEDGE_NODE-28", + "text": "'Send Slack Message' workflow node to include a DevRev object.\\n* Dependent field support in slack\\n\\n![]()\\xc2\\xa0For more information about *Channels*, refer to the following articles: \\xe2\\x80\\xa3 [WhatsApp | Integrate | Snap-ins](/docs/integrations/whatsapp) \\xe2\\x80\\xa3 [Slack | Integrate | Snap-ins](/docs/integrations/slack) \\xe2\\x80\\xa3 [SLA status change Slack notifier | Automate | Snap-ins](/docs/automations/sla-change-notifier)\\n\\n![]()\\n\\n### Slack App\\n\\nMulti-region Slack support", + "title": "February 2025 | Changelog | DevRev" }, { - "id": "ART-2002_KNOWLEDGE_NODE-27", - "text": "Plug, email, and WhatsApp) can be matched to the right customer record.\\n\\n![]()\\n\\nYou can create a contact using DevRev's rev-users.create API. Follow the [Create accounts and contacts in DevRev](https://developer.devrev.ai/beta/guides/create-accounts-and-contacts-in-dev-rev) tutorial.\\n\\n### Bulk import customer records\\n\\nTo bulk import customer records, see [Account and contact import](/docs/product/account-contact-import).\\n\\nYou can also use [AirSync](https://docs.devrev.ai/import) to", + "id": "ART-2002_KNOWLEDGE_NODE-35", + "text": "integrations like [Slack](/marketplace/slack), [Email for conversations](https://marketplace.devrev.ai/marketplace/devrev-plug-with-email), [WhatsApp](/marketplace/whatsapp) are additional channels available with DevRev's omnichannel support offering.\\nIntegrating these channels automatically brings customer identity to DevRev.\\n\\n[PreviousOpportunities](/docs/product/opportunity)[NextAccount and contact import](/docs/product/account-contact-import)\\n\\n#### On this page\\n\\n*", "title": "Contacts | Computer for Growth Teams | DevRev" } ] @@ -396,54 +396,54 @@ "query": "API for Incident Ticket creation", "retrievals": [ { - "id": "ART-4127_KNOWLEDGE_NODE-0", - "text": "b'Create Incident | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nBeta\\n\\nBeta\\n\\nBeta\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/beta/api-reference/accounts/create)[incidents](/beta/api-reference/incidents/create)\\n\\nCreate Incident\\n===============\\n\\nBeta\\n\\nCopy page\\n\\nPOST\\n\\nhttps://api.devrev.ai/incidents.create\\n\\nPOST\\n\\n/incidents.create\\n\\ncURL\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl -X POST https://api.devrev.ai/incidents.create \\\\ |\\n| > | -H \"Authorization: Bearer", - "title": "Create Incident | DevRev | Docs" + "id": "ART-1307_KNOWLEDGE_NODE-167", + "text": "Create.\\n\\nPOST https:// api.devrev.ai / incidents.create\\nCreates an incident.\\nRequest.\\n\\nThis endpoint expects an object.\\ntitle string Required\\nTitle of the incident.\\nacknowledged_date datetime Optional\\nTimestamp when the incident was acknowledged.\\napplies_to_parts list of strings Optional\\nParts to which the incident is applicable to.\\nartifacts list of strings Optional\\nArtifacts attached to the incident.\\nbody string Optional\\nBody of the incident.\\ncustom_fields map from strings to", + "title": "List Post \u2014 DevRev | Docs" }, { - "id": "ART-4127_KNOWLEDGE_NODE-1", - "text": "\" \\\\ |\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{ |\\n| > | \"title\": \"string\" |\\n| > | }\\' |\\n```\\n\\n[Try it](/beta/api-reference/incidents/create?explorer=true)\\n\\n201Created\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"incident\": { |\\n| 3 | \"id\": \"string\", |\\n| 4 | \"title\": \"string\", |\\n| 5 | \"acknowledged_date\": \"2023-01-01T12:00:00.000Z\", |\\n| 6 | \"actual_close_date\": \"2023-01-01T12:00:00.000Z\", |\\n| 7 | \"applies_to_parts\": [ |\\n| 8 | { |\\n| 9 | \"display_id\":", - "title": "Create Incident | DevRev | Docs" + "id": "ART-15664_KNOWLEDGE_NODE-13", + "text": "\\n\\nYou may want to restrict links to specific subtypes of objects. For example, only allowing issues\\nof a particular subtype to be linked to tickets.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"name\": \"Link between social media issues and tickets\", |\\n| > | \"source_types\": [ |\\n| > | { |\\n|", + "title": "Links | DevRev | Docs" }, { - "id": "ART-12390_KNOWLEDGE_NODE-29", - "text": "Ticket | Creates a new ticket in DevRev. | * Ticket details like title, body, applies\\\\_to\\\\_part, etc. * subtype: (Optional) Ticket subtype * apps: (Optional) Related apps * app\\\\_custom\\\\_fields: (Optional) Custom fields | Created ticket object |\\n| Convert Conversation To Ticket | Converts a conversation to a ticket. | * conversation\\\\_id: ID of the conversation to convert | ticket\\\\_id: ID of the created ticket |\\n\\nObject retrieval\\n----------------\\n\\n| Operation | Description | Input", - "title": "Workflow action library | Workflows | Computer by DevRev | DevRev" + "id": "ART-2749_KNOWLEDGE_NODE-8", + "text": "Agents, reducing the number of tickets per support agent, while proactive incident prediction minimized business impact.\\n\\n### Enhanced team collaboration\\n\\nThe platform eliminated communication bottlenecks between customers, support, and engineering. Teams now collaborate in a unified environment, with two-way AirSync between Computer and Jira keeping product development aligned with customer needs.\\n\\nThe Ticket Insights Dashboard is a huge contribution towards driving the operational rigor", + "title": "Phenom transforms talent experience with streamlined support and development workflows" }, { - "id": "ART-4126_KNOWLEDGE_NODE-0", - "text": "b'Get Incident (POST) | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nBeta\\n\\nBeta\\n\\nBeta\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/beta/api-reference/accounts/create)[incidents](/beta/api-reference/incidents/create)\\n\\nGet Incident (POST)\\n===================\\n\\nBeta\\n\\nCopy page\\n\\nPOST\\n\\nhttps://api.devrev.ai/incidents.get\\n\\nPOST\\n\\n/incidents.get\\n\\ncURL\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl -X POST https://api.devrev.ai/incidents.get \\\\ |\\n| > | -H \"Authorization: Bearer", - "title": "Get Incident (POST) | DevRev | Docs" + "id": "ART-1803_KNOWLEDGE_NODE-167", + "text": "Create.\\n\\nPOST https:// api.devrev.ai / incidents.create\\nCreates an incident.\\nRequest.\\n\\nThis endpoint expects an object.\\ntitle string Required\\nTitle of the incident.\\nacknowledged_date datetime Optional\\nTimestamp when the incident was acknowledged.\\napplies_to_parts list of strings Optional\\nParts to which the incident is applicable to.\\nartifacts list of strings Optional\\nArtifacts attached to the incident.\\nbody string Optional\\nBody of the incident.\\ncustom_fields map from strings to", + "title": "List \u2014 DevRev | Docs" }, { - "id": "ART-4127_KNOWLEDGE_NODE-15", - "text": "\"string\" |\\n| 258 | } |\\n| 259 | ], |\\n| 260 | \"target_close_date\": \"2023-01-01T12:00:00.000Z\" |\\n| 261 | } |\\n| 262 | } |\\n```\\n\\nCreates an incident.\\n\\n### Headers\\n\\nAuthorizationstringRequired\\n\\nBearer authentication of the form `Bearer `, where token is your auth token.\\n\\n### Request\\n\\nThis endpoint expects an object.\\n\\ntitlestringRequired`format: \"text\"`\\n\\nTitle of the incident.\\n\\nacknowledged\\\\_datestringOptional`format: \"date-time\"`\\n\\nTimestamp when the incident was", - "title": "Create Incident | DevRev | Docs" + "id": "ART-17231_KNOWLEDGE_NODE-69", + "text": "#record:incident #record:issue #record:opportunity #record:product #record:project #record:revu #record:task #record:ticket] | \\xe2\\x9c\\x94\\xef\\xb8\\x8e | Target object ID |\\n\\n#### Enum values\\n\\n**link\\\\_type\\\\_id**\\n\\n| Value | Name | Description |\\n| --- | --- | --- |\\n| `is_dependent_on` | Is Dependent On | - |\\n| `is_duplicate_of` | Is Duplicate Of | - |\\n| `is_parent_of` | Is Parent Of | - |\\n| `is_related_to` | Is Related To | - |\\n\\n[\\xe2\\x96\\xb2", + "title": "Supported DevRev object types | DevRev | Docs" }, { - "id": "ART-4133_KNOWLEDGE_NODE-0", - "text": "b'Update Incident | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nBeta\\n\\nBeta\\n\\nBeta\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/beta/api-reference/accounts/create)[incidents](/beta/api-reference/incidents/create)\\n\\nUpdate Incident\\n===============\\n\\nBeta\\n\\nCopy page\\n\\nPOST\\n\\nhttps://api.devrev.ai/incidents.update\\n\\nPOST\\n\\n/incidents.update\\n\\ncURL\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl -X POST https://api.devrev.ai/incidents.update \\\\ |\\n| > | -H \"Authorization: Bearer", - "title": "Update Incident | DevRev | Docs" + "id": "ART-1789_KNOWLEDGE_NODE-166", + "text": "Create.\\n\\nPOST https:// api.devrev.ai / incidents.create\\nCreates an incident.\\nRequest.\\n\\nThis endpoint expects an object.\\ntitle string Required\\nTitle of the incident.\\nacknowledged_date datetime Optional\\nTimestamp when the incident was acknowledged.\\napplies_to_parts list of strings Optional\\nParts to which the incident is applicable to.\\nartifacts list of strings Optional\\nArtifacts attached to the incident.\\nbody string Optional\\nBody of the incident.\\ncustom_fields map from strings to", + "title": "List \u2014 DevRev | Docs" }, { - "id": "ART-2033_KNOWLEDGE_NODE-5", - "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", - "title": "Instabug | Integrate | Snap-ins | DevRev" + "id": "ART-1422_KNOWLEDGE_NODE-0", + "text": "b'[](/public/api-reference/tags/concepts)\\n\\nPublic\\n\\n[API Reference](/public/api-reference/getting-started)[Tags](/public/api-reference/tags/concepts)\\n\\n#\\n\\nConcepts\\n\\n`tags` endpoint\\n\\n\\xe2\\x84\\xb9\\xef\\xb8\\x8f Tags are words that you can use as a label to give more context to tickets, issues, users, and every other object in DevRev. Tags create associations between objects and a logical concept. This concept is denoted by a tag\\xe2\\x80\\x99s name and description. You can have filters on", + "title": "Concepts \u2014 DevRev | Docs" }, { - "id": "ART-1801_KNOWLEDGE_NODE-168", + "id": "ART-1781_KNOWLEDGE_NODE-164", "text": "Create.\\n\\nPOST https:// api.devrev.ai / incidents.create\\nCreates an incident.\\nRequest.\\n\\nThis endpoint expects an object.\\ntitle string Required\\nTitle of the incident.\\nacknowledged_date datetime Optional\\nTimestamp when the incident was acknowledged.\\napplies_to_parts list of strings Optional\\nParts to which the incident is applicable to.\\nartifacts list of strings Optional\\nArtifacts attached to the incident.\\nbody string Optional\\nBody of the incident.\\ncustom_fields map from strings to", - "title": "Get \u2014 DevRev | Docs" + "title": "List \u2014 DevRev | Docs" }, { - "id": "ART-4128_KNOWLEDGE_NODE-0", - "text": "b'Get Incident | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nBeta\\n\\nBeta\\n\\nBeta\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/beta/api-reference/accounts/create)[incidents](/beta/api-reference/incidents/create)\\n\\nGet Incident\\n============\\n\\nBeta\\n\\nCopy page\\n\\nGET\\n\\nhttps://api.devrev.ai/incidents.get\\n\\nGET\\n\\n/incidents.get\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl -G https://api.devrev.ai/incidents.get \\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\ |\\n| > | -d id=id", - "title": "Get Incident | DevRev | Docs" + "id": "ART-1981_KNOWLEDGE_NODE-26", + "text": "a small number of tags to help categorize tickets. For example, at DevRev we have the following: bug, feature-request, other-request, question, and incident.\\n* Designate one or more customer experience engineers to be on call. Add them to the **Support** group inside **Settings > Groups** and as default owner in the **Support Routing** snap-in. Default owners are notified through email and the DevRev app as soon as a new conversation is started.\\n\\nMonitor the inbox\\n-----------------\\n\\n*", + "title": "Support best practices | Computer for Support Teams | DevRev" }, { - "id": "ART-1803_KNOWLEDGE_NODE-167", + "id": "ART-1805_KNOWLEDGE_NODE-167", "text": "Create.\\n\\nPOST https:// api.devrev.ai / incidents.create\\nCreates an incident.\\nRequest.\\n\\nThis endpoint expects an object.\\ntitle string Required\\nTitle of the incident.\\nacknowledged_date datetime Optional\\nTimestamp when the incident was acknowledged.\\napplies_to_parts list of strings Optional\\nParts to which the incident is applicable to.\\nartifacts list of strings Optional\\nArtifacts attached to the incident.\\nbody string Optional\\nBody of the incident.\\ncustom_fields map from strings to", - "title": "List \u2014 DevRev | Docs" + "title": "List Post \u2014 DevRev | Docs" } ] }, @@ -452,54 +452,54 @@ "query": "mark fields as readable from backend", "retrievals": [ { - "id": "ART-17232_KNOWLEDGE_NODE-8", - "text": "fields |\\n\\n### Custom and stock fields transformation methods\\n\\n| Method | Description | Requirements |\\n| --- | --- | --- |\\n| `use_rich_text` | Produces a rich text field | External field must be of type `rich_text` |\\n\\n### Constructed custom fields transformation methods\\n\\n| Method | Description | Requirements |\\n| --- | --- | --- |\\n| `construct_text_field` | Produces a text field | External field must be of type text |\\n\\n### Universal transformation method\\n\\n| Method | Description |", - "title": "Mapping reasons | DevRev | Docs" + "id": "ART-1645_KNOWLEDGE_NODE-37", + "text": "`is_filterable` to be true.\\n\\n * `is_groupable`: Whether the field is groupable. Requires `is_filterable` to be true.\\n\\n * `order`: The order in which the field appears in the side panel.\\n\\n * `is_read_only`: Whether the field is read-only in the UI. Once the object is created, this field cannot be updated in the UI.\\n\\n * `group_name`: The group title under which field(s) appear in the side panel. In the example below, the fields are grouped under groups titled **Group 1** and **Group", + "title": "Object customization (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-17230_KNOWLEDGE_NODE-0", - "text": "b'Rich text fields | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\nOn this page\\n\\n* [Rich text mentions](/airsync/data-model/rich-text-fields#rich-text-mentions)\\n* [Importing articles](/airsync/data-model/rich-text-fields#importing-articles)\\n* [Managing permissions](/airsync/data-model/rich-text-fields#managing-permissions)\\n* [Inline attachments](/airsync/data-model/rich-text-fields#inline-attachments)\\n* [Links to other", - "title": "Rich text fields | DevRev | Docs" + "id": "ART-1654_KNOWLEDGE_NODE-470", + "text": "fields.\\nissue object Optional\\nShow 9 properties\\nlimit integer Optional\\nThe maximum number of works to return. The default is \\'50\\'.\\nmode \"after\" or \"before\" Optional\\nAllowed values: after before\\nThe iteration mode to use. If \"after\", then entries after the provided cursor will be returned, or if no cursor is provided, then from the beginning. If \"before\", then entries before the provided cursor will be returned, or if no cursor is provided, then from the end. Entries will always be", + "title": "List \u2014 DevRev | Docs" }, { - "id": "ART-15510_KNOWLEDGE_NODE-17", - "text": "server. Input views such as password text fields are automatically masked.\\n\\nWhile the auto-masking feature is sufficient for most situations, you can manually mark or unmark additional views as sensitive.\\n\\nTo mark elements as sensitive inside a web view (`WebView`), apply the `devrev-mask` CSS class. To unmark them, use `devrev-unmask`.\\n\\n* Mark an element as masked:\\n\\n ```\\n | | |\\n | --- | --- |\\n | 1 | |\\n ```\\n* Mark an element as", - "title": "Features | DevRev | Docs" + "id": "ART-996_KNOWLEDGE_NODE-15", + "text": "field1\\n ...\\n gateway:\\n api_visibility: public\\n is_filterable: true\\n summary: true # NOTE: all fields marked as `summary: true`\\n...\\n - name: field2\\n ...\\n gateway:\\n api_visibility: public\\n is_filterable: true\\n summary: true # NOTE: all fields marked as `summary: true`\\n...\\n - name: field3\\n ...\\n gateway:\\n api_visibility:", + "title": "An Example Object Model Style Guide (our actual style guide)" }, { - "id": "ART-17230_KNOWLEDGE_NODE-5", - "text": "about products, services, and processes.\\nThey support both Markdown and HTML formats.\\n\\nArticles can include mentions to artifacts and other articles. Inline attachments must map to artifacts,\\nand article links must map to articles.\\n\\n### Managing permissions\\n\\nArticle permissions are managed through the `shared_with` field, which can reference users, groups, and platform groups.\\nRefer to the [permissions](/public/airsync/data-model/permissions) for more details.\\n\\n### Inline", - "title": "Rich text fields | DevRev | Docs" + "id": "ART-16046_KNOWLEDGE_NODE-3", + "text": "supports custom fields, and has no limit on the number of rows in the CSV'", + "title": "CSV Comments Uploader" }, { - "id": "ART-17230_KNOWLEDGE_NODE-14", - "text": "\\xe2\\x80\\x9cdocuments\\xe2\\x80\\x9d).\\nThe platform replaces the mention with the corresponding DevRev article ID and adds the appropriate href attribute.\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/airsync/supported-object-types)[#### Permissions\\n\\nNext](/airsync/data-model/permissions)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Rich text fields | DevRev | Docs" + "id": "ART-1952_KNOWLEDGE_NODE-37", + "text": "for the actual field you are looking for, and the join paths are identified for you.\\n\\n![]()\\n\\n### Edit\\n\\nYou can enter *Edit* mode by clicking the \\xe2\\x9a\\xa1\\xc2\\xa0button on your dashboard main page and edit the following:\\n\\n* Dashboard layout: Move your widgets around through a drag-and-drop UI, utilize the canvas-like interface to arrange your widgets. You can also resize widgets.\\n* Add section: You can add a section and move widgets into the section.\\n* Widgets: Edit a widget from", + "title": "Vista Reports | Vistas | Computer by DevRev | DevRev" }, { - "id": "ART-12453_KNOWLEDGE_NODE-23", - "text": "provides an auto-masking feature that masks data before sending to the server. Input views such as text fields, text views, and web views are automatically masked.\\n\\nWhile the auto-masking feature may be sufficient for most situations, you can manually mark additional views as sensitive using the following method:\\n\\n[code]\\n\\n 1| DevRev.markSensitiveViews(_:) \\n ---|---\\n[/code] \\n \\nIf any previously masked views need to be unmasked, you can use the following method:\\n\\n[code]\\n\\n", - "title": "Features \u2014 DevRev | Docs" + "id": "ART-996_KNOWLEDGE_NODE-14", + "text": "api_visibility: public\\n api_required: true\\n summary: true # NOTE: `title` included in summary\\n---\\n- name: severity\\n devrev_field_type: legacy_enum\\n devrev_enum:\\n - blocker\\n - high\\n - medium\\n - low\\n is_required: true\\n description: Severity of the ticket\\n gateway:\\n api_visibility: public\\n is_filterable: true\\n summary: true # NOTE: `severity` included in summary\\n\\n\\nDon\\xe2\\x80\\x99t\\nDon\\xe2\\x80\\x99t set all fields to summary: true\\n\\n - name:", + "title": "An Example Object Model Style Guide (our actual style guide)" }, { - "id": "ART-12456_KNOWLEDGE_NODE-18", - "text": "protect sensitive data, the DevRev SDK provides an auto-masking feature that masks data before sending to the server. Input views such as text fields, text views, and web views are automatically masked.\\n\\nWhile the auto-masking feature may be sufficient for most situations, you can manually mark additional views as sensitive using the following method:\\n\\n[code]\\n\\n 1| DevRev.markSensitiveViews(tags: any[]) \\n ---|---\\n[/code] \\n \\nIf any previously masked views need to be unmasked,", - "title": "Features \u2014 DevRev | Docs" + "id": "ART-3108_KNOWLEDGE_NODE-28", + "text": "fields.\\n\\nThe duration of the import depends on the size of the Paligo workspace and the\\namount of data being imported. For a workspace with only a few dozen items, it\\ncan take seconds, while a workspace with tens of thousands of items may take a\\nfew hours.\\n\\nPost-import options\\n-------------------\\n\\nAfter a successful import, you have the following options available for the\\nimported workspace:\\n\\n* [Sync to DevRev](#sync-to-devrev)\\n + Synchronize any modifications made in your Paligo", + "title": "Paligo AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-17230_KNOWLEDGE_NODE-7", - "text": "src=\"don:core:dvrv-us-1:devo/0:artifact/1\" alt=\"Alt Text\"/> |\\n```\\n\\nThe following Markdown example shows an inline attachment:\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | ![Alt Text](don:core:dvrv-us-1:devo/0:artifact/1) |\\n```\\n\\nLet\\xe2\\x80\\x99s say the content of your external system looks like this:\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 |

|\\n| 2 | This is an article with one image. |\\n| 3 |

|\\n| 4 |

|\\n| 5 | Turing Answers** and turn on the **Turing Answers** toggle.\\n\\nSuggest-only mode\\n-----------------\\n\\nComputer only suggests an answer to the user query. A support agent can accept or make edits to the answer, then send it to the user.\\n\\nContent-powered mode\\n--------------------\\n\\nComputer", + "id": "ART-1987_KNOWLEDGE_NODE-0", + "text": "b\"Turing AI agent | Computer for Support Teams | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CMD`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", "title": "Turing AI agent | Computer for Support Teams | DevRev" }, { @@ -518,44 +518,44 @@ "title": "Turing AI agent | Computer for Support Teams | DevRev" }, { - "id": "ART-1987_KNOWLEDGE_NODE-28", - "text": "Computer either creates a ticket or routes the conversation using the relevant routing rule.\\n\\n![]()\\n\\nGoal-oriented mode (Beta)\\n-------------------------\\n\\nThe goal-oriented agent allows users to create complete workflows triggered by their actions.\\n\\nGoal-oriented mode is currently in beta. Contact our support team for more information.\\n\\n[PreviousCollections](/docs/product/collection)[NextBest practices for documentation that supports AI](/docs/product/writing-bp)\\n\\n#### On this", - "title": "Turing AI agent | Computer for Support Teams | DevRev" + "id": "ART-12965_KNOWLEDGE_NODE-4", + "text": "AI](https://devrev.ai/turing-ai)\\n\\nResources\\n\\n * [Pricing](https://devrev.ai/pricing/support)\\n * [Blog](https://devrev.ai/blog)\\n * [Events](https://devrev.ai/events)\\n * [News](https://devrev.ai/blog?category=news)\\n * [Case Studies](https://devrev.ai/case-study)\\n * [Documentation](https://docs.devrev.ai/)\\n * [API Reference](https://docs.devrev.ai/api/)\\n * [The Book of DevRev](https://thebook.devrev.ai/)\\n * [Partner Program](https://devrev.ai/partners)\\n * [Startup", + "title": "Delete Metric Definition \u2014 DevRev | Docs" }, { - "id": "ART-1987_KNOWLEDGE_NODE-23", - "text": "2025](/docs/changelog/_2025-06-01)\\n + [May 2025](/docs/changelog/_2025-05-01)\\n + [March and April 2025](/docs/changelog/_2025-04-01)\\n + [February 2025](/docs/changelog/_2025-02-01)\\n* [Developer \\xe2\\x86\\x97\\xef\\xb8\\x8f](https://developer.devrev.ai/)\\n* [DevRevU \\xe2\\x86\\x97\\xef\\xb8\\x8f](/docs/DevRevU)\\n\\n + [Product demos](/docs/DevRevU/demos)\\n\\nOn this page\\n\\n* [Suggest-only mode](#suggestonly-mode)\\n* [Content-powered mode](#contentpowered-mode)\\n* [Goal-oriented mode", - "title": "Turing AI agent | Computer for Support Teams | DevRev" + "id": "ART-1411_KNOWLEDGE_NODE-12", + "text": "AI](https://devrev.ai/turing-ai)\\n\\nResources\\n\\n * [Pricing](https://devrev.ai/pricing/support)\\n * [Blog](https://devrev.ai/blog)\\n * [Events](https://devrev.ai/events)\\n * [News](https://devrev.ai/blog?category=news)\\n * [Case Studies](https://devrev.ai/case-study)\\n * [Documentation](https://docs.devrev.ai/)\\n * [API Reference](https://docs.devrev.ai/api/)\\n * [The Book of DevRev](https://thebook.devrev.ai/)\\n * [Partner Program](https://devrev.ai/partners)\\n * [Startup", + "title": "List Rev Orgs \u2014 DevRev | Docs" }, { - "id": "ART-1987_KNOWLEDGE_NODE-0", - "text": "b\"Turing AI agent | Computer for Support Teams | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CMD`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", + "id": "ART-1987_KNOWLEDGE_NODE-26", + "text": "[articles](./articles) for more information.\\n\\nOnce you have added your knowledge base, Turing can be switched on in two modes: suggestion or auto-response. You can configure Turing in **Settings > Turing Answers** and turn on the **Turing Answers** toggle.\\n\\nSuggest-only mode\\n-----------------\\n\\nComputer only suggests an answer to the user query. A support agent can accept or make edits to the answer, then send it to the user.\\n\\nContent-powered mode\\n--------------------\\n\\nComputer", "title": "Turing AI agent | Computer for Support Teams | DevRev" }, { - "id": "ART-1987_KNOWLEDGE_NODE-12", - "text": "Node](/docs/automations/search-node)\\n - [Sentiment evaluator](/docs/automations/sentiment-evaluator)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Real-time sentiment evaluator](/docs/automations/realtime-sentiment-evaluator)\\n - [Send customized emails](/docs/automations/send-emails)\\n - [StageFlow automator](/docs/automations/stageflow-automator)\\n - [Smart issue creator](/docs/automations/smart-issue-creator)\\n - [Set user preference for", - "title": "Turing AI agent | Computer for Support Teams | DevRev" + "id": "ART-12449_KNOWLEDGE_NODE-48", + "text": "AI](https://devrev.ai/turing-ai)\\n\\nResources\\n\\n * [Pricing](https://devrev.ai/pricing/support)\\n * [Blog](https://devrev.ai/blog)\\n * [Events](https://devrev.ai/events)\\n * [News](https://devrev.ai/blog?category=news)\\n * [Case Studies](https://devrev.ai/case-study)\\n * [Documentation](https://docs.devrev.ai/)\\n * [API Reference](https://docs.devrev.ai/api/)\\n * [The Book of DevRev](https://thebook.devrev.ai/)\\n * [Partner Program](https://devrev.ai/partners)\\n * [Startup", + "title": "Features \u2014 DevRev | Docs" }, { - "id": "ART-1987_KNOWLEDGE_NODE-29", - "text": "page\\n\\n* [Suggest-only mode](#suggestonly-mode)\\n* [Content-powered mode](#contentpowered-mode)\\n* [Goal-oriented mode (Beta)](#goaloriented-mode-beta)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer works](/how-computer-works)\\n\\nApps\\n\\n* [For Support Teams](/for-support-teams)\\n* [For Builders](/for-builders)\\n* [For Customers](/for-customers)\\n* [For User", - "title": "Turing AI agent | Computer for Support Teams | DevRev" + "id": "ART-2032_KNOWLEDGE_NODE-6", + "text": "+ [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best practices for documentation that supports AI](/docs/product/writing-bp)\\n + [Commands](/docs/product/commands)\\n + [Service-level agreement](/docs/product/sla)\\n + [Operational-level agreement](/docs/product/ola)\\n + [Support snap-ins](/docs/product/snapins-support)\\n* [Build](/docs/product/build)\\n\\n + [Issues](/docs/product/issues)\\n + [Now, Next, Later](/docs/product/nnl)\\n + [Sprint mode](/docs/product/sprint)\\n +", + "title": "Google Calendar | Integrate | Snap-ins | DevRev" }, { - "id": "ART-1987_KNOWLEDGE_NODE-25", - "text": "Knowledge base, while keeping a support agent subscribed to conversations. If it cannot answer a certain query or you request it to connect to the team, it will redirect it to the default owner of the conversation.\\n\\nWhen looking for a source to inform its answer, it will prioritize the QA pairs, which are intended to serve as definitive answers to commonly repeated questions.\\n\\n![]()\\n\\nFor Computer to suggest articles, you need to add articles to your DevRev instance. Refer to", - "title": "Turing AI agent | Computer for Support Teams | DevRev" + "id": "ART-15716_KNOWLEDGE_NODE-14", + "text": "AI Bot \\xe2\\x80\\x93 Turing\\n\\nYes! DevRev offers an AI-powered assistant called Turing , which can answer questions, suggest articles, summarize conversations, and more. You can read more about it in the documentation: [https://docs.devrev.ai/product/conversational-bot](https://docs.devrev.ai/product/conversational-bot)\\n\\n4.\\xe2\\x80\\x82Difference Between Runnables and Features\\n\\nA feature is a unit of configuration or capability in the product, often representing a user-facing function or", + "title": "Support queries related playbook" }, { - "id": "ART-1987_KNOWLEDGE_NODE-31", - "text": "Program](/partners)\\n* [Startups Program](/startups)\\n* [Gr.ai.ce](/graice)\\n\\n* [Security](https://security.devrev.ai/)\\n* [SLA](/legal/sla)\\n* [DPA](/legal/dpa)\\n* [Subprocessors](/security/sub-processors)\\n* [Cookie Policy](/legal/cookie-policy)\\n* [Privacy Policy](/legal/privacy-policy)\\n* [Terms of Service](/legal/terms-of-service)\\n\\n[System Status](/status)\\n\\n\\xc2\\xa9 2025 DevRev Inc.\\n\\n![]()\"", - "title": "Turing AI agent | Computer for Support Teams | DevRev" + "id": "ART-1432_KNOWLEDGE_NODE-8", + "text": "AI](https://devrev.ai/turing-ai)\\n\\nResources\\n\\n * [Pricing](https://devrev.ai/pricing/support)\\n * [Blog](https://devrev.ai/blog)\\n * [Events](https://devrev.ai/events)\\n * [News](https://devrev.ai/blog?category=news)\\n * [Case Studies](https://devrev.ai/case-study)\\n * [Documentation](https://docs.devrev.ai/)\\n * [API Reference](https://docs.devrev.ai/api/)\\n * [The Book of DevRev](https://thebook.devrev.ai/)\\n * [Partner Program](https://devrev.ai/partners)\\n * [Startup", + "title": "Get Webhook \u2014 DevRev | Docs" }, { - "id": "ART-1987_KNOWLEDGE_NODE-30", - "text": "Insights](/for-user-insights)\\n* [Marketplace](https://marketplace.devrev.ai/)\\n\\nResources\\n\\n* [Blog](/blog)\\n* [Our Customers](/case-study)\\n* [Snap-In Extensions](https://developer.devrev.ai/public/snapin-development/concepts)\\n* [DevRevU training](/docs/DevRevU)\\n* [Documentation](https://docs.devrev.ai/)\\n* [API References](https://docs.devrev.ai/api/)\\n\\nCompany\\n\\n* [About](/about)\\n* [Events](/events)\\n* [Careers](/careers)\\n* [What Why How](/what-why-how)\\n\\nInitiatives\\n\\n* [Partner", - "title": "Turing AI agent | Computer for Support Teams | DevRev" + "id": "ART-12390_KNOWLEDGE_NODE-6", + "text": "+ [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best practices for documentation that supports AI](/docs/product/writing-bp)\\n + [Commands](/docs/product/commands)\\n + [Service-level agreement](/docs/product/sla)\\n + [Operational-level agreement](/docs/product/ola)\\n + [Support snap-ins](/docs/product/snapins-support)\\n* [Computer for Builders](/docs/product/build)\\n\\n + [Issues](/docs/product/issues)\\n + [Now, Next, Later](/docs/product/nnl)\\n + [Sprint", + "title": "Workflow action library | Workflows | Computer by DevRev | DevRev" } ] }, @@ -564,54 +564,54 @@ "query": "how to make MIS report with available data on DevRev", "retrievals": [ { - "id": "ART-1963_KNOWLEDGE_NODE-15", - "text": "[Custom field migration](/docs/automations/custom-field-migration)\\n - [Slack scraper](/docs/automations/slack-scraper)\\n - [Slack Broadcaster](/docs/automations/slack-broadcaster)\\n - [Reported by enricher](/docs/automations/ticket-reported-by)\\n - [Ticket approval workflow](/docs/automations/ticket-approval-workflow)\\n - [Ticket linked issues comment sync](/docs/automations/ticket-linked-issues-comment-sync)\\n - [Slack message agent](/docs/automations/slack-message-agent)\\n", - "title": "Accessing DevRev | Computer by DevRev | DevRev" + "id": "ART-12601_KNOWLEDGE_NODE-9", + "text": "development.\\n * Strong understanding of test reporting tools and technologies.\\n\\nJoin us in innovating our testing processes and ensuring the delivery of high-quality software products through advanced automation techniques.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the earth\\xe2\\x80\\x99s most customer-centric companies. Our mission is to leverage design, data", + "title": "DevRev Careers | QA Automation Lead" }, { - "id": "ART-1963_KNOWLEDGE_NODE-4", - "text": "insights](/docs/dashboards/conversation-insights)\\n - [Conversation-SLA Analytics](/docs/dashboards/conversation-sla-analytics)\\n - [Conversation-Team Performance](/docs/dashboards/conversation-team-performance)\\n - [Ticket insights](/docs/dashboards/ticket-insights)\\n - [Ticket-SLA Analytics](/docs/dashboards/ticket-sla-analytics)\\n - [Ticket-Team Performance](/docs/dashboards/ticket-team-performance)\\n + [Conversations](/docs/product/conversation)\\n\\n - [Conversation to", - "title": "Accessing DevRev | Computer by DevRev | DevRev" + "id": "ART-2002_KNOWLEDGE_NODE-31", + "text": "**Group** conditions across various vistas in DevRev to track specific work, capacity, and more.\\n\\nYou can add custom attributes to opportunities to track additional information. For more information on custom attributes, see [object customization](./object-customization).\\n\\n### External reference\\n\\nWhile ingesting customer identity into DevRev, customer information coming across channels must be matched to the same record. \\nFor example, a customer record created by you using APIs should", + "title": "Contacts | Computer for Growth Teams | DevRev" }, { - "id": "ART-2046_KNOWLEDGE_NODE-15", - "text": "[Operational SLA Metrics](/docs/automations/operational-sla-metrics)\\n - [Custom field migration](/docs/automations/custom-field-migration)\\n - [Slack scraper](/docs/automations/slack-scraper)\\n - [Slack Broadcaster](/docs/automations/slack-broadcaster)\\n - [Reported by enricher](/docs/automations/ticket-reported-by)\\n - [Ticket approval workflow](/docs/automations/ticket-approval-workflow)\\n - [Ticket linked issues comment", - "title": "DevRev for Jira app | Jira Software AirSync | AirSync | Snap-ins | DevRev" + "id": "ART-15201_KNOWLEDGE_NODE-10", + "text": "Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n * Outstanding communication (written and verbal), with fluency in English.\\n * Comfort operating in a fast-paced, high-demand, global environment.\\n * Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the", + "title": "DevRev Careers | Senior Customer Success Manager" }, { - "id": "ART-15792_KNOWLEDGE_NODE-9", - "text": "information sharing and reporting by converging support, product and user data in one shared view.\\n\\nAutomated knowledge base management: AI agents remember successful resolutions and instantly apply them to future issues, reducing customer wait time.\\n\\nSource: [DevRev Support](https://devrev.ai/support)BuildWhat is DevRev Build?\\n\\nDevRev Build is a full-featured product development platform built for modern businesses and trusted by leading organizations\\n\\nKey Features:\\n\\nAuto-generate", - "title": "DevRev Products and Agents" + "id": "ART-2045_KNOWLEDGE_NODE-31", + "text": "several options to manage and sync your data:\\n\\n* **Sync to DevRev:** Synchronize new items created and modifications made in the external source to corresponding items in DevRev.\\n* **Sync to External Source:** Synchronize new items created in DevRev and modifications made in DevRev to the external source.\\n* **Periodic Sync:** Enable automatic periodic sync to keep data updated between DevRev and the external source.\\n* **View Report:** Access detailed information about the initial import", + "title": "AirSync | Snap-ins | DevRev" }, { - "id": "ART-1952_KNOWLEDGE_NODE-27", - "text": "bring in data from other sources as well.\\n\\nDiscover\\n--------\\n\\nTo get started, click the \\xe2\\x9a\\xa1 button on a vista. The following options are available:\\n\\n* Create New Report\\n* View Past Reports: Created by me or shared with me\\n\\nYou can also search for reports and find more on the **Explore** page.\\n\\n![]()\\n\\n### Create\\n\\nYou can create your own reports by adding a name, description, and creating widgets. Here, you'll also be able to preview your report and make any necessary", - "title": "Vista Reports | Vistas | Computer by DevRev | DevRev" + "id": "ART-15203_KNOWLEDGE_NODE-10", + "text": "Technical knowledge of web solutions including APIs and Webhooks. Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n* Outstanding communication (written and verbal), with fluency in English.\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who", + "title": "DevRev Careers | Senior Customer Success Manager" }, { - "id": "ART-3208_KNOWLEDGE_NODE-31", - "text": "Select the import you want to view.\\n3. Select the context menu (\\xe2\\x8b\\xae) > **View Report**.\\n\\n### Periodic sync\\n\\nAfter successfully importing to DevRev, you have the option to enable a periodic sync. This allows for automatic synchronization with DevRev on a regular basis. By default, the sync occurs once an hour.\\n\\nTo configure periodic sync, follow these steps:\\n\\n1. Go to **Settings** > **Integrations** > **AirSyncs**.\\n2. Locate the previously imported project.\\n3. Select the", - "title": "DevRev AirSync | AirSync | Snap-ins | DevRev" + "id": "ART-16805_KNOWLEDGE_NODE-34", + "text": "Imports**.\\n2. Select the import you want to view.\\n3. Click on the context menu (\\xe2\\x8b\\xae) and select View Report.\\n\\n### Periodic sync\\n\\nAfter successfully importing to DevRev, you have the option to enable a periodic sync. This allows for automatic synchronization with DevRev on a regular basis. By default, the sync occurs once an hour, but can be configured for intervals from 5 minutes to 1 week.\\n\\nTo configure periodic sync, follow these steps:\\n\\n1. Go to **Settings > Integrations >", + "title": "Articulate Reach 360 AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-2046_KNOWLEDGE_NODE-4", - "text": "analytics](/docs/product/support-analytics)\\n\\n - [Conversation insights](/docs/dashboards/conversation-insights)\\n - [Conversation-SLA Analytics](/docs/dashboards/conversation-sla-analytics)\\n - [Conversation-Team Performance](/docs/dashboards/conversation-team-performance)\\n - [Ticket insights](/docs/dashboards/ticket-insights)\\n - [Ticket-SLA Analytics](/docs/dashboards/ticket-sla-analytics)\\n - [Ticket-Team Performance](/docs/dashboards/ticket-team-performance)\\n +", - "title": "DevRev for Jira app | Jira Software AirSync | AirSync | Snap-ins | DevRev" + "id": "ART-2055_KNOWLEDGE_NODE-30", + "text": "modifications made in Linear to the corresponding work item in\\n DevRev.\\n + Create new work items in DevRev for any new issues created in Linear after\\n the last sync or import.\\n* [Sync DevRev to Snap-ins](#sync-to-linear)\\n + Write any modifications made in DevRev to the corresponding work item in\\n Linear.\\n + Create new work items in Linear for any new issues created in DevRev after the last sync or import.\\n* View report\\n + View details of the initial import and any syncs", + "title": "Linear AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-738_KNOWLEDGE_NODE-8", - "text": "purchase a product, you consider the need, cost, runway, future needs, etc.\\n\\nNow, say you want to prioritize which work you should focus on and deliver in the next sprint. You\\xe2\\x80\\x99d need information about other items in-flight, staff workload, customer impact of items, dependent opportunities, and a lot of additional data.\\n\\nWith DevRev, we have the full context and can use that to feed into the models. With the other point systems, you\\xe2\\x80\\x99d need to consolidate somewhere", - "title": "DevRev | Built for AI (not by AI... yet)" + "id": "ART-15202_KNOWLEDGE_NODE-10", + "text": "including APIs and Webhooks. Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n* Outstanding communication (written and verbal), with fluency in English.\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to", + "title": "DevRev Careers | Senior Customer Success Manager" }, { - "id": "ART-15687_KNOWLEDGE_NODE-26", - "text": "For example, to find opportunities data, search for opportunity and select the dim\\\\_opportunity dataset.\\n4. Write a SQL query and run it.\\n\\nTesting your query in Notebook ensures you have the correct dataset for your visualization.\\n\\n* **Access the widget builder**:\\n\\nGo to the widget builder by modifying your DevRev workspace URL. For example, your\\\\_workspace\\\\_slug/widget-preview.\\nThe builder provides a boilerplate code that you can modify.\\n\\n![]()\\n\\n* **Define your dataset (Oasis", - "title": "Dashboards | Computer by DevRev | DevRev" + "id": "ART-16185_KNOWLEDGE_NODE-9", + "text": "proficiency in Excel/Google Sheets and financial systems (e.g., **NetSuite, Anaplan, Adaptive Insights, or similar**). \\n \\n\\n * Experience working with **SQL** or data analysis tools is a plus. \\n \\n\\n * A collaborative mindset and commitment to accuracy, integrity, and continuous improvement. \\n \\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the earth\\xe2\\x80\\x99s", + "title": "DevRev Careers | Payroll Analyst" }, { - "id": "ART-15792_KNOWLEDGE_NODE-11", - "text": "to maintain visibility of resource allocation even as you scale\\n\\nProduct 360 Analytics: Enhance customer experience, product velocity, and developer productivity with robust Product 360 analytics\\n\\nCustomer-focused Development: Make development customer-focused with sprints that adapt to customer requirements\\n\\nSource: [DevRev Build](https://devrev.ai/build)User ObservabilityWhat is DevRev User Observability?\\n\\nDevRev User Observability helps you gain a clear window into your user journeys", - "title": "DevRev Products and Agents" + "id": "ART-15506_KNOWLEDGE_NODE-16", + "text": "request details and timestamp. |\\n\\n### How resolution works\\n\\nWhen you send object information to DevRev, the system automatically creates or finds existing contacts, accounts, and workspaces.\\n\\nDevRev offers three ways to structure your customer\\xe2\\x80\\x99s data:\\n\\n| Hierarchy Type | Documents Created | What to Include | Use Case |\\n| --- | --- | --- | --- |\\n| **Single-level** | Contacts only | Only user information | Recommended for most B2C cases |\\n| **Two-level** | Accounts and", + "title": "Identify your users with Plug | DevRev | Docs" } ] }, @@ -621,53 +621,53 @@ "retrievals": [ { "id": "ART-1277_KNOWLEDGE_NODE-6", - "text": "objects of type\\n **Issue** or **Ticket** are created in DevRev.\\n2. **Text command**: This manual trigger is achieved by utilizing a slash\\n command in the **Discussions** tab of the objects that support this feature.\\n\\n#### Action\\n\\nTo implement the desired action of adding a comment to the object timeline, it\\nis essential to identify the appropriate [API]\\nfor this task. In this scenario, the `/timeline-entries.create` API is the\\ndesignated choice for executing the action of adding a", + "text": "objects of type\\n **Issue** or **Ticket** are created in DevRev.\\n2. **Text command**: This manual trigger is achieved by utilizing a slash\\n command in the **Discussions** tab of the objects that support this feature.\\n\\n#### Action\\n\\nTo implement the desired action of adding a comment to the object timeline, it\\nis essential to identify the appropriate [API]\\nfor this task. In this scenario, the `/timeline-entries.create` API is the\\ndesignated choice for executing the action of adding a", "title": "Snap-in triggered by a DevRev event | DevRev | Docs" }, + { + "id": "ART-1485_KNOWLEDGE_NODE-10", + "text": "invoke the snap-in, two distinct triggers are implemented:\\n\\n 1. **Creation of work item** : This trigger is activated when new objects of type **Issue** or **Ticket** are created in DevRev.\\n\\n 2. **Text command** : This manual trigger is achieved by utilizing a slash command in the **Discussions** tab of the objects that support this feature.\\n\\n#### Action\\n\\nTo implement the desired action of adding a comment to the object timeline, it is essential to identify the appropriate [API] for", + "title": "Snap-in triggered by a DevRev event \u2014 DevRev | Docs" + }, { "id": "ART-1265_KNOWLEDGE_NODE-9", "text": "timeline of an issue/ticket using the `timeline-entries.create` API with different visibilities. You can now use this to create comments on timeline using automation or manually based on your use case.\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/guides/webhooks)[#### Object customization\\n\\nNext](/guides/object-customization)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n![]()'", "title": "Restricted messages on a timeline | DevRev | Docs" }, { - "id": "ART-1425_KNOWLEDGE_NODE-2", - "text": "id=don:core:dvrv-us-1:devo/example:ticket/123:comment/comment-id\\n[/code] \\n \\nTry it\\n\\n200getExample\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"timeline_entry\": { \\n 3| \"created_by\": { \\n 4| \"display_id\": \"foo\", \\n 5| \"id\": \"foo\", \\n 6| \"display_name\": \"foo\", \\n 7| \"display_picture\": { \\n 8| \"display_id\": \"foo\", \\n 9| \"id\": \"foo\", \\n 10| \"file\": { \\n 11| \"type\": \"foo\", \\n 12|", - "title": "Get Timeline Entry \u2014 DevRev | Docs" - }, - { - "id": "ART-1471_KNOWLEDGE_NODE-9", - "text": "}\\n[/code] \\n \\nYou can check the object to which you sent a message in the UI. It\\xe2\\x80\\x99s visible to the creator and the users you added in `private_to`.\\n\\n## Summary\\n\\nIn this tutorial, you learned how to post a comment on the timeline of an issue/ticket using the `timeline-entries.create` API with different visibilities. You can now use this to create comments on timeline using automation or manually based on your use case.\\n\\nWas this page helpful?YesNo\\n\\n[SDKsUp", - "title": "Restricted messages on a timeline \u2014 DevRev | Docs" + "id": "ART-1230_KNOWLEDGE_NODE-1", + "text": "https://api.devrev.ai/timeline-entries.get \\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\ |\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{ |\\n| > | \"id\": \"don:core:dvrv-us-1:devo/example:ticket/123:comment/comment-id\" |\\n| > | }\\' |\\n```\\n\\n[Try it](/api-reference/timeline-entries/get-post?explorer=true)\\n\\n200Successful\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"timeline_entry\": { |\\n| 3 | \"created_by\": { |\\n| 4 | \"display_id\": \"string\", |\\n| 5 | \"id\": \"string\", |\\n| 6", + "title": "Get Timeline Entry (POST) | DevRev | Docs" }, { - "id": "ART-4184_KNOWLEDGE_NODE-28", - "text": "relationships.\\n\\n![]()\\n\\n* Comments synchronize only between directly linked items.\\n* Editing a comment after synchronization does not update the synchronized copies.\\n* Ticket threads are not fully supported yet. DevRev supports only one level of nesting; threaded comments in tickets are supported as flat items.\\n\\n[PreviousTicket approval workflow](/docs/automations/ticket-approval-workflow)[NextSlack message agent](/docs/automations/slack-message-agent)\\n\\n#### On this page\\n\\n* [Key", - "title": "Ticket linked issues comment sync | Automate | Snap-ins | DevRev" + "id": "ART-1425_KNOWLEDGE_NODE-2", + "text": "id=don:core:dvrv-us-1:devo/example:ticket/123:comment/comment-id\\n[/code] \\n \\nTry it\\n\\n200getExample\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"timeline_entry\": { \\n 3| \"created_by\": { \\n 4| \"display_id\": \"foo\", \\n 5| \"id\": \"foo\", \\n 6| \"display_name\": \"foo\", \\n 7| \"display_picture\": { \\n 8| \"display_id\": \"foo\", \\n 9| \"id\": \"foo\", \\n 10| \"file\": { \\n 11| \"type\": \"foo\", \\n 12|", + "title": "Get Timeline Entry \u2014 DevRev | Docs" }, { - "id": "ART-1227_KNOWLEDGE_NODE-6", - "text": "|\\n```\\n\\nCreates a new entry on an object\\'s timeline.\\n\\n### Headers\\n\\nAuthorizationstringRequired\\n\\nBearer authentication of the form `Bearer `, where token is your auth token.\\n\\n### Request\\n\\nThis endpoint expects an object.\\n\\ntimeline\\\\_commentobjectRequired\\n\\nShow 9 properties\\n\\n### Response\\n\\nThe response to creating a timeline entry for an object.\\n\\ntimeline\\\\_entryobject\\n\\nShow 1 variants\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized", - "title": "Create Timeline Entry | DevRev | Docs" + "id": "ART-1490_KNOWLEDGE_NODE-42", + "text": "\"don:core::devo/:ticket/123:timeline_event/\" \\n 356| }, \\n 357| \"timeline_entry_updated\": { \\n 358| \"entry\": { \\n 359| \"created_by\": {}, \\n 360| \"created_date\": \"2023-01-01T12:00:00.000Z\", \\n 361| \"display_id\": \"string\", \\n 362| \"id\": \"string\", \\n 363| \"modified_by\": {}, \\n 364| \"modified_date\": \"2023-01-01T12:00:00.000Z\", \\n 365| \"object\": \"string\", \\n 366|", + "title": "Snap-in manifest \u2014 DevRev | Docs" }, { - "id": "ART-4184_KNOWLEDGE_NODE-13", - "text": "creator](/docs/automations/smart-issue-creator)\\n - [Set user preference for group](/docs/automations/set-user-preference)\\n - [SLA status change Slack notifier](/docs/automations/sla-change-notifier)\\n - [Slash commands](/docs/automations/slash-commands)\\n - [Spam Shield](/docs/automations/spam-shield)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field", - "title": "Ticket linked issues comment sync | Automate | Snap-ins | DevRev" + "id": "ART-1435_KNOWLEDGE_NODE-2", + "text": "\"Content-Type: application/json\" \\\\ \\n >| -d \\'{ \\n >| \"id\": \"don:core:dvrv-us-1:devo/example:ticket/123:comment/comment-id\" \\n >| }\\'\\n[/code] \\n \\nTry it\\n\\n200timelineEntriesGetPostExample\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"timeline_entry\": { \\n 3| \"created_by\": { \\n 4| \"display_id\": \"foo\", \\n 5| \"id\": \"foo\", \\n 6| \"display_name\": \"foo\", \\n 7| \"display_picture\": { \\n 8| \"display_id\": \"foo\", \\n", + "title": "Get Timeline Entry (POST) \u2014 DevRev | Docs" }, { - "id": "ART-4184_KNOWLEDGE_NODE-24", - "text": "[Product demos](/docs/DevRevU/demos)\\n\\nOn this page\\n\\n* [Key features](#key-features)\\n* [Installation and configuration](#installation-and-configuration)\\n* [Prerequisites](#prerequisites)\\n* [Setup steps](#setup-steps)\\n\\n1. [Documentation](/docs)\\n3. [Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[Ticket linked issues comment sync](/docs/automations/ticket-linked-issues-comment-sync)\\n\\nTicket linked issues comment sync\\n=================================\\n\\nThe **Ticket Linked", - "title": "Ticket linked issues comment sync | Automate | Snap-ins | DevRev" + "id": "ART-1641_KNOWLEDGE_NODE-425", + "text": "Post.\\n\\nPOST https:// api.devrev.ai / timeline-entries.list\\nLists the timeline entries for an object.\\nRequest.\\n\\nThis endpoint expects an object.\\nobject string Required\\nThe ID of the object to list timeline entries for.\\ncollections list of \"discussions\" or \"events\" Optional\\nAllowed values: discussions events\\nThe collection(s) to list entries from, otherwise if not provided, all entries are returned.\\ncursor string Optional\\nThe cursor to resume iteration from. If not provided, then", + "title": "Get Post \u2014 DevRev | Docs" }, { - "id": "ART-1227_KNOWLEDGE_NODE-1", - "text": "\\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\ |\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{}\\' |\\n```\\n\\n[Try it](/api-reference/timeline-entries/create?explorer=true)\\n\\n201Created\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"timeline_entry\": { |\\n| 3 | \"created_by\": { |\\n| 4 | \"display_id\": \"string\", |\\n| 5 | \"id\": \"string\", |\\n| 6 | \"display_name\": \"string\", |\\n| 7 | \"display_picture\": { |\\n| 8 | \"display_id\": \"string\", |\\n| 9 | \"id\": \"string\", |\\n| 10 | \"file\": {", - "title": "Create Timeline Entry | DevRev | Docs" + "id": "ART-15435_KNOWLEDGE_NODE-1", + "text": "\"Authorization: Bearer \" \\\\ |\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{ |\\n| > | \"emoji\": \"string\", |\\n| > | \"object\": \"don:core:dvrv-us-1:devo/example:ticket/123:comment/comment-id\" |\\n| > | }\\' |\\n```\\n\\n[Try it](/api-reference/timeline-entries/reactions-list-post?explorer=true)\\n\\n200Successful\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"reactors\": [ |\\n| 3 | { |\\n| 4 | \"display_id\": \"string\", |\\n| 5 | \"id\": \"string\", |\\n| 6 | \"display_name\": \"string\", |\\n| 7", + "title": "List Reactions (POST) | DevRev | Docs" }, { - "id": "ART-1435_KNOWLEDGE_NODE-2", - "text": "\"Content-Type: application/json\" \\\\ \\n >| -d \\'{ \\n >| \"id\": \"don:core:dvrv-us-1:devo/example:ticket/123:comment/comment-id\" \\n >| }\\'\\n[/code] \\n \\nTry it\\n\\n200timelineEntriesGetPostExample\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"timeline_entry\": { \\n 3| \"created_by\": { \\n 4| \"display_id\": \"foo\", \\n 5| \"id\": \"foo\", \\n 6| \"display_name\": \"foo\", \\n 7| \"display_picture\": { \\n 8| \"display_id\": \"foo\", \\n", - "title": "Get Timeline Entry (POST) \u2014 DevRev | Docs" + "id": "ART-1653_KNOWLEDGE_NODE-425", + "text": "Post.\\n\\nPOST https:// api.devrev.ai / timeline-entries.list\\nLists the timeline entries for an object.\\nRequest.\\n\\nThis endpoint expects an object.\\nobject string Required\\nThe ID of the object to list timeline entries for.\\ncollections list of \"discussions\" or \"events\" Optional\\nAllowed values: discussions events\\nThe collection(s) to list entries from, otherwise if not provided, all entries are returned.\\ncursor string Optional\\nThe cursor to resume iteration from. If not provided, then", + "title": "Get \u2014 DevRev | Docs" } ] }, @@ -676,54 +676,54 @@ "query": "DevRev Bot groups created from airdrops", "retrievals": [ { - "id": "ART-1591_KNOWLEDGE_NODE-149", - "text": "groups based on the group type.\\nAllowed values: dynamic static\\ningestion_source \"airdrop\" or \"scim\" Optional\\nFilter groups by ingestion source(s).\\nAllowed values: airdrop scim\\nis_default boolean Optional\\nWhether to fetch default or custom groups.\\nlimit integer Optional\\nThe maximum number of groups to return. The default is \\'50\\'.\\nmember_type \"dev_user\" or \"rev_user\" Optional\\nFilters the groups on basis of member type.\\nAllowed values: dev_user rev_user\\nmode \"after\" or \"before\"", - "title": "Create \u2014 DevRev | Docs" + "id": "ART-1543_KNOWLEDGE_NODE-233", + "text": "https://api.devrev.ai / groups.list\\n\\nLists the available groups.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\ncursor string Optional\\n\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\n\\ngroup_type list of \"dynamic\" or \"static\" Optional\\nAllowed values: dynamic static\\n\\nFilters the groups based on the group type.\\n\\ningestion_source list of \"airdrop\" or \"scim\" Optional\\nAllowed values: airdrop scim\\n\\nFilter groups by ingestion", + "title": "Metric Definitions List Post (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1605_KNOWLEDGE_NODE-149", - "text": "groups based on the group type.\\nAllowed values: dynamic static\\ningestion_source \"airdrop\" or \"scim\" Optional\\nFilter groups by ingestion source(s).\\nAllowed values: airdrop scim\\nis_default boolean Optional\\nWhether to fetch default or custom groups.\\nlimit integer Optional\\nThe maximum number of groups to return. The default is \\'50\\'.\\nmember_type \"dev_user\" or \"rev_user\" Optional\\nFilters the groups on basis of member type.\\nAllowed values: dev_user rev_user\\nmode \"after\" or \"before\"", - "title": "Create \u2014 DevRev | Docs" + "id": "ART-1566_KNOWLEDGE_NODE-233", + "text": "https://api.devrev.ai / groups.list\\n\\nLists the available groups.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\ncursor string Optional\\n\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\n\\ngroup_type list of \"dynamic\" or \"static\" Optional\\nAllowed values: dynamic static\\n\\nFilters the groups based on the group type.\\n\\ningestion_source list of \"airdrop\" or \"scim\" Optional\\nAllowed values: airdrop scim\\n\\nFilter groups by ingestion", + "title": "Transition (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1649_KNOWLEDGE_NODE-149", - "text": "groups based on the group type.\\nAllowed values: dynamic static\\ningestion_source \"airdrop\" or \"scim\" Optional\\nFilter groups by ingestion source(s).\\nAllowed values: airdrop scim\\nis_default boolean Optional\\nWhether to fetch default or custom groups.\\nlimit integer Optional\\nThe maximum number of groups to return. The default is \\'50\\'.\\nmember_type \"dev_user\" or \"rev_user\" Optional\\nFilters the groups on basis of member type.\\nAllowed values: dev_user rev_user\\nmode \"after\" or \"before\"", - "title": "Create \u2014 DevRev | Docs" + "id": "ART-1562_KNOWLEDGE_NODE-233", + "text": "https://api.devrev.ai / groups.list\\n\\nLists the available groups.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\ncursor string Optional\\n\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\n\\ngroup_type list of \"dynamic\" or \"static\" Optional\\nAllowed values: dynamic static\\n\\nFilters the groups based on the group type.\\n\\ningestion_source list of \"airdrop\" or \"scim\" Optional\\nAllowed values: airdrop scim\\n\\nFilter groups by ingestion", + "title": "Get (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1651_KNOWLEDGE_NODE-149", - "text": "groups based on the group type.\\nAllowed values: dynamic static\\ningestion_source \"airdrop\" or \"scim\" Optional\\nFilter groups by ingestion source(s).\\nAllowed values: airdrop scim\\nis_default boolean Optional\\nWhether to fetch default or custom groups.\\nlimit integer Optional\\nThe maximum number of groups to return. The default is \\'50\\'.\\nmember_type \"dev_user\" or \"rev_user\" Optional\\nFilters the groups on basis of member type.\\nAllowed values: dev_user rev_user\\nmode \"after\" or \"before\"", - "title": "Create \u2014 DevRev | Docs" + "id": "ART-1564_KNOWLEDGE_NODE-233", + "text": "https://api.devrev.ai / groups.list\\n\\nLists the available groups.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\ncursor string Optional\\n\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\n\\ngroup_type list of \"dynamic\" or \"static\" Optional\\nAllowed values: dynamic static\\n\\nFilters the groups based on the group type.\\n\\ningestion_source list of \"airdrop\" or \"scim\" Optional\\nAllowed values: airdrop scim\\n\\nFilter groups by ingestion", + "title": "List (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1822_KNOWLEDGE_NODE-149", - "text": "groups based on the group type.\\nAllowed values: dynamic static\\ningestion_source \"airdrop\" or \"scim\" Optional\\nFilter groups by ingestion source(s).\\nAllowed values: airdrop scim\\nis_default boolean Optional\\nWhether to fetch default or custom groups.\\nlimit integer Optional\\nThe maximum number of groups to return. The default is \\'50\\'.\\nmember_type \"dev_user\" or \"rev_user\" Optional\\nFilters the groups on basis of member type.\\nAllowed values: dev_user rev_user\\nmode \"after\" or \"before\"", - "title": "Create \u2014 DevRev | Docs" + "id": "ART-1545_KNOWLEDGE_NODE-233", + "text": "https://api.devrev.ai / groups.list\\n\\nLists the available groups.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\ncursor string Optional\\n\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\n\\ngroup_type list of \"dynamic\" or \"static\" Optional\\nAllowed values: dynamic static\\n\\nFilters the groups based on the group type.\\n\\ningestion_source list of \"airdrop\" or \"scim\" Optional\\nAllowed values: airdrop scim\\n\\nFilter groups by ingestion", + "title": "Create (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1832_KNOWLEDGE_NODE-149", - "text": "groups based on the group type.\\nAllowed values: dynamic static\\ningestion_source \"airdrop\" or \"scim\" Optional\\nFilter groups by ingestion source(s).\\nAllowed values: airdrop scim\\nis_default boolean Optional\\nWhether to fetch default or custom groups.\\nlimit integer Optional\\nThe maximum number of groups to return. The default is \\'50\\'.\\nmember_type \"dev_user\" or \"rev_user\" Optional\\nFilters the groups on basis of member type.\\nAllowed values: dev_user rev_user\\nmode \"after\" or \"before\"", - "title": "Create \u2014 DevRev | Docs" + "id": "ART-1558_KNOWLEDGE_NODE-233", + "text": "https://api.devrev.ai / groups.list\\n\\nLists the available groups.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\ncursor string Optional\\n\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\n\\ngroup_type list of \"dynamic\" or \"static\" Optional\\nAllowed values: dynamic static\\n\\nFilters the groups based on the group type.\\n\\ningestion_source list of \"airdrop\" or \"scim\" Optional\\nAllowed values: airdrop scim\\n\\nFilter groups by ingestion", + "title": "Metric Definitions List (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1300_KNOWLEDGE_NODE-153", - "text": "iteration starts from the beginning.\\ngroup_type \"dynamic\" or \"static\" Optional\\nFilters the groups based on the group type.\\nAllowed values: dynamic static\\ningestion_source \"airdrop\" or \"scim\" Optional\\nFilter groups by ingestion source(s).\\nAllowed values: airdrop scim\\nis_default boolean Optional\\nWhether to fetch default or custom groups.\\nlimit integer Optional\\nThe maximum number of groups to return. The default is \\'50\\'.\\nmember_type \"dev_user\" or \"rev_user\" Optional\\nFilters the", - "title": "Create \u2014 DevRev | Docs" + "id": "ART-1549_KNOWLEDGE_NODE-233", + "text": "https://api.devrev.ai / groups.list\\n\\nLists the available groups.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\ncursor string Optional\\n\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\n\\ngroup_type list of \"dynamic\" or \"static\" Optional\\nAllowed values: dynamic static\\n\\nFilters the groups based on the group type.\\n\\ningestion_source list of \"airdrop\" or \"scim\" Optional\\nAllowed values: airdrop scim\\n\\nFilter groups by ingestion", + "title": "List Post (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1637_KNOWLEDGE_NODE-149", - "text": "groups based on the group type.\\nAllowed values: dynamic static\\ningestion_source \"airdrop\" or \"scim\" Optional\\nFilter groups by ingestion source(s).\\nAllowed values: airdrop scim\\nis_default boolean Optional\\nWhether to fetch default or custom groups.\\nlimit integer Optional\\nThe maximum number of groups to return. The default is \\'50\\'.\\nmember_type \"dev_user\" or \"rev_user\" Optional\\nFilters the groups on basis of member type.\\nAllowed values: dev_user rev_user\\nmode \"after\" or \"before\"", - "title": "Delete \u2014 DevRev | Docs" + "id": "ART-1562_KNOWLEDGE_NODE-230", + "text": "https://api.devrev.ai / groups.list\\n\\nLists the available groups.\\n\\nQuery parameters.\\n\\ncursor string Optional\\n\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\n\\ngroup_type \"dynamic\" or \"static\" Optional\\n\\nFilters the groups based on the group type.\\n\\nAllowed values: dynamic static\\ningestion_source \"airdrop\" or \"scim\" Optional\\n\\nFilter groups by ingestion source(s).\\n\\nAllowed values: airdrop scim\\nis_default boolean Optional\\n\\nWhether", + "title": "Get (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1821_KNOWLEDGE_NODE-149", - "text": "groups based on the group type.\\nAllowed values: dynamic static\\ningestion_source \"airdrop\" or \"scim\" Optional\\nFilter groups by ingestion source(s).\\nAllowed values: airdrop scim\\nis_default boolean Optional\\nWhether to fetch default or custom groups.\\nlimit integer Optional\\nThe maximum number of groups to return. The default is \\'50\\'.\\nmember_type \"dev_user\" or \"rev_user\" Optional\\nFilters the groups on basis of member type.\\nAllowed values: dev_user rev_user\\nmode \"after\" or \"before\"", - "title": "Delete \u2014 DevRev | Docs" + "id": "ART-1560_KNOWLEDGE_NODE-233", + "text": "https://api.devrev.ai / groups.list\\n\\nLists the available groups.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\ncursor string Optional\\n\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\n\\ngroup_type list of \"dynamic\" or \"static\" Optional\\nAllowed values: dynamic static\\n\\nFilters the groups based on the group type.\\n\\ningestion_source list of \"airdrop\" or \"scim\" Optional\\nAllowed values: airdrop scim\\n\\nFilter groups by ingestion", + "title": "Assign (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1824_KNOWLEDGE_NODE-149", - "text": "groups based on the group type.\\nAllowed values: dynamic static\\ningestion_source \"airdrop\" or \"scim\" Optional\\nFilter groups by ingestion source(s).\\nAllowed values: airdrop scim\\nis_default boolean Optional\\nWhether to fetch default or custom groups.\\nlimit integer Optional\\nThe maximum number of groups to return. The default is \\'50\\'.\\nmember_type \"dev_user\" or \"rev_user\" Optional\\nFilters the groups on basis of member type.\\nAllowed values: dev_user rev_user\\nmode \"after\" or \"before\"", - "title": "Delete \u2014 DevRev | Docs" + "id": "ART-1566_KNOWLEDGE_NODE-230", + "text": "https://api.devrev.ai / groups.list\\n\\nLists the available groups.\\n\\nQuery parameters.\\n\\ncursor string Optional\\n\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\n\\ngroup_type \"dynamic\" or \"static\" Optional\\n\\nFilters the groups based on the group type.\\n\\nAllowed values: dynamic static\\ningestion_source \"airdrop\" or \"scim\" Optional\\n\\nFilter groups by ingestion source(s).\\n\\nAllowed values: airdrop scim\\nis_default boolean Optional\\n\\nWhether", + "title": "Transition (Beta) \u2014 DevRev | Docs" } ] }, @@ -731,34 +731,24 @@ "query_id": "a15290e1-d40b-4422-b5ea-170576843e89", "query": "SLA for Next Response stop when stage is moved back to Awaiting Customer", "retrievals": [ - { - "id": "ART-1974_KNOWLEDGE_NODE-28", - "text": "transitions from *new* to *waiting on user*. When a customer responds back to support, the stage transitions to *needs response*.\\n\\n Towards the end of the conversation when the resolution is expected to be valid, the customer experience engineer asks the customer to acknowledge their concerns have been resolved. When the customer experience engineer asks this question the stage transitions to *waiting on user*, and if they validate it moves to *needs response* for the customer experience", - "title": "Conversations | Computer for Support Teams | DevRev" - }, { "id": "ART-1979_KNOWLEDGE_NODE-43", - "text": "*awaiting customer response* until the customer responds.\\n\\n In certain scenarios, the customer experience engineer may be able to resolve the customer's concern. If that's the case, they would ask the customer if their resolution has resolved their concern and the stage would move to the *awaiting customer response*. Once the concern is resolved and the customer acknowledges the resolution, the stage may move to *resolved*. If the concern isn't resolved, the stage may change back to *work in", + "text": "*awaiting customer response* until the customer responds.\\n\\n In certain scenarios, the customer experience engineer may be able to resolve the customer's concern. If that's the case, they would ask the customer if their resolution has resolved their concern and the stage would move to the *awaiting customer response*. Once the concern is resolved and the customer acknowledges the resolution, the stage may move to *resolved*. If the concern isn't resolved, the stage may change back to *work in", "title": "Tickets | Computer for Support Teams | DevRev" }, { - "id": "ART-1974_KNOWLEDGE_NODE-32", - "text": "have been completed the stage transitions to *needs response* to bring to the customer experience engineer's attention. Upon review they may put the conversation back on *hold* to re-escalate the item. If the dependencies seem to be resolved the customer experience engineer responds to the customer and the stage transitions to *waiting on user*.\\n\\n**Closed**\\n\\n* *Resolved* (R)\\n\\n The final target stage for conversations. It means that the customer's concerns which led to the conversation", - "title": "Conversations | Computer for Support Teams | DevRev" - }, - { - "id": "ART-1974_KNOWLEDGE_NODE-30", - "text": "stage.\\n* *Needs response* (NR)\\n\\n The customer has responded; the customer experience engineer needs to review the item and respond or resolve the issue if the user requests or validates the fix. When a customer experience engineer responds the stage transitions to *waiting on user*.\\n\\n In certain cases it may be necessary to escalate the item internally where the conversation may depend on tickets, issues, or a response from someone other than themselves. In this case the stage", - "title": "Conversations | Computer for Support Teams | DevRev" + "id": "ART-17231_KNOWLEDGE_NODE-155", + "text": "|\\n\\n**severity**\\n\\n| Value | Name | Description |\\n| --- | --- | --- |\\n| `blocker` | Blocker | - |\\n| `high` | High | - |\\n| `low` | Low | - |\\n| `medium` | Medium | - |\\n\\n**stage**\\n\\n| Value | Name | Description |\\n| --- | --- | --- |\\n| `awaiting_customer_response` | Awaiting Customer Response | - |\\n| `awaiting_development` | Awaiting Development | - |\\n| `awaiting_product_assist` | Awaiting Product Assist | - |\\n| `canceled` | Canceled | - |\\n| `in_development` | In Development | -", + "title": "Supported DevRev object types | DevRev | Docs" }, { - "id": "ART-1986_KNOWLEDGE_NODE-40", - "text": "conversation moves to any stage except Waiting on User |\\n\\nViewing SLAs\\n------------\\n\\nThe SLA targets applied to a particular conversation can be viewed in the **Inbox** and the **Conversation Detailed** view. For a ticket in any of the ticket vistas.\\n\\nWhen there are two active metrics, vista displays the one closest to the breach. In the case of a conversation where both the first response and full resolution metrics are active, and the first response is due in five minutes but the full", - "title": "Service-level agreement | Computer for Support Teams | DevRev" + "id": "ART-1979_KNOWLEDGE_NODE-46", + "text": "resolved the customer's concern the stage can move to *resolved*.\\n* Awaiting development (AD)\\n\\n The issues on which the user's concern relies for resolution are planned but not active, when development on the issue begins the stage transitions to *In development*.\\n* In development (ID)\\n\\n The issues on which the user's concern relies for resolution are actively being worked on. Once the development process begins, the stage may go from *in development* to *awaiting customer response* to", + "title": "Tickets | Computer for Support Teams | DevRev" }, { "id": "ART-1986_KNOWLEDGE_NODE-38", - "text": "ticket is moved to the Closed state | The ticket was moved to Awaiting Customer Response state | The ticket moves to any state except Closed |\\n\\n**Conversations**\\n\\n| Metric | Default conditions | Start event | End event | Pause event | Resume event |\\n| --- | --- | --- | --- | --- | --- |\\n| First response time | The first message sent by a customer | Conversation created | * The agent replied to the conversation * The conversation is moved to Waiting on User/Resolved * The conversation is", + "text": "ticket is moved to the Closed state | The ticket was moved to Awaiting Customer Response state | The ticket moves to any state except Closed |\\n\\n**Conversations**\\n\\n| Metric | Default conditions | Start event | End event | Pause event | Resume event |\\n| --- | --- | --- | --- | --- | --- |\\n| First response time | The first message sent by a customer | Conversation created | * The agent replied to the conversation * The conversation is moved to Waiting on User/Resolved * The conversation is", "title": "Service-level agreement | Computer for Support Teams | DevRev" }, { @@ -767,19 +757,29 @@ "title": "Service-level agreement | Computer for Support Teams | DevRev" }, { - "id": "ART-1981_KNOWLEDGE_NODE-27", - "text": "Periodically group the **Inbox** by stage and make sure there conversations only in *hold* or *awaiting customer response* stages.\\n* Let the customer know when a ticket linked to a conversation is closed and request their verification.\\n* Once all tickets of a conversation are resolved and the customer is satisfied, resolve the conversation.\\n* Move new tickets to the *awaiting product assist* stage.\\n\\nRespond to conversations\\n------------------------\\n\\n* Respond as fast as possible to any", - "title": "Support best practices | Computer for Support Teams | DevRev" + "id": "ART-1457_KNOWLEDGE_NODE-9", + "text": "\"stage\": \"foo\", \\n 83| \"status\": \"foo\" \\n 84| } \\n 85| }\\n[/code] \\n \\n[Get SLA Tracker (POST)Up Next](/public/api-reference/slas/sla-trackers-get-post)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n[Enterprise grade security to protect customer dataLearn more about it.](https://devrev.ai/blog/soc-compliance)\\n\\nProduct\\n\\n * [Build](https://devrev.ai/build)\\n * [Support](https://devrev.ai/support)\\n *", + "title": "Get SLA Tracker \u2014 DevRev | Docs" }, { - "id": "ART-1986_KNOWLEDGE_NODE-39", - "text": "marked as spam | | |\\n| Next response time | | A new message on the conversation with the customer after the customer experience engineer replied | * The agent replied to the conversation * The conversation is moved to Waiting on User/Resolved * The conversation is marked as spam | | |\\n| Full resolution time | | Conversation created | * The conversation has moved to the Resolved/Archived * The conversation is marked as spam | The conversation is moved to Waiting on User | The", - "title": "Service-level agreement | Computer for Support Teams | DevRev" + "id": "ART-1593_KNOWLEDGE_NODE-466", + "text": "SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the provided types.\\nAllowed values: issue opportunity task ticket\\nResponse.\\n\\nThis endpoint returns an object.\\nworks list of objects\\nThe list of works.\\nShow 4 variants\\nnext_cursor string", + "title": "Get \u2014 DevRev | Docs" }, { - "id": "ART-1979_KNOWLEDGE_NODE-44", - "text": "progress* as the customer experience engineer continues to work on it.\\n* *Awaiting product assist* (APA)\\n\\n The customer experience engineer is waiting for a response or feedback from someone internally. They may need to escalate the ticket. There may be a corresponding [issue](./issues) created to fix the defect, which would transition the stage to *awaiting development*.\\n* Awaiting customer response (ACR)\\n\\n The customer experience engineer requires more detail or another response from", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1975_KNOWLEDGE_NODE-29", + "text": "stage\\n--------------------\\n\\n* **Average time spent per stage**\\n\\n The average time tickets spent in each stage.\\n\\n[PreviousConversation-Team Performance](/docs/dashboards/conversation-team-performance)[NextTicket-SLA Analytics](/docs/dashboards/ticket-sla-analytics)\\n\\n#### On this page\\n\\n* [Customer & product impact](#customer-product-impact)\\n* [Ticket distribution](#ticket-distribution)\\n* [Customer satisfaction (CSAT)](#customer-satisfaction-csat)\\n* [Time spent per", + "title": "Ticket insights | Support analytics | Computer for Support Teams | DevRev" + }, + { + "id": "ART-1827_KNOWLEDGE_NODE-469", + "text": "SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the provided types.\\nAllowed values: issue opportunity task ticket\\nResponse.\\n\\nThis endpoint returns an object.\\nworks list of objects\\nThe list of works.\\nShow 4 variants\\nnext_cursor string", + "title": "Update \u2014 DevRev | Docs" + }, + { + "id": "ART-15281_KNOWLEDGE_NODE-6", + "text": "\"sla_policy_id\": \"string\", |\\n| 83 | \"stage\": \"string\", |\\n| 84 | \"status\": \"string\" |\\n| 85 | } |\\n| 86 | ], |\\n| 87 | \"next_cursor\": \"string\", |\\n| 88 | \"prev_cursor\": \"string\" |\\n| 89 | } |\\n```\\n\\nLists SLA trackers matching a filter.\\n\\n### Headers\\n\\nAuthorizationstringRequired\\n\\nBearer authentication of the form `Bearer `, where token is your auth token.\\n\\n### Query parameters\\n\\ncreated\\\\_date.afterstringOptional`format: \"date-time\"`\\n\\nFilters for objects created after the", + "title": "List SLA Trackers | DevRev | Docs" } ] }, @@ -793,49 +793,49 @@ "title": "February 2025 | Changelog | DevRev" }, { - "id": "ART-2017_KNOWLEDGE_NODE-12", - "text": "sync](/docs/automations/org-tags-sync)\\n - [Search Node](/docs/automations/search-node)\\n - [Sentiment evaluator](/docs/automations/sentiment-evaluator)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Real-time sentiment evaluator](/docs/automations/realtime-sentiment-evaluator)\\n - [Send customized emails](/docs/automations/send-emails)\\n - [StageFlow automator](/docs/automations/stageflow-automator)\\n - [Smart issue", - "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" + "id": "ART-12394_KNOWLEDGE_NODE-31", + "text": "workflow.\\n* **Define error actions**: Set a specific sequence of steps to execute if an error occurs during that action.\\n* **Ensure graceful management**: Manage errors by enabling appropriate fallback actions, such as sending a notification or logging the error. When a step fails, any subsequent steps in the path do not execute.\\n\\n[PreviousConversational workflows](/docs/product/conversational-workflows)[NextWorkflow nodes](/docs/product/workflow-nodes)\\n\\n#### On this page\\n\\n* [Version", + "title": "Workflow management | Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-2017_KNOWLEDGE_NODE-16", - "text": "sync](/docs/automations/ticket-linked-issues-comment-sync)\\n - [Slack message agent](/docs/automations/slack-message-agent)\\n + [Integrate](/docs/integrate)\\n\\n - [Bitbucket](/docs/integrations/bitbucket)\\n - [Calendly](/docs/integrations/calendly)\\n - [Coralogix security integration](/docs/integrations/coralogix)\\n - [Datadog](/docs/integrations/datadog)\\n - [Google Calendar AirSync](/docs/integrations/google-calendar-airdrop)\\n - [Email](/docs/integrations/email)\\n\\n", - "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" + "id": "ART-4206_KNOWLEDGE_NODE-20", + "text": "occurred |\\n| 49 | sendToClient(conversationId, { |\\n| 50 | type: \"agent_error\", |\\n| 51 | error: event.payload.ai_agent_response.error.error, |\\n| 52 | }); |\\n| 53 | } |\\n| 54 | |\\n| 55 | res.status(200).send(\"OK\"); |\\n| 56 | }); |\\n```\\n\\n##### \\n\\nUsing WebSockets or Server-Sent Events can provide real-time updates to your\\nUI as events are received.\\n\\n### Talk to agent node in workflows\\n\\n##### \\n\\nThis is in early access, please contact support to have it enabled for you.\\n\\nIf", + "title": "Agents async API | DevRev | Docs" }, { - "id": "ART-2035_KNOWLEDGE_NODE-48", - "text": "channel.\\n\\n1. **Sync messages with the thread (for incidents created from Slack)**\\n\\n* Works only for incidents created from Slack.\\n* It syncs messages with the originating thread, similar to ticket and issue work items.\\n\\n1. **Sync messages with the notification thread**\\n\\n* Syncs with the thread of the incident notification sent on the channel mentioned in the **Channel ID to send incident notifications** configuration.\\n* Works for all incidents irrespective of source channel or", - "title": "Slack | Integrate | Snap-ins | DevRev" + "id": "ART-1484_KNOWLEDGE_NODE-86", + "text": "keywords in a Slack message, they are prompted to send the message to your DevRev inbox.\", \\n 16| \"type\": \"plain_text\" \\n 17| }, \\n 18| \"label\": { \\n 19| \"text\": \"List of strings\", \\n 20| \"type\": \"plain_text\" \\n 21| }, \\n 22| \"type\": \"input_layout\" \\n 23| }\\n[/code] \\n \\nMultiline string list input with a minimum of 1 item and a maximum of 2 items.\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"element\": { \\n 3| \"action_id\":", + "title": "Snapkit \u2014 DevRev | Docs" }, { - "id": "ART-4199_KNOWLEDGE_NODE-13", - "text": "group](/docs/automations/set-user-preference)\\n - [SLA status change Slack notifier](/docs/automations/sla-change-notifier)\\n - [Slash commands](/docs/automations/slash-commands)\\n - [Spam Shield](/docs/automations/spam-shield)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field migrator](/docs/automations/ticket-issue-field-migrator)\\n - [Ticket", - "title": "Slack message agent | Automate | Snap-ins | DevRev" + "id": "ART-2035_KNOWLEDGE_NODE-54", + "text": "given DevRev user - Can be used to later send direct messages to the user on the Slack using Send message to Slack node. | - Slack connection - DevRev user id | - Slack user id |\\n| Start Thread Sync | - Set up 2 way message synchronization between a Slack thread and a DevRev object discussion. | - Slack connection - DevRev Object ID - Slack channel ID - Slack thread ID (message ID of parent message, returned by send message to Slack workflow node) | N/A |\\n| Start Channel Sync | -", + "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-4199_KNOWLEDGE_NODE-10", - "text": "data](/docs/automations/bulk-delete)\\n - [Bulk work item uploader](/docs/automations/bulk-upload)\\n - [Commands surface expander](/docs/automations/commands-surface-expander)\\n - [Convergence](/docs/automations/converge)\\n - [Conversation reminder](/docs/automations/conversation-reminder)\\n - [CSAT on conversation](/docs/automations/csat-conv)\\n - [CSAT on ticket](/docs/automations/csat-tickets)\\n - [CSV work item uploader](/docs/automations/csv-work-item-uploader)\\n -", - "title": "Slack message agent | Automate | Snap-ins | DevRev" + "id": "ART-2035_KNOWLEDGE_NODE-45", + "text": "Creating issues with sync enabled from external channels is not supported.\\n\\nDevRev Incidents and Slack\\n--------------------------\\n\\n![]()\\n\\nIncident Management is available as a **beta feature**. Contact the support team to enable it before configuring incident settings.\\n\\nThe Slack snap-in allows incident creation directly from Slack using the following methods:\\n\\n* Use the /devrev create-incident command.\\n* Select **Create a new incident** from the message actions.\\n* Enable", + "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-4199_KNOWLEDGE_NODE-28", - "text": "**Trigger URL** that is displayed.\\n6. Paste the Trigger URL under **Enable Events** in the custom Slack bot.\\n\\n[PreviousTicket linked issues comment sync](/docs/automations/ticket-linked-issues-comment-sync)[NextIntegrate](/docs/integrate)\\n\\n#### On this page\\n\\n* [Install](#install)\\n* [Configure the custom Slack bot](#configure-the-custom-slack-bot)\\n* [Configure DevRev](#configure-devrev)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about", + "id": "ART-4199_KNOWLEDGE_NODE-0", + "text": "b\"Slack message agent | Automate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CMD`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", "title": "Slack message agent | Automate | Snap-ins | DevRev" }, { - "id": "ART-4199_KNOWLEDGE_NODE-17", - "text": "[Slack](/docs/integrations/slack)\\n - [WhatsApp](/docs/integrations/whatsapp)\\n - [GitHub](/docs/integrations/github)\\n - [GitLab](/docs/integrations/gitlab)\\n - [Harness](/docs/integrations/harness)\\n - [Marker.io](/docs/integrations/marker-io)\\n - [Instabug](/docs/integrations/instabug)\\n - [Qase](/docs/integrations/qase)\\n - [Tracxn Integration](/docs/integrations/tracxn-integration)\\n - [Twilio](/docs/integrations/twilio)\\n - [Glean](/docs/integrations/glean)\\n", - "title": "Slack message agent | Automate | Snap-ins | DevRev" + "id": "ART-2035_KNOWLEDGE_NODE-51", + "text": "Slack.\\n\\nFor example:\\n\\n* /devrev view TKT-#\\n* /devrev view ISS-#\\n\\nThese commands open the specific object mentioned in the command.\\n\\nCreating custom workflows\\n-------------------------\\n\\nThe users can configure their own workflows around Slack using DevRev's workflow engine.\\n\\n| Workflow Action | Description | Inputs | Outputs |\\n| --- | --- | --- | --- |\\n| Send message on Slack | - Use this workflow node to send a message to any Slack channel as long as the DevRev app has access to", + "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2017_KNOWLEDGE_NODE-25", - "text": "ticket\\'s owner and subscribers, when a ticket\\'s resolution time SLA changes into the *Warning* or *Breached* stage.\\n\\n![]()\\n\\nFor more information, refer to the\\n[SLA status change Slack notifier snap-in](/marketplace/sla-status-change-slack-notifier) on the DevRev\\nmarketplace.\\n\\nInstallation\\n------------\\n\\n1. Create a Slack app for your workspace in .\\n2. In App features, generate bot token in **OAuth & Permissions**.\\n3. Grant the app bot the following", - "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" + "id": "ART-4206_KNOWLEDGE_NODE-3", + "text": "it.\\n* Complete execution tracking via progress events.\\n* Ability to handle long-running agent tasks.\\n\\n##### \\n\\nIn any unlikely and unforeseen circumstances, if an individual operation of the workflow times out, you do not receive an error event right now to notify that you should not wait for any more messages. It is better to have a client side timeout for now while the issue is brainstormed and fixed for you.\\n\\nSet up webhook\\n--------------\\n\\nBefore using the async API, you need to", + "title": "Agents async API | DevRev | Docs" }, { - "id": "ART-4199_KNOWLEDGE_NODE-27", - "text": "message.channels.\\n7. Add this custom app and the **DevRev Slack Bot** into the Slack channel from which you want to create the DevRev object.\\n\\nConfigure DevRev\\n----------------\\n\\n1. Add the Slack Signing Secret and Slack Bot Token copied from the custom Slack bot app.\\n2. Add the channel IDs for either incidents, tickets or issues.\\n3. Click the respective buttons to enable the sync between threads.\\n4. Select the part ID to associate a particular part.\\n5. Click **Save** and copy the", - "title": "Slack message agent | Automate | Snap-ins | DevRev" + "id": "ART-2035_KNOWLEDGE_NODE-52", + "text": "the channel. - Private channels are supported only if the DevRev app is a member of the channel. | - Slack connection - Slack channel id - Text message to send - Objects to mention with message - If any object is added here, a summary card of that object is sent with the message. | Slack message ID |\\n| Create new Slack channel | Use this workflow node to create a new Slack channel. | - Slack connection - Channel name Make sure this is unique. It is recommended to create this name", + "title": "Slack | Integrate | Snap-ins | DevRev" } ] }, @@ -844,54 +844,54 @@ "query": "change and customize chat design", "retrievals": [ { - "id": "ART-12974_KNOWLEDGE_NODE-2", - "text": "{ \\n ---|--- \\n 2| \"chat\": { \\n 3| \"type\": \"foo\" \\n 4| } \\n 5| }\\n[/code] \\n \\n[Create Code ChangeUp Next](/public/api-reference/code-changes/create)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n[Enterprise grade security to protect customer dataLearn more about it.](https://devrev.ai/blog/soc-compliance)\\n\\nProduct\\n\\n * [Build](https://devrev.ai/build)\\n *", - "title": "Update Chat \u2014 DevRev | Docs" + "id": "ART-2059_KNOWLEDGE_NODE-6", + "text": "to the Customize documentation.\\n\\nAlternatively, for the most comprehensive customizations, refer to our SDK functions here.\\n\\nIntegration code.\\n\\nTo get the PLuG chat widget to appear on your website and web app, copy and paste the snippet below on every page where you want the widget to appear for website visitors.\\n\\nUnique app ID.\\n\\nMake sure to replace the app ID with your app ID which identifies your PLuG chat widget. You can access your app ID from your DevRev account by following", + "title": "Install PLuG chat on your website" }, { - "id": "ART-15306_KNOWLEDGE_NODE-3", - "text": "Change\\n\\nNext](/api-reference/code-changes/create)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Update Chat | DevRev | Docs" + "id": "ART-4113_KNOWLEDGE_NODE-8", + "text": "\"surface\": \"customer_chat\" \\n 96| } \\n 97| ], \\n 98| \"usage_hint\": \"usage_hint\" \\n 99| } \\n 100| }\\n[/code] \\n \\n[Get Command (POST)Up Next](/beta/api-reference/commands/get-post)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n'", + "title": "Get Command (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-2059_KNOWLEDGE_NODE-5", - "text": "Jul 06 to Jul 19, 2023 Jun 20 to Jul 05, 2023 Jun 05 to Jun 19, 2023 May 22 to Jun 05, 2023 Apr 22 to May 22, 2023\\n\\nDeveloper DevRevU\\n\\nOn this page\\nIntegration code Unique app ID Setup for HTML Setup for React\\nInstall PLuG chat on your website.\\n\\nThere are two primary methods to customize PLuG chat. The easiest way is to do so through the app by navigating to Settings > Support > PLuG Settings > Configuration, Styling and Layout Tabs.. For detailed descriptions of the parameters, refer", - "title": "Install PLuG chat on your website" + "id": "ART-15504_KNOWLEDGE_NODE-4", + "text": "[identify your customers](/sdks/web/user-identity) and update their information.\\n\\n##### \\n\\nOnce the SDK is installed, the chat widget appears by default. If you are not using the Plug SDK for support or chat-related flows, you can disable the chat widget by setting the `disable_plug_chat_window` input to `true`.\\n\\n```\\n| |\\n| --- |\\n| |\\n```\\n\\nTo ensure", + "title": "Install the Web SDK | DevRev | Docs" }, { - "id": "ART-15306_KNOWLEDGE_NODE-0", - "text": "b'Update Chat | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[chats](/api-reference/chats/create)\\n\\nUpdate Chat\\n===========\\n\\nCopy page\\n\\nPOST\\n\\nhttps://api.devrev.ai/chats.update\\n\\nPOST\\n\\n/chats.update\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl -X POST https://api.devrev.ai/chats.update \\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\ |\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n|", - "title": "Update Chat | DevRev | Docs" + "id": "ART-4110_KNOWLEDGE_NODE-10", + "text": "], \\n 95| \"surface\": \"customer_chat\" \\n 96| } \\n 97| ], \\n 98| \"usage_hint\": \"usage_hint\" \\n 99| } \\n 100| }\\n[/code] \\n \\n[Get CommandUp Next](/beta/api-reference/commands/get)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n'", + "title": "Create Command (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-12971_KNOWLEDGE_NODE-3", - "text": ">| ] \\n >| }\\'\\n[/code] \\n \\nTry it\\n\\n201chatsCreateExample\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"chat\": { \\n 3| \"type\": \"foo\" \\n 4| } \\n 5| }\\n[/code] \\n \\n[Get ChatUp Next](/public/api-reference/chats/get)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n[Enterprise grade security to protect customer dataLearn more about it.](https://devrev.ai/blog/soc-compliance)\\n\\nProduct\\n\\n *", - "title": "Create Chat \u2014 DevRev | Docs" + "id": "ART-3109_KNOWLEDGE_NODE-25", + "text": "Plug widget to reflect your unique identity truly.\\n\\nTo configure the appearance of your Plug widget, open your DevRev app and navigate to **Settings > Support > Plug Chat > Configuration, Styling, and Layout**.\\n\\n### Configuration\\n\\n* Hide Plug widget: Hide the Plug Widget on specific URLs by clicking **+ Rule** and adding the URLs you want to configure.\\n\\n### Styling\\n\\n* Launcher logo: The image that's visible as your widget icon. A 20-pixel square image is recommended.\\n* Alignment: The", + "title": "Plug widget customization | Computer for Your Customers | DevRev" }, { - "id": "ART-12974_KNOWLEDGE_NODE-9", - "text": "demo](https://devrev.ai/request-a-demo)\\n\\n'", - "title": "Update Chat \u2014 DevRev | Docs" + "id": "ART-4115_KNOWLEDGE_NODE-10", + "text": "], \\n 95| \"surface\": \"customer_chat\" \\n 96| } \\n 97| ], \\n 98| \"usage_hint\": \"usage_hint\" \\n 99| } \\n 100| }\\n[/code] \\n \\n[Create Content TemplateUp Next](/beta/api-reference/notifications/content-template-create)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n'", + "title": "Update Command (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-15301_KNOWLEDGE_NODE-3", - "text": "with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Create Chat | DevRev | Docs" + "id": "ART-2898_KNOWLEDGE_NODE-15", + "text": "to tailor its appearance to your application\\xe2\\x80\\x99s design.\\n\\n[code]\\n\\n 1| android:src=\"@your_drawable_here\" \\n ---|---\\n[/code] \\n \\nand\\n\\n[code]\\n\\n 1| android:backgroundTint=\"@your_background_color\" \\n ---|---\\n[/code] \\n \\nAt this stage, your app is fully configured to utilize all functionalities of the DevRev PLuG SDK. Pressing the support button directs the user to the chat interface, enabling effective interaction and support.\\n\\n## Analytics\\n\\nThe DevRev SDK", + "title": "Android integration \u2014 DevRev | Docs" }, { - "id": "ART-3109_KNOWLEDGE_NODE-29", - "text": "go to **Settings > Support > Plug Chat > Layout** through the settings icon on the top-left corner.\\n2. Select **Add a Card** and enter a title, description, image, and redirect URL.\\n3. Click **Save and Publish** in the top-right corner. The new card is visible in your Plug widget.\\n\\nWant to add more personalization to your Plug widget? Create your own. Visit [SDK Methods and Customization](https://developer.devrev.ai/sdks/web/customize) to create your own Plug from the ground", - "title": "Plug widget customization | Computer for Your Customers | DevRev" + "id": "ART-15504_KNOWLEDGE_NODE-1", + "text": "is installed, the chat widget appears by default.\\n\\nGetting your unique app ID\\n--------------------------\\n\\nYou can access your app ID from your DevRev account by following these steps:\\n\\n1. In DevRev, go to **Settings > Support > Plug Settings** via the settings icon in the top-left corner.\\n2. If the Plug feature is not already enabled, click **Enable Plug**.\\n3. Under the **Configuration** tab, copy the **Unique App ID**.\\n\\n###### Setup\\n\\n###### Setup for React\\n\\nPlace the following", + "title": "Install the Web SDK | DevRev | Docs" }, { - "id": "ART-2897_KNOWLEDGE_NODE-7", - "text": "button text for new tickets and conversations, conversation user text, and more. It must be a valid hex color code, such as `#f0f0f0`.| String \\n`session_recording_options`| Options for recording observability sessions.| Refer to [Session recording options](https://devrev.ai/docs/plug/session-recording) \\n`accent_color`| The accent color of the PLuG affects the launcher, new ticket and conversation buttons, conversation user text, and more.| String \\n`custom_launcher_selector`| A CSS", - "title": "Methods \u2014 DevRev | Docs" + "id": "ART-15311_KNOWLEDGE_NODE-5", + "text": "\"account\" |\\n| 75 | ], |\\n| 76 | \"surface\": \"customer_chat\" |\\n| 77 | } |\\n| 78 | ], |\\n| 79 | \"usage_hint\": \"string\" |\\n| 80 | } |\\n| 81 | } |\\n```\\n\\nGets a command.\\n\\n### Headers\\n\\nAuthorizationstringRequired\\n\\nBearer authentication of the form `Bearer `, where token is your auth token.\\n\\n### Query parameters\\n\\nidstringRequired`format: \"id\"`\\n\\nThe command\\'s ID.\\n\\n### Response\\n\\nSuccess.\\n\\ncommandobject\\n\\nShow 14 properties\\n\\n### Errors\\n\\n400\\n\\nBad Request", + "title": "Get Command | DevRev | Docs" }, { - "id": "ART-12971_KNOWLEDGE_NODE-9", - "text": "Status](https://devrev.ai/status)\\n\\n\\xc2\\xa9 2025 DevRev Inc.\\n\\n'", - "title": "Create Chat \u2014 DevRev | Docs" + "id": "ART-16582_KNOWLEDGE_NODE-4", + "text": "TextField(decoration: InputDecoration(labelText: \"foo-bar\"),),)` `DevRevUnmask(child: TextField(decoration: InputDecoration(labelText: \"foo-bar\"),),)` |\\n| Timers | `userExperior.startTimer(timerName, properties)` `userExperior.endTimer(timerName, properties)` | `DevRev.startTimer(name, properties)` `DevRev.endTimer(name, properties)` |\\n| Plug support chat | Not supported. | `DevRev.showSupport()` `DevRev.createSupportConversation()` |\\n| Push notifications | Not supported. |", + "title": "Migration guide | DevRev | Docs" } ] }, @@ -899,40 +899,30 @@ "query_id": "a929fcbe-9627-402e-9aa1-8535a766a594", "query": "Vista export as CSV error invalid_field sort_groups_by", "retrievals": [ - { - "id": "ART-1949_KNOWLEDGE_NODE-27", - "text": "bar.\\n\\n![]()\\n\\nTo export vistas to CSV or JSON, click **Actions** and select the format in which you want to export the vista. This allows you to export this data with the filters applied (segmented by owners or some filters). Cross-functional teams can collaborate on this data or import it into other platforms.\\n\\nDelete a vista\\n--------------\\n\\n1. Select the vista you want to delete from **My list** and click the edit button next to the name of your vista.\\n2. Click **Remove access**.\\n3.", - "title": "Vistas | Computer by DevRev | DevRev" - }, - { - "id": "ART-15481_KNOWLEDGE_NODE-6", - "text": "not set, then no later elements exist.\\n\\nprev\\\\_cursorstring or null`format: \"text\"`\\n\\nThe cursor used to iterate preceding results in accordance to the\\nsort order. If not set, then no prior elements exist.\\n\\nvista\\\\_grouplist of objects or null\\n\\nList of vista group items.\\n\\nShow 3 variants\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable", - "title": "List Vistas Groups | DevRev | Docs" - }, - { - "id": "ART-1302_KNOWLEDGE_NODE-161", - "text": "will always be returned in the specified sort-by order.\\nsort_by list of strings Optional\\nComma-separated fields to sort the groups by.\\nResponse.\\n\\nThis endpoint returns an object.\\ngroups list of objects\\nThe list of groups.\\nShow 11 properties\\nnext_cursor string Optional\\nThe cursor used to iterate subsequent results in accordance to the sort order. If not set, then no later elements exist.\\nprev_cursor string Optional\\nThe cursor used to iterate preceding results in accordance to the", - "title": "Export \u2014 DevRev | Docs" - }, { "id": "ART-15481_KNOWLEDGE_NODE-5", "text": "stringsOptional\\n\\nComma-separated fields to sort the objects by.\\n\\nstatelist of enumsOptional\\n\\nDenotes the state of the vista group item.\\n\\nAllowed values:activecompletedplanned\\n\\ntypelist of enumsOptional\\n\\nFilters for vista group items of the specific type.\\n\\nAllowed values:curateddynamic\\n\\n### Response\\n\\nThe response to listing the vistas group items.\\n\\nnext\\\\_cursorstring or null`format: \"text\"`\\n\\nThe cursor used to iterate subsequent results in accordance to the\\nsort order. If", "title": "List Vistas Groups | DevRev | Docs" }, { - "id": "ART-15481_KNOWLEDGE_NODE-1", - "text": "it](/api-reference/vistas/groups-list?explorer=true)\\n\\n200Retrieved\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"next_cursor\": \"string\", |\\n| 3 | \"prev_cursor\": \"string\", |\\n| 4 | \"vista_group\": [ |\\n| 5 | { |\\n| 6 | \"end_date\": \"2023-01-01T12:00:00.000Z\", |\\n| 7 | \"id\": \"string\", |\\n| 8 | \"name\": \"string\", |\\n| 9 | \"parent\": { |\\n| 10 | \"type\": \"string\", |\\n| 11 | \"display_id\": \"string\", |\\n| 12 | \"flavor\": \"nnl\", |\\n| 13 | \"id\": \"VISTA-12345\", |\\n| 14 | \"name\": \"string\" |\\n| 15 | },", - "title": "List Vistas Groups | DevRev | Docs" + "id": "ART-15461_KNOWLEDGE_NODE-2", + "text": "\"id\"`\\n\\nID of the vista group item to be deleted.\\n\\n### Response\\n\\nSuccess.\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n404\\n\\nNot Found Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/vistas/get-post)[#### Get Vistas Group\\n\\nNext](/api-reference/vistas/groups-get)[Built", + "title": "Delete Vistas Group | DevRev | Docs" }, { - "id": "ART-15479_KNOWLEDGE_NODE-1", - "text": "|\\n```\\n\\n[Try it](/api-reference/vistas/groups-get?explorer=true)\\n\\n200Retrieved\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"vista_group\": { |\\n| 3 | \"end_date\": \"2023-01-01T12:00:00.000Z\", |\\n| 4 | \"id\": \"string\", |\\n| 5 | \"name\": \"string\", |\\n| 6 | \"parent\": { |\\n| 7 | \"type\": \"string\", |\\n| 8 | \"display_id\": \"string\", |\\n| 9 | \"flavor\": \"nnl\", |\\n| 10 | \"id\": \"VISTA-12345\", |\\n| 11 | \"name\": \"string\" |\\n| 12 | }, |\\n| 13 | \"start_date\": \"2023-01-01T12:00:00.000Z\", |\\n| 14 | \"state\":", - "title": "Get Vistas Group | DevRev | Docs" + "id": "ART-15465_KNOWLEDGE_NODE-7", + "text": "values:activecompletedplanned\\n\\n### Response\\n\\nThe response to listing the vistas group items.\\n\\nnext\\\\_cursorstring or null`format: \"text\"`\\n\\nThe cursor used to iterate subsequent results in accordance to the\\nsort order. If not set, then no later elements exist.\\n\\nprev\\\\_cursorstring or null`format: \"text\"`\\n\\nThe cursor used to iterate preceding results in accordance to the\\nsort order. If not set, then no prior elements exist.\\n\\nvista\\\\_grouplist of objects or null\\n\\nList of vista", + "title": "List Vistas Groups (POST) | DevRev | Docs" + }, + { + "id": "ART-15465_KNOWLEDGE_NODE-5", + "text": "information about a list of vista groups.\\n\\nmodeenumOptional\\n\\nThe iteration mode to use. If \\xe2\\x80\\x9cafter\\xe2\\x80\\x9d, then entries after the provided\\ncursor will be returned, or if no cursor is provided, then from the\\nbeginning. If \\xe2\\x80\\x9cbefore\\xe2\\x80\\x9d, then entries before the provided cursor will be\\nreturned, or if no cursor is provided, then from the end. Entries will\\nalways be returned in the specified sort-by order.\\n\\nAllowed", + "title": "List Vistas Groups (POST) | DevRev | Docs" }, { - "id": "ART-15463_KNOWLEDGE_NODE-1", - "text": "|\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{ |\\n| > | \"id\": \"string\" |\\n| > | }\\' |\\n```\\n\\n[Try it](/api-reference/vistas/groups-get-post?explorer=true)\\n\\n200Successful\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"vista_group\": { |\\n| 3 | \"end_date\": \"2023-01-01T12:00:00.000Z\", |\\n| 4 | \"id\": \"string\", |\\n| 5 | \"name\": \"string\", |\\n| 6 | \"parent\": { |\\n| 7 | \"type\": \"string\", |\\n| 8 | \"display_id\": \"string\", |\\n| 9 | \"flavor\": \"nnl\", |\\n| 10 | \"id\": \"VISTA-12345\", |\\n|", - "title": "Get Vistas Group (POST) | DevRev | Docs" + "id": "ART-15483_KNOWLEDGE_NODE-10", + "text": "\"text\"`\\n\\nThe cursor used to iterate preceding results in accordance to the\\nsort order. If not set, then no prior elements exist.\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/vistas/groups-list-post)[#### List Vistas (POST)\\n\\nNext](/api-reference/vistas/list-post)[Built", + "title": "List Vistas | DevRev | Docs" }, { "id": "ART-15465_KNOWLEDGE_NODE-6", @@ -940,14 +930,24 @@ "title": "List Vistas Groups (POST) | DevRev | Docs" }, { - "id": "ART-15465_KNOWLEDGE_NODE-5", - "text": "information about a list of vista groups.\\n\\nmodeenumOptional\\n\\nThe iteration mode to use. If \\xe2\\x80\\x9cafter\\xe2\\x80\\x9d, then entries after the provided\\ncursor will be returned, or if no cursor is provided, then from the\\nbeginning. If \\xe2\\x80\\x9cbefore\\xe2\\x80\\x9d, then entries before the provided cursor will be\\nreturned, or if no cursor is provided, then from the end. Entries will\\nalways be returned in the specified sort-by order.\\n\\nAllowed", - "title": "List Vistas Groups (POST) | DevRev | Docs" + "id": "ART-1530_KNOWLEDGE_NODE-2", + "text": "\\xe2\\x80\\x9cafter\\xe2\\x80\\x9d is used.\\n\\nAllowed values: afterbefore\\n\\nsort_bystringOptional\\n\\nComma-separated fields to sort the groups by.\\n\\n### Response\\n\\nThe response to listing the groups.\\n\\ngroupslist of objects\\n\\nThe list of groups.\\n\\nShow 12 properties\\n\\nnext_cursorstringOptional\\n\\nThe cursor used to iterate subsequent results in accordance to the sort order. If not set, then no later elements exist.\\n\\nprev_cursorstringOptional\\n\\nThe cursor used to iterate preceding results", + "title": "List Groups (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-15465_KNOWLEDGE_NODE-1", - "text": "\" \\\\ |\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{}\\' |\\n```\\n\\n[Try it](/api-reference/vistas/groups-list-post?explorer=true)\\n\\n200Successful\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"next_cursor\": \"string\", |\\n| 3 | \"prev_cursor\": \"string\", |\\n| 4 | \"vista_group\": [ |\\n| 5 | { |\\n| 6 | \"end_date\": \"2023-01-01T12:00:00.000Z\", |\\n| 7 | \"id\": \"string\", |\\n| 8 | \"name\": \"string\", |\\n| 9 | \"parent\": { |\\n| 10 | \"type\": \"string\", |\\n| 11 | \"display_id\": \"string\",", - "title": "List Vistas Groups (POST) | DevRev | Docs" + "id": "ART-15479_KNOWLEDGE_NODE-2", + "text": "\"active\", |\\n| 15 | \"type\": \"curated\" |\\n| 16 | } |\\n| 17 | } |\\n```\\n\\nGets the requested vista group item\\'s information.\\n\\n### Headers\\n\\nAuthorizationstringRequired\\n\\nBearer authentication of the form `Bearer `, where token is your auth token.\\n\\n### Query parameters\\n\\nidstringRequired`format: \"id\"`\\n\\nThe vista group item\\'s ID.\\n\\n### Response\\n\\nThe response to getting a vista group item\\'s information.\\n\\nvista\\\\_groupobject\\n\\nRepresents a vista group item.\\n\\nShow 3", + "title": "Get Vistas Group | DevRev | Docs" + }, + { + "id": "ART-15390_KNOWLEDGE_NODE-6", + "text": "provided, then from the\\nbeginning. If \\xe2\\x80\\x9cbefore\\xe2\\x80\\x9d, then entries before the provided cursor will be\\nreturned, or if no cursor is provided, then from the end. Entries will\\nalways be returned in the specified sort-by order.\\n\\nAllowed values:afterbefore\\n\\nnamelist of stringsOptional\\n\\nFilters the groups on the basis of group name.\\n\\nsort\\\\_bylist of stringsOptional\\n\\nComma-separated fields to sort the groups by.\\n\\nsync\\\\_metadataobjectOptional\\n\\nShow 4 properties\\n\\n###", + "title": "List Groups (POST) | DevRev | Docs" + }, + { + "id": "ART-4082_KNOWLEDGE_NODE-4", + "text": "or if no cursor is provided, then from the end. Entries will always be returned in the specified sort-by order.\\n\\nnamelist of stringsOptional\\n\\nFilters the groups on the basis of group name.\\n\\nsort_bylist of stringsOptional\\n\\nComma-separated fields to sort the groups by.\\n\\nsync_metadataobjectOptional\\n\\nShow 4 properties\\n\\n### Response\\n\\nThe response to listing the groups.\\n\\ngroupslist of objects\\n\\nThe list of groups.\\n\\nShow 6 properties\\n\\nnext_cursorstringOptional`format:", + "title": "List Groups (POST) \u2014 DevRev | Docs" } ] }, @@ -956,54 +956,54 @@ "query": "accounts.export API filter by created date after", "retrievals": [ { - "id": "ART-1254_KNOWLEDGE_NODE-7", - "text": "\"date-time\"`\\n\\nFilters for objects created after the provided timestamp (inclusive).\\n\\nmodified\\\\_date.beforestringOptional`format: \"date-time\"`\\n\\nFilters for objects created before the provided timestamp\\n(inclusive).\\n\\nsort\\\\_bylist of stringsOptional\\n\\nFields to sort the accounts by and the direction to sort them in.\\n\\nstagelist of stringsOptional\\n\\nFilters for accounts on specified stages.\\n\\ntierlist of stringsOptional\\n\\nTier of the accounts to be filtered.\\n\\nwebsiteslist of", - "title": "Export Accounts | DevRev | Docs" + "id": "ART-1449_KNOWLEDGE_NODE-0", + "text": "b'[](/public/api-reference/accounts/export)\\n\\nPublic\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources", + "title": "Export Accounts \u2014 DevRev | Docs" }, { - "id": "ART-1254_KNOWLEDGE_NODE-6", - "text": "provided timestamp (inclusive).\\n\\ncreated\\\\_date.beforestringOptional`format: \"date-time\"`\\n\\nFilters for objects created before the provided timestamp\\n(inclusive).\\n\\ndisplay\\\\_namelist of stringsOptional\\n\\nArray of display names of accounts to be filtered.\\n\\nexternal\\\\_refslist of stringsOptional\\n\\nArray of references of accounts to be filtered.\\n\\nfirstintegerOptional`>=1``<=500`\\n\\nThe number of accounts to return. The default is \\'50\\'.\\n\\nmodified\\\\_date.afterstringOptional`format:", - "title": "Export Accounts | DevRev | Docs" + "id": "ART-1301_KNOWLEDGE_NODE-8", + "text": "\" : \" value \" 3 }\\nAPI Reference accounts Export.\\n\\nGET https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nQuery parameters.\\n\\ncreated_by string Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date.after datetime Optional\\nFilters for objects created after the provided timestamp (inclusive).\\ncreated_date.before datetime Optional\\nFilters for objects created before the provided timestamp (inclusive).\\ncustom_fields map from strings to any", + "title": "Delete \u2014 DevRev | Docs" }, { - "id": "ART-1449_KNOWLEDGE_NODE-2", - "text": "user(s).\\n\\ncreated_date.afterstringOptional`format: \"date-time\"`\\n\\nFilters for objects created after the provided timestamp (inclusive).\\n\\ncreated_date.beforestringOptional`format: \"date-time\"`\\n\\nFilters for objects created before the provided timestamp (inclusive).\\n\\ndisplay_namelist of stringsOptional\\n\\nArray of display names of accounts to be filtered.\\n\\nexternal_refslist of stringsOptional\\n\\nArray of references of accounts to be filtered.\\n\\nfirstintegerOptional`>=1``<=500`\\n\\nThe", - "title": "Export Accounts \u2014 DevRev | Docs" + "id": "ART-1302_KNOWLEDGE_NODE-8", + "text": "\" : \" value \" 3 }\\nAPI Reference accounts Export.\\n\\nGET https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nQuery parameters.\\n\\ncreated_by string Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date.after datetime Optional\\nFilters for objects created after the provided timestamp (inclusive).\\ncreated_date.before datetime Optional\\nFilters for objects created before the provided timestamp (inclusive).\\ncustom_fields map from strings to any", + "title": "Export \u2014 DevRev | Docs" }, { - "id": "ART-1652_KNOWLEDGE_NODE-12", - "text": "objects created after the provided timestamp (inclusive).\\nmodified_date.before datetime Optional\\nFilters for objects created before the provided timestamp (inclusive).\\nowned_by string Optional\\nFilters for accounts owned by the specified user(s).\\nsort_by string Optional\\nFields to sort the accounts by and the direction to sort them in.\\nstage string Optional\\nFilters for accounts on specified stages.\\ntags string Optional\\nList of tags to be filtered.\\nResponse.\\n\\nThis endpoint returns an", - "title": "Export \u2014 DevRev | Docs" + "id": "ART-1831_KNOWLEDGE_NODE-6", + "text": "exported accounts.\\nShow 18 properties\\nAPI Reference accounts Export Post.\\n\\nPOST https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nRequest.\\n\\nThis endpoint expects an object.\\ncreated_by list of strings Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date object Optional\\nShow 2 properties\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name list of strings Optional\\nArray of display names of accounts", + "title": "Get \u2014 DevRev | Docs" }, { - "id": "ART-1303_KNOWLEDGE_NODE-6", - "text": "exported accounts.\\nShow 18 properties\\nGET / accounts.export\\n$ curl -G https://api.devrev.ai/accounts.export \\\\ > -H \" Authorization: Bearer \" \\\\ > --data-urlencode created_date.after=2023-01-01T12:00:00Z \\\\ > --data-urlencode created_date.before=2023-01-01T12:00:00Z \\\\ > --data-urlencode modified_date.after=2023-01-01T12:00:00Z \\\\ > --data-urlencode modified_date.before=2023-01-01T12:00:00Z\\n200 Retrieved 1 { 2 \" accounts \" : [ 3 { 4 \" created_date \" : \" 2023-01-01T12:00:00Z \" , 5 \"", - "title": "Export Post \u2014 DevRev | Docs" + "id": "ART-1655_KNOWLEDGE_NODE-6", + "text": "exported accounts.\\nShow 18 properties\\nAPI Reference accounts Export Post.\\n\\nPOST https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nRequest.\\n\\nThis endpoint expects an object.\\ncreated_by list of strings Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date object Optional\\nShow 2 properties\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name list of strings Optional\\nArray of display names of accounts", + "title": "Update \u2014 DevRev | Docs" }, { - "id": "ART-1652_KNOWLEDGE_NODE-10", - "text": "Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date.after datetime Optional\\nFilters for objects created after the provided timestamp (inclusive).\\ncreated_date.before datetime Optional\\nFilters for objects created before the provided timestamp (inclusive).\\ncursor string Optional\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name", + "id": "ART-1652_KNOWLEDGE_NODE-3", + "text": "delete.\\nResponse.\\n\\nThis endpoint returns a map from strings to any.\\nAPI Reference accounts Export.\\n\\nGET https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nQuery parameters.\\n\\ncreated_by string Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date.after datetime Optional\\nFilters for objects created after the provided timestamp (inclusive).\\ncreated_date.before datetime Optional\\nFilters for objects created before the provided timestamp", "title": "Export \u2014 DevRev | Docs" }, { - "id": "ART-1303_KNOWLEDGE_NODE-15", - "text": "Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date.after datetime Optional\\nFilters for objects created after the provided timestamp (inclusive).\\ncreated_date.before datetime Optional\\nFilters for objects created before the provided timestamp (inclusive).\\ncursor string Optional\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name", - "title": "Export Post \u2014 DevRev | Docs" + "id": "ART-1829_KNOWLEDGE_NODE-6", + "text": "exported accounts.\\nShow 18 properties\\nAPI Reference accounts Export Post.\\n\\nPOST https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nRequest.\\n\\nThis endpoint expects an object.\\ncreated_by list of strings Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date object Optional\\nShow 2 properties\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name list of strings Optional\\nArray of display names of accounts", + "title": "Delete \u2014 DevRev | Docs" }, { - "id": "ART-1639_KNOWLEDGE_NODE-10", - "text": "Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date.after datetime Optional\\nFilters for objects created after the provided timestamp (inclusive).\\ncreated_date.before datetime Optional\\nFilters for objects created before the provided timestamp (inclusive).\\ncursor string Optional\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name", - "title": "Export Post \u2014 DevRev | Docs" + "id": "ART-1579_KNOWLEDGE_NODE-3", + "text": "delete.\\nResponse.\\n\\nThis endpoint returns a map from strings to any.\\nAPI Reference accounts Export.\\n\\nGET https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nQuery parameters.\\n\\ncreated_by string Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date.after datetime Optional\\nFilters for objects created after the provided timestamp (inclusive).\\ncreated_date.before datetime Optional\\nFilters for objects created before the provided timestamp", + "title": "List Post \u2014 DevRev | Docs" }, { - "id": "ART-1303_KNOWLEDGE_NODE-17", - "text": "objects created after the provided timestamp (inclusive).\\nmodified_date.before datetime Optional\\nFilters for objects created before the provided timestamp (inclusive).\\nowned_by string Optional\\nFilters for accounts owned by the specified user(s).\\nsort_by string Optional\\nFields to sort the accounts by and the direction to sort them in.\\nstage string Optional\\nFilters for accounts on specified stages.\\ntags string Optional\\nList of tags to be filtered.\\nResponse.\\n\\nThis endpoint returns an", - "title": "Export Post \u2014 DevRev | Docs" + "id": "ART-1787_KNOWLEDGE_NODE-6", + "text": "exported accounts.\\nShow 18 properties\\nAPI Reference accounts Export Post.\\n\\nPOST https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nRequest.\\n\\nThis endpoint expects an object.\\ncreated_by list of strings Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date object Optional\\nShow 2 properties\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name list of strings Optional\\nArray of display names of accounts", + "title": "Get \u2014 DevRev | Docs" }, { - "id": "ART-1639_KNOWLEDGE_NODE-12", - "text": "objects created after the provided timestamp (inclusive).\\nmodified_date.before datetime Optional\\nFilters for objects created before the provided timestamp (inclusive).\\nowned_by string Optional\\nFilters for accounts owned by the specified user(s).\\nsort_by string Optional\\nFields to sort the accounts by and the direction to sort them in.\\nstage string Optional\\nFilters for accounts on specified stages.\\ntags string Optional\\nList of tags to be filtered.\\nResponse.\\n\\nThis endpoint returns an", - "title": "Export Post \u2014 DevRev | Docs" + "id": "ART-1838_KNOWLEDGE_NODE-3", + "text": "delete.\\nResponse.\\n\\nThis endpoint returns a map from strings to any.\\nAPI Reference accounts Export.\\n\\nGET https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nQuery parameters.\\n\\ncreated_by string Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date.after datetime Optional\\nFilters for objects created after the provided timestamp (inclusive).\\ncreated_date.before datetime Optional\\nFilters for objects created before the provided timestamp", + "title": "List Post \u2014 DevRev | Docs" } ] }, @@ -1012,54 +1012,54 @@ "query": "Sales One App not visible after login", "retrievals": [ { - "id": "ART-17569_KNOWLEDGE_NODE-1", - "text": "message in the UI if they try to access an uninstalled app: \\xe2\\x80\\x9cWe can\\xe2\\x80\\x99t authorize you because of an OAuth error. For more information, contact your Salesforce administrator.\\xe2\\x80\\x9d and the OAUTH_APPROVAL_ERROR_GENERIC message.\"\\n\\nDue to this, customers may experience issues when trying to create a new Salesforce connection and install the DevRev app on their Salesforce instance.\\n\\nRead more about this on the shared article above. Follow the next steps to enable the", - "title": "Issues with Salesforce OAuth connection" + "id": "ART-4255_KNOWLEDGE_NODE-33", + "text": "\\n**Solution** : Confirm that user identification is performed before using the `showSupport()` function or XML button.\\n\\n * **Issue** : Incorrect operation due to `App ID` and `secret` misconfiguration. \\n**Solution** : Ensure correct functionality by double-checking that both `App ID` and `secret` values are accurately configured in your application or sample app.\\n\\nWas this page helpful?YesNo\\n\\n[DevRev SDK for iOSUp Next](/public/sdks/ios)\\n\\n[Built", + "title": "DevRev SDK for Android \u2014 DevRev | Docs" }, { - "id": "ART-2019_KNOWLEDGE_NODE-0", - "text": "b'Product\\nPlatform\\nSolutions\\nMarketplace\\nCompany\\nResources\\nPricing\\n\\nLogin Book a demo\\n\\nProduct\\n\\nPlatform\\n\\nSolutions\\n\\nMarketplace\\n\\nCompany\\n\\nResources\\n\\nPricing\\n\\nLogin Book a demo\\nSearch\\nCTRL + K\\n\\nIntroduction\\nAgentOS platform\\n\\nCore concepts\\nApps\\nGroups\\nParts & trails\\nVistas\\n\\nVista Reports\\n\\nTasks\\nUpdates\\nCustomer email notifications\\nRoles\\n\\nDefault privileges by group\\n\\nAccess control\\nObject customization\\nGlossary\\nSearch\\nWorkflow\\nTemplates\\nAccessing", - "title": "Smart sprint | Automate | Snap-ins | DevRev" + "id": "ART-984_KNOWLEDGE_NODE-25", + "text": "for sales visibility (or at least notifications).\\n\\nThe key is that some level of integration is necessary between systems to provide visibility without requiring people to\\nlook in different places unless you have a platform that handles these in a converged manner.\\n\\nWhy change\\n\\nThis will help facilitate the following:\\n\\n\\n Interactions are coordinated and consistent\\n Hand-offs are handled correctly\\n Customers won\\xe2\\x80\\x99t get tossed around or told different things by different", + "title": "Why you Should be Looking at Support Differently" }, { - "id": "ART-1947_KNOWLEDGE_NODE-1", - "text": "[Groups](/docs/product/groups)\\n + [Parts & trails](/docs/product/parts)\\n + [Vistas](/docs/product/vistas)\\n\\n - [Vista Reports](/docs/product/vista-reports)\\n - [Board view](/docs/product/board-view)\\n + [Tasks](/docs/product/tasks)\\n + [Updates](/docs/product/updates)\\n + [Customer email notifications](/docs/product/customer-emails)\\n + [Roles](/docs/product/roles)\\n\\n - [Default privileges by group](/docs/product/privs)\\n + [Access control](/docs/product/access-control)\\n +", - "title": "Apps | Computer by DevRev | DevRev" + "id": "ART-12604_KNOWLEDGE_NODE-0", + "text": "b\"DevRev Careers | Sales Development Representative \\n\\n* Product\\n* Platform\\n* Marketplace\\n* Company\\n* Resources\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nProduct\\n\\nPlatform\\n\\nMarketplace\\n\\nCompany\\n\\nResources\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\ncareers\\n\\nSales Development Representative\\n================================\\n\\nBengaluru, Karnataka,", + "title": "DevRev Careers | Sales Development Representative" }, { - "id": "ART-12458_KNOWLEDGE_NODE-1", - "text": "__\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\nOn this page\\n\\n * [Troubleshooting](/public/sdks/react-native/troubleshooting#troubleshooting)\\n\\n[SDKs](/public/sdks)[DevRev SDK for React Native and Expo](/public/sdks/react-native/quickstart)\\n\\n#\\n\\nTroubleshooting\\n\\n * **Issue** : Support chat won\\xe2\\x80\\x99t show. **Solution** : Ensure you have correctly called one of the identification methods:", - "title": "Troubleshooting \u2014 DevRev | Docs" + "id": "ART-17569_KNOWLEDGE_NODE-1", + "text": "message in the UI if they try to access an uninstalled app: \\xe2\\x80\\x9cWe can\\xe2\\x80\\x99t authorize you because of an OAuth error. For more information, contact your Salesforce administrator.\\xe2\\x80\\x9d and the OAUTH_APPROVAL_ERROR_GENERIC message.\"\\n\\nDue to this, customers may experience issues when trying to create a new Salesforce connection and install the DevRev app on their Salesforce instance.\\n\\nRead more about this on the shared article above. Follow the next steps to enable the", + "title": "Issues with Salesforce OAuth connection" }, { - "id": "ART-3109_KNOWLEDGE_NODE-1", - "text": "[Apps](/docs/product/apps)\\n + [Groups](/docs/product/groups)\\n + [Parts & trails](/docs/product/parts)\\n + [Vistas](/docs/product/vistas)\\n\\n - [Vista Reports](/docs/product/vista-reports)\\n - [Board view](/docs/product/board-view)\\n + [Tasks](/docs/product/tasks)\\n + [Updates](/docs/product/updates)\\n + [Customer email notifications](/docs/product/customer-emails)\\n + [Roles](/docs/product/roles)\\n\\n - [Default privileges by group](/docs/product/privs)\\n + [Access", - "title": "Plug widget customization | Computer for Your Customers | DevRev" + "id": "ART-17569_KNOWLEDGE_NODE-0", + "text": "b'\"Starting in early September 2025, Salesforce will restrict the use of uninstalled connected apps. This usage restriction will block end users from using uninstalled connected apps. This change is part of Salesforce\\'s commitment to making our products and services secure-by-default.\"\\n\\n[Prepare for Connected App Usage Restrictions Change](https://help.salesforce.com/s/articleView?id=005132365&type=1)\\n\\n\"If API Access control isn\\xe2\\x80\\x99t enabled, end users see the following error", + "title": "Issues with Salesforce OAuth connection" }, { - "id": "ART-1968_KNOWLEDGE_NODE-1", - "text": "[Apps](/docs/product/apps)\\n + [Groups](/docs/product/groups)\\n + [Parts & trails](/docs/product/parts)\\n + [Vistas](/docs/product/vistas)\\n\\n - [Vista Reports](/docs/product/vista-reports)\\n - [Board view](/docs/product/board-view)\\n + [Tasks](/docs/product/tasks)\\n + [Updates](/docs/product/updates)\\n + [Customer email notifications](/docs/product/customer-emails)\\n + [Roles](/docs/product/roles)\\n\\n - [Default privileges by group](/docs/product/privs)\\n + [Access", - "title": "Conversation insights | Support analytics | Computer for Support Teams | DevRev" + "id": "ART-12606_KNOWLEDGE_NODE-0", + "text": "b\"DevRev Careers | Revenue: Sales Development Representative\\n\\n* Product\\n* Platform\\n* Marketplace\\n* Company\\n* Resources\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nProduct\\n\\nPlatform\\n\\nMarketplace\\n\\nCompany\\n\\nResources\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\ncareers\\n\\nRevenue: Sales Development Representative\\n=========================================\\n\\nBuenos Aires,", + "title": "DevRev Careers | Revenue: Sales Development Representative" }, { - "id": "ART-16263_KNOWLEDGE_NODE-37", - "text": "Confluence links (anonymous content cannot be tracked or mapped)\\n\\nEnabling the upload app button\\n------------------------------\\n\\nIf you do not see the **Upload App** button in Confluence Datacenter, it may be due to permission restrictions or feature disablement by your admin. To enable it:\\n\\n1. Ensure you are logged in as a **Confluence Administrator**.\\n2. Go to **Administration > Add-ons > Upload App**.\\n3. If the button is still not available:\\n * Contact your system administrator", - "title": "Confluence Datacenter AirSync | AirSync | Snap-ins | DevRev" + "id": "ART-15507_KNOWLEDGE_NODE-6", + "text": "Expo](/sdks/react-native/quickstart)\\n\\nFeatures\\n========\\n\\nCopy page\\n\\nIdentification\\n--------------\\n\\nTo access certain features of the DevRev SDK, user identification is required.\\n\\nThe identification function should be placed appropriately in your app after the user logs in. If you have the user information available at app launch, call the function after the `DevRev.configure(appID: string)` method.\\n\\n##### \\n\\nOn iOS, if you haven\\xe2\\x80\\x99t previously identified the user, the", + "title": "Features | DevRev | Docs" }, { - "id": "ART-2059_KNOWLEDGE_NODE-0", - "text": "b'Product Platform Solutions Marketplace Company Resources Pricing\\n\\nLogin Book a demo\\nProduct Platform Solutions Marketplace Company Resources Pricing\\nLogin Book a demo\\nSearch CTRL + K\\n\\nIntroduction AgentOS platform\\n\\nCore concepts Apps Groups Parts & trails Vistas Vista Reports\\nTasks Updates Customer email notifications Roles Default privileges by group\\nAccess control Object customization Glossary Search People insights Workflow Templates Accessing DevRev External identity provider", - "title": "Install PLuG chat on your website" + "id": "ART-1707_KNOWLEDGE_NODE-3", + "text": "overseeing the entire customer lifecycle. However, the app encountered technical issues that were affecting sales performance.\\n\\nAdditionally, the support team needed help grasping the issues reported by sales representatives. When they needed more information, the sales reps were often occupied with calls or unavailable to elaborate, leading to further delays in resolving these issues.\\n\\n### Blindspots in troubleshooting issues\\n\\nThe issue of limited ticket details extended from the support", + "title": "ICICI Prudential Life Insurance uses DevRev to slash resolution time by 95%" }, { - "id": "ART-4186_KNOWLEDGE_NODE-1", - "text": "[Apps](/docs/product/apps)\\n + [Groups](/docs/product/groups)\\n + [Parts & trails](/docs/product/parts)\\n + [Vistas](/docs/product/vistas)\\n\\n - [Vista Reports](/docs/product/vista-reports)\\n - [Board view](/docs/product/board-view)\\n + [Tasks](/docs/product/tasks)\\n + [Updates](/docs/product/updates)\\n + [Customer email notifications](/docs/product/customer-emails)\\n + [Roles](/docs/product/roles)\\n\\n - [Default privileges by group](/docs/product/privs)\\n + [Access", - "title": "Computer for User Insights | Session analytics | Computer for Your Customers | DevRev" + "id": "ART-1707_KNOWLEDGE_NODE-5", + "text": "need for a more effective solution.\\n\\nThe solution\\n------------\\n\\n### Real-time insights into app complaints\\n\\nBy using Computer for user insights, the support team gained the ability to view app issues independently, avoiding disruptions in the sales process. They could now record and replay user interactions in real-time, which helped them accurately identify and categorize issues as either knowledge gaps or technical glitches.\\n\\nComplete with detailed information, tickets were then", + "title": "ICICI Prudential Life Insurance uses DevRev to slash resolution time by 95%" }, { - "id": "ART-1477_KNOWLEDGE_NODE-20", - "text": "it.](https://devrev.ai/blog/soc-compliance)\\n\\nProduct\\n\\n * [Build](https://devrev.ai/build)\\n * [Support](https://devrev.ai/support)\\n * [Search](https://devrev.ai/search)\\n * [PLuG - User Engagement](https://devrev.ai/plug-user-engagement)\\n * [PLuG - User Observability](https://devrev.ai/plug-observability)\\n * [Marketplace](https://marketplace.devrev.ai/)\\n\\nPlatform\\n\\n * [Airdrop](https://devrev.ai/airdrop)\\n * [Analytics](https://devrev.ai/analytics)\\n * [Workflow", - "title": "Snap-in V1 manifest \u2014 DevRev | Docs" + "id": "ART-12456_KNOWLEDGE_NODE-6", + "text": "Expo](/public/sdks/react-native/quickstart)\\n\\n#\\n\\nFeatures\\n\\n## Identification\\n\\nTo access certain features of the DevRev SDK, user identification is required.\\n\\nThe identification function should be placed appropriately in your app after the user logs in. If you have the user information available at app launch, call the function after the `DevRev.configure(appID:)` method.\\n\\n#####\\n\\nOn iOS, if you haven\\xe2\\x80\\x99t previously identified the user, the DevRev SDK will automatically", + "title": "Features \u2014 DevRev | Docs" } ] }, @@ -1068,54 +1068,54 @@ "query": "linking tickets and issues for analytics", "retrievals": [ { - "id": "ART-4184_KNOWLEDGE_NODE-4", - "text": "analytics](/docs/product/support-analytics)\\n\\n - [Conversation insights](/docs/dashboards/conversation-insights)\\n - [Conversation-SLA Analytics](/docs/dashboards/conversation-sla-analytics)\\n - [Conversation-Team Performance](/docs/dashboards/conversation-team-performance)\\n - [Ticket insights](/docs/dashboards/ticket-insights)\\n - [Ticket-SLA Analytics](/docs/dashboards/ticket-sla-analytics)\\n - [Ticket-Team Performance](/docs/dashboards/ticket-team-performance)\\n +", - "title": "Ticket linked issues comment sync | Automate | Snap-ins | DevRev" + "id": "ART-1840_KNOWLEDGE_NODE-13", + "text": "analytics**, helping the team track trends, understand recurring issues, and continuously improve response strategies\\n* **Unified customer view**, enabled by integrating Jira, Salesforce, and the license server, allowing agents to work with full context\\n\\nThis reflects both the effectiveness of AI-powered assistance in deflecting tickets and the increased efficiency of Binah.ai's support workflows.\\n\\nTop Features\\n------------\\n\\n* Ticket management system\\n* Team inbox for customer", + "title": "Revolutionising health tech support: how Binah.ai cut response times by 50% with DevRev" }, { - "id": "ART-1972_KNOWLEDGE_NODE-16", - "text": "sync](/docs/automations/ticket-linked-issues-comment-sync)\\n - [Slack message agent](/docs/automations/slack-message-agent)\\n + [Integrate](/docs/integrate)\\n\\n - [Bitbucket](/docs/integrations/bitbucket)\\n - [Calendly](/docs/integrations/calendly)\\n - [Coralogix security integration](/docs/integrations/coralogix)\\n - [Datadog](/docs/integrations/datadog)\\n - [Google Calendar AirSync](/docs/integrations/google-calendar-airdrop)\\n - [Email](/docs/integrations/email)\\n\\n", - "title": "Ticket-SLA Analytics | Support analytics | Computer for Support Teams | DevRev" + "id": "ART-1979_KNOWLEDGE_NODE-60", + "text": "tickets\\n-----------------\\n\\nFollow up tickets allow support teams to seamlessly address unresolved issues, recurring problems, or additional concerns without losing context. By linking follow-up tickets to the original ticket(archived/immutable), teams can track ongoing issues more effectively, minimize duplicate work and enhance customer experience. A follow-up ticket is a new ticket that is created and linked when a customer responds in reference to an archived/immutable ticket. The", + "title": "Tickets | Computer for Support Teams | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-39", - "text": "other tickets or issues that relate to this ticket, click **Link Records** and select the relevant items.\\n7. If you would like to immediately create another ticket, select **Create multiple**.\\n8. Click **Create**.\\n\\nIf a ticket is created from an existing conversation, then the ticket's title and description are populated automatically from the conversation.\\n\\n![]()\\n\\nYou can create a child issue by clicking **+ Link issue** > **Add a child issue**. You can link the other existing issue as", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1977_KNOWLEDGE_NODE-26", + "text": "owner.\\n* **Average Resolution Time**\\n\\n Average time taken to resolve tickets by ticket owners.\\n\\n[PreviousTicket-SLA Analytics](/docs/dashboards/ticket-sla-analytics)[NextConversations](/docs/product/conversation)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer works](/how-computer-works)\\n\\nApps\\n\\n* [For Support Teams](/for-support-teams)\\n* [For", + "title": "Ticket-Team Performance | Support analytics | Computer for Support Teams | DevRev" }, { - "id": "ART-15664_KNOWLEDGE_NODE-17", - "text": "exhaustive list.\\n\\n### Links from tickets\\n\\nLinks from tickets\\n\\ntarget\\n\\nsource\\n\\nis dependent on\\n\\nis related to\\n\\nis related to\\n\\nis parent of\\n\\nis merged into\\n\\nticket\\n\\nissue\\n\\nticket\\n\\narticle\\n\\n##### \\n\\nOnly ticket \\xe2\\x86\\x92 issue is allowed for creating a link with \\xe2\\x80\\x9cis dependent on\\xe2\\x80\\x9d. Creating the link in reverse (issue \\xe2\\x86\\x92 ticket) is not possible; however, you can swap the source and target objects to achieve the same result.\\n\\n### Links", + "id": "ART-15664_KNOWLEDGE_NODE-13", + "text": "\\n\\nYou may want to restrict links to specific subtypes of objects. For example, only allowing issues\\nof a particular subtype to be linked to tickets.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"name\": \"Link between social media issues and tickets\", |\\n| > | \"source_types\": [ |\\n| > | { |\\n|", "title": "Links | DevRev | Docs" }, { - "id": "ART-1002_KNOWLEDGE_NODE-3", - "text": "systems being used for engineering work are commonly abused by sales, marketing and support teams. For example, a sales rep may create an issue for a developer for a customer request. In the case of support, you\\xe2\\x80\\x99ll commonly see a ton of duplicate issues when only one was really necessary. This leads to a lot of noise for developers, and devalues the notion of an \\xe2\\x80\\x9cissue\\xe2\\x80\\x9d. By keeping a clear line between tickets and issues, we ensure the following:\\n\\n\\n issues", - "title": "Tickets, Issues: When to Use Each" + "id": "ART-16803_KNOWLEDGE_NODE-26", + "text": "Tickets\\n* Meetings\\n* Objects linked to issues\\n* Users\\n\\nTo configure a workspace object loop:\\n\\n1. On the **workflow canvas**, add an action step named **Loop for [Object]**, where [Object] is the entity you want to iterate over.\\n2. Apply **filter conditions** to refine the set of objects included in the loop and perform operations on them.\\n\\nAll **actions** inside the loop execute once per object that satisfies the filter conditions.\\n\\n### For Each\\n\\nThe **For Each** loop iterates", + "title": "Workflow nodes | Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-4184_KNOWLEDGE_NODE-15", - "text": "[Operational SLA Metrics](/docs/automations/operational-sla-metrics)\\n - [Custom field migration](/docs/automations/custom-field-migration)\\n - [Slack scraper](/docs/automations/slack-scraper)\\n - [Slack Broadcaster](/docs/automations/slack-broadcaster)\\n - [Reported by enricher](/docs/automations/ticket-reported-by)\\n - [Ticket approval workflow](/docs/automations/ticket-approval-workflow)\\n - [Ticket linked issues comment", - "title": "Ticket linked issues comment sync | Automate | Snap-ins | DevRev" + "id": "ART-15716_KNOWLEDGE_NODE-8", + "text": "for TicketsWe have a summarize option (it would resemble sparkle symbol) in the top right corner of the ticket view, which uses the ticket content to summarize the ticket\\n\\n7. Difference between Issues and Tickets\\n\\nTickets\\xc2\\xa0are for customer support\\xe2\\x80\\x94tracking requests, problems, or questions from customers or prospects.\\n\\nIssues\\xc2\\xa0are internal work items for developers\\xe2\\x80\\x94used to improve the product, fix bugs, or implement features. Issues can be linked to", + "title": "Support queries related playbook" }, { - "id": "ART-2012_KNOWLEDGE_NODE-4", - "text": "Analytics](/docs/dashboards/ticket-sla-analytics?)\\n * [Ticket-Team Performance](/docs/dashboards/ticket-team-performance?)\\n\\n * [Conversations](/docs/product/conversation?)\\n\\n * [Convert Conversations to Tickets](/docs/product/Conversation-Tickets?)\\n\\n * [Tickets](/docs/product/tickets?)\\n * [Routing](/docs/product/routing?)\\n * [Support best practices](/docs/product/support-bp?)\\n * [Customer portal](/docs/product/support-portal?)\\n * [Questions &", - "title": "Follow-up ticket | Automate | Snap-ins | DevRev" + "id": "ART-1975_KNOWLEDGE_NODE-25", + "text": "insights\\n===============\\n\\n* **Tickets created**\\n\\n The number of tickets created within the date range that meet the other filtering criteria.\\n* **Active tickets**\\n\\n The number of tickets that are in the Open or In Progress state.\\n* **Closed tickets**\\n\\n The number of tickets closed within the date range that meet the other filtering criteria.\\n* **Average resolution time**\\n\\n The average time taken to resolve tickets.\\n* **Median resolution time**\\n\\n The median time taken to", + "title": "Ticket insights | Support analytics | Computer for Support Teams | DevRev" }, { - "id": "ART-1975_KNOWLEDGE_NODE-28", - "text": "conversations against standalone tickets.\\n* **Tickets linked to issues**\\n\\n The percentage of tickets linked to product issues.\\n* **Active tickets by owner**\\n\\n The number of Open or In Progress tickets grouped by owner.\\n* **Tickets created vs. closed**\\n\\n The trend of tickets created against those closed.\\n\\nCustomer satisfaction (CSAT)\\n----------------------------\\n\\n* **CSAT score distribution**\\n\\n A distribution of customer satisfaction scores on tickets.\\n\\nTime spent per", - "title": "Ticket insights | Support analytics | Computer for Support Teams | DevRev" + "id": "ART-15701_KNOWLEDGE_NODE-9", + "text": "information.\\n\\nDevRev recommends to switch on both agent and customer recording and realtime and post call analytics.\\n\\nCapturing user input in IVR: If you are taking inputs from user in the IVR and you want that information to be visible to the agent/ captured in the call, use set contact attributes block. Store the keys in the User Defined Namespace and add the key which needs to be displayed/ captured. For eg: previous_ticket_id is being captured by the user input.\\n\\nAdd users: Navigate", + "title": "Amazon Connect Telephony Integration Guide" }, { - "id": "ART-15664_KNOWLEDGE_NODE-14", - "text": "> | \"leaf_type\": \"issue\", |\\n| > | \"subtype\": \"social_media\" |\\n| > | } |\\n| > | ], |\\n| > | \"target_types\": [ |\\n| > | { |\\n| > | \"leaf_type\": \"ticket\" |\\n| > | } |\\n| > | ], |\\n| > | \"forward_name\": \"is related to\", |\\n| > | \"backward_name\": \"is related to\" |\\n| > | }\\' |\\n```\\n\\nThis configuration:\\n\\n* Allows issues of subtype \\xe2\\x80\\x9csocial\\\\_media\\xe2\\x80\\x9d to be linked to tickets\\n* Rejects attempts to link issues with no subtype or with other subtypes\\n\\n##### \\n\\nThe subtype", - "title": "Links | DevRev | Docs" + "id": "ART-4271_KNOWLEDGE_NODE-4", + "text": "Analytics](/docs/dashboards/ticket-sla-analytics?)\\n * [Ticket-Team Performance](/docs/dashboards/ticket-team-performance?)\\n\\n * [Conversations](/docs/product/conversation?)\\n\\n * [Convert Conversations to Tickets](/docs/product/Conversation-Tickets?)\\n\\n * [Tickets](/docs/product/tickets?)\\n * [Routing](/docs/product/routing?)\\n * [Support best practices](/docs/product/support-bp?)\\n * [Customer portal](/docs/product/support-portal?)\\n * [Questions &", + "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" }, { - "id": "ART-4184_KNOWLEDGE_NODE-5", - "text": "[Conversations](/docs/product/conversation)\\n\\n - [Conversation to ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n", - "title": "Ticket linked issues comment sync | Automate | Snap-ins | DevRev" + "id": "ART-10697_KNOWLEDGE_NODE-30", + "text": "New filtering options let agents view tickets tied to specific articles, while updated analytics reveal the most and least linked articles, improving knowledge sharing and support strategy.\\n* Plug is our live chat widget designed for real-time conversations in your customer portal. It reduces ticket volume by resolving common queries instantly, enhancing self-service and speeding up issue resolution. Use spotlight cards or banners to notify customers about incidents, updates, or promotions,", + "title": "February 2025 | Changelog | DevRev" } ] }, @@ -1124,54 +1124,54 @@ "query": "Data residency compliance for international customers", "retrievals": [ { - "id": "ART-888_KNOWLEDGE_NODE-42", - "text": "spaces under your sole control.How we transfer information we collect internationallyInternational transfers of information we collectWe collect information globally and may transfer, process and store your information outside of your country of residence, to wherever we or our third-party service providers operate for the purpose of providing you the Services. Whenever we transfer your information, we take steps to protect it.International transfers within the DevRev Companies: To facilitate", - "title": "Privacy Policy" + "id": "ART-12476_KNOWLEDGE_NODE-1", + "text": "designed to meet GDPR and SOC 2 compliance requirements, with controls in place to support your data privacy needs.\\n\\nAdvanced enterprise login: Seamless SAML compliance for all enterprise logins regardless of your SSO provider.\\n\\nRegional data residency options: We offer data residency options in Europe, Australia, US East (Virginia), and India, with logical data isolation and access control features.\\n\\nSelf-serve user management: Easily add or remove users from your workspace and manage", + "title": "The Future of Sessions - Powered By DevRev" }, { - "id": "ART-4174_KNOWLEDGE_NODE-11", - "text": "(EEA) is adequately protected, even when transferred to countries that may not offer an equivalent level of data protection.\\n\\n### UK-Specific Clauses\\n\\nFollowing Brexit, we also apply tailored safeguards for personal data transferred from the United Kingdom. We leverage the UK\\xe2\\x80\\x99s International Data Transfer Addendum to the EU SCCs, which ensures compliance with UK-specific data transfer requirements and aligns with the standards established by the UK\\xe2\\x80\\x99s Information", - "title": "Data Processing Agreement | DevRev" + "id": "ART-4021_KNOWLEDGE_NODE-28", + "text": "customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer works](/how-computer-works)\\n\\nApps\\n\\n* [For Support Teams](/for-support-teams)\\n* [For Builders](/for-builders)\\n* [For Customers](/for-customers)\\n* [For User Insights](/for-user-insights)\\n* [Marketplace](https://marketplace.devrev.ai/)\\n\\nResources\\n\\n* [Blog](/blog)\\n* [Our Customers](/case-study)\\n* [Snap-In", + "title": "Slack scraper | Automate | Snap-ins | DevRev" }, { - "id": "ART-4174_KNOWLEDGE_NODE-12", - "text": "Commissioner\\xe2\\x80\\x99s Office (ICO).\\n\\n### United States Data Transfer Mechanisms\\n\\nFor personal data transfers to the United States, DevRev employs recognized contractual frameworks and implements additional measures, as necessary, to safeguard your information in accordance with evolving U.S. data protection guidelines. We work to align with relevant standards and best practices to address regulatory considerations around cross-border data transfers.\\n\\n### What about Personal Data use", + "id": "ART-4174_KNOWLEDGE_NODE-9", + "text": "behalf, as well as explanations on how such parties safeguard your data.\\n* **Standard Contractual clauses and other country specific clauses:** Our DPA also includes the EU Commission's Standard Contractual clausesand other country specific clauses for transferring and processing data outside of the EEA, UK and USA.\\n\\n### How does DevRev handle International Data transfers?\\n\\nAt DevRev, we understand the importance of securely managing international data transfers in compliance with global", "title": "Data Processing Agreement | DevRev" }, { - "id": "ART-4183_KNOWLEDGE_NODE-1", - "text": "More](https://cdn.sanity.io/files/umrbtih2/development/8c3ab1aef7fee37a816c3116a89b08b5db2ba541.pdf)\\n\\nDeveloping and maintaining an incident response plan that includes subprocessors\\xe2\\x80\\x99 roles in managing data breaches.\\n\\n![]()\\n\\nChoose another country or region to see content specific to your location.\\n\\n\\xf0\\x9f\\x8c\\x8e English\\xf0\\x9f\\x87\\xaf\\xf0\\x9f\\x87\\xb5 Japanese\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about", - "title": "Security Subprocessors - GDPR Compliance | DevRev" + "id": "ART-1996_KNOWLEDGE_NODE-30", + "text": "customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer works](/how-computer-works)\\n\\nApps\\n\\n* [For Support Teams](/for-support-teams)\\n* [For Builders](/for-builders)\\n* [For Customers](/for-customers)\\n* [For User Insights](/for-user-insights)\\n* [Marketplace](https://marketplace.devrev.ai/)\\n\\nResources\\n\\n* [Blog](/blog)\\n* [Our Customers](/case-study)\\n* [Snap-In", + "title": "Roadmap | Computer for Builders | DevRev" }, { - "id": "ART-4174_KNOWLEDGE_NODE-10", - "text": "data privacy laws. To support this commitment, we use industry-standard frameworks and legal instruments to facilitate the lawful and secure transfer of personal data across borders.\\n\\n### EU Standard Contractual Clauses (SCCs)\\n\\nFor data transfers involving EU-based users, DevRev relies on the EU Standard Contractual Clauses (SCCs). These clauses, approved by the European Commission, provide contractual safeguards to ensure that personal data transferred outside the European Economic Area", + "id": "ART-4174_KNOWLEDGE_NODE-12", + "text": "Commissioner\\xe2\\x80\\x99s Office (ICO).\\n\\n### United States Data Transfer Mechanisms\\n\\nFor personal data transfers to the United States, DevRev employs recognized contractual frameworks and implements additional measures, as necessary, to safeguard your information in accordance with evolving U.S. data protection guidelines. We work to align with relevant standards and best practices to address regulatory considerations around cross-border data transfers.\\n\\n### What about Personal Data use", "title": "Data Processing Agreement | DevRev" }, { - "id": "ART-888_KNOWLEDGE_NODE-43", - "text": "our global operations, we transfer information globally and allow access to that information from countries in which the DevRev owned or operated companies and have operations for the purposes described in this policy. These countries may not have equivalent privacy and data protection laws to the laws of many of the countries where our customers and users are based. When we share information about you within and among DevRev corporate affiliates, we make use of standard contractual data", - "title": "Privacy Policy" + "id": "ART-15594_KNOWLEDGE_NODE-13", + "text": "customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nProduct\\n\\n* [For Support Teams](/support)\\n* [For Builders](/build)\\n* [Search Agent](/search)\\n* [CX Agent](/plug-user-engagement)\\n* [User Observability](/plug-observability)\\n* [Marketplace](https://marketplace.devrev.ai/)\\n\\nPlatform\\n\\n* [AgentOS](/agent-os)\\n* [Airdrop](/airdrop)\\n* [Analytics](/analytics)\\n* [Workflow Engine](/workflow-engine)\\n\\nResources\\n\\n* [Pricing](/pricing/support)\\n* [Blog](/blog)\\n*", + "title": "DevRev Careers | Strategic Operations Manager / Sr. Associate" }, { - "id": "ART-4174_KNOWLEDGE_NODE-9", - "text": "behalf, as well as explanations on how such parties safeguard your data.\\n* **Standard Contractual clauses and other country specific clauses:** Our DPA also includes the EU Commission's Standard Contractual clausesand other country specific clauses for transferring and processing data outside of the EEA, UK and USA.\\n\\n### How does DevRev handle International Data transfers?\\n\\nAt DevRev, we understand the importance of securely managing international data transfers in compliance with global", + "id": "ART-4174_KNOWLEDGE_NODE-15", + "text": "the GDPR as well as any other specific local legal requirements.\\n\\n### What about data security?\\n\\nWe have implemented industry standard organisational and other security like SOC-II certification to keep your data safe.\\n\\nYou can find out more about the security measures we employ by following this [link](https://security.devrev.ai/).\\n\\n### Reach out to us with any additional questions.\\n\\nShould you have any additional questions about privacy and data processing at DevRev, our data", "title": "Data Processing Agreement | DevRev" }, { - "id": "ART-4174_KNOWLEDGE_NODE-8", - "text": "we implement to keep your data secure, such as encryption, access controls, and regular security audits.\\n* **Data Subject Rights:** Information on how we support you in responding to requests from individuals to exercise their rights under data protection laws.\\n* **Data Transfer:** Terms regarding international data transfers, ensuring compliance with GDPR and other regulatory frameworks.\\n* **Subprocessors:** A list of any third parties we partner we engage in order to process data on your", - "title": "Data Processing Agreement | DevRev" + "id": "ART-2575_KNOWLEDGE_NODE-33", + "text": "protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer works](/how-computer-works)\\n\\nApps\\n\\n* [For Support Teams](/for-support-teams)\\n* [For Builders](/for-builders)\\n* [For Customers](/for-customers)\\n* [For User Insights](/for-user-insights)\\n* [Marketplace](https://marketplace.devrev.ai/)\\n\\nResources\\n\\n* [Blog](/blog)\\n* [Our Customers](/case-study)\\n* [Snap-In", + "title": "Account and contact import | Computer for Growth Teams | DevRev" }, { - "id": "ART-4174_KNOWLEDGE_NODE-15", - "text": "the GDPR as well as any other specific local legal requirements.\\n\\n### What about data security?\\n\\nWe have implemented industry standard organisational and other security like SOC-II certification to keep your data safe.\\n\\nYou can find out more about the security measures we employ by following this [link](https://security.devrev.ai/).\\n\\n### Reach out to us with any additional questions.\\n\\nShould you have any additional questions about privacy and data processing at DevRev, our data", - "title": "Data Processing Agreement | DevRev" + "id": "ART-2777_KNOWLEDGE_NODE-10", + "text": "us.\\n\\n![]()\\n\\nVishnu RavikumarVP Strategy & Planning, Velocity Global\\n\\nTop features:\\n-------------\\n\\n* Customer record management\\n* Customer support portal\\n* PLuG\\n* Vistas\\n* In-app custom dashboards\\n* SLA management\\n* Snap-Ins\\n* Computer Memory\\n\\nThe benefits\\n------------\\n\\n* Effortlessly migrated 600 macros from Zendesk using the AirSync feature\\n* Migrated 900k tickets using AirSync\\n* Enabled 350+ users to support their global customer base\\n\\nThe results\\n\\nEffortlessly", + "title": "Velocity Global transforms worldwide operations with DevRev" }, { - "id": "ART-4183_KNOWLEDGE_NODE-4", - "text": "Policy](/legal/cookie-policy)\\n* [Privacy Policy](/legal/privacy-policy)\\n* [Terms of Service](/legal/terms-of-service)\\n\\n[System Status](/status)\\n\\n\\xc2\\xa9 2025 DevRev Inc.'", - "title": "Security Subprocessors - GDPR Compliance | DevRev" + "id": "ART-16189_KNOWLEDGE_NODE-15", + "text": "protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer works](/how-computer-works)\\n\\nApps\\n\\n* [For Support Teams](/for-support-teams)\\n* [For Builders](/for-builders)\\n* [For Customers](/for-customers)\\n* [For User Insights](/for-user-insights)\\n* [Marketplace](https://marketplace.devrev.ai/)\\n\\nResources\\n\\n* [Blog](/blog)\\n* [Our Customers](/case-study)\\n* [Snap-In", + "title": "FOSSA\u2019s Unified Support Strategy for Elevated Customer Experience" } ] }, @@ -1180,54 +1180,54 @@ "query": "declarative pathing within the bot", "retrievals": [ { - "id": "ART-1950_KNOWLEDGE_NODE-5", - "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", - "title": "Parts & trails | Computer by DevRev | DevRev" + "id": "ART-1789_KNOWLEDGE_NODE-248", + "text": "links.\\nRequest.\\n\\nThis endpoint expects an object.\\nobject string Required\\nThe ID of the object to list the links for.\\ncursor string Optional\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\ndirection \"is_source\" or \"is_target\" Optional\\nAllowed values: is_source is_target\\nThe direction of link, which can either be outbound such that the object is the source of the link, otherwise inbound where the object is the target of the link.\\nlimit", + "title": "List \u2014 DevRev | Docs" }, { - "id": "ART-12391_KNOWLEDGE_NODE-6", - "text": "+ [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best practices for documentation that supports AI](/docs/product/writing-bp)\\n + [Commands](/docs/product/commands)\\n + [Service-level agreement](/docs/product/sla)\\n + [Operational-level agreement](/docs/product/ola)\\n + [Support snap-ins](/docs/product/snapins-support)\\n* [Computer for Builders](/docs/product/build)\\n\\n + [Issues](/docs/product/issues)\\n + [Now, Next, Later](/docs/product/nnl)\\n + [Sprint", - "title": "Conversational workflows | Workflows | Computer by DevRev | DevRev" + "id": "ART-1954_KNOWLEDGE_NODE-36", + "text": "bot mentions will still appear in the **Others** tab.\\n\\nFollow conversations\\n--------------------\\n\\nTo receive updates about conversations in the Plug inbox, you must be a member of the support group. To manage membership of the support group go to [**Settings** > **Groups**](https://app.devrev.ai/devrev/settings/groups).\\n\\nFor more information about groups, refer to [Groups](/docs/product/groups).\\n\\nDaily email digest\\n------------------\\n\\nDevRev sends a daily email digest with a summary", + "title": "Updates | Computer by DevRev | DevRev" }, { - "id": "ART-1996_KNOWLEDGE_NODE-5", - "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", - "title": "Roadmap | Computer for Builders | DevRev" + "id": "ART-17649_KNOWLEDGE_NODE-4", + "text": "sophisticated routing mechanisms\\n* Custom views and dashboards for different stakeholders\\n* Deterministic bot flow to guide customers through support experiences\\n* Comprehensive e2e testing to ensure reliability\\n\\n#### *We needed different instances on different paths of our website with separate memory and appearances. DevRev's architecture made this possible through multiple dev organizations.*\\xe2\\x80\\x9d\\n\\nThe impact\\n----------\\n\\n### Multiple customized support channels\\n\\nDevRev", + "title": "Leading APAC fintech transforms support with multi-instance AI solution" }, { - "id": "ART-1987_KNOWLEDGE_NODE-28", - "text": "Computer either creates a ticket or routes the conversation using the relevant routing rule.\\n\\n![]()\\n\\nGoal-oriented mode (Beta)\\n-------------------------\\n\\nThe goal-oriented agent allows users to create complete workflows triggered by their actions.\\n\\nGoal-oriented mode is currently in beta. Contact our support team for more information.\\n\\n[PreviousCollections](/docs/product/collection)[NextBest practices for documentation that supports AI](/docs/product/writing-bp)\\n\\n#### On this", - "title": "Turing AI agent | Computer for Support Teams | DevRev" + "id": "ART-1788_KNOWLEDGE_NODE-248", + "text": "links.\\nRequest.\\n\\nThis endpoint expects an object.\\nobject string Required\\nThe ID of the object to list the links for.\\ncursor string Optional\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\ndirection \"is_source\" or \"is_target\" Optional\\nAllowed values: is_source is_target\\nThe direction of link, which can either be outbound such that the object is the source of the link, otherwise inbound where the object is the target of the link.\\nlimit", + "title": "Get Post \u2014 DevRev | Docs" }, { - "id": "ART-1950_KNOWLEDGE_NODE-6", - "text": "practices for documentation that supports AI](/docs/product/writing-bp)\\n + [Commands](/docs/product/commands)\\n + [Service-level agreement](/docs/product/sla)\\n + [Operational-level agreement](/docs/product/ola)\\n + [Support snap-ins](/docs/product/snapins-support)\\n* [Computer for Builders](/docs/product/build)\\n\\n + [Issues](/docs/product/issues)\\n + [Now, Next, Later](/docs/product/nnl)\\n + [Sprint mode](/docs/product/sprint)\\n + [Enhancements](/docs/product/enhancements)\\n +", - "title": "Parts & trails | Computer by DevRev | DevRev" + "id": "ART-1959_KNOWLEDGE_NODE-28", + "text": "of the ticket/issue/enhancement or title. | in:title crm in:title \"crm exp\" in:title crm exp in:body \"bot issues\" |\\n| type: | Enables users to filter by object type. Supported object types include: issue, enhancement, ticket, revu (for searching contacts), question\\\\_answer, conversation, article, devu (for searching internal contacts), account, feature, runnable. | type:issue type:enhancement in:title CRM type:revu type:enhancement, opportunity type:issue, enhancement", + "title": "Search | Computer by DevRev | DevRev" }, { - "id": "ART-12394_KNOWLEDGE_NODE-6", - "text": "+ [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best practices for documentation that supports AI](/docs/product/writing-bp)\\n + [Commands](/docs/product/commands)\\n + [Service-level agreement](/docs/product/sla)\\n + [Operational-level agreement](/docs/product/ola)\\n + [Support snap-ins](/docs/product/snapins-support)\\n* [Computer for Builders](/docs/product/build)\\n\\n + [Issues](/docs/product/issues)\\n + [Now, Next, Later](/docs/product/nnl)\\n + [Sprint", - "title": "Workflow management | Workflows | Computer by DevRev | DevRev" + "id": "ART-1805_KNOWLEDGE_NODE-249", + "text": "links.\\nRequest.\\n\\nThis endpoint expects an object.\\nobject string Required\\nThe ID of the object to list the links for.\\ncursor string Optional\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\ndirection \"is_source\" or \"is_target\" Optional\\nAllowed values: is_source is_target\\nThe direction of link, which can either be outbound such that the object is the source of the link, otherwise inbound where the object is the target of the link.\\nlimit", + "title": "List Post \u2014 DevRev | Docs" }, { - "id": "ART-12391_KNOWLEDGE_NODE-29", - "text": "type that causes the agent to pause (for example, DevUser). |\\n| additional\\\\_context (optional) | String | Additional context you want to pass to the agent for more personalized responses. You can also use variables from previous steps here. |\\n\\n![]()\\n\\n* Each button creates a corresponding output port in the workflow.\\n* When a button is clicked, the original message is updated to remove the\\n buttons.\\n* A confirmation message is added showing which option was", - "title": "Conversational workflows | Workflows | Computer by DevRev | DevRev" + "id": "ART-17649_KNOWLEDGE_NODE-3", + "text": "both agents and customers\\n* Complex requirements spanned agent, customer, and manager experiences\\n* Need for sophisticated routing, views, dashboards, and deterministic bot flows\\n\\nThe solution: switching to DevRev\\n---------------------------------\\n\\nThe company chose DevRev for its Computer capabilities and customization features:\\n\\n* Implementation of multiple dev organizations within DevRev\\n* Complete replacement of their previous Intercom-based support system\\n* Implementation of", + "title": "Leading APAC fintech transforms support with multi-instance AI solution" }, { - "id": "ART-12390_KNOWLEDGE_NODE-6", - "text": "+ [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best practices for documentation that supports AI](/docs/product/writing-bp)\\n + [Commands](/docs/product/commands)\\n + [Service-level agreement](/docs/product/sla)\\n + [Operational-level agreement](/docs/product/ola)\\n + [Support snap-ins](/docs/product/snapins-support)\\n* [Computer for Builders](/docs/product/build)\\n\\n + [Issues](/docs/product/issues)\\n + [Now, Next, Later](/docs/product/nnl)\\n + [Sprint", - "title": "Workflow action library | Workflows | Computer by DevRev | DevRev" + "id": "ART-1300_KNOWLEDGE_NODE-248", + "text": "links.\\nRequest.\\n\\nThis endpoint expects an object.\\nobject string Required\\nThe ID of the object to list the links for.\\ncursor string Optional\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\ndirection \"is_source\" or \"is_target\" Optional\\nAllowed values: is_source is_target\\nThe direction of link, which can either be outbound such that the object is the source of the link, otherwise inbound where the object is the target of the link.\\nlimit", + "title": "Create \u2014 DevRev | Docs" }, { - "id": "ART-1950_KNOWLEDGE_NODE-12", - "text": "Node](/docs/automations/search-node)\\n - [Sentiment evaluator](/docs/automations/sentiment-evaluator)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Real-time sentiment evaluator](/docs/automations/realtime-sentiment-evaluator)\\n - [Send customized emails](/docs/automations/send-emails)\\n - [StageFlow automator](/docs/automations/stageflow-automator)\\n - [Smart issue creator](/docs/automations/smart-issue-creator)\\n - [Set user preference for", - "title": "Parts & trails | Computer by DevRev | DevRev" + "id": "ART-1307_KNOWLEDGE_NODE-249", + "text": "links.\\nRequest.\\n\\nThis endpoint expects an object.\\nobject string Required\\nThe ID of the object to list the links for.\\ncursor string Optional\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\ndirection \"is_source\" or \"is_target\" Optional\\nAllowed values: is_source is_target\\nThe direction of link, which can either be outbound such that the object is the source of the link, otherwise inbound where the object is the target of the link.\\nlimit", + "title": "List Post \u2014 DevRev | Docs" }, { - "id": "ART-1950_KNOWLEDGE_NODE-25", - "text": "be recursively made of smaller parts. Events and work items must be related to parts. In general, parts are the core objects that almost all other objects are linked to, which helps enforce the notion of tying everything back to the product or service.\\n\\n\\xf0\\x9f\\x8e\\xa5 Video: Trails\\n\\n*Trails* is an extensible interface that allows you to view and manage your part hierarchy and related items. Think of it like a graph canvas that\\'s rendering linkages among items\\xe2\\x80\\x94including", - "title": "Parts & trails | Computer by DevRev | DevRev" + "id": "ART-1277_KNOWLEDGE_NODE-8", + "text": "1 | version: \"2\" |\\n| 2 | |\\n| 3 | name: Sample snap-in |\\n| 4 | description: Snap-in to add comments for demonstration purpose. |\\n| 5 | |\\n| 6 | service_account: |\\n| 7 | display_name: \"DevRev Bot\" |\\n```\\n\\n[3](/snapin-development/tutorials/triggered-event#event-source)\\n\\n### Event source\\n\\nFollowing the manifest update, the next step is to incorporate the [event source](/snapin-development/references/event-sources).\\nFor this scenario, events from DevRev are essential. Therefore, an", + "title": "Snap-in triggered by a DevRev event | DevRev | Docs" } ] }, @@ -1236,53 +1236,53 @@ "query": "resolution time grouped by Priority and Customer segment", "retrievals": [ { - "id": "ART-1986_KNOWLEDGE_NODE-41", - "text": "resolution is due in one day, the vista displays five minutes. In the case where the first response isn't provided within five minutes, the timer displays negative values (such as -10m), which indicates that it's been 10 minutes since the first response was due. Conversations or tickets can also be grouped by SLA stages.\\n\\nIn the **Detailed View**, all metrics applied to the ticket or conversation can be viewed along with their current stage.\\n\\nFiltering tickets by Next SLA", - "title": "Service-level agreement | Computer for Support Teams | DevRev" + "id": "ART-1003_KNOWLEDGE_NODE-19", + "text": "t.created_at) = EXTRACT(@period FROM CURRENT_DATE);\\n-- NOTE: Replace @period with 'DAY', 'WEEK', 'MONTH', or 'QUARTER'.\\n\\n\\nAverage Resolution Time (ART)\\n\\n\\n Definition\\n \\n The average time it takes to resolve a customer issue from the moment it\\xe2\\x80\\x99s reported.\\n \\n \\n Calculation\\n \\n (Sum of resolution times for all resolved tickets) / (Total number of resolved tickets)\\n \\n \\n\\n\\nSELECT AVG(TIMESTAMPDIFF(MINUTE, t.created_at, t.resolved_at)) AS", + "title": "Understanding a Support Lead's Pain Points and KPIs" }, { - "id": "ART-1003_KNOWLEDGE_NODE-20", - "text": "AverageResolutionTime\\nFROM tickets t\\nWHERE t.status = 'resolved'\\nAND EXTRACT(@period FROM t.created_at) = EXTRACT(@period FROM CURRENT_DATE);\\n-- NOTE: Replace @period with 'DAY', 'WEEK', 'MONTH', or 'QUARTER'.\\n\\n\\nCustomer Satisfaction Score (CSAT)\\n\\n\\n Definition\\n \\n A metric that gauges customer satisfaction with the support provided, typically collected through surveys.\\n \\n \\n Calculation\\n \\n (Number of satisfied responses) / (Total number of responses) * 100\\n", - "title": "Understanding a Support Lead's Pain Points and KPIs" + "id": "ART-1974_KNOWLEDGE_NODE-25", + "text": "lower priority than existing customer orgs.\\n\\n**Tags** [*values*]\\n\\n* Stalled\\n* Priority/Escalated\\n* Fast/Slow Moving\\n* Blocked\\n* Resolution: [*value*]\\n\\nStages\\n------\\n\\nThe following figure shows the state machine for conversations.\\n\\n```\\nClosed\\n\\n\\n\\nIn progress\\n\\n\\n\\nOpen\\n\\n\\n\\nValid\\n\\n\\n\\nSpam\\n\\n\\n\\nReview\\n\\n\\n\\nWaiting on user\\n\\n\\n\\nUser responds\\n\\n\\n\\nHold for Dependency\\n\\n\\n\\nDependency Solved\\n\\n\\n\\nSupport", + "title": "Conversations | Computer for Support Teams | DevRev" }, { - "id": "ART-1039_KNOWLEDGE_NODE-3", - "text": "high-quality video experiences became undeniable.\\n\\nThe Challenge\\n-------------\\n\\nProviding exceptional customer support means connecting with your customers wherever they are, in real-time. As companies scale, it becomes increasingly difficult to provide the same high standard of service to a growing number of customers \\xe2\\x80\\x94 without breaking the bank. In today\\xe2\\x80\\x99s crowded marketplace where it\\xe2\\x80\\x99s possible to get a SaaS company up and running in less than a day,", - "title": "100ms delivers differentiated customer support through a unified channel" + "id": "ART-1004_KNOWLEDGE_NODE-7", + "text": "time it takes for a specific support engineer to resolve a customer issue from the moment it\\xe2\\x80\\x99s reported.\\n \\n \\n Calculation\\n \\n (Sum of resolution times for all resolved tickets by the engineer) / (Total number of resolved tickets by the engineer)\\n \\n \\n\\n\\nSELECT engineer_id, AVG(TIMESTAMPDIFF(MINUTE, t.created_at, t.resolved_at)) AS IndividualAverageResolutionTime\\nFROM tickets t\\nWHERE t.status = 'resolved'\\nAND EXTRACT(@period FROM t.created_at) =", + "title": "Understanding a Support Engineer's Pain Points and KPIs" }, { - "id": "ART-1039_KNOWLEDGE_NODE-15", - "text": "[SLA](/legal/sla)\\n* [DPA](/legal/dpa)\\n* [Subprocessors](/security/sub-processors)\\n* [Cookie Policy](/legal/cookie-policy)\\n* [Privacy Policy](/legal/privacy-policy)\\n* [Terms of Service](/legal/terms-of-service)\\n\\n[System Status](/status)\\n\\n\\xc2\\xa9 2025 DevRev Inc.'", - "title": "100ms delivers differentiated customer support through a unified channel" + "id": "ART-1035_KNOWLEDGE_NODE-10", + "text": "resolution time by 95%](/case-study/icici-prudential-life)\\n\\nChoose another country or region to see content specific to your location.\\n\\n\\xf0\\x9f\\x8c\\x8e English\\xf0\\x9f\\x87\\xaf\\xf0\\x9f\\x87\\xb5 Japanese\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer works](/how-computer-works)\\n\\nApps\\n\\n* [For Support Teams](/for-support-teams)\\n* [For", + "title": "Goodmeetings uses PLuG to reduce ticket resolution time" }, { - "id": "ART-1986_KNOWLEDGE_NODE-39", - "text": "marked as spam | | |\\n| Next response time | | A new message on the conversation with the customer after the customer experience engineer replied | * The agent replied to the conversation * The conversation is moved to Waiting on User/Resolved * The conversation is marked as spam | | |\\n| Full resolution time | | Conversation created | * The conversation has moved to the Resolved/Archived * The conversation is marked as spam | The conversation is moved to Waiting on User | The", - "title": "Service-level agreement | Computer for Support Teams | DevRev" + "id": "ART-1003_KNOWLEDGE_NODE-20", + "text": "AverageResolutionTime\\nFROM tickets t\\nWHERE t.status = 'resolved'\\nAND EXTRACT(@period FROM t.created_at) = EXTRACT(@period FROM CURRENT_DATE);\\n-- NOTE: Replace @period with 'DAY', 'WEEK', 'MONTH', or 'QUARTER'.\\n\\n\\nCustomer Satisfaction Score (CSAT)\\n\\n\\n Definition\\n \\n A metric that gauges customer satisfaction with the support provided, typically collected through surveys.\\n \\n \\n Calculation\\n \\n (Number of satisfied responses) / (Total number of responses) * 100\\n", + "title": "Understanding a Support Lead's Pain Points and KPIs" }, { - "id": "ART-1039_KNOWLEDGE_NODE-5", - "text": "problem was interacting with our customers and really understanding the urgency of every conversation. We had over 300 Slack Connect channels for our users. The conversations could go from design discussions to finding bugs to architecture, and there was no way to delineate these conversations from ones where a customer is saying, \\xe2\\x80\\x98I\\xe2\\x80\\x99m having an outage right now. I need urgent help\\xe2\\x80\\x9d.\\n\\nManaging and prioritizing customer conversations and requests in Slack was a", - "title": "100ms delivers differentiated customer support through a unified channel" + "id": "ART-15716_KNOWLEDGE_NODE-36", + "text": "the Dashboards section.\\n\\nAdd a widget for \\xe2\\x80\\x9cTicket Resolution Time\\xe2\\x80\\x9d or \\xe2\\x80\\x9cAverage Time to Resolution.\\xe2\\x80\\x9d\\n\\nConfigure the widget to display data by agent, team, or time period.\\n\\nUse filters to focus on specific ticket types, priorities, or customer segments.\\n\\nFor more granular analysis, use a table or chart widget with custom SQL or filters.\\n\\nThis will help you monitor and improve your team\\xe2\\x80\\x99s responsiveness.5. Configuring branding of the", + "title": "Support queries related playbook" }, { - "id": "ART-2133_KNOWLEDGE_NODE-21", - "text": "customer at a much deeper level.\\n\\nTime Travel Establishing the history of a customer \\xe2\\x80\\x93 events, changes to records, versions, time logs\\xe2\\x80\\xa6 essentially traveling back in time \\xe2\\x80\\x93 is one of the hardest things in customer relationship management. Support, product management, and other business-to-business conversations\\n\\nPage 7 of 16\\n\\nThe Essential Methodology\\n\\nLess But Better\\n\\nare otherwise mostly point-in- time, with a lot of recency bias that results in", - "title": "The Essential Methodology: Less but Better" + "id": "ART-4181_KNOWLEDGE_NODE-6", + "text": "time and resolution time, or tailor metrics to your requirements\\n\\n![]()\\n\\nTrigger SLAs at the right moment, every time\\n\\nMap conditions to parts of your product, tags, severity levels, or any other relevant criteria on our simple UI\\n\\n![]()\\n\\nTrigger SLAs at the right moment, every time\\n\\nMap conditions to parts of your product, tags, severity levels, or any other relevant criteria on our simple UI\\n\\n![]()\\n\\nSLAs in sync with your business\\n\\nAccount for calendar and business hours,", + "title": "Support like a lightning fast pit-crew" }, { - "id": "ART-1003_KNOWLEDGE_NODE-19", - "text": "t.created_at) = EXTRACT(@period FROM CURRENT_DATE);\\n-- NOTE: Replace @period with 'DAY', 'WEEK', 'MONTH', or 'QUARTER'.\\n\\n\\nAverage Resolution Time (ART)\\n\\n\\n Definition\\n \\n The average time it takes to resolve a customer issue from the moment it\\xe2\\x80\\x99s reported.\\n \\n \\n Calculation\\n \\n (Sum of resolution times for all resolved tickets) / (Total number of resolved tickets)\\n \\n \\n\\n\\nSELECT AVG(TIMESTAMPDIFF(MINUTE, t.created_at, t.resolved_at)) AS", - "title": "Understanding a Support Lead's Pain Points and KPIs" + "id": "ART-1899_KNOWLEDGE_NODE-1", + "text": "resolution time by 64%, improved first response time by over 83%, and increased their customer satisfaction score by 30%. They also saw a 20% increase in conversion rates.\\n\\nWith DevRev, Tough Trucks for Kids can now provide top-notch, scalable customer support. They're set up to maintain high customer delight as they continue to grow.\\n\\nCase Study: Link\"", + "title": "Tough Trucks for Kids Story" }, { - "id": "ART-970_KNOWLEDGE_NODE-47", - "text": "customers, including their support interactions, engagements, and product usage.\\n Consider the possibilities of identifying and prioritizing high-impact items based on their revenue implications.\\n\\n\\nSupport Engineer:\\n\\n\\n How would your approach change if you knew about potential opportunities or deals with the customer?\\n Imagine not having to engage in the tedious task of copying and pasting between engineering issues and your tickets.\\n What if you could effortlessly track the status", - "title": "The Story" + "id": "ART-1003_KNOWLEDGE_NODE-8", + "text": "calculate these things manually\\n Make sure there is automation to keep these numbers up to date and don\\xe2\\x80\\x99t rely on a human to calculate\\n Manual/human-based calculations will always be out of date and error prone.\\n \\n \\n\\n\\nKPIs to track:\\n\\n\\n First Response Time\\n Average Resolution Time\\n Customer Satisfaction Score\\n Net Promoter Score\\n Escalation Rate\\n\\n\\nCustomer satisfaction (CSAT)\\n\\nTechnically this should be at the top of the list as this is all that", + "title": "Understanding a Support Lead's Pain Points and KPIs" }, { - "id": "ART-1004_KNOWLEDGE_NODE-7", - "text": "time it takes for a specific support engineer to resolve a customer issue from the moment it\\xe2\\x80\\x99s reported.\\n \\n \\n Calculation\\n \\n (Sum of resolution times for all resolved tickets by the engineer) / (Total number of resolved tickets by the engineer)\\n \\n \\n\\n\\nSELECT engineer_id, AVG(TIMESTAMPDIFF(MINUTE, t.created_at, t.resolved_at)) AS IndividualAverageResolutionTime\\nFROM tickets t\\nWHERE t.status = 'resolved'\\nAND EXTRACT(@period FROM t.created_at) =", + "id": "ART-1004_KNOWLEDGE_NODE-3", + "text": "to deliver good results quickly.\\n\\nKPIs to track:\\n\\n\\n Individual First Response Time\\n Individual Average Resolution Time\\n Ticket Volume\\n\\n\\nRepetitive tasks\\n\\nAll customers are different, but not all problems or process steps are. One of the most frustrating things in this position is dealing with the repetitive grunt work (I refer to this as \\xe2\\x80\\x9cwork suck\\xe2\\x80\\x9d) and the potential monotony of tasks. HINT: automation and/or intelligent systems are key here!\\n\\nTo make", "title": "Understanding a Support Engineer's Pain Points and KPIs" } ] @@ -1292,54 +1292,54 @@ "query": "add attributes in MSAT snap-in", "retrievals": [ { - "id": "ART-1846_KNOWLEDGE_NODE-8", - "text": "example of a snap-kit JSON:\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"snap_kit_body\": { |\\n| 3 | \"body\": { |\\n| 4 | \"snaps\": [ |\\n| 5 | { |\\n| 6 | \"elements\": [ |\\n| 7 | { |\\n| 8 | \"action_id\": \"user_snap_kit_action\", |\\n| 9 | \"action_type\": \"remote\", |\\n| 10 | \"elements\": [ |\\n| 11 | { |\\n| 12 | \"element\": { |\\n| 13 | \"action_id\": \"select\", |\\n| 14 | \"action_type\": \"client\", |\\n| 15 | \"initial_selected_option\": { |\\n| 16 | \"text\": { |\\n| 17 | \"text\": \"Ticket\", |\\n| 18 | \"type\":", - "title": "Customizing snap-in configuration | DevRev | Docs" + "id": "ART-2028_KNOWLEDGE_NODE-24", + "text": "[Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[Work duration](/docs/automations/work-duration)\\n\\nWork duration\\n=============\\n\\n[Work duration](/marketplace/work-duration) offers the ability\\nto track how much work issues and tickets took to complete, measured by time\\nspent in work sessions.\\n\\nThe snap-in adds a new attribute to tickets and issues which automatically\\ncalculates the work duration for that item. Work duration is meassured in time\\nspent through work sessions. A work", + "title": "Work duration | Automate | Snap-ins | DevRev" }, { - "id": "ART-1278_KNOWLEDGE_NODE-6", - "text": "discussion tab of the specified Product\\nsection. The configuration for this action can be customized through the input\\nparameters of the snap-in.\\n\\n[2](/snapin-development/tutorials/triggered-external-source#creating-the-snap-in)\\n\\n### Creating the snap-in\\n\\n#### Updating the manifest\\n\\nTo outline the structure of the snap-in, the initial step is to define key\\nattributes in the snap-in\\xe2\\x80\\x99s manifest. Begin by specifying the name, description,\\nand account display name for the", - "title": "Snap-in triggered by an external source | DevRev | Docs" + "id": "ART-1290_KNOWLEDGE_NODE-192", + "text": "customize the options, initial selections, and other values according to your requirements.\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"object\": \"source_id\", |\\n| 3 | \"body\": \"Giphy\", |\\n| 4 | \"type\": \"timeline_comment\", |\\n| 5 | \"snap_kit_body\": { |\\n| 6 | \"snap_in_id\": \"snap_in_id\", |\\n| 7 | \"snap_in_action_name\": \"giphy\", |\\n| 8 | \"body\": { |\\n| 9 | \"snaps\": [ |\\n| 10 | { |\\n| 11 | \"type\": \"card\", |\\n| 12 | \"title\": { |\\n| 13 | \"text\": \"Hip hip hurray!\", |\\n| 14 | \"type\": \"plain_text\"", + "title": "Snapkit | DevRev | Docs" }, { - "id": "ART-1846_KNOWLEDGE_NODE-19", - "text": "change in future updates.\\n\\nFor more details on the snap-kit JSON format and available elements, refer to the [DevRev Snap-kit documentation](/snapin-development/references/snapkit).\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/snapin-development/references/snap-in-resources)[#### Development best practices\\n\\nNext](/snapin-development/best-practices)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Customizing snap-in configuration | DevRev | Docs" + "id": "ART-2662_KNOWLEDGE_NODE-25", + "text": "Customers\\n\\nEmpower your customers and customer-facing teams with ready access to relevant information.](/docs/plug)[### Snap-ins\\n\\n![]()\\n\\nConnect tools, automate work, and extend your experience with add-on modules provided by DevRev.](/docs/snapins)[### Developer\\n\\n![]()\\n\\nEnabling developers to create tools for the future with DevRev APIs.](https://developer.devrev.ai/about/for-developers)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about", + "title": "DevRev Documentation" }, { - "id": "ART-1847_KNOWLEDGE_NODE-9", - "text": "JSON:\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"snap_kit_body\": { \\n 3| \"body\": { \\n 4| \"snaps\": [ \\n 5| { \\n 6| \"elements\": [ \\n 7| { \\n 8| \"action_id\": \"user_snap_kit_action\", \\n 9| \"action_type\": \"remote\", \\n 10| \"elements\": [ \\n 11| { \\n 12| \"element\": { \\n 13| \"action_id\": \"select\", \\n 14|", - "title": "Customizing snap-in configuration \u2014 DevRev | Docs" + "id": "ART-1566_KNOWLEDGE_NODE-444", + "text": "object.\\nsnap_in_version object\\nShow 2 properties\\nevent_sources map from strings to strings Optional\\n\\nThe event sources for the snap-in.\\n\\ninputs map from strings to any Optional\\n\\nThe inputs for the snap-in.\\n\\nkeyrings map from strings to objects Optional\\n\\nMap of keyring names and its data.\\n\\nShow 2 properties\\nAPI Reference snap-ins Update.\\n\\nPOST https://api.devrev.ai / snap-ins.update\\n\\nUpdates a snap-in.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nid string Required\\n\\nThe", + "title": "Transition (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1473_KNOWLEDGE_NODE-9", - "text": "displaying them on the discussion tab of the specified Product section. The configuration for this action can be customized through the input parameters of the snap-in.\\n\\n[2](/public/snapin-development/tutorials/triggered-external-source#creating-the-snap-in)\\n\\n### Creating the snap-in\\n\\n#### Updating the manifest\\n\\nTo outline the structure of the snap-in, the initial step is to define key attributes in the snap-in\\xe2\\x80\\x99s manifest. Begin by specifying the name, description, and", - "title": "Snap-in triggered by an external source \u2014 DevRev | Docs" + "id": "ART-13034_KNOWLEDGE_NODE-0", + "text": "b'[](/public/api-reference/snap-widgets/create)\\n\\nPublic\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources", + "title": "Create Snap Widget \u2014 DevRev | Docs" }, { - "id": "ART-1846_KNOWLEDGE_NODE-1", - "text": "(beta)](/snapin-development/references/customizing-snap-in-configuration#update-snap-in-inputs-beta)\\n* [Request payload](/snapin-development/references/customizing-snap-in-configuration#request-payload)\\n* [Response](/snapin-development/references/customizing-snap-in-configuration#response)\\n* [Success response](/snapin-development/references/customizing-snap-in-configuration#success-response)\\n* [Error", - "title": "Customizing snap-in configuration | DevRev | Docs" + "id": "ART-1545_KNOWLEDGE_NODE-442", + "text": "object.\\nsnap_in_version object\\nShow 2 properties\\nevent_sources map from strings to strings Optional\\n\\nThe event sources for the snap-in.\\n\\ninputs map from strings to any Optional\\n\\nThe inputs for the snap-in.\\n\\nkeyrings map from strings to objects Optional\\n\\nMap of keyring names and its data.\\n\\nShow 2 properties\\nAPI Reference snap-ins Update.\\n\\nPOST https://api.devrev.ai / snap-ins.update\\n\\nUpdates a snap-in.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nid string Required\\n\\nThe", + "title": "Create (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1276_KNOWLEDGE_NODE-6", - "text": "manifest\\n\\nTo outline the structure of the snap-in, the initial step is to define key attributes in the snap-in\\xe2\\x80\\x99s manifest. Begin by specifying the name, description, and account display name for the snap-in.\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | version: \"2\" |\\n| 2 | name: \"GitHub issue creator\" |\\n| 3 | description: \"Replicate DevRev issues in GitHub.\" |\\n| 4 | |\\n| 5 | service_account: |\\n| 6 | display_name: GitHub Issue Creator", - "title": "Using a snap-in to perform an external action | DevRev | Docs" + "id": "ART-1619_KNOWLEDGE_NODE-1", + "text": "|\\n| > | -H \"Authorization: Bearer \" \\\\ |\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{ |\\n| > | \"id\": \"string\", |\\n| > | \"user\": \"string\" |\\n| > | }\\' |\\n```\\n\\n[Try it](/beta/api-reference/snap-ins/resources-post?explorer=true)\\n\\n200Successful\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"snap_in_version\": { |\\n| 3 | \"id\": \"string\", |\\n| 4 | \"display_id\": \"string\" |\\n| 5 | }, |\\n| 6 | \"event_sources\": {}, |\\n| 7 | \"inputs\": {}, |\\n| 8 | \"keyrings\": {} |\\n| 9 | }", + "title": "Resources Snap Ins (POST) | DevRev | Docs" }, { - "id": "ART-1472_KNOWLEDGE_NODE-10", - "text": "outline the structure of the snap-in, the initial step is to define key attributes in the snap-in\\xe2\\x80\\x99s manifest. Begin by specifying the name, description, and account display name for the snap-in.\\n\\n[code]\\n\\n 1| version: \"2\" \\n ---|--- \\n 2| name: \"GitHub issue creator\" \\n 3| description: \"Replicate DevRev issues in GitHub.\" \\n 4| \\n 5| service_account: \\n 6| display_name: GitHub Issue Creator\\n[/code] \\n", - "title": "Using a snap-in to perform an external action \u2014 DevRev | Docs" + "id": "ART-1290_KNOWLEDGE_NODE-99", + "text": "exactly match one of the options within `options`.\\n* `max_selected_items` (optional): The maximum number of items that can be selected.\\n\\n*Inherited properties*\\n\\nInherited from [Snap](/snapin-development/references/snapkit#snap):\\n\\n* `type` (required): The type of the multi-static select component, should be set to `\"multi_static_select\"`.\\n* `block_id` (optional): A unique identifier for the snap. If not provided, a random ID is generated.\\n\\nInherited from", + "title": "Snapkit | DevRev | Docs" }, { - "id": "ART-1847_KNOWLEDGE_NODE-2", - "text": "(beta)](/public/snapin-development/references/customizing-snap-in-configuration#update-snap-in-inputs-beta)\\n * [Request payload](/public/snapin-development/references/customizing-snap-in-configuration#request-payload)\\n * [Response](/public/snapin-development/references/customizing-snap-in-configuration#response)\\n * [Success response](/public/snapin-development/references/customizing-snap-in-configuration#success-response)\\n * [Error", - "title": "Customizing snap-in configuration \u2014 DevRev | Docs" + "id": "ART-4226_KNOWLEDGE_NODE-3", + "text": "https://api.devrev.ai/snap-kit-action.execute.deferred \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -H \"Content-Type: application/json\" \\\\ \\n >| -d \\'{ \\n >| \"actions\": [ \\n >| { \\n >| \"value\": {} \\n >| } \\n >| ], \\n >| \"id\": \"foo\" \\n >| }\\'\\n[/code] \\n \\nTry it\\n\\n200snapKitExecutionSnapKitActionExecuteDeferredExample\\n\\n[code]\\n\\n 1| {} \\n ---|---\\n[/code] \\n \\n[Create Snap WidgetUp", + "title": "Deferred Snap Kit Action Execute \u2014 DevRev | Docs" }, { - "id": "ART-1296_KNOWLEDGE_NODE-9", - "text": "changed. Any existing function can be removed. A new function can be added. |\\n| Commands | For existing commands: - All properties can be changed. Any existing command can be removed. A new command can be added. |\\n| Snap-kit actions | For existing snap-kit-actions: - The description can be changed. - The function can be changed. Any existing snap-kit-action can be removed. A new snap-kit-action can be added. |\\n| Service account | The display name of the service", - "title": "Upgrade snap-ins | DevRev | Docs" + "id": "ART-1564_KNOWLEDGE_NODE-443", + "text": "data.\\n\\nShow 2 properties\\nAPI Reference snap-ins Update.\\n\\nPOST https://api.devrev.ai / snap-ins.update\\n\\nUpdates a snap-in.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nid string Required\\n\\nThe ID of the snap-in to update.\\n\\ninputs_values map from strings to any Optional\\n\\nThe updated values of the inputs.\\n\\nResponse.\\n\\nThis endpoint returns an object.\\nsnap_in object\\nShow 7 properties\\nAPI Reference snap-widgets Create.\\n\\nPOST https://api.devrev.ai /", + "title": "List (Beta) \u2014 DevRev | Docs" } ] }, @@ -1348,54 +1348,54 @@ "query": "Slack bot not working after multiple test tickets", "retrievals": [ { - "id": "ART-4021_KNOWLEDGE_NODE-5", - "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", - "title": "Slack scraper | Automate | Snap-ins | DevRev" + "id": "ART-4199_KNOWLEDGE_NODE-28", + "text": "**Trigger URL** that is displayed.\\n6. Paste the Trigger URL under **Enable Events** in the custom Slack bot.\\n\\n[PreviousTicket linked issues comment sync](/docs/automations/ticket-linked-issues-comment-sync)[NextIntegrate](/docs/integrate)\\n\\n#### On this page\\n\\n* [Install](#install)\\n* [Configure the custom Slack bot](#configure-the-custom-slack-bot)\\n* [Configure DevRev](#configure-devrev)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about", + "title": "Slack message agent | Automate | Snap-ins | DevRev" }, { - "id": "ART-12395_KNOWLEDGE_NODE-5", - "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", - "title": "Slack Broadcaster | Automate | Snap-ins | DevRev" + "id": "ART-6174_KNOWLEDGE_NODE-30", + "text": "there.\\n\\n![]()\\n\\nSlack end-user experience\\n-------------------------\\n\\nWhen a conversation is converted to a ticket in Slack:\\n\\n* Ticket information appears within the same thread.\\n* All subsequent messages sync with the newly created ticket.\\n* The transition is seamless for the end user.\\n\\nConversation conversion scenarios\\n---------------------------------\\n\\nConsider converting a conversation to a ticket in these scenarios:\\n\\n* Complex issues requiring in-depth investigation\\n*", + "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" }, { - "id": "ART-4199_KNOWLEDGE_NODE-5", - "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", - "title": "Slack message agent | Automate | Snap-ins | DevRev" + "id": "ART-2035_KNOWLEDGE_NODE-43", + "text": "update** snap-in configuration.\\n* Applies only to tickets syncing with Slack threads.\\n* If enabled, the Slack snap-in will send notifications to the syncing thread whenever the ticket state changes.\\n\\n### Ticket digest\\n\\nTo see all open and in-progress tickets in Slack, use the /devrev ticket-digest command. This opens a modal with a paginated list of all open and in-progress tickets.\\n\\nDevRev Issues and Slack\\n-----------------------\\n\\nThe Slack snap-in allows issues to be created", + "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-4199_KNOWLEDGE_NODE-28", - "text": "**Trigger URL** that is displayed.\\n6. Paste the Trigger URL under **Enable Events** in the custom Slack bot.\\n\\n[PreviousTicket linked issues comment sync](/docs/automations/ticket-linked-issues-comment-sync)[NextIntegrate](/docs/integrate)\\n\\n#### On this page\\n\\n* [Install](#install)\\n* [Configure the custom Slack bot](#configure-the-custom-slack-bot)\\n* [Configure DevRev](#configure-devrev)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about", - "title": "Slack message agent | Automate | Snap-ins | DevRev" + "id": "ART-2017_KNOWLEDGE_NODE-28", + "text": "you would like to tag on the message (the ticket owner gets tagged automatically); and the target Slack channel. The channel\\'s ID can be found by going to the channel details. Refer to the placeholder value on the input to see an example of how this looks.\\n2. Decide if notifications should go out even if the ticket has a target end date set. Set the toggle to the desired behavior.\\n3. Decide if a ticket should pass the check if it\\'s part is a descendant of the filter part. For example, if a", + "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" }, { - "id": "ART-2035_KNOWLEDGE_NODE-5", - "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", - "title": "Slack | Integrate | Snap-ins | DevRev" + "id": "ART-968_KNOWLEDGE_NODE-1", + "text": "stays in Slack and doesn\\xe2\\x80\\x99t extend to DevRev tickets.\\n\\n\\xe2\\x97\\x8f Solution:\\nDeveloped by: Hariharan\\nStatus: Tested and verified.\\nCustomer Approval: Approved\\n\\xe2\\x97\\x8b Brief:\\nCustom Snap-in connected with a custom Slack application that would automatically tag\\nthe on-call members upon ticket creation at Slack.\\n\\n\\xe2\\x97\\x8b Description:\\nA custom application in Slack marketplace is to be created which would perform the\\ntagging by referencing the group members in Slack.", + "title": "Rocketium: On call Tagging - Slack" }, { - "id": "ART-12395_KNOWLEDGE_NODE-13", - "text": "group](/docs/automations/set-user-preference)\\n - [SLA status change Slack notifier](/docs/automations/sla-change-notifier)\\n - [Slash commands](/docs/automations/slash-commands)\\n - [Spam Shield](/docs/automations/spam-shield)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field migrator](/docs/automations/ticket-issue-field-migrator)\\n - [Ticket", - "title": "Slack Broadcaster | Automate | Snap-ins | DevRev" + "id": "ART-2017_KNOWLEDGE_NODE-25", + "text": "ticket\\'s owner and subscribers, when a ticket\\'s resolution time SLA changes into the *Warning* or *Breached* stage.\\n\\n![]()\\n\\nFor more information, refer to the\\n[SLA status change Slack notifier snap-in](/marketplace/sla-status-change-slack-notifier) on the DevRev\\nmarketplace.\\n\\nInstallation\\n------------\\n\\n1. Create a Slack app for your workspace in .\\n2. In App features, generate bot token in **OAuth & Permissions**.\\n3. Grant the app bot the following", + "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" }, { - "id": "ART-12395_KNOWLEDGE_NODE-14", - "text": "Immutability](/docs/automations/ticket-immutability)\\n - [Ticket email notifier](/docs/automations/ticket-email-notifier)\\n - [Task tracker](/docs/automations/task-tracker)\\n - [Ticket Tagger](/docs/automations/ticket-tagger)\\n - [Tracxn sync](/docs/automations/tracxn-sync)\\n - [User group validator](/docs/automations/user-group-validator)\\n - [Work duration](/docs/automations/work-duration)\\n - [Operational SLA Metrics](/docs/automations/operational-sla-metrics)\\n -", - "title": "Slack Broadcaster | Automate | Snap-ins | DevRev" + "id": "ART-2035_KNOWLEDGE_NODE-44", + "text": "directly from Slack:\\n\\n* Using the /devrev create-issue command.\\n* Using the **Create a new issue** message action.\\n\\nBoth the options open a new pop-up modal with a new issue form. Some of the fields are pre-populated based on the messages in the thread.\\n\\n* The **Share with everyone** functionality operates identically to ticket creation. Only shared issues are synchronized between the platforms.\\n* The messages are always synced in the **Internal Discussions** panel with Slack thread.\\n*", + "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-4199_KNOWLEDGE_NODE-14", - "text": "Immutability](/docs/automations/ticket-immutability)\\n - [Ticket email notifier](/docs/automations/ticket-email-notifier)\\n - [Task tracker](/docs/automations/task-tracker)\\n - [Ticket Tagger](/docs/automations/ticket-tagger)\\n - [Tracxn sync](/docs/automations/tracxn-sync)\\n - [User group validator](/docs/automations/user-group-validator)\\n - [Work duration](/docs/automations/work-duration)\\n - [Operational SLA Metrics](/docs/automations/operational-sla-metrics)\\n -", - "title": "Slack message agent | Automate | Snap-ins | DevRev" + "id": "ART-4271_KNOWLEDGE_NODE-28", + "text": "PLuG widget:\\n\\n * The ticket number and basic details appear in the same conversation pane.\\n * Users can click **Details** to view complete ticket information.\\n * If the **Tickets** tab is enabled in PLuG, users can track their ticket status there.\\n\\n### Slack experience\\n\\nWhen a conversation is converted to a ticket in Slack:\\n\\n * Ticket information is sent within the same thread.\\n * All subsequent messages sync with the newly created ticket.\\n * The transition is seamless for the", + "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" }, { - "id": "ART-4199_KNOWLEDGE_NODE-13", - "text": "group](/docs/automations/set-user-preference)\\n - [SLA status change Slack notifier](/docs/automations/sla-change-notifier)\\n - [Slash commands](/docs/automations/slash-commands)\\n - [Spam Shield](/docs/automations/spam-shield)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field migrator](/docs/automations/ticket-issue-field-migrator)\\n - [Ticket", - "title": "Slack message agent | Automate | Snap-ins | DevRev" + "id": "ART-2035_KNOWLEDGE_NODE-36", + "text": "Slack Channel ID in the **Channel ID to send conversation notifications** snap-in configuration as the target to post notifications.\\n\\n* Any new message within tickets in the customer messages panel is also subjected to the same automation.\\n* To prevent notification overload, each conversation or ticket is subject to a five minute cooldown period between notifications. Multiple consecutive messages within this window will not trigger additional notifications.\\n* Notification threads are not", + "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-4021_KNOWLEDGE_NODE-13", - "text": "group](/docs/automations/set-user-preference)\\n - [SLA status change Slack notifier](/docs/automations/sla-change-notifier)\\n - [Slash commands](/docs/automations/slash-commands)\\n - [Spam Shield](/docs/automations/spam-shield)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field migrator](/docs/automations/ticket-issue-field-migrator)\\n - [Ticket", - "title": "Slack scraper | Automate | Snap-ins | DevRev" + "id": "ART-17515_KNOWLEDGE_NODE-26", + "text": "and feature requests on tickets.\\n* Computer on Plug: Enhances the following functionalities:\\n\\n + Conversation: It deflects customer queries using your knowledge base, providing accurate and relevant responses.\\n + Search: It summarizes your search results, making information retrieval more efficient and user-friendly.\\n* Computer assist: Recommends relevant articles and similar work items.\\n* Slack tickets: Automatically generates titles and descriptions for tickets created from Slack", + "title": "AI use cases in DevRev | Computer by DevRev | DevRev" } ] }, @@ -1404,19 +1404,14 @@ "query": "customizar severity de los tickets", "retrievals": [ { - "id": "ART-1551_KNOWLEDGE_NODE-506", - "text": "organizations.\\n\\nticket.severity enum Optional\\n\\nFilters for tickets with any of the provided severities.\\n\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\n\\nFilters for records with any of the provided SLA stages.\\n\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\n\\nFilters for tickets with any of the provided source channels.\\n\\nticket.subtype string Optional\\n\\nFilters for tickets with any of the provided", - "title": "Update (Beta) \u2014 DevRev | Docs" - }, - { - "id": "ART-1834_KNOWLEDGE_NODE-447", - "text": "organizations.\\nticket.severity enum Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype", - "title": "Delete \u2014 DevRev | Docs" + "id": "ART-1244_KNOWLEDGE_NODE-23", + "text": "severities.\\n\\nAllowed values:blockerhighlowmedium\\n\\nticket.sla\\\\_summary.stagelist of enumsOptional\\n\\nFilters for records with any of the provided SLA stages.\\n\\nAllowed values:breachedcompletedpausedrunningwarning\\n\\nticket.source\\\\_channellist of stringsOptional\\n\\nFilters for tickets with any of the provided source channels.\\n\\nticket.source\\\\_channel\\\\_v2list of stringsOptional\\n\\nFilters for tickets that are associated with any of the source\\nchannels.\\n\\ntypelist of", + "title": "Export Works | DevRev | Docs" }, { - "id": "ART-1651_KNOWLEDGE_NODE-455", - "text": "the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the provided types.\\nAllowed values: issue", - "title": "Create \u2014 DevRev | Docs" + "id": "ART-1639_KNOWLEDGE_NODE-458", + "text": "for tickets that are associated with any of the provided Rev organizations.\\nticket.severity enum Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string", + "title": "Export Post \u2014 DevRev | Docs" }, { "id": "ART-1979_KNOWLEDGE_NODE-29", @@ -1424,34 +1419,39 @@ "title": "Tickets | Computer for Support Teams | DevRev" }, { - "id": "ART-1633_KNOWLEDGE_NODE-454", - "text": "the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the provided types.\\nAllowed values: issue", - "title": "List \u2014 DevRev | Docs" + "id": "ART-1979_KNOWLEDGE_NODE-50", + "text": "customization](./object-customization).\\n\\nViewing attachments on tickets\\n------------------------------\\n\\nYou can view all attachments sent via the ticket's description, internal discussion, or a customer message by going to the **Attachments** section on the ticket for easy access.\\n\\n![]()\\n\\nTuring suggests\\n---------------\\n\\nTuring suggests enables Computer to aid customer experience engineers in resolving current tickets more efficiently. Each time a ticket is viewed, Computer", + "title": "Tickets | Computer for Support Teams | DevRev" }, { - "id": "ART-1654_KNOWLEDGE_NODE-466", - "text": "the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the provided types.\\nAllowed values: issue", - "title": "List \u2014 DevRev | Docs" + "id": "ART-1027_KNOWLEDGE_NODE-6", + "text": "that intelligently assess ticket severity and streamline prioritization\\n* Specialized Computer CX Agents designed to handle both free and paid customer inquiries, optimizing deflection strategies for each segment\\n* In-app support experiences with real-time, contextual assistance\\n* Conversational AI layered on top of Computer\\xe2\\x80\\x99s Memory for unified knowledge\\n* Tight integration with Descope's internal dev workflows and APIs\\n\\nFor me, this is the number one priority for our service", + "title": "Descope streamlines support at scale with automation, AI, and unified collaboration" }, { - "id": "ART-1651_KNOWLEDGE_NODE-468", - "text": "Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the", - "title": "Create \u2014 DevRev | Docs" + "id": "ART-996_KNOWLEDGE_NODE-14", + "text": "api_visibility: public\\n api_required: true\\n summary: true # NOTE: `title` included in summary\\n---\\n- name: severity\\n devrev_field_type: legacy_enum\\n devrev_enum:\\n - blocker\\n - high\\n - medium\\n - low\\n is_required: true\\n description: Severity of the ticket\\n gateway:\\n api_visibility: public\\n is_filterable: true\\n summary: true # NOTE: `severity` included in summary\\n\\n\\nDon\\xe2\\x80\\x99t\\nDon\\xe2\\x80\\x99t set all fields to summary: true\\n\\n - name:", + "title": "An Example Object Model Style Guide (our actual style guide)" }, { - "id": "ART-1824_KNOWLEDGE_NODE-447", - "text": "the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the provided types.\\nAllowed values: issue", - "title": "Delete \u2014 DevRev | Docs" + "id": "ART-15664_KNOWLEDGE_NODE-13", + "text": "\\n\\nYou may want to restrict links to specific subtypes of objects. For example, only allowing issues\\nof a particular subtype to be linked to tickets.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"name\": \"Link between social media issues and tickets\", |\\n| > | \"source_types\": [ |\\n| > | { |\\n|", + "title": "Links | DevRev | Docs" }, { - "id": "ART-1829_KNOWLEDGE_NODE-463", - "text": "the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the provided types.\\nAllowed values: issue", - "title": "Delete \u2014 DevRev | Docs" + "id": "ART-1979_KNOWLEDGE_NODE-37", + "text": "filters and **Group** conditions across various vistas in DevRev to track specific work, capacity, and more.\\n\\nYou can add custom attributes to tickets to track additional information. For more information on custom attributes, see [object customization](./object-customization).\\n\\nIssues are attached to tickets in order to track efforts with product priorities.\\n\\nCreate a ticket\\n---------------\\n\\n1. Go to **Support** > **Tickets** from the sidebar on the left.\\n2. Click **New Ticket** on", + "title": "Tickets | Computer for Support Teams | DevRev" }, { - "id": "ART-1837_KNOWLEDGE_NODE-447", - "text": "associated with any of the provided Rev organizations.\\nticket.severity enum Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets", - "title": "Update \u2014 DevRev | Docs" + "id": "ART-1975_KNOWLEDGE_NODE-26", + "text": "resolve tickets.\\n* **Tickets awaiting response**\\n\\n The number of active tickets awaiting response to customer.\\n* **Unassigned tickets**\\n\\n The number of tickets not yet assigned to a support agent.\\n* **Active blocker tickets**\\n\\n The number of tickets with severity Blocker that are in the Open or In Progress state.\\n* **SLA compliance rate**\\n\\n The percentage of tickets where the SLA was met out of all tickets where the SLA was applied.\\n* **Average CSAT score**\\n\\n The average", + "title": "Ticket insights | Support analytics | Computer for Support Teams | DevRev" + }, + { + "id": "ART-1552_KNOWLEDGE_NODE-3", + "text": "\"display_id\": \"source\", \\n 16| \"rev_org\": { \\n 17| \"type\": \"rev_org\", \\n 18| \"id\": \"source\" \\n 19| }, \\n 20| \"severity\": \"blocker\", \\n 21| \"stage\": { \\n 22| \"name\": \"name\" \\n 23| } \\n 24| }, \\n 25| \"target\": { \\n 26| \"type\": \"ticket\", \\n 27| \"id\": \"target\", \\n 28| \"owned_by\": [ \\n 29| { \\n 30| \"type\": \"sys_user\", \\n 31| \"id\":", + "title": "Create Link (Beta) \u2014 DevRev | Docs" } ] }, @@ -1460,54 +1460,54 @@ "query": "support engineer typing indicator in ticket conversation", "retrievals": [ { - "id": "ART-6174_KNOWLEDGE_NODE-13", - "text": "creator](/docs/automations/smart-issue-creator)\\n - [Set user preference for group](/docs/automations/set-user-preference)\\n - [SLA status change Slack notifier](/docs/automations/sla-change-notifier)\\n - [Slash commands](/docs/automations/slash-commands)\\n - [Spam Shield](/docs/automations/spam-shield)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field", - "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" + "id": "ART-4966_KNOWLEDGE_NODE-11", + "text": "notifier](/docs/automations/sla-change-notifier?)\\n * [Slash commands](/docs/automations/slash-commands?)\\n * [Spam Shield](/docs/automations/spam-shield?)\\n * [Ticket age in engineering](/docs/automations/ticket-age-in-engineering?)\\n * [Ticket issue field migrator](/docs/automations/ticket-issue-field-migrator?)\\n * [Ticket Immutability](/docs/automations/ticket-immutability?)\\n * [Ticket email notifier](/docs/automations/ticket-email-notifier?)\\n * [Task", + "title": "Zoho Projects Airdrop | Airdrop | Snap-ins | DevRev" }, { - "id": "ART-1960_KNOWLEDGE_NODE-41", - "text": "*[ticket](#ticket)*\\n: Read more about\\xc2\\xa0[*task*](https://docs.devrev.ai/product/core)\\n\\nticket\\n\\n: A record of a customer\\'s request for assistance or support.\\n: When a customer contacts a company with a problem or issue, the company creates a ticket to track the request and ensure that it is addressed in a timely and satisfactory manner. Also known as a \"customer ticket\" or \"support ticket\".\\n: Terms related to\\xc2\\xa0*ticket*:\\n\\n * *[conversation](#conversation)*\\n *", - "title": "Glossary | Computer by DevRev | DevRev" + "id": "ART-1969_KNOWLEDGE_NODE-28", + "text": "engineers. To get a list of the available commands, type / in a conversation response text box.\\n\\n\\xf0\\x9f\\x8e\\xab Tickets\\n---------\\n\\nThe benefit of Computer by DevRev is that conversations can be linked to support [tickets](../product/tickets), and tickets can be linked to build issues. This [linkage](../product/apps) means that all work can be traced back to customer concerns or requests.\\n\\nSlash commands are available in tickets to provide AI assistance to customer experience engineers.", + "title": "Computer for Support Teams | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-42", - "text": "it's automatically put into the *queued* stage, which indicates that it needs to be picked up by a customer experience engineer.\\n\\n**In-progress**\\n\\n* *Work in progress* (WIP)\\n\\n Work on the concern reported by the user has begun. When a customer experience engineer starts work on a ticket, the ticket's stage changes to *work in progress*. When they require more information, they may ask the customer for additional detail (such as logs or context), in which case the stage would change to", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-984_KNOWLEDGE_NODE-9", + "text": "support ticket to get an update on the status of this feature as well as asks their rep what is going on. In most cases the rep and support engineer don\\xe2\\x80\\x99t communicate or have the context of what the other is doing (let alone access to the other\\xe2\\x80\\x99s system). The support engineer may respond saying that feature is a long ways away, while the rep may say it\\xe2\\x80\\x99s \\xe2\\x80\\x9ccoming soon\\xe2\\x80\\x9d.\\n\\nThis lack of coordination leads to contradiction and a clear", + "title": "Why you Should be Looking at Support Differently" }, { - "id": "ART-1969_KNOWLEDGE_NODE-28", - "text": "engineers. To get a list of the available commands, type / in a conversation response text box.\\n\\n\\xf0\\x9f\\x8e\\xab Tickets\\n---------\\n\\nThe benefit of Computer by DevRev is that conversations can be linked to support [tickets](../product/tickets), and tickets can be linked to build issues. This [linkage](../product/apps) means that all work can be traced back to customer concerns or requests.\\n\\nSlash commands are available in tickets to provide AI assistance to customer experience engineers.", - "title": "Computer for Support Teams | DevRev" + "id": "ART-1981_KNOWLEDGE_NODE-26", + "text": "a small number of tags to help categorize tickets. For example, at DevRev we have the following: bug, feature-request, other-request, question, and incident.\\n* Designate one or more customer experience engineers to be on call. Add them to the **Support** group inside **Settings > Groups** and as default owner in the **Support Routing** snap-in. Default owners are notified through email and the DevRev app as soon as a new conversation is started.\\n\\nMonitor the inbox\\n-----------------\\n\\n*", + "title": "Support best practices | Computer for Support Teams | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-38", - "text": "the top-right corner of your screen.\\n3. Add a title and description for your new ticket. You can also attach files related to the ticket in the description.\\n4. Select which part of the company/product this ticket is related to.\\n\\n ![]()\\n5. Enter other attributes for the ticket: change the assignee or accept the default; enter the severity; add any relevant tags to help employees identify any relevant traits of the ticket; select the workspace that the ticket pertains to.\\n6. If there are", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-15687_KNOWLEDGE_NODE-14", + "text": "engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field migrator](/docs/automations/ticket-issue-field-migrator)\\n - [Ticket Immutability](/docs/automations/ticket-immutability)\\n - [Ticket email notifier](/docs/automations/ticket-email-notifier)\\n - [Task tracker](/docs/automations/task-tracker)\\n - [Ticket Tagger](/docs/automations/ticket-tagger)\\n - [Tracxn sync](/docs/automations/tracxn-sync)\\n - [User group", + "title": "Dashboards | Computer by DevRev | DevRev" }, { - "id": "ART-1977_KNOWLEDGE_NODE-13", - "text": "creator](/docs/automations/smart-issue-creator)\\n - [Set user preference for group](/docs/automations/set-user-preference)\\n - [SLA status change Slack notifier](/docs/automations/sla-change-notifier)\\n - [Slash commands](/docs/automations/slash-commands)\\n - [Spam Shield](/docs/automations/spam-shield)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field", - "title": "Ticket-Team Performance | Support analytics | Computer for Support Teams | DevRev" + "id": "ART-3880_KNOWLEDGE_NODE-8", + "text": "our users.\\n\\n![]()\\n\\nBrian MullinSr. Software Engineer, Orum\\n\\nOrum has especially benefited from the conversation feature, which connects to tickets but remains separate. Unlike their old system that locked agents into one-on-one support conversations, DevRev lets anyone handling a customer conversation tag teammates for help using internal comments. This creates a truly collaborative support environment.\\n\\nBy connecting teams and providing helpful context about each customer, DevRev has", + "title": "How Orum built a collaborative, AI-ready support engine" }, { - "id": "ART-6174_KNOWLEDGE_NODE-36", - "text": "Status](/status)\\n\\n\\xc2\\xa9 2025 DevRev Inc.\\n\\n![]()\\n\\n![]()\"", - "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" + "id": "ART-1870_KNOWLEDGE_NODE-5", + "text": "platform\\n----------------------------------------------------\\n\\nActionIQ selected DevRev to create a seamless connection between support and engineering operations. The implementation delivered:\\n\\n* **Unified ticket management:** A single environment for both customer support tickets and engineering incidents\\n* **Real-time visibility:** Clear insights into investigation status and engineering progress\\n* **Streamlined communication:** Integration with Slack channels synced into the DevRev", + "title": "Unifying teams: How ActionIQ transformed support with integration" }, { - "id": "ART-2019_KNOWLEDGE_NODE-3", - "text": "reminder\\nCSAT on conversation\\nCSAT on ticket\\nDescope identity validation\\nFollow-up ticket\\nHTTP archive file upload & sanitization\\nLink preview\\nOrg tags sync\\nSentiment evaluator\\nStageFlow automator\\nSmart issue creator\\nSet user preference for group\\nSmart import KBs\\nSLA status change Slack notifier\\nSlash commands\\nSmart sprint\\nSpam Shield\\nTicket age in engineering\\nTicket issue field migrator\\nTicket email notifier\\nTask tracker\\nTicket Tagger\\nWork duration\\nOperational SLA", - "title": "Smart sprint | Automate | Snap-ins | DevRev" + "id": "ART-16806_KNOWLEDGE_NODE-27", + "text": "Internal Ticket** from the **Ticket Creation** dropdown.\\n* **Focused UI:** The **Customer Messages** tab is disabled on internal tickets to prevent unintended communication.\\n\\nThis feature supports internal workflows while giving you control over when customer engagement begins.\\n\\n![]()\\xc2\\xa0For more information about *Conversation and Ticket Workflows*, refer to the following articles: \\xe2\\x80\\xa3 [Auto parts to conversation | Automate | Snap-ins](/docs/automations/auto-parts)", + "title": "July 2025 | Changelog | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-41", - "text": "progress\\n\\n\\n\\nOpen\\n\\n\\n\\nEscalate\\n\\n\\n\\nValidate the fix\\n\\n\\n\\nAdditional detail needed\\n\\n\\n\\nCustomer responds\\n\\n\\n\\nStart\\n\\n\\n\\nFeature request accepted\\n\\n\\n\\nResolved\\n\\n\\n\\nNot valid\\n\\n\\n\\nQueued\\n\\n\\n\\nWork in progress\\n\\n\\n\\nAwaiting product assist\\n\\n\\n\\nAwaiting development\\n\\n\\n\\nAwating customer response\\n\\n\\n\\nIn development\\n\\n\\n\\nAccepted\\n\\n\\n\\nResolved\\n\\n\\n\\nCanceled\\n```\\n\\n**Open**\\n\\n* *Queued* (Q)\\n The initial stage for all tickets. When a new ticket is created,", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1003_KNOWLEDGE_NODE-18", + "text": "Response Time (FRT)\\n\\n\\n Definition\\n \\n The average time it takes for a support engineer to respond to a customer\\xe2\\x80\\x99s initial inquiry.\\n \\n \\n Calculation\\n \\n (Sum of response times for all first responses) / (Total number of first responses)\\n \\n \\n\\n\\nSELECT AVG(TIMESTAMPDIFF(MINUTE, t.created_at, r.created_at)) AS FirstResponseTime\\nFROM tickets t\\nJOIN responses r ON t.id = r.ticket_id\\nWHERE r.is_first_response = 1\\nAND EXTRACT(@period FROM", + "title": "Understanding a Support Lead's Pain Points and KPIs" }, { - "id": "ART-1979_KNOWLEDGE_NODE-45", - "text": "a user. In certain cases where the ticket depends on some fix (issues) the stage may go from *in development* to *awaiting customer response* when the corresponding issues have been resolved and the fix needs to be validated with the user.\\n\\n In certain cases, the customer experience engineer may be able to solve directly (without any required issues) which may change the stage from *work in progress* to *awaiting customer response* to validate they have solved the problem. If either has", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-4271_KNOWLEDGE_NODE-11", + "text": "commands](/docs/automations/slash-commands?)\\n * [Spam Shield](/docs/automations/spam-shield?)\\n * [Subtype Migration](/docs/automations/subtype-migration?)\\n * [Ticket age in engineering](/docs/automations/ticket-age-in-engineering?)\\n * [Ticket issue field migrator](/docs/automations/ticket-issue-field-migrator?)\\n * [Ticket Immutability](/docs/automations/ticket-immutability?)\\n * [Ticket email notifier](/docs/automations/ticket-email-notifier?)\\n * [Task", + "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" } ] }, @@ -1516,54 +1516,54 @@ "query": "update the name that a broadcast on an incident comes from when pushed to a ticket", "retrievals": [ { - "id": "ART-4133_KNOWLEDGE_NODE-18", - "text": "incident was mitigated.\\n\\nowned\\\\_byobjectOptional\\n\\nShow 1 properties\\n\\npiaobjectOptional\\n\\nShow 1 properties\\n\\nplaybooksobjectOptional\\n\\nShow 1 properties\\n\\nrelated\\\\_docsobjectOptional\\n\\nShow 1 properties\\n\\nreported\\\\_bylongOptional\\n\\nThe entity that first reported the incident.\\n\\nseveritylongOptional\\n\\nSeverity of the incident.\\n\\nstageobjectOptional\\n\\nUpdate object for Stage.\\n\\nShow 2 properties\\n\\nstage\\\\_validation\\\\_optionslist of enumsOptional\\n\\nThe type of stage", - "title": "Update Incident | DevRev | Docs" + "id": "ART-1979_KNOWLEDGE_NODE-26", + "text": "associated with a part (product or service) and can come from both internal and external users. Tickets are also used to communicate progress to the user or other impacted party.\\n\\nThere may be cases where mass communications (broadcast) are necessary in the event of lots of impacted or related parties (such as service status updates). In this scenario, the ticket would be used to broadcast and handle communications among multiple parties, including across multiple workspaces. Broadcast can", + "title": "Tickets | Computer for Support Teams | DevRev" }, { - "id": "ART-4133_KNOWLEDGE_NODE-1", - "text": "\" \\\\ |\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{ |\\n| > | \"id\": \"string\" |\\n| > | }\\' |\\n```\\n\\n[Try it](/beta/api-reference/incidents/update?explorer=true)\\n\\n200Successful\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"incident\": { |\\n| 3 | \"id\": \"string\", |\\n| 4 | \"title\": \"string\", |\\n| 5 | \"acknowledged_date\": \"2023-01-01T12:00:00.000Z\", |\\n| 6 | \"actual_close_date\": \"2023-01-01T12:00:00.000Z\", |\\n| 7 | \"applies_to_parts\": [ |\\n| 8 | { |\\n| 9 | \"display_id\":", - "title": "Update Incident | DevRev | Docs" + "id": "ART-1805_KNOWLEDGE_NODE-194", + "text": "Update.\\n\\nPOST https:// api.devrev.ai / incidents.update\\nUpdates an incident.\\nRequest.\\n\\nThis endpoint expects an object.\\nid string Required\\nThe ID of the incident to be updated.\\nacknowledged_date datetime Optional\\nTimestamp when the incident was acknowledged.\\napplies_to_parts object Optional\\nShow property\\nartifacts object Optional\\nShow property\\nbody string Optional\\nBody of the incident.\\ncustom_fields map from strings to any Optional\\nApplication-defined custom", + "title": "List Post \u2014 DevRev | Docs" }, { - "id": "ART-4133_KNOWLEDGE_NODE-5", - "text": "|\\n| 67 | \"display_id\": \"string\", |\\n| 68 | \"identified_date\": \"2023-01-01T12:00:00.000Z\", |\\n| 69 | \"impact\": { |\\n| 70 | \"count\": { |\\n| 71 | \"id\": 1, |\\n| 72 | \"label\": \"string\", |\\n| 73 | \"ordinal\": 1, |\\n| 74 | \"value\": null |\\n| 75 | }, |\\n| 76 | \"customer_ids\": [ |\\n| 77 | { |\\n| 78 | \"id\": \"string\", |\\n| 79 | \"display_id\": \"string\", |\\n| 80 | \"display_name\": \"string\" |\\n| 81 | } |\\n| 82 | ] |\\n| 83 | }, |\\n| 84 | \"mitigated_date\": \"2023-01-01T12:00:00.000Z\", |\\n| 85 | \"modified_by\": {", - "title": "Update Incident | DevRev | Docs" + "id": "ART-1789_KNOWLEDGE_NODE-193", + "text": "Update.\\n\\nPOST https:// api.devrev.ai / incidents.update\\nUpdates an incident.\\nRequest.\\n\\nThis endpoint expects an object.\\nid string Required\\nThe ID of the incident to be updated.\\nacknowledged_date datetime Optional\\nTimestamp when the incident was acknowledged.\\napplies_to_parts object Optional\\nShow property\\nartifacts object Optional\\nShow property\\nbody string Optional\\nBody of the incident.\\ncustom_fields map from strings to any Optional\\nApplication-defined custom", + "title": "List \u2014 DevRev | Docs" }, { - "id": "ART-4133_KNOWLEDGE_NODE-15", - "text": "\"string\" |\\n| 258 | } |\\n| 259 | ], |\\n| 260 | \"target_close_date\": \"2023-01-01T12:00:00.000Z\" |\\n| 261 | } |\\n| 262 | } |\\n```\\n\\nUpdates an incident.\\n\\n### Headers\\n\\nAuthorizationstringRequired\\n\\nBearer authentication of the form `Bearer `, where token is your auth token.\\n\\n### Request\\n\\nThis endpoint expects an object.\\n\\nidstringRequired`format: \"id\"`\\n\\nThe ID of the incident to be updated.\\n\\nacknowledged\\\\_datestringOptional`format: \"date-time\"`\\n\\nTimestamp when the incident", - "title": "Update Incident | DevRev | Docs" + "id": "ART-3235_KNOWLEDGE_NODE-26", + "text": "system.\\n\\nAfter configuring these settings, the snap-in automatically processes new tickets and enriches their **Reported By** fields based on the provided email addresses.\\n\\n[PreviousSlack Broadcaster](/docs/automations/slack-broadcaster)[NextTicket approval workflow](/docs/automations/ticket-approval-workflow)\\n\\n#### On this page\\n\\n* [Installation](#installation)\\n* [Configuration](#configuration)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about", + "title": "Reported by enricher | Automate | Snap-ins | DevRev" }, { - "id": "ART-4127_KNOWLEDGE_NODE-5", - "text": "|\\n| 67 | \"display_id\": \"string\", |\\n| 68 | \"identified_date\": \"2023-01-01T12:00:00.000Z\", |\\n| 69 | \"impact\": { |\\n| 70 | \"count\": { |\\n| 71 | \"id\": 1, |\\n| 72 | \"label\": \"string\", |\\n| 73 | \"ordinal\": 1, |\\n| 74 | \"value\": null |\\n| 75 | }, |\\n| 76 | \"customer_ids\": [ |\\n| 77 | { |\\n| 78 | \"id\": \"string\", |\\n| 79 | \"display_id\": \"string\", |\\n| 80 | \"display_name\": \"string\" |\\n| 81 | } |\\n| 82 | ] |\\n| 83 | }, |\\n| 84 | \"mitigated_date\": \"2023-01-01T12:00:00.000Z\", |\\n| 85 | \"modified_by\": {", - "title": "Create Incident | DevRev | Docs" + "id": "ART-17231_KNOWLEDGE_NODE-69", + "text": "#record:incident #record:issue #record:opportunity #record:product #record:project #record:revu #record:task #record:ticket] | \\xe2\\x9c\\x94\\xef\\xb8\\x8e | Target object ID |\\n\\n#### Enum values\\n\\n**link\\\\_type\\\\_id**\\n\\n| Value | Name | Description |\\n| --- | --- | --- |\\n| `is_dependent_on` | Is Dependent On | - |\\n| `is_duplicate_of` | Is Duplicate Of | - |\\n| `is_parent_of` | Is Parent Of | - |\\n| `is_related_to` | Is Related To | - |\\n\\n[\\xe2\\x96\\xb2", + "title": "Supported DevRev object types | DevRev | Docs" }, { - "id": "ART-1551_KNOWLEDGE_NODE-275", - "text": "Optional\\n\\nTimestamp when the incident was mitigated.\\n\\nowned_by object Optional\\nShow property\\npia object Optional\\nShow property\\nplaybooks object Optional\\nShow property\\nrelated_docs object Optional\\nShow property\\nreported_by long Optional\\n\\nThe entity that first reported the incident.\\n\\nseverity long Optional\\n\\nSeverity of the incident.\\n\\nsource long Optional\\n\\nSource of where the incident was created. Only sys users and service accounts are supposed to set this field.\\n\\nstage", - "title": "Update (Beta) \u2014 DevRev | Docs" + "id": "ART-1307_KNOWLEDGE_NODE-194", + "text": "Update.\\n\\nPOST https:// api.devrev.ai / incidents.update\\nUpdates an incident.\\nRequest.\\n\\nThis endpoint expects an object.\\nid string Required\\nThe ID of the incident to be updated.\\nacknowledged_date datetime Optional\\nTimestamp when the incident was acknowledged.\\napplies_to_parts object Optional\\nShow property\\nartifacts object Optional\\nShow property\\nbody string Optional\\nBody of the incident.\\ncustom_fields map from strings to any Optional\\nApplication-defined custom", + "title": "List Post \u2014 DevRev | Docs" }, { - "id": "ART-4127_KNOWLEDGE_NODE-10", - "text": "\"string\" |\\n| 166 | }, |\\n| 167 | \"sync_metadata\": { |\\n| 168 | \"external_reference\": \"string\", |\\n| 169 | \"origin_system\": \"string\" |\\n| 170 | }, |\\n| 171 | \"title\": \"string\" |\\n| 172 | } |\\n| 173 | ], |\\n| 174 | \"reported_by\": { |\\n| 175 | \"id\": 1, |\\n| 176 | \"label\": \"string\", |\\n| 177 | \"ordinal\": 1, |\\n| 178 | \"value\": null |\\n| 179 | }, |\\n| 180 | \"severity\": { |\\n| 181 | \"id\": 1, |\\n| 182 | \"label\": \"string\", |\\n| 183 | \"ordinal\": 1, |\\n| 184 | \"value\": null |\\n| 185 | }, |\\n| 186 |", - "title": "Create Incident | DevRev | Docs" + "id": "ART-1788_KNOWLEDGE_NODE-193", + "text": "Update.\\n\\nPOST https:// api.devrev.ai / incidents.update\\nUpdates an incident.\\nRequest.\\n\\nThis endpoint expects an object.\\nid string Required\\nThe ID of the incident to be updated.\\nacknowledged_date datetime Optional\\nTimestamp when the incident was acknowledged.\\napplies_to_parts object Optional\\nShow property\\nartifacts object Optional\\nShow property\\nbody string Optional\\nBody of the incident.\\ncustom_fields map from strings to any Optional\\nApplication-defined custom", + "title": "Get Post \u2014 DevRev | Docs" }, { - "id": "ART-4133_KNOWLEDGE_NODE-10", - "text": "\"string\" |\\n| 166 | }, |\\n| 167 | \"sync_metadata\": { |\\n| 168 | \"external_reference\": \"string\", |\\n| 169 | \"origin_system\": \"string\" |\\n| 170 | }, |\\n| 171 | \"title\": \"string\" |\\n| 172 | } |\\n| 173 | ], |\\n| 174 | \"reported_by\": { |\\n| 175 | \"id\": 1, |\\n| 176 | \"label\": \"string\", |\\n| 177 | \"ordinal\": 1, |\\n| 178 | \"value\": null |\\n| 179 | }, |\\n| 180 | \"severity\": { |\\n| 181 | \"id\": 1, |\\n| 182 | \"label\": \"string\", |\\n| 183 | \"ordinal\": 1, |\\n| 184 | \"value\": null |\\n| 185 | }, |\\n| 186 |", - "title": "Update Incident | DevRev | Docs" + "id": "ART-12395_KNOWLEDGE_NODE-33", + "text": "not support broadcasting to more than 650 channels at a time.\\n\\n[PreviousSlack scraper](/docs/automations/slack-scraper)[NextReported by enricher](/docs/automations/ticket-reported-by)\\n\\n#### On this page\\n\\n* [Configurations](#configurations)\\n* [Slack Connection](#slack-connection)\\n* [Features](#features)\\n* [Slash Commands](#slash-commands)\\n* [How to use](#how-to-use)\\n* [Inputs](#inputs)\\n* [CSV Format](#csv-format)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more", + "title": "Slack Broadcaster | Automate | Snap-ins | DevRev" }, { - "id": "ART-4133_KNOWLEDGE_NODE-17", - "text": "included in the\\nspecifier, it remains unchanged. For surfaces with human interactors,\\nit is recommended to provide tenant\\\\_fragment: true and\\nvalidate\\\\_required\\\\_fields: true.\\n\\nShow 5 properties\\n\\nexternal\\\\_source\\\\_dataobjectOptional\\n\\nShow 3 properties\\n\\nidentified\\\\_datestringOptional`format: \"date-time\"`\\n\\nTime when the incident was identified/reported.\\n\\nimpactobjectOptional\\n\\nShow 2 properties\\n\\nmitigated\\\\_datestringOptional`format: \"date-time\"`\\n\\nTimestamp when the", - "title": "Update Incident | DevRev | Docs" + "id": "ART-1979_KNOWLEDGE_NODE-27", + "text": "also be used to engage customers for feedback/ideas (such as new feature ideas). Scoping is important for broadcast tickets as there needs to be a differentiation between broadcast (all revs) vs. multicast (particular revs).\\n\\nViews of tickets can be found under **Support** in the DevRev app.\\n\\n![]()\\n\\nYou can export views to CSV or JSON by selecting **Actions** in the upper-right corner and choosing the format.\\n\\nAttributes\\n----------\\n\\nTickets have attributes that can be used to filter", + "title": "Tickets | Computer for Support Teams | DevRev" }, { - "id": "ART-4133_KNOWLEDGE_NODE-19", - "text": "validations options when updating the stage or\\nthe stage diagram of an incident.\\n\\nAllowed values:allow\\\\_invalid\\\\_transition\\n\\nstaged\\\\_infoobjectOptional\\n\\nUpdate object for StagedInfo.\\n\\nShow 4 properties\\n\\nsync\\\\_metadataobjectOptional\\n\\nShow 4 properties\\n\\ntagsobjectOptional\\n\\nShow 1 properties\\n\\ntarget\\\\_close\\\\_datestringOptional`format: \"date-time\"`\\n\\nTimestamp when the incident is expected to be resolved.\\n\\ntitlestringOptional`format: \"text\"`\\n\\nTitle of the", - "title": "Update Incident | DevRev | Docs" + "id": "ART-1300_KNOWLEDGE_NODE-193", + "text": "Update.\\n\\nPOST https:// api.devrev.ai / incidents.update\\nUpdates an incident.\\nRequest.\\n\\nThis endpoint expects an object.\\nid string Required\\nThe ID of the incident to be updated.\\nacknowledged_date datetime Optional\\nTimestamp when the incident was acknowledged.\\napplies_to_parts object Optional\\nShow property\\nartifacts object Optional\\nShow property\\nbody string Optional\\nBody of the incident.\\ncustom_fields map from strings to any Optional\\nApplication-defined custom", + "title": "Create \u2014 DevRev | Docs" } ] }, @@ -1572,54 +1572,54 @@ "query": "search functionality on tickets and issues deprecated", "retrievals": [ { - "id": "ART-1959_KNOWLEDGE_NODE-29", - "text": "in:title crm |\\n| - | Acts as an exclusion in search results. \"-\" can be used for the same purpose. | type:issue -crm type:issue in:title -crm |\\n| state | Filters results based on the stage: open, closed, or in\\\\_progress. | state:open state:closed state:in\\\\_progress |\\n| severity | Filters out tickets with the desired severity level. Supports: blocker, high, medium, low. | severity:high type:ticket -severity:low (filters all tickets excluding the ones with low severity)", - "title": "Search | Computer by DevRev | DevRev" + "id": "ART-1483_KNOWLEDGE_NODE-18", + "text": "the code\\n\\nUpdate the code in `src/functions/ticket_creator/index.ts` to reflect the behavior.\\n\\nFirstly, import the DevRev TypeScript SDK in the `index.ts` file\\n\\nindex.ts\\n\\n[code]\\n\\n 1| import {client, publicSDK} from \"@devrev/typescript-sdk\"; \\n ---|---\\n[/code] \\n \\nNext, update the `run` function in the hello-world example. Since the ticket gets created frequently, set some creation time in the title and the body. The example uses the part as `PROD-1` and keeps the owner as", + "title": "Using a snap-in to perform a DevRev action \u2014 DevRev | Docs" }, { - "id": "ART-1959_KNOWLEDGE_NODE-28", - "text": "of the ticket/issue/enhancement or title. | in:title crm in:title \"crm exp\" in:title crm exp in:body \"bot issues\" |\\n| type: | Enables users to filter by object type. Supported object types include: issue, enhancement, ticket, revu (for searching contacts), question\\\\_answer, conversation, article, devu (for searching internal contacts), account, feature, runnable. | type:issue type:enhancement in:title CRM type:revu type:enhancement, opportunity type:issue, enhancement", - "title": "Search | Computer by DevRev | DevRev" + "id": "ART-15716_KNOWLEDGE_NODE-8", + "text": "for TicketsWe have a summarize option (it would resemble sparkle symbol) in the top right corner of the ticket view, which uses the ticket content to summarize the ticket\\n\\n7. Difference between Issues and Tickets\\n\\nTickets\\xc2\\xa0are for customer support\\xe2\\x80\\x94tracking requests, problems, or questions from customers or prospects.\\n\\nIssues\\xc2\\xa0are internal work items for developers\\xe2\\x80\\x94used to improve the product, fix bugs, or implement features. Issues can be linked to", + "title": "Support queries related playbook" }, { - "id": "ART-1242_KNOWLEDGE_NODE-0", - "text": "b'Tickets and issues | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[works](/api-reference/works/tickets-and-issues)\\n\\nTickets and issues\\n==================\\n\\nCopy page\\n\\n`works` endpoint\\n\\n\\xe2\\x84\\xb9\\xef\\xb8\\x8f A work item is a record of some work that has to be done for a customer (ticket) or for another builder or maintainer of a part (issue).\\n\\n\\xf0\\x9f\\x93\\x8c For more information", - "title": "Tickets and issues | DevRev | Docs" + "id": "ART-1244_KNOWLEDGE_NODE-22", + "text": "tickets belonging to specific groups.\\n\\nticket.is\\\\_frozenbooleanOptional\\n\\nFilters for frozen tickets.\\n\\nticket.is\\\\_spambooleanOptional\\n\\nFilters for tickets that are spam.\\n\\nticket.needs\\\\_responsebooleanOptional\\n\\nFilters for tickets that need response.\\n\\nticket.rev\\\\_orglist of stringsOptional\\n\\nFilters for tickets that are associated with any of the provided Rev\\norganizations.\\n\\nticket.severitylist of enumsOptional\\n\\nFilters for tickets with any of the provided", + "title": "Export Works | DevRev | Docs" }, { - "id": "ART-1959_KNOWLEDGE_NODE-34", - "text": "subtype: :\\n```\\n```\\n\\n**Examples**\\n\\nSearch for tickets related to access issues with tenant field escalated:\\n\\n```\\n```\\n1 tnt__escalated:true access issues\\n```\\n```\\n\\nSearch for bugs related to access issues with subtype field customer\\\\_impact:\\n\\n```\\n```\\n1 subtype:Bug ctype__customer_impact:true access issues\\n```\\n```\\n\\nSearch across multiple subtypes for tickets related to access issues:\\n\\n```\\n```\\n1 subtype:Bug,Events access", - "title": "Search | Computer by DevRev | DevRev" + "id": "ART-15664_KNOWLEDGE_NODE-13", + "text": "\\n\\nYou may want to restrict links to specific subtypes of objects. For example, only allowing issues\\nof a particular subtype to be linked to tickets.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"name\": \"Link between social media issues and tickets\", |\\n| > | \"source_types\": [ |\\n| > | { |\\n|", + "title": "Links | DevRev | Docs" }, { - "id": "ART-1784_KNOWLEDGE_NODE-445", - "text": "issues synced from this specific origin system.\\ntags string Optional\\nFilters for work with any of the provided tags.\\nticket.channels enum Optional\\nFilters for tickets with any of the provided channels.\\nAllowed values: email plug slack twilio twilio_sms\\nticket.group string Optional\\nFilters for tickets belonging to specific groups.\\nticket.is_spam boolean Optional\\nFilters for tickets that are spam.\\nticket.needs_response boolean Optional\\nFilters for tickets that need", - "title": "Locate Post \u2014 DevRev | Docs" + "id": "ART-10697_KNOWLEDGE_NODE-30", + "text": "New filtering options let agents view tickets tied to specific articles, while updated analytics reveal the most and least linked articles, improving knowledge sharing and support strategy.\\n* Plug is our live chat widget designed for real-time conversations in your customer portal. It reduces ticket volume by resolving common queries instantly, enhancing self-service and speeding up issue resolution. Use spotlight cards or banners to notify customers about incidents, updates, or promotions,", + "title": "February 2025 | Changelog | DevRev" }, { - "id": "ART-1783_KNOWLEDGE_NODE-445", - "text": "issues synced from this specific origin system.\\ntags string Optional\\nFilters for work with any of the provided tags.\\nticket.channels enum Optional\\nFilters for tickets with any of the provided channels.\\nAllowed values: email plug slack twilio twilio_sms\\nticket.group string Optional\\nFilters for tickets belonging to specific groups.\\nticket.is_spam boolean Optional\\nFilters for tickets that are spam.\\nticket.needs_response boolean Optional\\nFilters for tickets that need", - "title": "Locate \u2014 DevRev | Docs" + "id": "ART-16803_KNOWLEDGE_NODE-26", + "text": "Tickets\\n* Meetings\\n* Objects linked to issues\\n* Users\\n\\nTo configure a workspace object loop:\\n\\n1. On the **workflow canvas**, add an action step named **Loop for [Object]**, where [Object] is the entity you want to iterate over.\\n2. Apply **filter conditions** to refine the set of objects included in the loop and perform operations on them.\\n\\nAll **actions** inside the loop execute once per object that satisfies the filter conditions.\\n\\n### For Each\\n\\nThe **For Each** loop iterates", + "title": "Workflow nodes | Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-1447_KNOWLEDGE_NODE-1", - "text": "[Tickets](https://docs.devrev.ai/product/tickets) and [Issues](https://docs.devrev.ai/product/issues).\\n\\nWas this page helpful?YesNo\\n\\n[Create WorkUp Next](/public/api-reference/works/create)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n[Enterprise grade security to protect customer dataLearn more about it.](https://devrev.ai/blog/soc-compliance)\\n\\nProduct\\n\\n * [Build](https://devrev.ai/build)\\n *", - "title": "Tickets and issues \u2014 DevRev | Docs" + "id": "ART-1961_KNOWLEDGE_NODE-37", + "text": "\\n{{Ticket\\xc2\\xa0Created\\xc2\\xa0>\\xc2\\xa0Output\\xc2\\xa0>\\xc2\\xa0Reported\\xc2\\xa0By\\xc2\\xa0>\\xc2\\xa0Rev\\xc2\\xa0Org\\xc2\\xa0>\\xc2\\xa0Display\\xc2\\xa0Name}}.\\xe2\\x80\\x9d\\n\\n\\n\\nDelay\\n\\n\\n\\nDuration: 2 minutes\\n\\n\\n\\nIf-else\\n\\n\\n\\nAttribute:\\xc2\\xa0Ticket\\xc2\\xa0Created/Output\\xc2\\xa0>\\xc2\\xa0Applies\\xc2\\xa0to\\xc2\\xa0part\\xc2\\xa0>\\xc2\\xa0Display\\xc2\\xa0ID \\nOperator: Equals \\nOperand: CAPL-18\\n\\n\\n\\nTicket \\ncreated\\n\\n\\n\\nEnd\\n```\\n\\n[### Workflow action", + "title": "Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-1447_KNOWLEDGE_NODE-0", - "text": "b'[](/public/api-reference/works/tickets-and-issues)\\n\\nPublic\\n\\n[API Reference](/public/api-reference/getting-started)[Works](/public/api-reference/works/tickets-and-issues)\\n\\n#\\n\\nTickets and issues\\n\\n`works` endpoint\\n\\n\\xe2\\x84\\xb9\\xef\\xb8\\x8f A work item is a record of some work that has to be done for a customer (ticket) or for another builder or maintainer of a part (issue).\\n\\n\\xf0\\x9f\\x93\\x8c For more information about work items, refer to", - "title": "Tickets and issues \u2014 DevRev | Docs" + "id": "ART-1241_KNOWLEDGE_NODE-7", + "text": "helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/webhooks/list-post)[#### Tickets and issues\\n\\nNext](/api-reference/works/tickets-and-issues)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", + "title": "Update Webhook | DevRev | Docs" }, { - "id": "ART-2874_KNOWLEDGE_NODE-27", - "text": "updated, and not updated. If the fields specified in the configuration are not found, a notification will be provided in the **Discussion** tab.\\n\\n[PreviousTicket age in engineering](/docs/automations/ticket-age-in-engineering)[NextTicket Immutability](/docs/automations/ticket-immutability)\\n\\n#### On this page\\n\\n* [Ticket issue field migrator](#ticket-issue-field-migrator)\\n* [Installation](#installation)\\n* [Configuration](#configuration)\\n\\n[Enterprise grade security to protect customer", - "title": "Ticket issue field migrator | Automate | Snap-ins | DevRev" + "id": "ART-1949_KNOWLEDGE_NODE-28", + "text": "Click **Delete** to confirm.\\n\\nSearch\\n------\\n\\nYou can search an object (issue, ticket, conversation) in a vista by clicking the search icon which is to the left of the **@** button in the vista toolbar.\\nYou can enter the description or name of the object which brings it up directly without issue or ticket number.\\n\\n![]()\\n\\nVista sharing\\n-------------\\n\\nVistas are private by default, ensuring they are accessible only to you unless explicitly shared. You can now share your vistas with", + "title": "Vistas | Computer by DevRev | DevRev" }, { - "id": "ART-1959_KNOWLEDGE_NODE-5", - "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", - "title": "Search | Computer by DevRev | DevRev" + "id": "ART-1248_KNOWLEDGE_NODE-23", + "text": "groups.\\n\\nticket.is\\\\_frozenbooleanOptional\\n\\nFilters for frozen tickets.\\n\\nticket.is\\\\_spambooleanOptional\\n\\nFilters for tickets that are spam.\\n\\nticket.needs\\\\_responsebooleanOptional\\n\\nFilters for tickets that need response.\\n\\nticket.rev\\\\_orglist of stringsOptional\\n\\nFilters for tickets that are associated with any of the provided Rev\\norganizations.\\n\\nticket.severitylist of enumsOptional\\n\\nFilters for tickets with any of the provided severities.\\n\\nAllowed", + "title": "List Works | DevRev | Docs" } ] }, @@ -1628,54 +1628,54 @@ "query": "how to use snap-ins in DevRev", "retrievals": [ { - "id": "ART-1274_KNOWLEDGE_NODE-1", - "text": "snap-in.\\n\\nSnap-ins are collections of objects that extend DevRev\\xe2\\x80\\x99s core platform value. These objects include automation, event sources, keyrings, custom types, and vistas. Snap-ins are packaged and installed separately from the DevRev core platform. To create your own snap-in, create a [dev org](https://app.devrev.ai/) where you will be installing your snap-in.\\n\\n[1](/snapin-development/tutorials/getting-started#before-you-begin)\\n\\n### Before you begin\\n\\n* Install [DevRev", - "title": "Getting started | DevRev | Docs" + "id": "ART-1468_KNOWLEDGE_NODE-5", + "text": "\\xe2\\x80\\x9carms-length\\xe2\\x80\\x9d and without making any changes to DevRev\\xe2\\x80\\x99s core platform.\\n\\nSnap-in developers interact with DevRev objects through APIs, get updates on DevRev objects through webhooks, and register an event source to subscribe to GitHub/Slack/any external events.\\n\\n## Snap-in package\\n\\nA snap-in package is a collection of DevRev objects and their relationships that describe the functionality of the developed snap-in. It doesn\\xe2\\x80\\x99t reference an object", + "title": "Concepts \u2014 DevRev | Docs" }, { - "id": "ART-1275_KNOWLEDGE_NODE-0", - "text": "b'Using a snap-in to perform a DevRev action | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\nOn this page\\n\\n* [Introduction](/snapin-development/tutorials/timer-ticket-creator#introduction)\\n* [Background context](/snapin-development/tutorials/timer-ticket-creator#background-context)\\n* [Resources](/snapin-development/tutorials/timer-ticket-creator#resources)\\n\\n[Snap-in", - "title": "Using a snap-in to perform a DevRev action | DevRev | Docs" + "id": "ART-2055_KNOWLEDGE_NODE-34", + "text": "Snap-ins, and other processes, as if the events originated directly in DevRev.\\n\\nIf this setting is disabled, updates will not trigger any event-driven processes. This behavior applies only to periodic syncs; no events are triggered during a first-time import or manual sync to or from DevRev.\\n\\n### Delete import\\n\\n![]()\\n\\nThis deletes any content created by the import, including users and works.\\n\\nAn import and all the content it creates can be deleted from DevRev. This can be useful when", + "title": "Linear AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-1483_KNOWLEDGE_NODE-31", - "text": "__\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n'", - "title": "Using a snap-in to perform a DevRev action \u2014 DevRev | Docs" + "id": "ART-3905_KNOWLEDGE_NODE-38", + "text": "Snap-ins, and other processes, as if the events originated directly in DevRev.\\n\\nIf this setting is disabled, updates will not trigger any event-driven processes. This behavior applies only to periodic syncs; no events are triggered during a first-time import or manual sync to or from DevRev.\\n\\n### Delete import\\n\\n![]()\\n\\nThis deletes any content created by the import, including users and works.\\n\\nAn import and all the content it creates can be deleted from DevRev. This can be useful when", + "title": "Jira Service Management AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-1485_KNOWLEDGE_NODE-5", - "text": "[Resources](/public/snapin-development/tutorials/triggered-event#resources)\\n\\n[Snap-in development](/public/snapin-development/concepts)[Tutorials](/public/snapin-development/tutorials/overview)\\n\\n#\\n\\nSnap-in triggered by a DevRev event\\n\\n## Introduction\\n\\nIn this tutorial, you\\xe2\\x80\\x99ll learn to create a dynamic snap-in that responds to both DevRev Webhook events triggered by the creation of a [work](https://docs.devrev.ai/product/core) and specialized", - "title": "Snap-in triggered by a DevRev event \u2014 DevRev | Docs" + "id": "ART-1280_KNOWLEDGE_NODE-21", + "text": "devrev snap_in_context show |\\n| > | snap_in_context: |\\n| > | snap_in: don:integration::devo/:snap_in/ |\\n| > | snap_in_package: don:integration::devo/:snap_in_package/ |\\n| > | snap_in_version: don:integration::devo/:snap_in_package/:snap_in_version/ |\\n```\\n\\n###### List the snap-in context\\n\\nTo list the snap-in context, run the following", + "title": "DevRev CLI reference | DevRev | Docs" }, { - "id": "ART-1483_KNOWLEDGE_NODE-27", - "text": "Program](https://devrev.ai/startups)\\n\\nCompany\\n\\n * [About](https://devrev.ai/about)\\n * [People](https://devrev.ai/people)\\n * [Careers](https://devrev.ai/careers)\\n * [Places](https://devrev.ai/places)\\n * [Invest](https://revd.devrev.ai/)\\n * [What Why How](https://devrev.ai/what-why-how)\\n\\nConnect\\n\\n * [Contact ](mailto:humansofdevrev@devrev.ai)\\n * [Instagram ](https://www.instagram.com/devrev)\\n * [Medium ](https://medium.com/devrev)\\n * [Linkedin", - "title": "Using a snap-in to perform a DevRev action \u2014 DevRev | Docs" + "id": "ART-1991_KNOWLEDGE_NODE-25", + "text": "helps you bring data from external sources to DevRev and keep them in sync.\\n\\nWhile numerous snap-ins are available and more are in development, you can create your own using [DevRev APIs](https://developer.devrev.ai/).\\n\\nSupport\\n-------\\n\\n| Automate | Integrate | AirSync |\\n| --- | --- | --- |\\n| [Auto parts to conversation](/docs/automations/auto-parts) | [Calendly](/docs/integrations/calendly) | [Salesforce](/docs/integrations/salesforce) |\\n| [Auto-reply](/docs/automations/auto-reply) |", + "title": "Support snap-ins | Computer for Support Teams | DevRev" }, { - "id": "ART-2004_KNOWLEDGE_NODE-24", - "text": "the [Marketplace](/marketplace).\\n\\nSnap-ins are of the following types:\\n\\n* **Integrations** let you connect DevRev with existing systems such as Slack and Jira.\\n* **Automations** perform tasks within DevRev based on events, like responding to customer conversations and linking tickets and issues.\\n* **AirSync** helps you bring data from external sources to DevRev and keep them in sync.\\n\\nWhile numerous snap-ins are available and more are in development, you can create your own using", - "title": "Snap-ins | DevRev" + "id": "ART-1274_KNOWLEDGE_NODE-1", + "text": "snap-in.\\n\\nSnap-ins are collections of objects that extend DevRev\\xe2\\x80\\x99s core platform value. These objects include automation, event sources, keyrings, custom types, and vistas. Snap-ins are packaged and installed separately from the DevRev core platform. To create your own snap-in, create a [dev org](https://app.devrev.ai/) where you will be installing your snap-in.\\n\\n[1](/snapin-development/tutorials/getting-started#before-you-begin)\\n\\n### Before you begin\\n\\n* Install [DevRev", + "title": "Getting started | DevRev | Docs" }, { - "id": "ART-1277_KNOWLEDGE_NODE-1", - "text": "development](/snapin-development/concepts)[Tutorials](/snapin-development/tutorials/overview)\\n\\nSnap-in triggered by a DevRev event\\n===================================\\n\\nCopy page\\n\\nIntroduction\\n------------\\n\\nIn this tutorial, you\\xe2\\x80\\x99ll learn to create a dynamic snap-in that responds to both DevRev Webhook events triggered by the creation of a [work](https://docs.devrev.ai/product/core) and specialized [command](/snapin-development/references/commands) within DevRev.\\n\\nThe focus", - "title": "Snap-in triggered by a DevRev event | DevRev | Docs" + "id": "ART-1273_KNOWLEDGE_NODE-0", + "text": "b'Overview | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[Snap-in development](/snapin-development/concepts)[Tutorials](/snapin-development/tutorials/overview)\\n\\nOverview\\n========\\n\\nCopy page\\n\\nThe following tutorials provide a step-by-step guide to creating snap-ins:\\n\\n1. [Getting started](/snapin-development/tutorials/getting-started)\\n2. [Using a snap-in to perform a DevRev", + "title": "Overview | DevRev | Docs" }, { - "id": "ART-1277_KNOWLEDGE_NODE-4", - "text": "[Using a snap-in to perform a DevRev action](/snapin-development/tutorials/timer-ticket-creator) tutorial.\\n\\n[1](/snapin-development/tutorials/triggered-event#installation-guide)\\n\\n### Installation guide\\n\\n* Install [DevRev CLI](/snapin-development/references/cli-install)\\n* Install [jq](https://stedolan.github.io/jq)\\n* Install [DevRev SDK](https://www.npmjs.com/package/@devrev/typescript-sdk?activeTab=readme)\\n\\n##### \\n\\nIf you did not follow the [getting", - "title": "Snap-in triggered by a DevRev event | DevRev | Docs" + "id": "ART-2913_KNOWLEDGE_NODE-25", + "text": "DevRev support.\\n\\nInstallation\\n------------\\n\\n1. In DevRev, go to **Settings** > **Snap-ins** and click **Explore\\n Marketplace** in the top-right corner.\\n2. In the DevRev marketplace, find **PagerDuty** and click **Install**.\\n3. Set-up the snap-in's configurations.\\n4. Click **Save** > **Install snap-in**.\\n5. Execute the /pagerduty register-webhook command in the snap-in\\n **Discussions** tab. Upon successful start, you will see the message\\n **Successfully registered DevRev", + "title": "PagerDuty | Integrate | Snap-ins | DevRev" }, { - "id": "ART-1483_KNOWLEDGE_NODE-30", - "text": "Status](https://devrev.ai/status)\\n\\n\\xc2\\xa9 2025 DevRev Inc.\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources", - "title": "Using a snap-in to perform a DevRev action \u2014 DevRev | Docs" + "id": "ART-1280_KNOWLEDGE_NODE-13", + "text": "| --- |\\n| $ | devrev snap_in_version list | jq . |\\n```\\n\\n**Additional flags**:\\n\\n* `--package `: Optional. If not provided, it uses the id from the [snap-in context](/snapin-development/references/cli#snap-in-context).\\n\\nSnap-in\\n-------\\n\\n###### Create a snap-in draft\\n\\nTo create a snap-in draft instance, run the following command:\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | devrev snap_in draft --snap_in_version [id] |\\n```\\n\\nFor example:\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | devrev", + "title": "DevRev CLI reference | DevRev | Docs" }, { - "id": "ART-1277_KNOWLEDGE_NODE-0", - "text": "b'Snap-in triggered by a DevRev event | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\nOn this page\\n\\n* [Introduction](/snapin-development/tutorials/triggered-event#introduction)\\n* [Background context](/snapin-development/tutorials/triggered-event#background-context)\\n* [Resources](/snapin-development/tutorials/triggered-event#resources)\\n\\n[Snap-in", - "title": "Snap-in triggered by a DevRev event | DevRev | Docs" + "id": "ART-3207_KNOWLEDGE_NODE-29", + "text": "to send emails to the group and is a member of the group and continue.\\n5. In your Gmail account, go to **Settings** > **Accounts and Import** > **Send mail as** and add your group address.\\n6. Grant DevRev additional access to your Google account. Refer to our [privacy policy](/privacy-policy) for more information.\\n\\nEmail connection\\n\\n1. In DevRev app, go to **Integrations** > **Snap-ins** and click **Connections**.\\n2. In the top-right corner, select **+ Connection**, choose **Email", + "title": "Email snap-in configuration | Email | Integrate | Snap-ins | DevRev" } ] }, @@ -1684,54 +1684,54 @@ "query": "generate support tickets from slack messages with questions", "retrievals": [ { - "id": "ART-1968_KNOWLEDGE_NODE-13", - "text": "creator](/docs/automations/smart-issue-creator)\\n - [Set user preference for group](/docs/automations/set-user-preference)\\n - [SLA status change Slack notifier](/docs/automations/sla-change-notifier)\\n - [Slash commands](/docs/automations/slash-commands)\\n - [Spam Shield](/docs/automations/spam-shield)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field", - "title": "Conversation insights | Support analytics | Computer for Support Teams | DevRev" + "id": "ART-6174_KNOWLEDGE_NODE-30", + "text": "there.\\n\\n![]()\\n\\nSlack end-user experience\\n-------------------------\\n\\nWhen a conversation is converted to a ticket in Slack:\\n\\n* Ticket information appears within the same thread.\\n* All subsequent messages sync with the newly created ticket.\\n* The transition is seamless for the end user.\\n\\nConversation conversion scenarios\\n---------------------------------\\n\\nConsider converting a conversation to a ticket in these scenarios:\\n\\n* Complex issues requiring in-depth investigation\\n*", + "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" }, { - "id": "ART-4199_KNOWLEDGE_NODE-5", - "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", - "title": "Slack message agent | Automate | Snap-ins | DevRev" + "id": "ART-4185_KNOWLEDGE_NODE-15", + "text": "[Custom field migration](/docs/automations/custom-field-migration)\\n - [Slack scraper](/docs/automations/slack-scraper)\\n - [Slack Broadcaster](/docs/automations/slack-broadcaster)\\n - [Reported by enricher](/docs/automations/ticket-reported-by)\\n - [Ticket approval workflow](/docs/automations/ticket-approval-workflow)\\n - [Ticket linked issues comment sync](/docs/automations/ticket-linked-issues-comment-sync)\\n - [Slack message agent](/docs/automations/slack-message-agent)\\n", + "title": "Ticket approval workflow | Automate | Snap-ins | DevRev" }, { - "id": "ART-15716_KNOWLEDGE_NODE-7", - "text": "Tickets from Chat ConversationsYes, you can create a ticket from a conversation without leaving the chat. Some fields may be prefilled from the conversation.\\n\\nDetails:\\xc2\\xa0[Conv \\xe2\\x86\\x92 Ticket Creation](https://devrev.ai/docs/product/conversation-ticket)\\n\\n5. Viewing Ticket Activity to Avoid Duplicate Responses\\n\\nCurrently, there\\xe2\\x80\\x99s no direct feature to see who is viewing a ticket in real time. But, we can see if someone is typing on a ticket.\\n\\n6. Generating AI Summaries", - "title": "Support queries related playbook" + "id": "ART-3231_KNOWLEDGE_NODE-15", + "text": "[Custom field migration](/docs/automations/custom-field-migration)\\n - [Slack scraper](/docs/automations/slack-scraper)\\n - [Slack Broadcaster](/docs/automations/slack-broadcaster)\\n - [Reported by enricher](/docs/automations/ticket-reported-by)\\n - [Ticket approval workflow](/docs/automations/ticket-approval-workflow)\\n - [Ticket linked issues comment sync](/docs/automations/ticket-linked-issues-comment-sync)\\n - [Slack message agent](/docs/automations/slack-message-agent)\\n", + "title": "Commands surface expander | Automate | Snap-ins | DevRev" }, { - "id": "ART-1983_KNOWLEDGE_NODE-13", - "text": "group](/docs/automations/set-user-preference)\\n - [SLA status change Slack notifier](/docs/automations/sla-change-notifier)\\n - [Slash commands](/docs/automations/slash-commands)\\n - [Spam Shield](/docs/automations/spam-shield)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field migrator](/docs/automations/ticket-issue-field-migrator)\\n - [Ticket", - "title": "Questions & answers | Computer for Support Teams | DevRev" + "id": "ART-2017_KNOWLEDGE_NODE-28", + "text": "you would like to tag on the message (the ticket owner gets tagged automatically); and the target Slack channel. The channel\\'s ID can be found by going to the channel details. Refer to the placeholder value on the input to see an example of how this looks.\\n2. Decide if notifications should go out even if the ticket has a target end date set. Set the toggle to the desired behavior.\\n3. Decide if a ticket should pass the check if it\\'s part is a descendant of the filter part. For example, if a", + "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" }, { - "id": "ART-1983_KNOWLEDGE_NODE-5", - "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", - "title": "Questions & answers | Computer for Support Teams | DevRev" + "id": "ART-2035_KNOWLEDGE_NODE-44", + "text": "directly from Slack:\\n\\n* Using the /devrev create-issue command.\\n* Using the **Create a new issue** message action.\\n\\nBoth the options open a new pop-up modal with a new issue form. Some of the fields are pre-populated based on the messages in the thread.\\n\\n* The **Share with everyone** functionality operates identically to ticket creation. Only shared issues are synchronized between the platforms.\\n* The messages are always synced in the **Internal Discussions** panel with Slack thread.\\n*", + "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-6174_KNOWLEDGE_NODE-30", - "text": "there.\\n\\n![]()\\n\\nSlack end-user experience\\n-------------------------\\n\\nWhen a conversation is converted to a ticket in Slack:\\n\\n* Ticket information appears within the same thread.\\n* All subsequent messages sync with the newly created ticket.\\n* The transition is seamless for the end user.\\n\\nConversation conversion scenarios\\n---------------------------------\\n\\nConsider converting a conversation to a ticket in these scenarios:\\n\\n* Complex issues requiring in-depth investigation\\n*", - "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" + "id": "ART-2818_KNOWLEDGE_NODE-15", + "text": "[Custom field migration](/docs/automations/custom-field-migration)\\n - [Slack scraper](/docs/automations/slack-scraper)\\n - [Slack Broadcaster](/docs/automations/slack-broadcaster)\\n - [Reported by enricher](/docs/automations/ticket-reported-by)\\n - [Ticket approval workflow](/docs/automations/ticket-approval-workflow)\\n - [Ticket linked issues comment sync](/docs/automations/ticket-linked-issues-comment-sync)\\n - [Slack message agent](/docs/automations/slack-message-agent)\\n", + "title": "Operational SLA Metrics | Automate | Snap-ins | DevRev" }, { - "id": "ART-6174_KNOWLEDGE_NODE-13", - "text": "creator](/docs/automations/smart-issue-creator)\\n - [Set user preference for group](/docs/automations/set-user-preference)\\n - [SLA status change Slack notifier](/docs/automations/sla-change-notifier)\\n - [Slash commands](/docs/automations/slash-commands)\\n - [Spam Shield](/docs/automations/spam-shield)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field", - "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" + "id": "ART-2663_KNOWLEDGE_NODE-15", + "text": "[Custom field migration](/docs/automations/custom-field-migration)\\n - [Slack scraper](/docs/automations/slack-scraper)\\n - [Slack Broadcaster](/docs/automations/slack-broadcaster)\\n - [Reported by enricher](/docs/automations/ticket-reported-by)\\n - [Ticket approval workflow](/docs/automations/ticket-approval-workflow)\\n - [Ticket linked issues comment sync](/docs/automations/ticket-linked-issues-comment-sync)\\n - [Slack message agent](/docs/automations/slack-message-agent)\\n", + "title": "GitBook AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-4021_KNOWLEDGE_NODE-5", - "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", - "title": "Slack scraper | Automate | Snap-ins | DevRev" + "id": "ART-15617_KNOWLEDGE_NODE-19", + "text": "SaaS Companies : Organizations with sophisticated support needs beyond Slack management\\n\\nEngineering-Heavy Teams : Companies needing better support-engineering collaboration\\n\\nProactive Support Teams : Organizations wanting to prevent issues rather than just respond to them Key Messaging Themes\\n\\n\"Beyond Basic Support\" : Position DevRev as the evolution from simple ticket management to intelligent support orchestration\\n\\n\"AI That Actually Thinks\" : Contrast reasoning-capable AI vs.", + "title": "Pylon - Competitive - for the PLuG on website" }, { - "id": "ART-1991_KNOWLEDGE_NODE-5", - "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", - "title": "Support snap-ins | Computer for Support Teams | DevRev" + "id": "ART-2035_KNOWLEDGE_NODE-36", + "text": "Slack Channel ID in the **Channel ID to send conversation notifications** snap-in configuration as the target to post notifications.\\n\\n* Any new message within tickets in the customer messages panel is also subjected to the same automation.\\n* To prevent notification overload, each conversation or ticket is subject to a five minute cooldown period between notifications. Multiple consecutive messages within this window will not trigger additional notifications.\\n* Notification threads are not", + "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-1973_KNOWLEDGE_NODE-13", - "text": "creator](/docs/automations/smart-issue-creator)\\n - [Set user preference for group](/docs/automations/set-user-preference)\\n - [SLA status change Slack notifier](/docs/automations/sla-change-notifier)\\n - [Slash commands](/docs/automations/slash-commands)\\n - [Spam Shield](/docs/automations/spam-shield)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field", - "title": "Conversation-SLA Analytics | Support analytics | Computer for Support Teams | DevRev" + "id": "ART-15689_KNOWLEDGE_NODE-15", + "text": "[Custom field migration](/docs/automations/custom-field-migration)\\n - [Slack scraper](/docs/automations/slack-scraper)\\n - [Slack Broadcaster](/docs/automations/slack-broadcaster)\\n - [Reported by enricher](/docs/automations/ticket-reported-by)\\n - [Ticket approval workflow](/docs/automations/ticket-approval-workflow)\\n - [Ticket linked issues comment sync](/docs/automations/ticket-linked-issues-comment-sync)\\n - [Slack message agent](/docs/automations/slack-message-agent)\\n", + "title": "CSV comments uploader | Automate | Snap-ins | DevRev" } ] }, @@ -1740,54 +1740,54 @@ "query": "cron configuration for timer trigger schedule in DevRev", "retrievals": [ { - "id": "ART-1275_KNOWLEDGE_NODE-8", - "text": "type `cron` or\\n`interval_seconds` as mentioned in the\\n[documentation](/snapin-development/references/event-sources#timer-based-event-sources).\\nThe `cron` config is used here.\\n\\nmanifest.yaml\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | event_sources: |\\n| 2 | organization: |\\n| 3 | - name: timer-event-source |\\n| 4 | description: Event source that sends events every 10 minutes. |\\n| 5 | display_name: Timer Event Source |\\n| 6 | type: timer-events |\\n| 7 | config: |\\n| 8 | # CRON expression for", - "title": "Using a snap-in to perform a DevRev action | DevRev | Docs" - }, - { - "id": "ART-1483_KNOWLEDGE_NODE-11", - "text": "config: \\n 8| # CRON expression for triggering every 10 minutes. \\n 9| cron: \"*/10 * * * *\" \\n 10| metadata: \\n 11| event_key: ten_minute_event\\n[/code] \\n \\nFinally, update the `function` name to better reflect the behavior and `automation`name to use the event type corresponding to the `timer-events` event source.\\n\\nmanifest.yaml\\n\\n[code]\\n\\n 1| functions: \\n ---|--- \\n 2| - name: ticket_creator \\n 3|", - "title": "Using a snap-in to perform a DevRev action \u2014 DevRev | Docs" + "id": "ART-1277_KNOWLEDGE_NODE-4", + "text": "[Using a snap-in to perform a DevRev action](/snapin-development/tutorials/timer-ticket-creator) tutorial.\\n\\n[1](/snapin-development/tutorials/triggered-event#installation-guide)\\n\\n### Installation guide\\n\\n* Install [DevRev CLI](/snapin-development/references/cli-install)\\n* Install [jq](https://stedolan.github.io/jq)\\n* Install [DevRev SDK](https://www.npmjs.com/package/@devrev/typescript-sdk?activeTab=readme)\\n\\n##### \\n\\nIf you did not follow the [getting", + "title": "Snap-in triggered by a DevRev event | DevRev | Docs" }, { - "id": "ART-1483_KNOWLEDGE_NODE-10", - "text": "`interval_seconds` as mentioned in the [documentation](/public/snapin-development/references/event-sources#timer-based-event-sources). The `cron` config is used here.\\n\\nmanifest.yaml\\n\\n[code]\\n\\n 1| event_sources: \\n ---|--- \\n 2| organization: \\n 3| - name: timer-event-source \\n 4| description: Event source that sends events every 10 minutes. \\n 5| display_name: Timer Event Source \\n 6| type: timer-events \\n 7|", - "title": "Using a snap-in to perform a DevRev action \u2014 DevRev | Docs" + "id": "ART-1284_KNOWLEDGE_NODE-37", + "text": "configuration.\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | event_sources: |\\n| 2 | organization: |\\n| 3 | - name: daily-timer-source |\\n| 4 | description: Timer event source based on Cron expression |\\n| 5 | display_name: Timer source |\\n| 6 | type: timer-events |\\n| 7 | config: |\\n| 8 | cron: \"0 0 * * *\" |\\n| 9 | metadata: |\\n| 10 | event_key: daily_events |\\n| 11 | |\\n| 12 | - name: hourly-events |\\n| 13 | description: Timer event source based on interval seconds |\\n| 14 | display_name: Timer", + "title": "Event sources | DevRev | Docs" }, { - "id": "ART-1275_KNOWLEDGE_NODE-9", - "text": "triggering every 10 minutes. |\\n| 9 | cron: \"*/10 * * * *\" |\\n| 10 | metadata: |\\n| 11 | event_key: ten_minute_event |\\n```\\n\\nFinally, update the `function` name to better reflect the behavior and\\n`automation`name to use the event type corresponding to the `timer-events` event\\nsource.\\n\\nmanifest.yaml\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | functions: |\\n| 2 | - name: ticket_creator |\\n| 3 | description: Function to create a new ticket when triggered. |\\n| 4 | |\\n| 5 | automations: |\\n| 6 | -", + "id": "ART-1275_KNOWLEDGE_NODE-5", + "text": "devrev snap_in_version init |\\n```\\n\\n#### Trigger\\n\\nThe trigger condition for the snap-in is dictated by the\\n[Event Sources](/snapin-development/references/event-sources)\\nsection in the manifest. The [`timer-events`](/snapin-development/references/event-sources#timer-based-event-sources)\\nevent source is suitable for the use-case, since it allows trigger of snap-ins\\nusing [CRON expression](https://crontab.guru/).\\n\\n#### Action\\n\\nThe hello-world snap-in prints a log message whenever the", "title": "Using a snap-in to perform a DevRev action | DevRev | Docs" }, { - "id": "ART-4257_KNOWLEDGE_NODE-23", - "text": "the time spent on specific tasks, allowing you to track events such as response time, loading time, or any other duration-based metrics.\\n\\nThe mechanism utilizes balanced start and stop methods, both of which accept a timer name and an optional dictionary of properties.\\n\\nTo start a timer, use the following method:\\n\\n[code]\\n\\n 1| DevRev.startTimer(_:properties:) \\n ---|---\\n[/code] \\n \\nTo stop a timer, use the following method:\\n\\n[code]\\n\\n 1| DevRev.stopTimer(_:properties:)", - "title": "DevRev SDK for iOS \u2014 DevRev | Docs" + "id": "ART-1485_KNOWLEDGE_NODE-8", + "text": "comment to the object timeline.\\n\\nTo learn more, refer to the [Using a snap-in to perform a DevRev action](/public/snapin-development/tutorials/timer-ticket-creator) tutorial.\\n\\n[1](/public/snapin-development/tutorials/triggered-event#installation-guide)\\n\\n### Installation guide\\n\\n * Install [DevRev CLI](/public/snapin-development/references/cli-install)\\n * Install [jq](https://stedolan.github.io/jq)\\n * Install [DevRev", + "title": "Snap-in triggered by a DevRev event \u2014 DevRev | Docs" }, { - "id": "ART-1483_KNOWLEDGE_NODE-9", - "text": "better reflect the snap-in\\xe2\\x80\\x99s behavior.\\n\\nmanifest.yaml\\n\\n[code]\\n\\n 1| version: \"2\" \\n ---|--- \\n 2| \\n 3| name: \"Timely Ticketer\" \\n 4| description: \"Snap-in to create ticket every 10 minutes\" \\n 5| \\n 6| service_account: \\n 7| display_name: Automatic Ticket Creator Bot\\n[/code] \\n \\nNext, update the `event_sources` section to use the `timer-events` event source. The `timer-events` source type takes a `config` of type `cron` or", + "id": "ART-1483_KNOWLEDGE_NODE-11", + "text": "config: \\n 8| # CRON expression for triggering every 10 minutes. \\n 9| cron: \"*/10 * * * *\" \\n 10| metadata: \\n 11| event_key: ten_minute_event\\n[/code] \\n \\nFinally, update the `function` name to better reflect the behavior and `automation`name to use the event type corresponding to the `timer-events` event source.\\n\\nmanifest.yaml\\n\\n[code]\\n\\n 1| functions: \\n ---|--- \\n 2| - name: ticket_creator \\n 3|", "title": "Using a snap-in to perform a DevRev action \u2014 DevRev | Docs" }, { - "id": "ART-15417_KNOWLEDGE_NODE-8", - "text": "with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Create Org Schedule | DevRev | Docs" + "id": "ART-1478_KNOWLEDGE_NODE-42", + "text": "source configuration.\\n\\n[code]\\n\\n 1| event_sources: \\n ---|--- \\n 2| organization: \\n 3| - name: daily-timer-source \\n 4| description: Timer event source based on Cron expression \\n 5| display_name: Timer source \\n 6| type: timer-events \\n 7| config: \\n 8| cron: \"0 0 * * *\" \\n 9| metadata: \\n 10| event_key: daily_events \\n 11| \\n 12| - name: hourly-events \\n 13|", + "title": "Event sources \u2014 DevRev | Docs" }, { - "id": "ART-12456_KNOWLEDGE_NODE-19", - "text": "you can use the following method:\\n\\n[code]\\n\\n 1| DevRev.unmarkSensitiveViews(tags: any[]) \\n ---|---\\n[/code] \\n \\n### Timers\\n\\nThe DevRev SDK offers a timer mechanism to measure the time spent on specific tasks, allowing you to track events such as response time, loading time, or any other duration-based metrics.\\n\\nThe mechanism uses balanced start and stop methods, both of which accept a timer name and an optional dictionary of properties.\\n\\nTo start a timer, use the following", - "title": "Features \u2014 DevRev | Docs" + "id": "ART-1275_KNOWLEDGE_NODE-9", + "text": "triggering every 10 minutes. |\\n| 9 | cron: \"*/10 * * * *\" |\\n| 10 | metadata: |\\n| 11 | event_key: ten_minute_event |\\n```\\n\\nFinally, update the `function` name to better reflect the behavior and\\n`automation`name to use the event type corresponding to the `timer-events` event\\nsource.\\n\\nmanifest.yaml\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | functions: |\\n| 2 | - name: ticket_creator |\\n| 3 | description: Function to create a new ticket when triggered. |\\n| 4 | |\\n| 5 | automations: |\\n| 6 | -", + "title": "Using a snap-in to perform a DevRev action | DevRev | Docs" }, { - "id": "ART-15434_KNOWLEDGE_NODE-8", - "text": "with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Update Org Schedule | DevRev | Docs" + "id": "ART-15203_KNOWLEDGE_NODE-10", + "text": "Technical knowledge of web solutions including APIs and Webhooks. Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n* Outstanding communication (written and verbal), with fluency in English.\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who", + "title": "DevRev Careers | Senior Customer Success Manager" }, { - "id": "ART-4255_KNOWLEDGE_NODE-21", - "text": "to measure the time spent on specific tasks, allowing you to track events such as response time, loading time, or any other duration-based metrics.\\n\\nThe mechanism utilizes balanced start and stop methods, both of which accept a timer name and an optional hashmap of properties.\\n\\nTo start a timer, use the following method:\\n\\n###### Kotlin\\n\\n###### Java\\n\\n[code]\\n\\n 1| DevRev.startTimer(name: String, properties: HashMap) \\n ---|---\\n[/code] \\n \\nTo stop a timer, use", - "title": "DevRev SDK for Android \u2014 DevRev | Docs" + "id": "ART-16798_KNOWLEDGE_NODE-9", + "text": "skills are also valued.\\n\\n* Outstanding communication (written and verbal), with fluency in English.\\n\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the earth\\xe2\\x80\\x99s most customer-centric companies. Our mission is", + "title": "DevRev Careers | Partner Success Manager" + }, + { + "id": "ART-15962_KNOWLEDGE_NODE-9", + "text": "areas.\\n\\n**Preferred Qualifications** \\nList additional skills, experience, or attributes that are advantageous but not required.\\n\\n* MBA or related advanced degree.\\n* 10+ years of experience in software product marketing, with direct experience in AI, large language models, machine learning, or related fields preferred.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the", + "title": "DevRev Careers | Senior Product Marketing Manager" } ] }, @@ -1796,54 +1796,54 @@ "query": "view all tickets raised to DevRev support team", "retrievals": [ { - "id": "ART-1979_KNOWLEDGE_NODE-27", - "text": "also be used to engage customers for feedback/ideas (such as new feature ideas). Scoping is important for broadcast tickets as there needs to be a differentiation between broadcast (all revs) vs. multicast (particular revs).\\n\\nViews of tickets can be found under **Support** in the DevRev app.\\n\\n![]()\\n\\nYou can export views to CSV or JSON by selecting **Actions** in the upper-right corner and choosing the format.\\n\\nAttributes\\n----------\\n\\nTickets have attributes that can be used to filter", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1978_KNOWLEDGE_NODE-44", + "text": "URL and not on the support portal of some other customer.\\n* Customer admin isn't able to see all the tickets of the organization.\\n\\n + This could happen if the customer isn't logged in on the correct URL. If the customer is logged in on the correct URL, then check if there are any tickets that are reported by the other customers in that organization or not. Check if the customer is added as a customer admin or not by logging in to your DevRev application.\\n* You are not able to add customer", + "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-37", - "text": "filters and **Group** conditions across various vistas in DevRev to track specific work, capacity, and more.\\n\\nYou can add custom attributes to tickets to track additional information. For more information on custom attributes, see [object customization](./object-customization).\\n\\nIssues are attached to tickets in order to track efforts with product priorities.\\n\\nCreate a ticket\\n---------------\\n\\n1. Go to **Support** > **Tickets** from the sidebar on the left.\\n2. Click **New Ticket** on", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1771_KNOWLEDGE_NODE-10", + "text": "approach to customer service. The result was faster responses, more accurate solutions, and a significantly improved customer experience.\\n\\nThe bottom line: A transformation in support operations\\n-------------------------------------------------------\\n\\nToughTrucksForKids\\' implementation of DevRev delivers concrete business results:\\n\\n* 64% reduction in ticket resolution time\\n* 83% improvement in first response time\\n* 30% increase in CSAT scores\\n* 20% increase in conversion rates\\n* 65%", + "title": "ToughTrucksForKids.com achieves dramatic efficiency gains and customer satisfaction through AI-powered support automation" }, { - "id": "ART-1979_KNOWLEDGE_NODE-40", - "text": "a child issue or create a new one by clicking on **+ New issue**.\\nJust update the title of the child issue and click enter. All other fields will be populated automatically by DevRev. You can edit them later.\\n\\nTags\\n----\\n\\n* Stalled\\n* Priority/Escalated\\n* Fast/Slow Moving\\n* Blocked\\n* Resolution: [*value*]\\n* Impact: [*value*]\\n* Reason: [*value*]\\n\\nStages\\n------\\n\\nThe following figure shows the state machine for tickets.\\n\\n```\\nClosed\\n\\n\\n\\nIn", + "id": "ART-1979_KNOWLEDGE_NODE-37", + "text": "filters and **Group** conditions across various vistas in DevRev to track specific work, capacity, and more.\\n\\nYou can add custom attributes to tickets to track additional information. For more information on custom attributes, see [object customization](./object-customization).\\n\\nIssues are attached to tickets in order to track efforts with product priorities.\\n\\nCreate a ticket\\n---------------\\n\\n1. Go to **Support** > **Tickets** from the sidebar on the left.\\n2. Click **New Ticket** on", "title": "Tickets | Computer for Support Teams | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-35", - "text": "docs](https://docs.devrev.ai/import).\\n* **Close date**: The date the ticket was closed.\\n* **Source channel**: The channel through which the ticket was created. Customers can create tickets via email, the portal, and various other channels.\\n* **Channel**: Indicates the medium used for customer communication.\\n* **Subscribers**: Indicates the group of users who will receive updates about the tickets.External contacts cannot be added as subscribers, so a [DevRev", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-3207_KNOWLEDGE_NODE-47", + "text": "**Primary Use Case** is **Tickets**, go to **Support** > **Tickets** in the DevRev app; otherwise, if the **Primary Use Case** is **Conversation** go to **Inbox**. Find and open your verification message here.\\n6. Open the given link to confirm the request. Make sure you click the link that allows your support address to be forwarded to v\\\\_\\\\_\\\\_\\\\_\\\\_\\\\_\\\\_\\\\_\\\\_\\\\_\\\\_@hooks.devrev.ai.\\n7. Go back to your Gmail forwarding settings, select **Forward a copy of incoming mail** and **Save", + "title": "Email snap-in configuration | Email | Integrate | Snap-ins | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-23", - "text": "2025](/docs/changelog/_2025-06-01)\\n + [May 2025](/docs/changelog/_2025-05-01)\\n + [March and April 2025](/docs/changelog/_2025-04-01)\\n + [February 2025](/docs/changelog/_2025-02-01)\\n* [Developer \\xe2\\x86\\x97\\xef\\xb8\\x8f](https://developer.devrev.ai/)\\n* [DevRevU \\xe2\\x86\\x97\\xef\\xb8\\x8f](/docs/DevRevU)\\n\\n + [Product demos](/docs/DevRevU/demos)\\n\\nOn this page\\n\\n* [Attributes](#attributes)\\n* [Create a ticket](#create-a-ticket)\\n* [Tags](#tags)\\n* [Stages](#stages)\\n*", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-2027_KNOWLEDGE_NODE-29", + "text": "your communication requirements.\\n\\nThe visibility and interaction capabilities with a ticket in DevRev are determined by the user's role and how they were added to the email thread.\\n\\nEnd users\\n\\n* Original sender\\n\\n *Added to:* **Reported by** or **Email members** field.\\n\\n *Is able to:* View the ticket on the portal and reply via email.\\n* An end user in the same organization\\n\\n *Added to:* **To** or **CC** fields in the email thread; **Reported by** field, **Email members** field,", + "title": "Email | Integrate | Snap-ins | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-25", - "text": "Teams](/docs/product/support)\\n[Tickets](/docs/product/tickets)\\n\\nTickets\\n=======\\n\\nA *ticket* is a record of a customer's request for assistance or support. When a customer contacts a company with a problem or issue, the company creates a ticket to track the request and ensure that it's addressed in a timely and satisfactory manner. For example, if a user calls in and files a ticket for a problem they're facing any progress would be communicated to them through the ticket.\\n\\nTickets are", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1978_KNOWLEDGE_NODE-43", + "text": "with that email or not.\\n + This could also be because your customer hasn't logged in.\\n* Customer isn't able to view the tickets they have created.\\n\\n + Check if there are any reported tickets by that customer. You can do so by logging into your DevRev app and then going into the tickets section. Here you can filter based on **reported by** and see if any tickets have been reported by the customer who isn't able to view the tickets.\\n + Check if the customer has logged in on the correct", + "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-1242_KNOWLEDGE_NODE-1", - "text": "about work items, refer to [Tickets](https://docs.devrev.ai/product/tickets) and [Issues](https://docs.devrev.ai/product/issues).\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/webhooks/update)[#### Create Work\\n\\nNext](/api-reference/works/create)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Tickets and issues | DevRev | Docs" + "id": "ART-2046_KNOWLEDGE_NODE-29", + "text": "Ticket** button to create a ticket in DevRev by filling necessary attributes. You can turn this feature off in the app configuration if you want.\\n* To view comments on the tickets linked to the discussions that support teams had with customers or internally on DevRev, head over to the DevRev activity tab which is present in the same line as the **Comments** tab of Jira.\\n* To send comments from the Jira issue to the DevRev ticket, select the ticket from the dropdown, type in the comment, and", + "title": "DevRev for Jira app | Jira Software AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-1447_KNOWLEDGE_NODE-1", - "text": "[Tickets](https://docs.devrev.ai/product/tickets) and [Issues](https://docs.devrev.ai/product/issues).\\n\\nWas this page helpful?YesNo\\n\\n[Create WorkUp Next](/public/api-reference/works/create)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n[Enterprise grade security to protect customer dataLearn more about it.](https://devrev.ai/blog/soc-compliance)\\n\\nProduct\\n\\n * [Build](https://devrev.ai/build)\\n *", - "title": "Tickets and issues \u2014 DevRev | Docs" + "id": "ART-2749_KNOWLEDGE_NODE-9", + "text": "within the teams by the support manager on a daily basis. It enables the manager to drive what is important using insight. It is working as expected, so we are happy with this Ticket Insights dashboard.\\n\\n![]()\\n\\nSrinivasa Rao BonigaSenior Director, Support Engineering\\n\\nThe bottom line: A transformation in support and development operations\\n-----------------------------------------------------------------------\\n\\nPhenom's implementation of DevRev delivers impressive business results:\\n\\n*", + "title": "Phenom transforms talent experience with streamlined support and development workflows" }, { - "id": "ART-1979_KNOWLEDGE_NODE-41", - "text": "progress\\n\\n\\n\\nOpen\\n\\n\\n\\nEscalate\\n\\n\\n\\nValidate the fix\\n\\n\\n\\nAdditional detail needed\\n\\n\\n\\nCustomer responds\\n\\n\\n\\nStart\\n\\n\\n\\nFeature request accepted\\n\\n\\n\\nResolved\\n\\n\\n\\nNot valid\\n\\n\\n\\nQueued\\n\\n\\n\\nWork in progress\\n\\n\\n\\nAwaiting product assist\\n\\n\\n\\nAwaiting development\\n\\n\\n\\nAwating customer response\\n\\n\\n\\nIn development\\n\\n\\n\\nAccepted\\n\\n\\n\\nResolved\\n\\n\\n\\nCanceled\\n```\\n\\n**Open**\\n\\n* *Queued* (Q)\\n The initial stage for all tickets. When a new ticket is created,", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-3905_KNOWLEDGE_NODE-41", + "text": "transferred as attachments to the\\n issues.\\n\\n### Customers and organizations\\n\\n* Tickets in DevRev can only be attached to a single customer, so if multiple\\n organizations are linked to a Jira Service Management issue, the DevRev ticket\\n is only linked to the first of them.\\n* Customers in DevRev can only belong to a single account, so if a customer is a\\n part of multiple organizations in Jira Service Management, he will only be\\n linked to one of them in DevRev.\\n\\n###", + "title": "Jira Service Management AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-1963_KNOWLEDGE_NODE-5", - "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", - "title": "Accessing DevRev | Computer by DevRev | DevRev" + "id": "ART-1028_KNOWLEDGE_NODE-19", + "text": "teams\\n\\nJira bidirectional sync\\n\\nSupport team was able to create Jira tickets directly within DevRev\\n\\n### Related Articles\\n\\n[![]()\\n\\n5 min readLuxCreo boosts operational efficiency and agility with DevRev](/case-study/luxcreo)[![]()\\n\\n5 min readAditya Birla Capital optimizes user experience with DevRev](/case-study/aditya-birla-capital)[![]()\\n\\n4 min readJar improves customer insights and increased conversion rates using DevRev](/case-study/jar)[![]()\\n\\n3 min read ICICI Prudential", + "title": "Uniphore builds a proactive support culture with DevRev" } ] }, @@ -1851,20 +1851,30 @@ "query_id": "5e261249-25ac-4221-a487-20a1dfaecdee", "query": "add banner message in portal not showing", "retrievals": [ + { + "id": "ART-1270_KNOWLEDGE_NODE-7", + "text": "widget is opened.\\n\\nON_PLUG_WIDGET_READY The PLuG widget is ready.\\n\\nON_PLUG_WIDGET_UNREAD_COUNT_CHANGE The user receives a new message to their PLuG. You can also listen to the number of unread messages and display that to your user.\\n\\n1 useEffect ( () => { 2 window. plugSDK. onEvent ( ( payload ) => { 3 if ( payload. type === PAYLOAD_TYPE ) { 4 //Your logic goes here 5 } 6 } ) ; 7 } , []) ; Toggle theme.\\n\\nThe toggle theme method allows you to dynamically modify the PLuG SDK\\xe2\\x80\\x99s", + "title": "Methods \u2014 DevRev | Docs" + }, { "id": "ART-1978_KNOWLEDGE_NODE-38", "text": "conversations on the portal.\\n3. Under **Styling**, upload a banner image which should be in the ratio of 6:1. You can also set light/dark mode for appearance and select your accent color.\\n4. If you want to enable customers to create tickets from the portal, under **Tabs** turn on **Enable ticket creation**. Assign default owner and part.\\n5. If you want to enable public ticket creation wherein unauthenticated users can create tickets, contact DevRev support.\\n6. Turn on the **Enable banner**", "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-1978_KNOWLEDGE_NODE-39", - "text": "toggle and craft your own title and description.\\n7. Enable **Public portal** to allow unauthenticated users to view/search public articles.\\n8. Click **Save & publish** to make the changes visible on your portal.\\n\\nIf you want to customize the font color and favicon, contact DevRev support. For favicon customization, an icon in .ico format is needed.\\n\\nCustomize portal URL\\n--------------------\\n\\nBy default, your customer portal is hosted at support.devrev.ai/. The", - "title": "Customer portal | Computer for Support Teams | DevRev" + "id": "ART-1873_KNOWLEDGE_NODE-7", + "text": "Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/beta/api-reference/notifications/content-template-get-post)[#### List Content Template (POST)\\n\\nNext](/beta/api-reference/notifications/content-template-list-post)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", + "title": "List Content Template | DevRev | Docs" }, { - "id": "ART-1978_KNOWLEDGE_NODE-37", - "text": "portal\\n-----------------------------\\n\\nYou can customize the look of your support portal to match your branding goals.\\n\\n1. Go to **Settings** > **Plug & Portal** > **Portal Settings**.\\n2. Under **Configuration**, enter your site name and upload your company logo.\\n * (Optional) Enable the footer and add your social media and text links in their respective fields.\\n * (Optional) Enable **Search** to get answers in search results.\\n * (Optional) Enable Plug widget to facilitate", - "title": "Customer portal | Computer for Support Teams | DevRev" + "id": "ART-2901_KNOWLEDGE_NODE-21", + "text": "portal. \\n`DevRev.pauseRecording()`| Pauses the ongoing session recording. \\n`DevRev.resumeRecording()`| Resumes a paused session recording. \\n \\n### Session properties\\n\\nYou can add custom properties to the session recording to help you understand the context of the session. The properties are defined as a dictionary of string values.\\n\\n[code]\\n\\n 1| DevRev.addSessionProperties(_:) \\n ---|---\\n[/code] \\n \\nTo clear the session properties in scenarios such as user logout or when", + "title": "iOS integration \u2014 DevRev | Docs" + }, + { + "id": "ART-1875_KNOWLEDGE_NODE-5", + "text": "Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/beta/api-reference/notifications/content-template-get)[#### List Content Template\\n\\nNext](/beta/api-reference/notifications/content-template-list)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", + "title": "Get Content Template (POST) | DevRev | Docs" }, { "id": "ART-2063_KNOWLEDGE_NODE-28", @@ -1872,34 +1882,24 @@ "title": "Nudges | Computer for Your Customers | DevRev" }, { - "id": "ART-1471_KNOWLEDGE_NODE-16", - "text": "__\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources __\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n'", - "title": "Restricted messages on a timeline \u2014 DevRev | Docs" - }, - { - "id": "ART-982_KNOWLEDGE_NODE-3", - "text": "to show our offer, the image, and action (e.g. launch URL).\\n\\nI\\xe2\\x80\\x99ve configured this and you can check it out HERE!\\n\\nTypes of Nudges\\n\\nDevRev Nudges currently supports two core types of nudges:\\n\\n\\n Banner\\n \\n A banner at the top of the webpage\\n Can only be text\\n Can contain an action on click\\n \\n \\n Spotlight\\n \\n A card located by the PLuG widget\\n Can contain an image\\n Can contain an action on click\\n \\n \\n\\n\\nSee It In", - "title": "DevRev Nudges - Driving Customer Engagement" - }, - { - "id": "ART-10697_KNOWLEDGE_NODE-31", - "text": "boosting engagement and reducing repetitive inquiries. To enable Plug, go to **Settings > Portal Settings**, activate Plug widget, and **Save** and **Publish**.\\n\\n![]()\\xc2\\xa0For more information about *Support App*, refer to the following articles: \\xe2\\x80\\xa3 [Support snap-ins | Support](/docs/product/snapins-support) \\xe2\\x80\\xa3 [Support best practices | Support](/docs/product/support-bp) \\xe2\\x80\\xa3 [Support](/docs/product/support) \\xe2\\x80\\xa3", - "title": "February 2025 | Changelog | DevRev" + "id": "ART-2017_KNOWLEDGE_NODE-29", + "text": "ticket with part set as \"Feature 1\" should trigger a notification when the filter is set to \"Capability 1\" and this is a parent part of that feature. Set the toggle to the desired behavior.\\n4. Check the default message body and change it if you would like a different phrasing.\\n\\n[PreviousSet user preference for group](/docs/automations/set-user-preference)[NextSlash commands](/docs/automations/slash-commands)\\n\\n#### On this page\\n\\n* [Installation](#installation)\\n* [Configure the", + "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" }, { - "id": "ART-886_KNOWLEDGE_NODE-3", - "text": "to show our offer, the image, and action (e.g. launch URL).\\n\\nI\\xe2\\x80\\x99ve configured this and you can check it out HERE!\\n\\nTypes of Nudges\\n\\nDevRev Nudges currently supports two core types of nudges:\\n\\n\\n Banner\\n \\n A banner at the top of the webpage\\n Can only be text\\n Can contain an action on click\\n \\n \\n Spotlight\\n \\n A card located by the PLuG widget\\n Can contain an image\\n Can contain an action on click\\n \\n \\n\\n\\nSee It In", - "title": "Nudges | The Book of DevRev" + "id": "ART-15716_KNOWLEDGE_NODE-23", + "text": "steps, your customer portal will be accessible at the custom domain you\\'ve chosen.Account and Authentication\\n\\nTroubleshooting Sign-Up Issues\\n\\nIf a user can\\xe2\\x80\\x99t sign up:\\n\\nConfirm which signup method they\\xe2\\x80\\x99re using (email, SSO, etc.).\\n\\nCheck if they\\xe2\\x80\\x99re seeing an error message\\xe2\\x80\\x94if so, note the exact wording.\\n\\nCommon blockers include: email already in use, password policy issues, or incomplete form fields.\\n\\nIf the issue persists after retrying,", + "title": "Support queries related playbook" }, { - "id": "ART-2059_KNOWLEDGE_NODE-12", - "text": "width=\"0\" style=\"display:none;visibility:hidden\">'", - "title": "Install PLuG chat on your website" + "id": "ART-4255_KNOWLEDGE_NODE-19", + "text": "recording.| startRecording()| startRecording(DevRev.INSTANCE, context); \\nEnds the session recording and uploads it to the portal.| stopRecording()| stopRecording(DevRev.INSTANCE); \\nPauses the ongoing session recording.| pauseRecording()| pauseRecording(DevRev.INSTANCE); \\nResumes a paused session recording.| resumeRecording()| resumeRecording(DevRev.INSTANCE); \\n \\n### Session properties\\n\\nYou can add custom properties to the session recording to help you understand the context of the", + "title": "DevRev SDK for Android \u2014 DevRev | Docs" }, { - "id": "ART-1265_KNOWLEDGE_NODE-0", - "text": "b'Restricted messages on a timeline | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\nOn this page\\n\\n* [Introduction](/guides/timeline-entries#introduction)\\n* [Send a restricted visibility message](/guides/timeline-entries#send-a-restricted-visibility-message)\\n* [Summary](/guides/timeline-entries#summary)\\n\\n[Guides](/guides/webhooks)\\n\\nRestricted messages on a timeline\\n=================================\\n\\nCopy", - "title": "Restricted messages on a timeline | DevRev | Docs" + "id": "ART-1873_KNOWLEDGE_NODE-1", + "text": "\\\\ |\\n| > | -H \"Authorization: Bearer \" |\\n```\\n\\n[Try it](/beta/api-reference/notifications/content-template-list?explorer=true)\\n\\n200Retrieved\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"content_template\": [ |\\n| 3 | { |\\n| 4 | \"created_by\": { |\\n| 5 | \"display_id\": \"string\", |\\n| 6 | \"id\": \"string\", |\\n| 7 | \"display_name\": \"string\", |\\n| 8 | \"display_picture\": { |\\n| 9 | \"display_id\": \"string\", |\\n| 10 | \"id\": \"string\", |\\n| 11 | \"file\": { |\\n| 12 | \"type\": \"string\", |\\n| 13 |", + "title": "List Content Template | DevRev | Docs" } ] }, @@ -1908,33 +1908,33 @@ "query": "sync contacts and accounts from DevRev to Salesforce", "retrievals": [ { - "id": "ART-2047_KNOWLEDGE_NODE-35", - "text": "longer available.\\n\\n### Sync to DevRev\\n\\nAfter a successful import from a Salesforce account, you can choose to sync the imported data with DevRev. This feature airdrops any new items and any changes made to previously imported items from Salesforce.\\n\\nTo perform a one-time sync to DevRev, follow these steps:\\n\\n1. Go to **Settings** > **Integrations** > **AirSyncs**.\\n2. Locate the previously imported project.\\n3. Select **\\xe2\\x8b\\xae** > **Sync Salesforce Service to", - "title": "Salesforce AirSync | AirSync | Snap-ins | DevRev" + "id": "ART-15716_KNOWLEDGE_NODE-2", + "text": "details](https://devrev.ai/docs/integrations/jira)\\n\\n4. Integration with Salesforce\\n\\nYes, DevRev offers a Salesforce integration. You can sync accounts, contacts, opportunities, and more between DevRev and Salesforce.\\n\\n[Salesforce integration overview](https://devrev.ai/docs/integrations/salesforce)\\n\\n5. Configuring Email Integration Snap-In\\n\\nGo to Settings \\xe2\\x86\\x92 Integrations \\xe2\\x86\\x92 Email, then follow the prompts to connect your email provider (Gmail, Outlook, or custom", + "title": "Support queries related playbook" }, { - "id": "ART-2047_KNOWLEDGE_NODE-36", - "text": "DevRev**.\\n\\n![]()\\n\\nThis may override fields in previously imported items, even if they were modified in DevRev.\\n\\n### Sync to Salesforce\\n\\nAfter a successful import from a Salesforce account, you can sync changes made in DevRev to the previously imported cases back to Salesforce. Additionally, any new [DevRev tickets marked for sync](#mark-a-devrev-ticket-for-syncing) is created as new Salesforce items.\\n\\nTo perform a one-time sync to Salesforce, follow these steps:\\n\\n1. Go to", + "id": "ART-2047_KNOWLEDGE_NODE-26", + "text": "corresponding DevRev equivalent. Those marked as **Sync to DevRev** are eligible for import/sync to DevRev from Salesforce. Those marked as **Sync to Salesforce** are eligible to be synced to Salesforce from DevRev.\\n\\n| Salesforce Object | DevRev Object | Sync to DevRev | Sync to Salesforce |\\n| --- | --- | --- | --- |\\n| Case | Ticket | \\xe2\\x9c\\x85 | \\xe2\\x9c\\x85 |\\n| Task | Ticket | \\xe2\\x9c\\x85 | \\xe2\\x9c\\x85 |\\n| Problem | Ticket | \\xe2\\x9c\\x85 | \\xe2\\x9c\\x85 |\\n| Incident | Ticket |", "title": "Salesforce AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-2047_KNOWLEDGE_NODE-30", - "text": "it\\'s your first).\\n2. Create a new connection to your Salesforce account, or use an existing connection if you already have one.\\n3. Once the connection is established, select the Salesforce account you want to import and specify the DevRev part that should be used for any imported cases without a product. This initiates a bulk import of the selected account.\\n4. DevRev makes an effort to automatically map the fields from Salesforce to corresponding fields in DevRev. However, you may be", - "title": "Salesforce AirSync | AirSync | Snap-ins | DevRev" + "id": "ART-2045_KNOWLEDGE_NODE-56", + "text": "the relationship to other accounts is dropped.\\n + Contact changes of Account in an external system are not reflected in DevRev after the initial sync.\\n + Contacts have an external reference that may be populated by email or source ID. This is an internal mapping and may not show up in the Mappings page.\\n* Account\\n + Accounts in DevRev have both Websites and Domains fields. Mapping from external source is typically done to DevRev\\'s Websites field and then a stripped down version is added", + "title": "AirSync | Snap-ins | DevRev" }, { - "id": "ART-2047_KNOWLEDGE_NODE-32", - "text": "automatically.\\n\\nPost import options\\n-------------------\\n\\nAfter a successful import, you have the following options available for the imported account:\\n\\n* [Sync to DevRev](#sync-to-devrev):\\n + This option allows you to synchronize any modifications made in Salesforce with the corresponding items previously imported into DevRev. It also creates new items in DevRev for any new items created in Salesforce after the last sync or import. This is a one-time operation.\\n* [Sync to", + "id": "ART-2047_KNOWLEDGE_NODE-39", + "text": "created in the specified Salesforce account the next time the Sync from [DevRev to Salesforce](#sync-to-salesforce) runs. This can be triggered manually or automatically through a Periodic Sync. Future syncs keeps this item updated on both sides after it has been created in Salesforce.\\n\\n### Historical AirSyncs\\n\\nTo view currently running and previous AirSyncs from various sources, do the following:\\n\\n1. Go to **Settings** > **Integrations** > **AirSyncs**.\\n2. Select the import you want to", "title": "Salesforce AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-2047_KNOWLEDGE_NODE-26", - "text": "corresponding DevRev equivalent. Those marked as **Sync to DevRev** are eligible for import/sync to DevRev from Salesforce. Those marked as **Sync to Salesforce** are eligible to be synced to Salesforce from DevRev.\\n\\n| Salesforce Object | DevRev Object | Sync to DevRev | Sync to Salesforce |\\n| --- | --- | --- | --- |\\n| Case | Ticket | \\xe2\\x9c\\x85 | \\xe2\\x9c\\x85 |\\n| Task | Ticket | \\xe2\\x9c\\x85 | \\xe2\\x9c\\x85 |\\n| Problem | Ticket | \\xe2\\x9c\\x85 | \\xe2\\x9c\\x85 |\\n| Incident | Ticket |", - "title": "Salesforce AirSync | AirSync | Snap-ins | DevRev" + "id": "ART-2038_KNOWLEDGE_NODE-32", + "text": "contacts\\nand any changes made to previously imported items from Hubspot.\\n\\nTo perform a one-time sync to DevRev, follow these steps:\\n\\n1. Go to **Settings** > **Integrations** > **AirSyncs**.\\n2. Locate the previously imported project.\\n3. Select the **\\xe2\\x8b\\xae** > **Sync HubSpot to DevRev** option.\\n\\n![]()\\n\\nPlease be aware that this may override fields in previously imported\\nitems, even if they were modified in DevRev.\\n\\n### Historical AirSyncs\\n\\nTo view currently running and", + "title": "Hubspot AirSync | AirSync | Snap-ins | DevRev" }, { "id": "ART-2047_KNOWLEDGE_NODE-33", - "text": "Salesforce](#sync-to-salesforce):\\n + This option synchronizes any changes made in DevRev to previously synced Salesforce [supported items](#supported-objects) back to Salesforce. It also creates any [items marked in DevRev](#mark-a-devrev-ticket-for-syncing) for creation in Salesforce. This is a one-time operation.\\n* [Periodic Sync](#periodic-sync):\\n + By enabling this option, you can automatically sync new changes from Salesforce to DevRev on a periodic basis. The default frequency is", + "text": "Salesforce](#sync-to-salesforce):\\n + This option synchronizes any changes made in DevRev to previously synced Salesforce [supported items](#supported-objects) back to Salesforce. It also creates any [items marked in DevRev](#mark-a-devrev-ticket-for-syncing) for creation in Salesforce. This is a one-time operation.\\n* [Periodic Sync](#periodic-sync):\\n + By enabling this option, you can automatically sync new changes from Salesforce to DevRev on a periodic basis. The default frequency is", "title": "Salesforce AirSync | AirSync | Snap-ins | DevRev" }, { @@ -1943,19 +1943,19 @@ "title": "Salesforce AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-2047_KNOWLEDGE_NODE-25", - "text": "AirSync](/docs/integrations/salesforce)\\n\\nSalesforce AirSync\\n==================\\n\\nDevRev\\'s Salesforce AirSync allows you to perform a bulk migration, ongoing 1-way sync, or ongoing 2-way syncs. A bulk import is a prerequisite to setting up a sync.\\n\\n![]()\\n\\nFor more information, refer to the [Salesforce AirSync snap-in](https://marketplace.devrev.ai/salesforce) on the DevRev marketplace.\\n\\nSupported objects\\n-----------------\\n\\nThe following is a list of Salesforce objects and their", + "id": "ART-2047_KNOWLEDGE_NODE-36", + "text": "DevRev**.\\n\\n![]()\\n\\nThis may override fields in previously imported items, even if they were modified in DevRev.\\n\\n### Sync to Salesforce\\n\\nAfter a successful import from a Salesforce account, you can sync changes made in DevRev to the previously imported cases back to Salesforce. Additionally, any new [DevRev tickets marked for sync](#mark-a-devrev-ticket-for-syncing) is created as new Salesforce items.\\n\\nTo perform a one-time sync to Salesforce, follow these steps:\\n\\n1. Go to", "title": "Salesforce AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-2045_KNOWLEDGE_NODE-49", - "text": "associated with the account you want to merge from will be associated with the account to be merged with.\\n4. Click **Merge**.\\n\\nContact deduplication\\n---------------------\\n\\nDevRev contacts help you keep track of your [customers](https://docs.devrev.ai/product/customers). Contacts are the individual users, which may or may not be associated with an account. DevRev contacts aren\\'t globally unique. The same user may have multiple contact records.\\n\\nAirSync imported contacts are deduplicated", - "title": "AirSync | Snap-ins | DevRev" + "id": "ART-2991_KNOWLEDGE_NODE-26", + "text": "Contacts**: Set to true if you want to import contacts.\\n * Set Sync Opportunities to true if you want to import opportunities.\\n5. Click **Save**.\\n6. Execute the /initialize\\\\_mapping command in the snap-in **Discussions** tab. This step ensures that custom fields from Snowflake map correctly to the DevRev schema.\\n7. Once the mapping step is completed then every day at **12 UTC** the snap-in would start importing the accounts, contacts and opportunities object from Snowflake to DevRev.\\n8.", + "title": "Snowflake | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2045_KNOWLEDGE_NODE-46", - "text": "organizations in Zendesk, or accounts in Salesforce.\\n\\nAn AirSync doesn\\'t deduplicate imported accounts; rather, it modifies them so that new accounts don\\'t violate DevRev constraints. These accounts can be merged after the import has been completed. Since DevRev has several constraints on the uniqueness of different DevRev account fields, AirSync avoids breaking these constraints by following these rules when another account is already using the unique value:\\n\\n| Account Field | Rule |\\n|", - "title": "AirSync | Snap-ins | DevRev" + "id": "ART-2047_KNOWLEDGE_NODE-35", + "text": "longer available.\\n\\n### Sync to DevRev\\n\\nAfter a successful import from a Salesforce account, you can choose to sync the imported data with DevRev. This feature airdrops any new items and any changes made to previously imported items from Salesforce.\\n\\nTo perform a one-time sync to DevRev, follow these steps:\\n\\n1. Go to **Settings** > **Integrations** > **AirSyncs**.\\n2. Locate the previously imported project.\\n3. Select **\\xe2\\x8b\\xae** > **Sync Salesforce Service to", + "title": "Salesforce AirSync | AirSync | Snap-ins | DevRev" } ] }, @@ -1968,50 +1968,50 @@ "text": "Export Accounts (POST)\\n\\nNext](/api-reference/accounts/export-post)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", "title": "Export Accounts | DevRev | Docs" }, - { - "id": "ART-1254_KNOWLEDGE_NODE-1", - "text": "it](/api-reference/accounts/export?explorer=true)\\n\\n200Retrieved\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"accounts\": [ |\\n| 3 | { |\\n| 4 | \"id\": \"string\", |\\n| 5 | \"owned_by\": [ |\\n| 6 | { |\\n| 7 | \"display_id\": \"string\", |\\n| 8 | \"id\": \"string\", |\\n| 9 | \"display_name\": \"string\", |\\n| 10 | \"display_picture\": { |\\n| 11 | \"display_id\": \"string\", |\\n| 12 | \"id\": \"string\", |\\n| 13 | \"file\": { |\\n| 14 | \"type\": \"string\", |\\n| 15 | \"name\": \"string\", |\\n| 16 | \"size\": 1 |\\n| 17 | } |\\n| 18", - "title": "Export Accounts | DevRev | Docs" - }, { "id": "ART-1254_KNOWLEDGE_NODE-0", - "text": "b'Export Accounts | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[accounts](/api-reference/accounts/accounts)\\n\\nExport Accounts\\n===============\\n\\nCopy page\\n\\nGET\\n\\nhttps://api.devrev.ai/accounts.export\\n\\nGET\\n\\n/accounts.export\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl https://api.devrev.ai/accounts.export \\\\ |\\n| > | -H \"Authorization: Bearer \" |\\n```\\n\\n[Try", + "text": "b'Export Accounts | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[accounts](/api-reference/accounts/accounts)\\n\\nExport Accounts\\n===============\\n\\nCopy page\\n\\nGET\\n\\nhttps://api.devrev.ai/accounts.export\\n\\nGET\\n\\n/accounts.export\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl https://api.devrev.ai/accounts.export \\\\ |\\n| > | -H \"Authorization: Bearer \" |\\n```\\n\\n[Try", "title": "Export Accounts | DevRev | Docs" }, { - "id": "ART-1449_KNOWLEDGE_NODE-1", - "text": "__\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[API Reference](/public/api-reference/getting-started)[Accounts](/public/api-reference/accounts/accounts)\\n\\n# Export Accounts\\n\\nGET\\n\\nhttps://api.devrev.ai/accounts.export\\n\\nTry it\\n\\nExports a collection of accounts.\\n\\n### Query parameters\\n\\ncreated_bylist of stringsOptional\\n\\nFilters for accounts created by the specified", + "id": "ART-1449_KNOWLEDGE_NODE-0", + "text": "b'[](/public/api-reference/accounts/export)\\n\\nPublic\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources", "title": "Export Accounts \u2014 DevRev | Docs" }, { - "id": "ART-1255_KNOWLEDGE_NODE-1", - "text": "|\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{}\\' |\\n```\\n\\n[Try it](/api-reference/accounts/export-post?explorer=true)\\n\\n200Successful\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"accounts\": [ |\\n| 3 | { |\\n| 4 | \"id\": \"string\", |\\n| 5 | \"owned_by\": [ |\\n| 6 | { |\\n| 7 | \"display_id\": \"string\", |\\n| 8 | \"id\": \"string\", |\\n| 9 | \"display_name\": \"string\", |\\n| 10 | \"display_picture\": { |\\n| 11 | \"display_id\": \"string\", |\\n| 12 | \"id\": \"string\", |\\n| 13 | \"file\": { |\\n| 14", + "id": "ART-1255_KNOWLEDGE_NODE-0", + "text": "b'Export Accounts (POST) | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[accounts](/api-reference/accounts/accounts)\\n\\nExport Accounts (POST)\\n======================\\n\\nCopy page\\n\\nPOST\\n\\nhttps://api.devrev.ai/accounts.export\\n\\nPOST\\n\\n/accounts.export\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl -X POST https://api.devrev.ai/accounts.export \\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\", "title": "Export Accounts (POST) | DevRev | Docs" }, { - "id": "ART-1255_KNOWLEDGE_NODE-0", - "text": "b'Export Accounts (POST) | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[accounts](/api-reference/accounts/accounts)\\n\\nExport Accounts (POST)\\n======================\\n\\nCopy page\\n\\nPOST\\n\\nhttps://api.devrev.ai/accounts.export\\n\\nPOST\\n\\n/accounts.export\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl -X POST https://api.devrev.ai/accounts.export \\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\", + "id": "ART-2873_KNOWLEDGE_NODE-28", + "text": "following command:\\n\\n```\\n```\\n1 /bulk_delete\\n```\\n```\\n\\nSelect the among one of the following:\\n\\n* Tickets\\n* Issues\\n* Accounts\\n* Contacts\\n* Opportunities\\n* Articles\\n\\n1. After entering the command, select the object type you want to delete from the list. Tags linked to these objects will be displayed for confirmation.\\n2. The repurcussions of deletion will be informed to the user before they are allowed to confirm whether they wish to proceed with the deletion.\\n3. The", + "title": "Bulk delete data | Automate | Snap-ins | DevRev" + }, + { + "id": "ART-1255_KNOWLEDGE_NODE-1", + "text": "|\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{}\\' |\\n```\\n\\n[Try it](/api-reference/accounts/export-post?explorer=true)\\n\\n200Successful\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"accounts\": [ |\\n| 3 | { |\\n| 4 | \"id\": \"string\", |\\n| 5 | \"owned_by\": [ |\\n| 6 | { |\\n| 7 | \"display_id\": \"string\", |\\n| 8 | \"id\": \"string\", |\\n| 9 | \"display_name\": \"string\", |\\n| 10 | \"display_picture\": { |\\n| 11 | \"display_id\": \"string\", |\\n| 12 | \"id\": \"string\", |\\n| 13 | \"file\": { |\\n| 14", "title": "Export Accounts (POST) | DevRev | Docs" }, { - "id": "ART-1449_KNOWLEDGE_NODE-10", - "text": "\"modified_date\": \"2023-01-01T12:00:00.000Z\", \\n 69| \"primary_account\": { \\n 70| \"id\": \"foo\", \\n 71| \"display_id\": \"foo\", \\n 72| \"display_name\": \"foo\" \\n 73| }, \\n 74| \"tier\": \"foo\", \\n 75| \"websites\": [ \\n 76| \"foo\" \\n 77| ] \\n 78| } \\n 79| ] \\n 80| }\\n[/code] \\n \\n[Export Accounts (POST)Up Next](/public/api-reference/accounts/export-post)\\n\\n[Built", - "title": "Export Accounts \u2014 DevRev | Docs" + "id": "ART-1303_KNOWLEDGE_NODE-6", + "text": "exported accounts.\\nShow 18 properties\\nGET / accounts.export\\n$ curl -G https://api.devrev.ai/accounts.export \\\\ > -H \" Authorization: Bearer \" \\\\ > --data-urlencode created_date.after=2023-01-01T12:00:00Z \\\\ > --data-urlencode created_date.before=2023-01-01T12:00:00Z \\\\ > --data-urlencode modified_date.after=2023-01-01T12:00:00Z \\\\ > --data-urlencode modified_date.before=2023-01-01T12:00:00Z\\n200 Retrieved 1 { 2 \" accounts \" : [ 3 { 4 \" created_date \" : \" 2023-01-01T12:00:00Z \" , 5 \"", + "title": "Export Post \u2014 DevRev | Docs" }, { - "id": "ART-1462_KNOWLEDGE_NODE-0", - "text": "b'[](/public/api-reference/accounts/export-post)\\n\\nPublic\\n\\n[API Reference](/public/api-reference/getting-started)[Accounts](/public/api-reference/accounts/accounts)\\n\\n# Export Accounts (POST)\\n\\nPOST\\n\\nhttps://api.devrev.ai/accounts.export\\n\\nTry it\\n\\nExports a collection of accounts.\\n\\n### Request\\n\\nThis endpoint expects an object.\\n\\ncreated_bylist of stringsOptional\\n\\nFilters for accounts created by the specified user(s).\\n\\ncreated_dateobjectOptional\\n\\nShow 2", - "title": "Export Accounts (POST) \u2014 DevRev | Docs" + "id": "ART-1827_KNOWLEDGE_NODE-6", + "text": "exported accounts.\\nShow 18 properties\\nAPI Reference accounts Export Post.\\n\\nPOST https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nRequest.\\n\\nThis endpoint expects an object.\\ncreated_by list of strings Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date object Optional\\nShow 2 properties\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name list of strings Optional\\nArray of display names of accounts", + "title": "Update \u2014 DevRev | Docs" }, { - "id": "ART-1449_KNOWLEDGE_NODE-0", - "text": "b'[](/public/api-reference/accounts/export)\\n\\nPublic\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources", - "title": "Export Accounts \u2014 DevRev | Docs" + "id": "ART-1654_KNOWLEDGE_NODE-6", + "text": "exported accounts.\\nShow 18 properties\\nAPI Reference accounts Export Post.\\n\\nPOST https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nRequest.\\n\\nThis endpoint expects an object.\\ncreated_by list of strings Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date object Optional\\nShow 2 properties\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name list of strings Optional\\nArray of display names of accounts", + "title": "List \u2014 DevRev | Docs" }, { - "id": "ART-1449_KNOWLEDGE_NODE-5", - "text": "Unavailable Error\\n\\nGET\\n\\n/accounts.export\\n\\n[code]\\n\\n $| curl https://api.devrev.ai/accounts.export \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \"\\n[/code] \\n \\nTry it\\n\\n200exportExample\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"accounts\": [ \\n 3| { \\n 4| \"id\": \"foo\", \\n 5| \"owned_by\": [ \\n 6| { \\n 7| \"display_id\": \"foo\", \\n 8| \"id\": \"foo\", \\n 9| \"display_name\": \"foo\", \\n", - "title": "Export Accounts \u2014 DevRev | Docs" + "id": "ART-1828_KNOWLEDGE_NODE-6", + "text": "exported accounts.\\nShow 18 properties\\nAPI Reference accounts Export Post.\\n\\nPOST https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nRequest.\\n\\nThis endpoint expects an object.\\ncreated_by list of strings Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date object Optional\\nShow 2 properties\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name list of strings Optional\\nArray of display names of accounts", + "title": "List Post \u2014 DevRev | Docs" } ] }, @@ -2020,14 +2020,9 @@ "query": "copy schema subtype deal registration leaf type of account", "retrievals": [ { - "id": "ART-4116_KNOWLEDGE_NODE-0", - "text": "b'[](/beta/api-reference/customization/schemas-subtype-prepare-update-get)\\n\\nBeta\\n\\n[API Reference](/beta/api-reference/accounts/create)[Customization](/beta/api-reference/customization/custom-objects-count)\\n\\n# Prepare-Update Schemas Subtypes\\n\\nPOST\\n\\nhttps://api.devrev.ai/schemas.subtypes.prepare-update\\n\\nTry it\\n\\nGets the new fragment IDs and fields resulting from changing a subtype.\\n\\n### Request\\n\\nThis endpoint expects an object.\\n\\nleaf_typestringRequired`format: \"text\"`\\n\\nLeaf", - "title": "Prepare-Update Schemas Subtypes (Beta) \u2014 DevRev | Docs" - }, - { - "id": "ART-15342_KNOWLEDGE_NODE-3", - "text": "token.\\n\\n### Request\\n\\nThis endpoint expects an object.\\n\\nleaf\\\\_typestringRequired`format: \"text\"`\\n\\nLeaf type of the object.\\n\\nis\\\\_custom\\\\_leaf\\\\_typebooleanOptional\\n\\nWhether the leaf type corresponds to a custom object.\\n\\nnew\\\\_subtypestringOptional`format: \"text\"`\\n\\nName of the new subtype for the object.\\n\\nobjectstringOptional`format: \"id\"`\\n\\nID of the object of which subtype is to be changed. Used to fetch\\nthe object\\'s custom schema fragments and custom fields\\n\\n###", - "title": "Prepare-Update Schemas Subtypes | DevRev | Docs" + "id": "ART-2683_KNOWLEDGE_NODE-3", + "text": "**Subtype** : A categorization of a leaf type. For example, \\xe2\\x80\\x9cpromotion\\xe2\\x80\\x9d or \\xe2\\x80\\x9cadvertising\\xe2\\x80\\x9d for a \\xe2\\x80\\x9ccampaign\\xe2\\x80\\x9d leaf type.\\n 3. **Schema fragment** : A schema fragment defines the schema for an object.\\n 4. **Custom fields** : User-defined fields that store specific data for your custom object.\\n 5. **Unique key** : A unique identifier for each custom object. This is useful for maintaining idempotency when retrying custom object", + "title": "Custom objects (Beta) \u2014 DevRev | Docs" }, { "id": "ART-15337_KNOWLEDGE_NODE-19", @@ -2035,39 +2030,44 @@ "title": "Get Schemas Aggregated | DevRev | Docs" }, { - "id": "ART-4116_KNOWLEDGE_NODE-1", - "text": "type of the object.\\n\\nis_custom_leaf_typebooleanOptional\\n\\nWhether the leaf type corresponds to a custom object.\\n\\nnew_subtypestringOptional`format: \"text\"`\\n\\nName of the new subtype for the object.\\n\\nobjectstringOptional`format: \"id\"`\\n\\nID of the object of which subtype is to be changed. Used to fetch the object\\xe2\\x80\\x99s custom schema fragments and custom fields\\n\\n### Response\\n\\nSuccess.\\n\\nadded_fieldslist of objectsOptional\\n\\nList of fields that have a default value and need to", - "title": "Prepare-Update Schemas Subtypes (Beta) \u2014 DevRev | Docs" + "id": "ART-5010_KNOWLEDGE_NODE-24", + "text": "[Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[Subtype Migration](/docs/automations/subtype-migration)\\n\\nSubtype Migration\\n=================\\n\\nThe [Subtype Migration snap-in](https://marketplace.devrev.ai/marketplace/subtype-migration) is designed to facilitate the seamless transition of work items (tickets and issues) from one custom schema subtype to another. It efficiently handles large volumes of work items by processing them in batches, transferring custom field values between", + "title": "Subtype Migration | Automate | Snap-ins | DevRev" }, { - "id": "ART-16108_KNOWLEDGE_NODE-0", - "text": "b'Airdrop does not allow changing which subtype it syncs work items to. The subtypes that Airdrop creates, are maintained by Airdrop, because they have to reflect the schema they the customer has in the external system (custom fields, field values, stages etc. all have to exactly match the external system schema). To modify the subtype, one should modify the schema in the external system.'", - "title": "Airdrop Work Subtype Schema" + "id": "ART-15342_KNOWLEDGE_NODE-1", + "text": "https://api.devrev.ai/schemas.subtypes.prepare-update \\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\ |\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{ |\\n| > | \"leaf_type\": \"string\" |\\n| > | }\\' |\\n```\\n\\n[Try it](/api-reference/customization/schemas-subtype-prepare-update-get?explorer=true)\\n\\n200Successful\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"added_fields\": [ |\\n| 3 | { |\\n| 4 | \"name\": \"string\", |\\n| 5 | \"default_value\": null |\\n| 6 | } |\\n| 7 | ], |\\n| 8 |", + "title": "Prepare-Update Schemas Subtypes | DevRev | Docs" }, { - "id": "ART-1614_KNOWLEDGE_NODE-4", - "text": "with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "List Schemas Subtypes (POST) | DevRev | Docs" + "id": "ART-1792_KNOWLEDGE_NODE-229", + "text": "leaf types for which subtypes are required.\\nResponse.\\n\\nThis endpoint returns an object.\\nsubtypes list of objects\\nList of subtypes.\\nShow 4 properties\\nAPI Reference customization Subtypes List Post.\\n\\nPOST https:// api.devrev.ai / schemas.subtypes.list\\nLists subtypes.\\nRequest.\\n\\nThis endpoint expects an object.\\nleaf_type string Optional\\nLeaf type for which subtypes are required.\\nleaf_types list of strings Optional\\nList of leaf types for which subtypes are", + "title": "Update \u2014 DevRev | Docs" }, { - "id": "ART-1632_KNOWLEDGE_NODE-0", - "text": "b'List Schemas Subtypes | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nBeta\\n\\nBeta\\n\\nBeta\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/beta/api-reference/accounts/create)[customization](/beta/api-reference/customization/custom-objects-count)\\n\\nList Schemas Subtypes\\n=====================\\n\\nBeta\\n\\nCopy page\\n\\nGET\\n\\nhttps://api.devrev.ai/schemas.subtypes.list\\n\\nGET\\n\\n/schemas.subtypes.list\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl https://api.devrev.ai/schemas.subtypes.list \\\\", - "title": "List Schemas Subtypes | DevRev | Docs" + "id": "ART-15502_KNOWLEDGE_NODE-8", + "text": "> | \"field_type\": \"enum\", |\\n| > | \"description\": \"Target audience for the campaign\", |\\n| > | \"allowed_values\": [ |\\n| > | \"Professionals\", |\\n| > | \"Students\" |\\n| > | ] |\\n| > | } |\\n| > | ] |\\n| > | }\\' |\\n```\\n\\nNote that for custom object schemas, `is_custom_leaf_type` must be set to `true` to\\ndifferentiate it from standard DevRev object schemas.\\n\\nOnce the schema is created, you can create a custom object of type \\xe2\\x80\\x9cCampaign\\xe2\\x80\\x9d:\\n\\n```\\n| | |\\n| --- | --- |\\n| $ |", + "title": "Custom objects | DevRev | Docs" }, { - "id": "ART-15340_KNOWLEDGE_NODE-8", - "text": "\"id\": \"string\", |\\n| 124 | \"file\": { |\\n| 125 | \"type\": \"string\", |\\n| 126 | \"name\": \"string\", |\\n| 127 | \"size\": 1 |\\n| 128 | } |\\n| 129 | }, |\\n| 130 | \"email\": \"string\", |\\n| 131 | \"full_name\": \"string\", |\\n| 132 | \"state\": \"active\" |\\n| 133 | }, |\\n| 134 | \"created_date\": \"2023-01-01T12:00:00.000Z\", |\\n| 135 | \"description\": \"string\", |\\n| 136 | \"display_id\": \"string\", |\\n| 137 | \"leaf_type\": \"string\", |\\n| 138 | \"modified_by\": { |\\n| 139 | \"display_id\": \"string\", |\\n| 140 | \"id\": \"string\",", - "title": "List Schemas Stock | DevRev | Docs" + "id": "ART-15502_KNOWLEDGE_NODE-3", + "text": "\\xe2\\x80\\x9ccampaign\\xe2\\x80\\x9d.\\n2. **Subtype**: A categorization of a leaf type. For example, \\xe2\\x80\\x9cpromotion\\xe2\\x80\\x9d or \\xe2\\x80\\x9cadvertising\\xe2\\x80\\x9d for a \\xe2\\x80\\x9ccampaign\\xe2\\x80\\x9d leaf type.\\n3. **Schema fragment**: A schema fragment defines the schema for an object.\\n4. **Custom fields**: User-defined fields that store specific data for your custom object.\\n5. **ID prefix**: A unique prefix used to generate the display ID for the custom object. If the `id_prefix`", + "title": "Custom objects | DevRev | Docs" }, { - "id": "ART-1560_KNOWLEDGE_NODE-153", - "text": "List Post.\\n\\nPOST https://api.devrev.ai / schemas.subtypes.list\\n\\nLists subtypes.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nleaf_type string Optional\\n\\nLeaf type for which subtypes are required.\\n\\nleaf_types list of strings Optional\\n\\nList of leaf types for which subtypes are required.\\n\\nResponse.\\n\\nThis endpoint returns an object.\\nsubtypes list of objects\\n\\nList of subtypes.\\n\\nShow 4 properties\\nAPI Reference customization Custom Stages Create.\\n\\nPOST https://api.devrev.ai /", - "title": "Assign (Beta) \u2014 DevRev | Docs" + "id": "ART-1301_KNOWLEDGE_NODE-231", + "text": "leaf types for which subtypes are required.\\nResponse.\\n\\nThis endpoint returns an object.\\nsubtypes list of objects\\nList of subtypes.\\nShow 4 properties\\nAPI Reference customization Subtypes List Post.\\n\\nPOST https:// api.devrev.ai / schemas.subtypes.list\\nLists subtypes.\\nRequest.\\n\\nThis endpoint expects an object.\\nleaf_type string Optional\\nLeaf type for which subtypes are required.\\nleaf_types list of strings Optional\\nList of leaf types for which subtypes are", + "title": "Delete \u2014 DevRev | Docs" }, { - "id": "ART-1632_KNOWLEDGE_NODE-2", - "text": "`, where token is your auth token.\\n\\n### Query parameters\\n\\nleaf\\\\_typestringOptional`format: \"text\"`Deprecated\\n\\nLeaf type for which subtypes are required.\\n\\nleaf\\\\_typeslist of stringsOptional\\n\\nList of leaf types for which subtypes are required.\\n\\n### Response\\n\\nSuccess.\\n\\nsubtypeslist of objects\\n\\nList of subtypes.\\n\\nShow 4 properties\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n429\\n\\nToo Many Requests", - "title": "List Schemas Subtypes | DevRev | Docs" + "id": "ART-1602_KNOWLEDGE_NODE-2", + "text": "DONs which are to be aggregated.\\n\\ncustom_schema_spec.appslist of stringsOptional\\n\\nList of apps.\\n\\ncustom_schema_spec.subtypestringOptional`format: \"text\"`\\n\\nName of the subtype.\\n\\nis_custom_leaf_typebooleanOptional\\n\\nWhether the leaf type corresponds to a custom object.\\n\\nleaf_typestringOptional`format: \"text\"`\\n\\nThe leaf type. Used for inferring the default stage diagram and tenant fragment ID.\\n\\nstock_schema_fragment_idstringOptional`format: \"id\"`\\n\\nThe stock schema fragment which", + "title": "Get Schemas Aggregated (Beta) \u2014 DevRev | Docs" + }, + { + "id": "ART-1302_KNOWLEDGE_NODE-231", + "text": "leaf types for which subtypes are required.\\nResponse.\\n\\nThis endpoint returns an object.\\nsubtypes list of objects\\nList of subtypes.\\nShow 4 properties\\nAPI Reference customization Subtypes List Post.\\n\\nPOST https:// api.devrev.ai / schemas.subtypes.list\\nLists subtypes.\\nRequest.\\n\\nThis endpoint expects an object.\\nleaf_type string Optional\\nLeaf type for which subtypes are required.\\nleaf_types list of strings Optional\\nList of leaf types for which subtypes are", + "title": "Export \u2014 DevRev | Docs" } ] }, @@ -2076,54 +2076,54 @@ "query": "Automatic case classification by product, severity, and category", "retrievals": [ { - "id": "ART-17515_KNOWLEDGE_NODE-25", - "text": "summary: Provides a summary of initial customer emails on tickets.\\n* Spacebar summaries: Offers quick summaries of the **Updates** page, account records, and conversations.\\n* Ticket and issue clustering: Groups similar tickets and issues together for easier management.\\n* AI-generated enhancement descriptions: Creates detailed descriptions for enhancements based on the titles and descriptions of the enhancements and the linked objects.\\n* Request classification: Differentiates between bugs", - "title": "AI use cases in DevRev | Computer by DevRev | DevRev" + "id": "ART-17219_KNOWLEDGE_NODE-15", + "text": "| { |\\n| 2 | \"record_types\":{ |\\n| 3 | \"issues_stock_epic\":{ |\\n| 4 | \"name\":\"Epic\" |\\n| 5 | }, |\\n| 6 | \"issues_custom2321\":{ |\\n| 7 | \"name\":\"Incident report\" |\\n| 8 | }, |\\n| 9 | \"issues_custom2322\":{ |\\n| 10 | \"name\":\"Problem\" |\\n| 11 | }, |\\n| 12 | \"comments\":{ |\\n| 13 | \"name\":\"Comment\" |\\n| 14 | } |\\n| 15 | } |\\n| 16 | } |\\n```\\n\\n[4](/airsync/metadata-extraction#categorize-external-record-types)\\n\\n### Categorize external record types\\n\\nThe metadata allows each external record type to", + "title": "Metadata extraction | DevRev | Docs" }, { - "id": "ART-17515_KNOWLEDGE_NODE-12", - "text": "sync](/docs/automations/org-tags-sync)\\n - [Search Node](/docs/automations/search-node)\\n - [Sentiment evaluator](/docs/automations/sentiment-evaluator)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Real-time sentiment evaluator](/docs/automations/realtime-sentiment-evaluator)\\n - [Send customized emails](/docs/automations/send-emails)\\n - [StageFlow automator](/docs/automations/stageflow-automator)\\n - [Smart issue", - "title": "AI use cases in DevRev | Computer by DevRev | DevRev" + "id": "ART-4177_KNOWLEDGE_NODE-10", + "text": "productivity across the organization](/case-study/goodmeetings)[![]()\\n\\nDescope streamlines support at scale with automation, AI, and unified collaboration\\n\\nDescope streamlines support at scale with automation, AI, and unified collaboration](/case-study/descope)[![]()\\n\\nRocketium brings agility to product development through a unified platform\\n\\nFind out how Rocketium uses DevRev to assimilate customer feedback and expedite time to market.](/case-study/rocketium)\\n\\nFounder\\xe2\\x80\\x99s", + "title": "DevRev University - DevRev for Startups" }, { - "id": "ART-17515_KNOWLEDGE_NODE-9", - "text": "[Automate](/docs/automate)\\n\\n - [Account deduplication](/docs/automations/account-deduplication)\\n - [Airtable](/docs/automations/airtable)\\n - [Auto-link DevRev GitHub accounts](/docs/automations/auto-link-github-devrev)\\n - [Automatic customer reply](/docs/automations/auto-reply)\\n - [Auto parts to conversation](/docs/automations/auto-parts)\\n - [Automated part update](/docs/automations/automated-part-update)\\n - [Automate opportunities](/docs/automations/opportunity)\\n", - "title": "AI use cases in DevRev | Computer by DevRev | DevRev" + "id": "ART-4181_KNOWLEDGE_NODE-4", + "text": "tailor metrics to your requirements\\n\\n![]()\\n\\nTrigger SLAs at the right moment, every time\\n\\nMap conditions to parts of your product, tags, severity levels, or any other relevant criteria on our simple UI\\n\\n![]()\\n\\nTrigger SLAs at the right moment, every time\\n\\nMap conditions to parts of your product, tags, severity levels, or any other relevant criteria on our simple UI\\n\\n![]()\\n\\nSLAs in sync with your business\\n\\nAccount for calendar and business hours, ensuring that your SLAs", + "title": "Support like a lightning fast pit-crew" }, { - "id": "ART-17515_KNOWLEDGE_NODE-1", - "text": "[Groups](/docs/product/groups)\\n + [Parts & trails](/docs/product/parts)\\n + [Vistas](/docs/product/vistas)\\n\\n - [Vista Reports](/docs/product/vista-reports)\\n - [Board view](/docs/product/board-view)\\n + [Tasks](/docs/product/tasks)\\n + [Updates](/docs/product/updates)\\n + [Customer email notifications](/docs/product/customer-emails)\\n + [Roles](/docs/product/roles)\\n\\n - [Default privileges by group](/docs/product/privs)\\n + [Access control](/docs/product/access-control)\\n +", - "title": "AI use cases in DevRev | Computer by DevRev | DevRev" + "id": "ART-4129_KNOWLEDGE_NODE-22", + "text": "incidents with any of the provided subtypes.\\n\\nsync\\\\_metadataobjectOptional\\n\\nShow 4 properties\\n\\ntarget\\\\_close\\\\_dateobjectOptional\\n\\nProvides ways to specify date ranges on objects.\\n\\nShow 2 variants\\n\\ntitlelist of stringsOptional\\n\\nFilters for incidents by the provided titles.\\n\\nsourcelist of longsOptionalDeprecated\\n\\nFilters for incidents with any of the provided sources.\\n\\n### Response\\n\\nSuccess.\\n\\ngroupslist of objects\\n\\nThe list of groups.\\n\\nShow 5", + "title": "Group Incidents (POST) | DevRev | Docs" }, { - "id": "ART-17515_KNOWLEDGE_NODE-26", - "text": "and feature requests on tickets.\\n* Computer on Plug: Enhances the following functionalities:\\n\\n + Conversation: It deflects customer queries using your knowledge base, providing accurate and relevant responses.\\n + Search: It summarizes your search results, making information retrieval more efficient and user-friendly.\\n* Computer assist: Recommends relevant articles and similar work items.\\n* Slack tickets: Automatically generates titles and descriptions for tickets created from Slack", - "title": "AI use cases in DevRev | Computer by DevRev | DevRev" + "id": "ART-4130_KNOWLEDGE_NODE-16", + "text": "field to group the incidents by.\\n\\napplies\\\\_to\\\\_partslist of stringsOptional\\n\\nFilters for incidents that apply to any of the provided parts.\\n\\ncreated\\\\_bylist of stringsOptional\\n\\nFilters for incidents created by any of the provided users.\\n\\ncursorstringOptional`format: \"text\"`\\n\\nThe cursor to resume iteration from. If not provided, then iteration\\nstarts from the beginning.\\n\\ncustom\\\\_fieldsobjectOptional\\n\\nFilters for custom fields.\\n\\nlimitintegerOptional\\n\\nThe maximum number of", + "title": "Group Incidents | DevRev | Docs" }, { - "id": "ART-17515_KNOWLEDGE_NODE-4", - "text": "analytics](/docs/product/support-analytics)\\n\\n - [Conversation insights](/docs/dashboards/conversation-insights)\\n - [Conversation-SLA Analytics](/docs/dashboards/conversation-sla-analytics)\\n - [Conversation-Team Performance](/docs/dashboards/conversation-team-performance)\\n - [Ticket insights](/docs/dashboards/ticket-insights)\\n - [Ticket-SLA Analytics](/docs/dashboards/ticket-sla-analytics)\\n - [Ticket-Team Performance](/docs/dashboards/ticket-team-performance)\\n +", - "title": "AI use cases in DevRev | Computer by DevRev | DevRev" + "id": "ART-4181_KNOWLEDGE_NODE-6", + "text": "time and resolution time, or tailor metrics to your requirements\\n\\n![]()\\n\\nTrigger SLAs at the right moment, every time\\n\\nMap conditions to parts of your product, tags, severity levels, or any other relevant criteria on our simple UI\\n\\n![]()\\n\\nTrigger SLAs at the right moment, every time\\n\\nMap conditions to parts of your product, tags, severity levels, or any other relevant criteria on our simple UI\\n\\n![]()\\n\\nSLAs in sync with your business\\n\\nAccount for calendar and business hours,", + "title": "Support like a lightning fast pit-crew" }, { - "id": "ART-17515_KNOWLEDGE_NODE-10", - "text": "- [Bulk delete data](/docs/automations/bulk-delete)\\n - [Bulk work item uploader](/docs/automations/bulk-upload)\\n - [Commands surface expander](/docs/automations/commands-surface-expander)\\n - [Convergence](/docs/automations/converge)\\n - [Conversation reminder](/docs/automations/conversation-reminder)\\n - [CSAT on conversation](/docs/automations/csat-conv)\\n - [CSAT on ticket](/docs/automations/csat-tickets)\\n - [CSV work item", - "title": "AI use cases in DevRev | Computer by DevRev | DevRev" + "id": "ART-4181_KNOWLEDGE_NODE-8", + "text": "metrics such as response time and resolution time, or tailor metrics to your requirements\\n\\n![]()\\n\\nTrigger SLAs at the right moment, every time\\n\\nMap conditions to parts of your product, tags, severity levels, or any other relevant criteria on our simple UI\\n\\n![]()\\n\\nTrigger SLAs at the right moment, every time\\n\\nMap conditions to parts of your product, tags, severity levels, or any other relevant criteria on our simple UI\\n\\n![]()\\n\\nSLAs in sync with your business\\n\\nAccount for", + "title": "Support like a lightning fast pit-crew" }, { - "id": "ART-17515_KNOWLEDGE_NODE-13", - "text": "creator](/docs/automations/smart-issue-creator)\\n - [Set user preference for group](/docs/automations/set-user-preference)\\n - [SLA status change Slack notifier](/docs/automations/sla-change-notifier)\\n - [Slash commands](/docs/automations/slash-commands)\\n - [Spam Shield](/docs/automations/spam-shield)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field", - "title": "AI use cases in DevRev | Computer by DevRev | DevRev" + "id": "ART-4129_KNOWLEDGE_NODE-21", + "text": "related docs.\\n\\nreported\\\\_bylist of longsOptional\\n\\nFilters for incidents with any of the provided reporters.\\n\\nseveritylist of longsOptional\\n\\nFilters for incidents containing any of the provided severities.\\n\\nsort\\\\_bylist of stringsOptional\\n\\nComma-separated fields to sort the incidents by.\\n\\nstagelist of stringsOptional\\n\\nFilters for incidents in any of the provided stages.\\n\\nstaged\\\\_infoobjectOptional\\n\\nShow 1 properties\\n\\nsubtypelist of stringsOptional\\n\\nFilters for", + "title": "Group Incidents (POST) | DevRev | Docs" }, { - "id": "ART-17515_KNOWLEDGE_NODE-15", - "text": "[Operational SLA Metrics](/docs/automations/operational-sla-metrics)\\n - [Custom field migration](/docs/automations/custom-field-migration)\\n - [Slack scraper](/docs/automations/slack-scraper)\\n - [Slack Broadcaster](/docs/automations/slack-broadcaster)\\n - [Reported by enricher](/docs/automations/ticket-reported-by)\\n - [Ticket approval workflow](/docs/automations/ticket-approval-workflow)\\n - [Ticket linked issues comment", - "title": "AI use cases in DevRev | Computer by DevRev | DevRev" + "id": "ART-4181_KNOWLEDGE_NODE-2", + "text": "blog](/blog/sla)\\n\\nTrigger SLAs at the right moment, every time\\n\\nMap conditions to parts of your product, tags, severity levels, or any other relevant criteria on our simple UI\\n\\n![]()\\n\\nTrigger SLAs at the right moment, every time\\n\\nMap conditions to parts of your product, tags, severity levels, or any other relevant criteria on our simple UI\\n\\n![]()\\n\\nSLAs in sync with your business\\n\\nAccount for calendar and business hours, ensuring that your SLAs accurately reflect your support", + "title": "Support like a lightning fast pit-crew" }, { - "id": "ART-17515_KNOWLEDGE_NODE-24", - "text": "[Product demos](/docs/DevRevU/demos)\\n\\n1. [Documentation](/docs)\\n3. [Computer by DevRev](/docs/intro)\\n[AI use cases in DevRev](/docs/product/ai-use-cases)\\n\\nAI use cases in DevRev\\n======================\\n\\nAs an AI-native platform, Computer by DevRev leverages AI to provide value to customer support and product development staff. The following are some of the uses of AI in Computer.\\n\\n* Summary slash command: Generates summaries for internal and external discussions.\\n* Customer email", - "title": "AI use cases in DevRev | Computer by DevRev | DevRev" + "id": "ART-1828_KNOWLEDGE_NODE-177", + "text": "longs Optional\\nFilters for incidents containing any of the provided severities.\\nsort_by list of strings Optional\\nComma-separated fields to sort the incidents by.\\nsource list of longs Optional\\nFilters for incidents with any of the provided sources.\\nstage list of strings Optional\\nFilters for incidents in any of the provided stages.\\ntarget_close_date object Optional\\nProvides ways to specify date ranges on objects.\\nShow 2 variants\\ntitle list of strings Optional\\nFilters for incidents by", + "title": "List Post \u2014 DevRev | Docs" } ] }, @@ -2132,54 +2132,54 @@ "query": "enable Generative AI for Knowledge Base creation", "retrievals": [ { - "id": "ART-13178_KNOWLEDGE_NODE-9", - "text": "articles, designs graphics, and generates code. It focuses on content creation based on prompts. According to [IBM research](https://www.ibm.com/think/topics/generative-ai-use-cases), 65% of enterprises now use generative AI for creation tasks like these.\\n\\nAgentic AI operates differently. It doesn\\xe2\\x80\\x99t just create \\xe2\\x80\\x93 it decides and acts. When your customer reports an issue, generative AI might draft a response to customer service inquiries, while agentic AI will investigate", - "title": "Understanding Agentic AI: Capabilities and Implications for the Future" + "id": "ART-970_KNOWLEDGE_NODE-67", + "text": "context, yet\\xe2\\x80\\xa6\\n\\n\\n That\\xe2\\x80\\x99s not the key, the key is in the data that you have that the models don\\xe2\\x80\\x99t have access to.\\n\\n\\nThe greater the context you can furnish through embeddings or fine-tuning, the more powerful AI becomes in your hands.\\n\\nThe Significance of Knowledge Graphs \\n\\nKnowledge graphs stand as invaluable tools that facilitate the organization and association of items based on various dimensions. Their utility extends beyond merely establishing", + "title": "The Story" }, { - "id": "ART-13178_KNOWLEDGE_NODE-12", - "text": "prompts | Predetermined logic paths only \\nImplementation examples | Self-directing customer journey managers, workflow orchestrators | Marketing copy generators, design assistants | Scheduled report generators, form processors \\nSystem connections | Operates across enterprise architecture | Generally functions as specialized tools | Isolated within specific applications \\nStrategic advantage | Full transformation of knowledge work processes | Enhanced productivity for content creation |", - "title": "Understanding Agentic AI: Capabilities and Implications for the Future" + "id": "ART-1980_KNOWLEDGE_NODE-25", + "text": "knowledge base helps customers independently solve issues and assists employees in determining solutions to customer queries they\\xe2\\x80\\x99re resolving.\\n\\nThe articles can be created from scratch in DevRev, or they can be hosted on your own domain. Additionally, you can scrape articles from a previous database and import them into DevRev with the assistance of our support engineers.\\n\\nThere are multiple benefits to a knowledge base that can be accessed directly and through AI:\\n\\n*", + "title": "Knowledge Base | Computer for Support Teams | DevRev" }, { - "id": "ART-738_KNOWLEDGE_NODE-2", - "text": "they have. For example, both Chat GPT 3.5 and 4.0 were trained on the publicly available internet data as of September 2021, but they lack context about the current state. AutoGPT and others will help with this giving it the ability \\xe2\\x80\\x9cfetch\\xe2\\x80\\x9d additional context it may be lacking, however\\xe2\\x80\\xa6\\n\\n\\n That\\xe2\\x80\\x99s not the key, the key is in the data that you have that the models don\\xe2\\x80\\x99t have access to.\\n\\n\\n\\n\\nDevRev: built atop a badass knowledge", - "title": "DevRev | Built for AI (not by AI... yet)" + "id": "ART-12581_KNOWLEDGE_NODE-7", + "text": "industry-leading AI and generative technologies.\\n\\n**Ideal Candidate Qualifications:**\\n\\n* 3+ years of prior experience in Consulting, Solution Architecture, Customer Success or equivalent history of increasing satisfaction, adoption, and retention.\\n* Knowledge of software development, technical support, and customer sales and success lifecycle. Technical knowledge of web solutions including APIs and Webhooks. Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n*", + "title": "DevRev Careers | Customer Success Manager" }, { - "id": "ART-13178_KNOWLEDGE_NODE-8", - "text": "intelligence system can track customer responses to support solutions, identify which approaches resolve issues fastest, and refine its methods accordingly.\\n\\n## Agentic AI vs generative AI\\n\\nGenerative AI creates content while agentic AI performs actions. This fundamental difference determines how each technology delivers business value through their distinct capabilities, applications, and limitations.\\n\\nYou\\xe2\\x80\\x99ve witnessed generative AI\\xe2\\x80\\x99s creative abilities. It writes", + "id": "ART-13178_KNOWLEDGE_NODE-9", + "text": "articles, designs graphics, and generates code. It focuses on content creation based on prompts. According to [IBM research](https://www.ibm.com/think/topics/generative-ai-use-cases), 65% of enterprises now use generative AI for creation tasks like these.\\n\\nAgentic AI operates differently. It doesn\\xe2\\x80\\x99t just create \\xe2\\x80\\x93 it decides and acts. When your customer reports an issue, generative AI might draft a response to customer service inquiries, while agentic AI will investigate", "title": "Understanding Agentic AI: Capabilities and Implications for the Future" }, { - "id": "ART-970_KNOWLEDGE_NODE-67", - "text": "context, yet\\xe2\\x80\\xa6\\n\\n\\n That\\xe2\\x80\\x99s not the key, the key is in the data that you have that the models don\\xe2\\x80\\x99t have access to.\\n\\n\\nThe greater the context you can furnish through embeddings or fine-tuning, the more powerful AI becomes in your hands.\\n\\nThe Significance of Knowledge Graphs \\n\\nKnowledge graphs stand as invaluable tools that facilitate the organization and association of items based on various dimensions. Their utility extends beyond merely establishing", - "title": "The Story" + "id": "ART-12577_KNOWLEDGE_NODE-7", + "text": "industry-leading AI and generative technologies.\\n\\n**Ideal Candidate Qualifications:**\\n\\n* 10+ years of prior experience in Consulting, Solution Architecture, Customer Success or equivalent history of increasing satisfaction, adoption, and retention.\\n* Knowledge of software development, technical support, and customer sales and success lifecycle. Technical knowledge of web solutions including APIs and Webhooks. Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n*", + "title": "DevRev Careers | Customer Success Manager" }, { - "id": "ART-974_KNOWLEDGE_NODE-17", - "text": "tasks. For instance, AI-powered models can access and process vast amounts of information from the internet to answer queries, potentially rendering traditional search methods obsolete.\\n\\nFurthermore, AI\\xe2\\x80\\x99s influence extends to content creation, with AI-generated content becoming increasingly prevalent. This shift has the potential to alter the value of content, especially as AI could replace traditional search engines that index generated content. Businesses may need to adapt their", - "title": "Part I: Genesis" + "id": "ART-13083_KNOWLEDGE_NODE-6", + "text": "[Collections](/docs/product/collection)\\n\\n * [Turing AI agent](/docs/product/conversational-bot)\\n\\n * [Best practices for documentation that supports AI](/docs/product/writing-bp)\\n\\n * [Commands](/docs/product/commands)\\n * [Service-level agreement](/docs/product/sla)\\n * [Operational-level agreement](/docs/product/ola)\\n * [Support snap-ins](/docs/product/snapins-support)\\n\\n * [Build](/docs/product/build)\\n\\n * [Issues](/docs/product/issues)\\n * [Now, Next,", + "title": "| Automate | Snap-ins | DevRev" }, { - "id": "ART-13178_KNOWLEDGE_NODE-13", - "text": "Cost efficiency for repetitive activities \\n \\nGenerative AI excels at content-focused tasks. Agentic AI transforms process-oriented workflows.\\n\\n## What is the core framework of agentic AI?\\n\\nThe agentic AI framework consists of five interconnected components: perception, reasoning, action, learning, and collaboration. This structure enables autonomous agents to process information, make decisions, implement solutions, improve over time, and work alongside humans and other systems.\\n\\nYou", - "title": "Understanding Agentic AI: Capabilities and Implications for the Future" + "id": "ART-2133_KNOWLEDGE_NODE-52", + "text": "auto-cluster, auto-classify, and auto-complete work items and human input. Similarly, de\\xef\\xac\\x82ect would be about recommending, routing, and summarizing work items with no human in the loop. And \\xef\\xac\\x81nally, deduplicate would be about retaining the provenance of merged records, as also active de\\xef\\xac\\x82ection of work items currently being created.\\n\\nNatural Language Everything Essential AI argues for natural language interfaces for everything: text to SQL, text to", + "title": "The Essential Methodology: Less but Better" }, { - "id": "ART-974_KNOWLEDGE_NODE-2", - "text": "ourselves in the genesis of the AI revolution, a technological marvel that has reshaped our world. Large language models and generative transformers have ushered in a paradigm shift in our interactions with technology and information, challenging conventional search methods and unlocking new realms of creative potential.\\n\\nEvolution\\n\\n\\n\\n\\n \\xe2\\x80\\x9cIt is not the strongest of the species that survive, nor the most intelligent, but the one most responsive to change.\\xe2\\x80\\x9d - Charles", - "title": "Part I: Genesis" + "id": "ART-1771_KNOWLEDGE_NODE-6", + "text": "knowledge base integration.\\n\\nThe implementation validated DevRev\\'s capabilities and demonstrated remarkable speed. As Ankur noted: \"When I started using DevRev, the AirSync feature took me two hours to replace our previous solution, including transferring all knowledge articles.\" DevRev\\'s comprehensive documentation was particularly helpful during setup, allowing for a smooth transition without requiring extensive technical expertise.\\n\\nThe AI agent handles a large volume of routine", + "title": "ToughTrucksForKids.com achieves dramatic efficiency gains and customer satisfaction through AI-powered support automation" }, { - "id": "ART-13178_KNOWLEDGE_NODE-21", - "text": "**Prompt:** This defines the system\\xe2\\x80\\x99s operation blueprint, outlining specific goals and constraints. Think of it as the master plan guiding each agent. For complex systems, responsibilities are distributed across multiple AI agents to maintain simplicity and effectiveness.\\n * **Knowledge:** This serves as the agent\\xe2\\x80\\x99s knowledge repository, storing experiences and context. Like humans rely on past experiences, LLM agents use memory to understand situations and make", - "title": "Understanding Agentic AI: Capabilities and Implications for the Future" + "id": "ART-1985_KNOWLEDGE_NODE-32", + "text": "Base**](https://app.devrev.ai/?setting=knowledge-base%2Farticles) and select the article you want to edit. The article opens in an additional window on top of the knowledge base view.\\n Select the full screen mode icon to expand the article view.\\n2. Click the pen icon in the top right corner of the article to make the article editable.\\n3. Make the necessary changes and click **Save** or **Publish**.\\n\\n * If you **Save** the article, the changes are saved as a new draft version. Edits are", + "title": "Articles | Knowledge Base | Computer for Support Teams | DevRev" }, { - "id": "ART-974_KNOWLEDGE_NODE-18", - "text": "content strategies to influence AI models and shape the information presented to users.\\n\\nLastly, AI has also impacted creativity, offering tools that change the way people envision, design, and iterate. These innovations empower individuals to create complex and detailed content independently. In fact, Midjourney was used to generate a great deal of the abstract images used throughout this book.\\n\\nWe have transitioned from a phase where AI was associated with apocalyptic scenarios to an era", - "title": "Part I: Genesis" + "id": "ART-4168_KNOWLEDGE_NODE-7", + "text": "do it all: give AI models easy access to formerly siloed data and enable SQL query capabilities that power robust reporting and analytics - without performance trade-offs.\\n\\n![]()\\n\\n![]()\\n\\n![]()\\n\\nLATEST\\n\\nRead our white paper \\xe2\\x80\\x94 The conversational computer: toward human agency\\n\\n[READ THE WHITE PAPER](/blog/the-conversational-computer)\\n\\nLATEST\\n\\n![]()\\n\\nRead our white paper \\xe2\\x80\\x94 The conversational computer: toward human agency\\n\\n[READ THE WHITE", + "title": "Computer by DevRev: AI Infrastructure for Connected Enterprise Data | DevRev" } ] }, @@ -2188,54 +2188,54 @@ "query": "Resource Center downloads tutorials API documentation", "retrievals": [ { - "id": "ART-1353_KNOWLEDGE_NODE-2", - "text": "[tutorial](/api-reference/getting-started) shows you how to access the APIs.\\n\\n\\xf0\\x9f\\xa7\\xac Methods\\n---------\\n\\nSpecifications covering the supported APIs are based on OpenAPI Specification 3.0. You can download the specs to use an OpenAPI 3.0-compliant tool to perform a variety of actions, including rendering them in UI and generating SDKs. Two [versions](/about/versioning) of the DevRev API are available: [public](/public) and [beta](/beta) (early access). Use the drop-down menu in the", - "title": "For Developers | DevRev | Docs" + "id": "ART-15292_KNOWLEDGE_NODE-1", + "text": "\"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{ |\\n| > | \"owned_by\": [ |\\n| > | \"DEVU-12345\" |\\n| > | ], |\\n| > | \"resource\": {}, |\\n| > | \"title\": \"string\" |\\n| > | }\\' |\\n```\\n\\n[Try it](/api-reference/articles/create-article?explorer=true)\\n\\n201Created\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"article\": { |\\n| 3 | \"id\": \"string\", |\\n| 4 | \"owned_by\": [ |\\n| 5 | { |\\n| 6 | \"display_id\": \"string\", |\\n| 7 | \"id\": \"string\", |\\n| 8 | \"display_name\": \"string\", |\\n| 9 |", + "title": "Create Article | DevRev | Docs" }, { - "id": "ART-3892_KNOWLEDGE_NODE-4", - "text": "* [Blog](https://devrev.ai/blog)\\n * [Events](https://devrev.ai/events)\\n * [News](https://devrev.ai/blog?category=news)\\n * [Case Studies](https://devrev.ai/case-study)\\n * [Documentation](https://docs.devrev.ai/)\\n * [API Reference](https://docs.devrev.ai/api/)\\n * [The Book of DevRev](https://thebook.devrev.ai/)\\n * [Partner Program](https://devrev.ai/partners)\\n * [Startup Program](https://devrev.ai/startups)\\n\\nCompany\\n\\n * [About](https://devrev.ai/about)\\n *", - "title": "API Changelog \u2014 DevRev | Docs" + "id": "ART-1179_KNOWLEDGE_NODE-0", + "text": "b'List Artifacts | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[artifacts](/api-reference/artifacts/attachments)\\n\\nList Artifacts\\n==============\\n\\nCopy page\\n\\nGET\\n\\nhttps://api.devrev.ai/artifacts.list\\n\\nGET\\n\\n/artifacts.list\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl https://api.devrev.ai/artifacts.list \\\\ |\\n| > | -H \"Authorization: Bearer \" |\\n```\\n\\n[Try", + "title": "List Artifacts | DevRev | Docs" }, { - "id": "ART-3194_KNOWLEDGE_NODE-6", - "text": "[Documentation](https://docs.devrev.ai/)\\n * [API Reference](https://docs.devrev.ai/api/)\\n * [The Book of DevRev](https://thebook.devrev.ai/)\\n * [Partner Program](https://devrev.ai/partners)\\n * [Startup Program](https://devrev.ai/startups)\\n\\nCompany\\n\\n * [About](https://devrev.ai/about)\\n * [People](https://devrev.ai/people)\\n * [Careers](https://devrev.ai/careers)\\n * [Places](https://devrev.ai/places)\\n * [Invest](https://revd.devrev.ai/)\\n * [What Why", - "title": "API Changelog \u2014 DevRev | Docs" + "id": "ART-1177_KNOWLEDGE_NODE-0", + "text": "b'Get Artifact | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[artifacts](/api-reference/artifacts/attachments)\\n\\nGet Artifact\\n============\\n\\nCopy page\\n\\nGET\\n\\nhttps://api.devrev.ai/artifacts.get\\n\\nGET\\n\\n/artifacts.get\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl -G https://api.devrev.ai/artifacts.get \\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\ |\\n| > | -d id=ARTIFACT-12345", + "title": "Get Artifact | DevRev | Docs" }, { - "id": "ART-3193_KNOWLEDGE_NODE-6", - "text": "[Documentation](https://docs.devrev.ai/)\\n * [API Reference](https://docs.devrev.ai/api/)\\n * [The Book of DevRev](https://thebook.devrev.ai/)\\n * [Partner Program](https://devrev.ai/partners)\\n * [Startup Program](https://devrev.ai/startups)\\n\\nCompany\\n\\n * [About](https://devrev.ai/about)\\n * [People](https://devrev.ai/people)\\n * [Careers](https://devrev.ai/careers)\\n * [Places](https://devrev.ai/places)\\n * [Invest](https://revd.devrev.ai/)\\n * [What Why", - "title": "API Changes \u2014 DevRev | Docs" + "id": "ART-1364_KNOWLEDGE_NODE-5", + "text": "requested resource doesn\\xe2\\x80\\x99t exist. \\n`409`| `Conflict`| The attempted object creation conflicted with an existing object, for example, a group with the same name already exists. \\n \\nWas this page helpful?YesNo\\n\\n[Getting startedUp Next](/public/api-reference/getting-started)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n[Enterprise grade security to protect customer dataLearn more about", + "title": "Errors \u2014 DevRev | Docs" }, { - "id": "ART-1366_KNOWLEDGE_NODE-3", - "text": "covering the supported APIs are based on OpenAPI Specification 3.0. You can download the specs to use an OpenAPI 3.0-compliant tool to perform a variety of actions, including rendering them in UI and generating SDKs. Two [versions](/public/about/versioning) of the DevRev API are available: [public](/public) and [beta](/beta) (early access). Use the drop-down menu in the upper-left corner of this site to switch between versions.\\n\\nTo take action based on events from the DevRev platform,", - "title": "For Developers \u2014 DevRev | Docs" + "id": "ART-1617_KNOWLEDGE_NODE-5", + "text": "Next](/beta/api-reference/snap-ins/resources)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n'", + "title": "Get Service Account (POST) (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1175_KNOWLEDGE_NODE-0", - "text": "b'Getting started | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\nOn this page\\n\\n* [Prerequisites](/api-reference/getting-started#prerequisites)\\n* [Send your first API request](/api-reference/getting-started#send-your-first-api-request)\\n* [Making a GET request](/api-reference/getting-started#making-a-get-request)\\n* [Next steps](/api-reference/getting-started#next-steps)\\n\\n[API Reference](/api-reference/getting-started)\\n\\nGetting", - "title": "Getting started | DevRev | Docs" + "id": "ART-1246_KNOWLEDGE_NODE-0", + "text": "b'Get Work | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[works](/api-reference/works/tickets-and-issues)\\n\\nGet Work\\n========\\n\\nCopy page\\n\\nGET\\n\\nhttps://api.devrev.ai/works.get\\n\\nGET\\n\\n/works.get\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl -G https://api.devrev.ai/works.get \\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\ |\\n| > | -d id=ISS-12345 |\\n```\\n\\n[Try", + "title": "Get Work | DevRev | Docs" }, { - "id": "ART-4229_KNOWLEDGE_NODE-4", - "text": "[Events](https://devrev.ai/events)\\n * [News](https://devrev.ai/blog?category=news)\\n * [Case Studies](https://devrev.ai/case-study)\\n * [Documentation](https://docs.devrev.ai/)\\n * [API Reference](https://docs.devrev.ai/api/)\\n * [The Book of DevRev](https://thebook.devrev.ai/)\\n * [Partner Program](https://devrev.ai/partners)\\n * [Startup Program](https://devrev.ai/startups)\\n\\nCompany\\n\\n * [About](https://devrev.ai/about)\\n * [People](https://devrev.ai/people)\\n *", - "title": "API Changelog \u2014 DevRev | Docs" + "id": "ART-1619_KNOWLEDGE_NODE-1", + "text": "|\\n| > | -H \"Authorization: Bearer \" \\\\ |\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{ |\\n| > | \"id\": \"string\", |\\n| > | \"user\": \"string\" |\\n| > | }\\' |\\n```\\n\\n[Try it](/beta/api-reference/snap-ins/resources-post?explorer=true)\\n\\n200Successful\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"snap_in_version\": { |\\n| 3 | \"id\": \"string\", |\\n| 4 | \"display_id\": \"string\" |\\n| 5 | }, |\\n| 6 | \"event_sources\": {}, |\\n| 7 | \"inputs\": {}, |\\n| 8 | \"keyrings\": {} |\\n| 9 | }", + "title": "Resources Snap Ins (POST) | DevRev | Docs" }, { - "id": "ART-1980_KNOWLEDGE_NODE-29", - "text": "by customers through the Plug widget and customer portal.\\n\\nIn the Plug widget, articles are available in two places: the search bar and the Help section.\\n\\n**Search bar**\\n\\n![]()\\n\\n**Help section**\\n\\n![]()\\n\\nUsers can also view articles grouped into collections by visiting your help center hosted on your website. The visibility of collections and articles depends on the **Visible to** settings configured.\\n\\n[### Articles](/docs/product/articles)[###", - "title": "Knowledge Base | Computer for Support Teams | DevRev" + "id": "ART-3191_KNOWLEDGE_NODE-18", + "text": "[`/artifacts.versions.prepare`](/public/api-reference/artifacts/versions-prepare) - Prepare artifact versions\\n\\n### Links\\n\\n* [`/links.replace`](/public/api-reference/links/replace) - Replace links\\n\\n### Metric Trackers\\n\\n* [`/metric-trackers.get`](/public/api-reference/slas/metric-trackers-get-post) - Get metric tracker details\\n\\nModified Endpoints\\n------------------\\n\\n### Accounts\\n\\nAdded `tier` filter support to:\\n\\n*", + "title": "Changelog | DevRev | Docs" }, { - "id": "ART-3194_KNOWLEDGE_NODE-10", - "text": "demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources __\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n'", - "title": "API Changelog \u2014 DevRev | Docs" + "id": "ART-1175_KNOWLEDGE_NODE-0", + "text": "b'Getting started | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\nOn this page\\n\\n* [Prerequisites](/api-reference/getting-started#prerequisites)\\n* [Send your first API request](/api-reference/getting-started#send-your-first-api-request)\\n* [Making a GET request](/api-reference/getting-started#making-a-get-request)\\n* [Next steps](/api-reference/getting-started#next-steps)\\n\\n[API Reference](/api-reference/getting-started)\\n\\nGetting", + "title": "Getting started | DevRev | Docs" }, { - "id": "ART-4980_KNOWLEDGE_NODE-7", - "text": "demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources __\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n'", - "title": "API Changelog \u2014 DevRev | Docs" + "id": "ART-15404_KNOWLEDGE_NODE-2", + "text": "\"resource\": { |\\n| 10 | \"artifacts\": [ |\\n| 11 | { |\\n| 12 | \"display_id\": \"string\", |\\n| 13 | \"id\": \"string\", |\\n| 14 | \"file\": { |\\n| 15 | \"type\": \"string\", |\\n| 16 | \"name\": \"string\", |\\n| 17 | \"size\": 1 |\\n| 18 | } |\\n| 19 | } |\\n| 20 | ], |\\n| 21 | \"url\": \"string\" |\\n| 22 | }, |\\n| 23 | \"title\": \"string\" |\\n| 24 | }, |\\n| 25 | \"target\": { |\\n| 26 | \"display_id\": \"string\", |\\n| 27 | \"id\": \"string\", |\\n| 28 | \"article_type\": \"article\", |\\n| 29 | \"resource\": { |\\n| 30 | \"artifacts\": [ |\\n| 31", + "title": "Replace Links | DevRev | Docs" } ] }, @@ -2244,54 +2244,54 @@ "query": "automations to fill repeated fields", "retrievals": [ { - "id": "ART-2016_KNOWLEDGE_NODE-9", - "text": "deduplication](/docs/automations/account-deduplication)\\n - [Airtable](/docs/automations/airtable)\\n - [Auto-link DevRev GitHub accounts](/docs/automations/auto-link-github-devrev)\\n - [Automatic customer reply](/docs/automations/auto-reply)\\n - [Auto parts to conversation](/docs/automations/auto-parts)\\n - [Automated part update](/docs/automations/automated-part-update)\\n - [Automate opportunities](/docs/automations/opportunity)\\n - [Bulk delete", - "title": "StageFlow automator | Automate | Snap-ins | DevRev" + "id": "ART-2858_KNOWLEDGE_NODE-0", + "text": "b'Custom field migration | Automate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CMD`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", + "title": "Custom field migration | Automate | Snap-ins | DevRev" }, { - "id": "ART-2858_KNOWLEDGE_NODE-9", - "text": "deduplication](/docs/automations/account-deduplication)\\n - [Airtable](/docs/automations/airtable)\\n - [Auto-link DevRev GitHub accounts](/docs/automations/auto-link-github-devrev)\\n - [Automatic customer reply](/docs/automations/auto-reply)\\n - [Auto parts to conversation](/docs/automations/auto-parts)\\n - [Automated part update](/docs/automations/automated-part-update)\\n - [Automate opportunities](/docs/automations/opportunity)\\n - [Bulk delete", - "title": "Custom field migration | Automate | Snap-ins | DevRev" + "id": "ART-6175_KNOWLEDGE_NODE-24", + "text": "[Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[Airtable](/docs/automations/airtable)\\n\\nAirtable\\n========\\n\\nThe **Airtable** snap-in automates lead intake from Airtable form submissions by mapping responses to DevRev contacts, accounts, and custom objects. It supports field mapping, duplicate detection, tagging, and ownership assignment using custom configurations. Submissions are processed in real time, enabling seamless CRM integration and streamlined data", + "title": "Airtable | Automate | Snap-ins | DevRev" }, { - "id": "ART-2016_KNOWLEDGE_NODE-15", - "text": "[Custom field migration](/docs/automations/custom-field-migration)\\n - [Slack scraper](/docs/automations/slack-scraper)\\n - [Slack Broadcaster](/docs/automations/slack-broadcaster)\\n - [Reported by enricher](/docs/automations/ticket-reported-by)\\n - [Ticket approval workflow](/docs/automations/ticket-approval-workflow)\\n - [Ticket linked issues comment sync](/docs/automations/ticket-linked-issues-comment-sync)\\n - [Slack message agent](/docs/automations/slack-message-agent)\\n", - "title": "StageFlow automator | Automate | Snap-ins | DevRev" + "id": "ART-1978_KNOWLEDGE_NODE-9", + "text": "deduplication](/docs/automations/account-deduplication)\\n - [Airtable](/docs/automations/airtable)\\n - [Auto-link DevRev GitHub accounts](/docs/automations/auto-link-github-devrev)\\n - [Automatic customer reply](/docs/automations/auto-reply)\\n - [Auto parts to conversation](/docs/automations/auto-parts)\\n - [Automated part update](/docs/automations/automated-part-update)\\n - [Automate opportunities](/docs/automations/opportunity)\\n - [Bulk delete", + "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-2016_KNOWLEDGE_NODE-10", - "text": "data](/docs/automations/bulk-delete)\\n - [Bulk work item uploader](/docs/automations/bulk-upload)\\n - [Commands surface expander](/docs/automations/commands-surface-expander)\\n - [Convergence](/docs/automations/converge)\\n - [Conversation reminder](/docs/automations/conversation-reminder)\\n - [CSAT on conversation](/docs/automations/csat-conv)\\n - [CSAT on ticket](/docs/automations/csat-tickets)\\n - [CSV work item uploader](/docs/automations/csv-work-item-uploader)\\n -", - "title": "StageFlow automator | Automate | Snap-ins | DevRev" + "id": "ART-2007_KNOWLEDGE_NODE-24", + "text": "[Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[Automate opportunities](/docs/automations/opportunity)\\n\\nAutomate opportunities\\n======================\\n\\nAutomate opportunities snap-in helps you automate the following features on opportunities to eliminate updating the fields manually and to enhance data consistency:\\n\\n* Auto-fills the forecast categories on the opportunities based on status updates. Enable this feature to keep the **Forecast Category** field on opportunities updated", + "title": "Automate opportunities | Automate | Snap-ins | DevRev" }, { - "id": "ART-2006_KNOWLEDGE_NODE-10", - "text": "data](/docs/automations/bulk-delete)\\n - [Bulk work item uploader](/docs/automations/bulk-upload)\\n - [Commands surface expander](/docs/automations/commands-surface-expander)\\n - [Convergence](/docs/automations/converge)\\n - [Conversation reminder](/docs/automations/conversation-reminder)\\n - [CSAT on conversation](/docs/automations/csat-conv)\\n - [CSAT on ticket](/docs/automations/csat-tickets)\\n - [CSV work item uploader](/docs/automations/csv-work-item-uploader)\\n -", - "title": "Automatic customer reply | Automate | Snap-ins | DevRev" + "id": "ART-3208_KNOWLEDGE_NODE-9", + "text": "deduplication](/docs/automations/account-deduplication)\\n - [Airtable](/docs/automations/airtable)\\n - [Auto-link DevRev GitHub accounts](/docs/automations/auto-link-github-devrev)\\n - [Automatic customer reply](/docs/automations/auto-reply)\\n - [Auto parts to conversation](/docs/automations/auto-parts)\\n - [Automated part update](/docs/automations/automated-part-update)\\n - [Automate opportunities](/docs/automations/opportunity)\\n - [Bulk delete", + "title": "DevRev AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-2006_KNOWLEDGE_NODE-15", - "text": "[Custom field migration](/docs/automations/custom-field-migration)\\n - [Slack scraper](/docs/automations/slack-scraper)\\n - [Slack Broadcaster](/docs/automations/slack-broadcaster)\\n - [Reported by enricher](/docs/automations/ticket-reported-by)\\n - [Ticket approval workflow](/docs/automations/ticket-approval-workflow)\\n - [Ticket linked issues comment sync](/docs/automations/ticket-linked-issues-comment-sync)\\n - [Slack message agent](/docs/automations/slack-message-agent)\\n", - "title": "Automatic customer reply | Automate | Snap-ins | DevRev" + "id": "ART-2007_KNOWLEDGE_NODE-25", + "text": "in sync with their current stage, as per the stage to forecast category mapping configured in the automation.\\n* Auto-fills the **Probability** field on opportunities based on their current stage. Enable this feature to auto-update opportunity probabilities based on the stage to probability mapping configured in the automation.\\n\\nInstallation\\n------------\\n\\n1. In DevRev, go to **Settings** > **Snap-ins** and click **Explore Marketplace** in the top-right corner.\\n2. In the DevRev", + "title": "Automate opportunities | Automate | Snap-ins | DevRev" }, { - "id": "ART-2858_KNOWLEDGE_NODE-10", - "text": "data](/docs/automations/bulk-delete)\\n - [Bulk work item uploader](/docs/automations/bulk-upload)\\n - [Commands surface expander](/docs/automations/commands-surface-expander)\\n - [Convergence](/docs/automations/converge)\\n - [Conversation reminder](/docs/automations/conversation-reminder)\\n - [CSAT on conversation](/docs/automations/csat-conv)\\n - [CSAT on ticket](/docs/automations/csat-tickets)\\n - [CSV work item uploader](/docs/automations/csv-work-item-uploader)\\n -", - "title": "Custom field migration | Automate | Snap-ins | DevRev" + "id": "ART-2007_KNOWLEDGE_NODE-26", + "text": "marketplace, find **Automate opportunities** and click **Install**.\\n\\nConfiguration\\n-------------\\n\\n1. To configure the snap-in, type /AutomateOpportunityConfig in the **Discussions** tab of the snap-in.\\n\\n![]()\\n\\n1. Fill the required fields and click **Submit**.\\n\\n[PreviousAutomated part update](/docs/automations/automated-part-update)[NextBulk delete data](/docs/automations/bulk-delete)\\n\\n#### On this page\\n\\n* [Installation](#installation)\\n*", + "title": "Automate opportunities | Automate | Snap-ins | DevRev" }, { - "id": "ART-2010_KNOWLEDGE_NODE-9", - "text": "deduplication](/docs/automations/account-deduplication)\\n - [Airtable](/docs/automations/airtable)\\n - [Auto-link DevRev GitHub accounts](/docs/automations/auto-link-github-devrev)\\n - [Automatic customer reply](/docs/automations/auto-reply)\\n - [Auto parts to conversation](/docs/automations/auto-parts)\\n - [Automated part update](/docs/automations/automated-part-update)\\n - [Automate opportunities](/docs/automations/opportunity)\\n - [Bulk delete", - "title": "Bulk work item uploader | Automate | Snap-ins | DevRev" + "id": "ART-1999_KNOWLEDGE_NODE-9", + "text": "deduplication](/docs/automations/account-deduplication)\\n - [Airtable](/docs/automations/airtable)\\n - [Auto-link DevRev GitHub accounts](/docs/automations/auto-link-github-devrev)\\n - [Automatic customer reply](/docs/automations/auto-reply)\\n - [Auto parts to conversation](/docs/automations/auto-parts)\\n - [Automated part update](/docs/automations/automated-part-update)\\n - [Automate opportunities](/docs/automations/opportunity)\\n - [Bulk delete", + "title": "Opportunities | Computer for Growth Teams | DevRev" }, { - "id": "ART-2003_KNOWLEDGE_NODE-24", - "text": "deduplication](/docs/automations/account-deduplication)[### Airtable](/docs/automations/airtable)[### Auto-link DevRev GitHub accounts](/docs/automations/auto-link-github-devrev)[### Automatic customer reply](/docs/automations/auto-reply)[### Auto parts to conversation](/docs/automations/auto-parts)[### Automated part update](/docs/automations/automated-part-update)[### Automate opportunities](/docs/automations/opportunity)[### Bulk delete data](/docs/automations/bulk-delete)[### Bulk work item", - "title": "Automate | Snap-ins | DevRev" + "id": "ART-3184_KNOWLEDGE_NODE-1", + "text": "automation\\n==========================================================================\\n\\n5 min read\\n\\nLast Updated \\xc2\\xa0Sep 29, 2025\\n\\n![]()\\n\\n![]()\\n\\n![]()\\n\\nCompany\\n\\nLuxCreo\\n\\nEmployees\\n\\n51-200\\n\\nFounded\\n\\n2017\\n\\nHeadquarters\\n\\nChicago, Illinois\\n\\nIndustry\\n\\nHealthcare & Life Sciences (for dental/medical 3D printing)\\n\\n### The company\\n\\nLuxCreo is leading the healthcare industry with its advanced 3D printing technology, creating personalized medical and dental solutions", + "title": "LuxCreo boosts operational efficiency and agility with DevRev" }, { - "id": "ART-2007_KNOWLEDGE_NODE-15", - "text": "[Custom field migration](/docs/automations/custom-field-migration)\\n - [Slack scraper](/docs/automations/slack-scraper)\\n - [Slack Broadcaster](/docs/automations/slack-broadcaster)\\n - [Reported by enricher](/docs/automations/ticket-reported-by)\\n - [Ticket approval workflow](/docs/automations/ticket-approval-workflow)\\n - [Ticket linked issues comment sync](/docs/automations/ticket-linked-issues-comment-sync)\\n - [Slack message agent](/docs/automations/slack-message-agent)\\n", - "title": "Automate opportunities | Automate | Snap-ins | DevRev" + "id": "ART-2663_KNOWLEDGE_NODE-9", + "text": "deduplication](/docs/automations/account-deduplication)\\n - [Airtable](/docs/automations/airtable)\\n - [Auto-link DevRev GitHub accounts](/docs/automations/auto-link-github-devrev)\\n - [Automatic customer reply](/docs/automations/auto-reply)\\n - [Auto parts to conversation](/docs/automations/auto-parts)\\n - [Automated part update](/docs/automations/automated-part-update)\\n - [Automate opportunities](/docs/automations/opportunity)\\n - [Bulk delete", + "title": "GitBook AirSync | AirSync | Snap-ins | DevRev" } ] }, @@ -2300,54 +2300,54 @@ "query": "action to reopen ticket in workflow", "retrievals": [ { - "id": "ART-1961_KNOWLEDGE_NODE-37", - "text": "\\n{{Ticket\\xc2\\xa0Created\\xc2\\xa0>\\xc2\\xa0Output\\xc2\\xa0>\\xc2\\xa0Reported\\xc2\\xa0By\\xc2\\xa0>\\xc2\\xa0Rev\\xc2\\xa0Org\\xc2\\xa0>\\xc2\\xa0Display\\xc2\\xa0Name}}.\\xe2\\x80\\x9d\\n\\n\\n\\nDelay\\n\\n\\n\\nDuration: 2 minutes\\n\\n\\n\\nIf-else\\n\\n\\n\\nAttribute:\\xc2\\xa0Ticket\\xc2\\xa0Created/Output\\xc2\\xa0>\\xc2\\xa0Applies\\xc2\\xa0to\\xc2\\xa0part\\xc2\\xa0>\\xc2\\xa0Display\\xc2\\xa0ID \\nOperator: Equals \\nOperand: CAPL-18\\n\\n\\n\\nTicket \\ncreated\\n\\n\\n\\nEnd\\n```\\n\\n[### Workflow action", - "title": "Workflows | Computer by DevRev | DevRev" + "id": "ART-16803_KNOWLEDGE_NODE-26", + "text": "Tickets\\n* Meetings\\n* Objects linked to issues\\n* Users\\n\\nTo configure a workspace object loop:\\n\\n1. On the **workflow canvas**, add an action step named **Loop for [Object]**, where [Object] is the entity you want to iterate over.\\n2. Apply **filter conditions** to refine the set of objects included in the loop and perform operations on them.\\n\\nAll **actions** inside the loop execute once per object that satisfies the filter conditions.\\n\\n### For Each\\n\\nThe **For Each** loop iterates", + "title": "Workflow nodes | Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-2012_KNOWLEDGE_NODE-28", - "text": "say \\xe2\\x80\\x9cI would like to add a terminal stage on my tickets\\xe2\\x80\\x9d and we will get it done.\\n\\n * If no terminal stage is set, tickets will reopen on new comments from customers if **Reopen Closed Tickets on customer message** is enabled in the [convergence snap-in](./converge). The tickets move to the _In Progress_ state by default.\\n\\n * If you connected your support email address with DevRev, it is recommended that you enable the **Allow automations to send email** in your", - "title": "Follow-up ticket | Automate | Snap-ins | DevRev" + "id": "ART-1275_KNOWLEDGE_NODE-2", + "text": "work item is created.\\nThis tutorial makes the following changes to the snap-in:\\n\\n1. Update the trigger condition to run every 10 minutes instead of work\\n creation.\\n2. Create a ticket whenever the snap-in is triggered.\\n\\nEnsure that you have at least one [part](https://docs.devrev.ai/product/parts#product-or-service) in your organization since every\\nticket must be linked to a part and have an owner.\\n\\nSince a DevRev ticket is created whenever the function is triggered,\\nDevRev APIs", + "title": "Using a snap-in to perform a DevRev action | DevRev | Docs" }, { - "id": "ART-1961_KNOWLEDGE_NODE-35", - "text": "or one from a previous node.\\n8. Click **Deploy**.\\n9. If you need to modify the workflow after is has been deployed, click **Pause**, edit the workflow, then click **Deploy** to reactivate it.\\n\\nWorkflow example: Ticket auto-response\\n--------------------------------------\\n\\n```\\nControl\\n\\n\\n\\nIf true\\n\\n\\n\\nAction\\n\\n\\n\\nAction\\n\\n\\n\\nIf false\\n\\n\\n\\nAdd comment\\n\\n\\n\\nObject:\\xc2\\xa0Ticket\\xc2\\xa0Created\\xc2\\xa0>\\xc2\\xa0Output\\xc2\\xa0>\\xc2\\xa0ID \\nVisibility: External \\nBody:", - "title": "Workflows | Computer by DevRev | DevRev" + "id": "ART-2886_KNOWLEDGE_NODE-1", + "text": "workflows\\n--------------------------------------------------------------------------------------\\n\\n* 30% reduction in mean time to resolution\\n* 29% faster ticket closure time\\n* Unified collaboration between L1 and L2 support teams\\n\\n[Read Case Study](/case-study/phenom)\\n\\n![]()\\n\\nHIGHLIGHTS\\n\\nHow Bolt connected customer, product, and engineering for smooth checkout\\n-------------------------------------------------------------------------\\n\\n* 40% faster ticket resolution\\n* 35% faster", + "title": "Case Study Library | DevRev" }, { - "id": "ART-12390_KNOWLEDGE_NODE-29", - "text": "Ticket | Creates a new ticket in DevRev. | * Ticket details like title, body, applies\\\\_to\\\\_part, etc. * subtype: (Optional) Ticket subtype * apps: (Optional) Related apps * app\\\\_custom\\\\_fields: (Optional) Custom fields | Created ticket object |\\n| Convert Conversation To Ticket | Converts a conversation to a ticket. | * conversation\\\\_id: ID of the conversation to convert | ticket\\\\_id: ID of the created ticket |\\n\\nObject retrieval\\n----------------\\n\\n| Operation | Description | Input", - "title": "Workflow action library | Workflows | Computer by DevRev | DevRev" + "id": "ART-1275_KNOWLEDGE_NODE-18", + "text": "= `Ticket created at ${date.toLocaleString()}`; |\\n| 14 | const ticketBody = `This ticket was created by a snap-in at ${date.toLocaleString()}`; |\\n| 15 | |\\n| 16 | const response = await devrevSDK.worksCreate({ |\\n| 17 | title: ticketName, |\\n| 18 | body: ticketBody, |\\n| 19 | // The ticket is created in the PROD-1 part. Rename this to match your part. |\\n| 20 | applies_to_part: \"PROD-1\", |\\n| 21 | // The ticket is owned by the DEVU-1 user. Rename this to match the required user. |\\n| 22 |", + "title": "Using a snap-in to perform a DevRev action | DevRev | Docs" }, { - "id": "ART-2012_KNOWLEDGE_NODE-25", - "text": "following stages under the _Closed_ state: _Resolved_ , _Archived_ , _Accepted_ , _Canceled_. _Archived_ is the terminal stage. Now if a customer sends a new email or adds a new comment on the archived ticket from the customer portal, the archived ticket remains archived and a follow-up ticket is created. A message is added to the archived ticket automatically based on your configuration. The follow-up ticket will have the reference of the archived ticket in the first message so that your", - "title": "Follow-up ticket | Automate | Snap-ins | DevRev" + "id": "ART-1961_KNOWLEDGE_NODE-35", + "text": "or one from a previous node.\\n8. Click **Deploy**.\\n9. If you need to modify the workflow after is has been deployed, click **Pause**, edit the workflow, then click **Deploy** to reactivate it.\\n\\nWorkflow example: Ticket auto-response\\n--------------------------------------\\n\\n```\\nControl\\n\\n\\n\\nIf true\\n\\n\\n\\nAction\\n\\n\\n\\nAction\\n\\n\\n\\nIf false\\n\\n\\n\\nAdd comment\\n\\n\\n\\nObject:\\xc2\\xa0Ticket\\xc2\\xa0Created\\xc2\\xa0>\\xc2\\xa0Output\\xc2\\xa0>\\xc2\\xa0ID \\nVisibility: External \\nBody:", + "title": "Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-48", - "text": "engineer can directly close and cancel such tickets.\\n* *Accepted* (A)\\n\\n The ticket requires a new feature development on the platform for resolution. However, there is no active work on the ticket but the feature addition required to meet the ticket will be done in the future. This stage is added to ensure that feature requests do not linger in the APA queue and to ensure that the right features are prioritized during roadmap planning.\\n* *Resolved* (R)\\n\\n The goal target stage for", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1827_KNOWLEDGE_NODE-456", + "text": "completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the provided types.\\nAllowed values: issue opportunity task ticket\\nResponse.\\n\\nThis endpoint returns an object.\\nworks list of objects\\nThe resulting collection of work items.\\nShow 4 variants\\nAPI Reference works Export", + "title": "Update \u2014 DevRev | Docs" }, { - "id": "ART-2012_KNOWLEDGE_NODE-24", - "text": "customer comments on permanently closed tickets. It allows you to configure the time after which a ticket stage should be marked as closed and creates a new follow-up ticket along with all the attachments and a custom message to let the customers know that the ticket is permanently closed automatically if required.\\n\\nFor more information, refer to the [Follow-up ticket snap-in](https://marketplace.devrev.ai/followup?) on the DevRev marketplace.\\n\\nLet\\xe2\\x80\\x99s say your ticket has the", - "title": "Follow-up ticket | Automate | Snap-ins | DevRev" + "id": "ART-12391_KNOWLEDGE_NODE-27", + "text": "workflow.\\n\\nNow, your workflow runs whenever a conversation or a ticket gets created and it\\nassigns it to an AI agent, which handles the conversation. No brittle rules.\\n\\nFind below a detailed explanation of all the fields needed to configure in the\\n\"Talk to Agent\" Step\\n\\n| Parameter | Type | Description |\\n| --- | --- | --- |\\n| agent | String | ID of the AI agent to use. Use the dropdown to select one. |\\n| object | String | ID of the conversation or ticket where the agent operate.s |\\n|", + "title": "Conversational workflows | Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-41", - "text": "progress\\n\\n\\n\\nOpen\\n\\n\\n\\nEscalate\\n\\n\\n\\nValidate the fix\\n\\n\\n\\nAdditional detail needed\\n\\n\\n\\nCustomer responds\\n\\n\\n\\nStart\\n\\n\\n\\nFeature request accepted\\n\\n\\n\\nResolved\\n\\n\\n\\nNot valid\\n\\n\\n\\nQueued\\n\\n\\n\\nWork in progress\\n\\n\\n\\nAwaiting product assist\\n\\n\\n\\nAwaiting development\\n\\n\\n\\nAwating customer response\\n\\n\\n\\nIn development\\n\\n\\n\\nAccepted\\n\\n\\n\\nResolved\\n\\n\\n\\nCanceled\\n```\\n\\n**Open**\\n\\n* *Queued* (Q)\\n The initial stage for all tickets. When a new ticket is created,", - "title": "Tickets | Computer for Support Teams | DevRev" - }, + "id": "ART-1242_KNOWLEDGE_NODE-0", + "text": "b'Tickets and issues | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[works](/api-reference/works/tickets-and-issues)\\n\\nTickets and issues\\n==================\\n\\nCopy page\\n\\n`works` endpoint\\n\\n\\xe2\\x84\\xb9\\xef\\xb8\\x8f A work item is a record of some work that has to be done for a customer (ticket) or for another builder or maintainer of a part (issue).\\n\\n\\xf0\\x9f\\x93\\x8c For more information", + "title": "Tickets and issues | DevRev | Docs" + }, { - "id": "ART-1961_KNOWLEDGE_NODE-31", - "text": "needed. For example, if the ticket is found to be spam, you can automatically add a comment to the ticket.\\n\\n**Suggest part**\\n\\nOften, your integrations create tickets or issues associated with a default part. The suggest part takes the ID of a ticket or issue and suggests a relevant part. You can use this to route your tickets or issues to the most appropriate part of the product. For example, when a ticket is created, you can find a relevant part and update the ticket with the suggested", - "title": "Workflows | Computer by DevRev | DevRev" + "id": "ART-1566_KNOWLEDGE_NODE-508", + "text": "values: breached completed paused running warning\\nticket.source_channel string Optional\\n\\nFilters for tickets with any of the provided source channels.\\n\\nticket.subtype string Optional\\n\\nFilters for tickets with any of the provided subtypes.\\n\\ntype enum Optional\\n\\nFilters for work of the provided types.\\n\\nAllowed values: issue opportunity task ticket\\nResponse.\\n\\nThis endpoint returns an object.\\nworks list of objects\\n\\nThe resulting collection of work items.\\n\\nShow 4 variants\\nAPI", + "title": "Transition (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-12390_KNOWLEDGE_NODE-39", - "text": "to update * subtype: (Optional) Ticket subtype * apps: (Optional) Related apps * app\\\\_custom\\\\_fields: (Optional) Custom fields * stage: (Optional) New stage | Updated ticket object |\\n\\nObject links\\n------------\\n\\n| Operation | Description | Input Parameters | Output |\\n| --- | --- | --- | --- |\\n| LinkConversationWithTicket | Creates a link between a conversation and a ticket. | * source: Conversation ID * link\\\\_type: Type of link (usually \"is\\\\_related\\\\_to\") * target: Ticket ID | Empty", - "title": "Workflow action library | Workflows | Computer by DevRev | DevRev" + "id": "ART-1961_KNOWLEDGE_NODE-30", + "text": "Action: Tasks that modify one or more objects in the system.\\n* Control: Conditional (if-then) blocks to determine which actions to take based on an operand (variable) and an operator.\\n* Delay: Wait to take an action.\\n\\nAI nodes\\n--------\\n\\nWe provide several native AI nodes out of the box to enhance your workflows.\\n\\n**Spam checker**\\n\\nThe spam checker takes the ID of a ticket or object and determines whether the ticket or conversation is spam. You can use this output in your workflows as", + "title": "Workflows | Computer by DevRev | DevRev" } ] }, @@ -2356,54 +2356,54 @@ "query": "assign issue owner to someone else using workflow", "retrievals": [ { - "id": "ART-1981_KNOWLEDGE_NODE-30", - "text": "conversation of which you are not the owner, let the owner know to respond. It's beneficial to retain the same point of contact for the duration of the conversation unless the owner refers some another user.\\n* If the conversation has a customer org that's unidentified or is new, add yourself (the customer experience engineer) as the owner of the ticket. Try to find the appropriate owner for the customer org and update the customer record accordingly.\\n* Change the stage of the conversation to", - "title": "Support best practices | Computer for Support Teams | DevRev" + "id": "ART-2048_KNOWLEDGE_NODE-27", + "text": "allows you to create parent/child relationships between issues, you cannot do the same with tickets. If your workflow requires manual creation of parent/child relationships in DevRev work items, you should use issues. If that is not a requirement and tickets are preferred for another reason, you can specify tickets as the target for ClickUp tasks.\\n\\nImport from ClickUp\\n-------------------\\n\\nFollow the steps below to import from ClickUp:\\n\\n1. In **Marketplace**, search for **ClickUp** and", + "title": "ClickUp AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-2737_KNOWLEDGE_NODE-24", - "text": "issue creator](/docs/automations/smart-issue-creator)\\n\\nSmart issue creator\\n===================\\n\\nThe Smart issue creator snap-in generates an issue from a ticket when /smart\\\\_issue\\\\_create is entered in the **Discussions** section of a ticket. Additionally, it updates the target close date to match the sprint end date whenever the sprint field is updated in an issue.\\n\\n![]()\\n\\nFor more information, refer to the\\n[Smart issue creator", + "id": "ART-2737_KNOWLEDGE_NODE-25", + "text": "snap-in](https://marketplace.devrev.ai/smart-issue-creator) on the DevRev marketplace.\\n\\nInstallation\\n------------\\n\\n1. In DevRev, go to **Settings** > **Snap-ins** and click **Explore Marketplace** in the top-right corner.\\n2. In the DevRev marketplace, find **Smart issue creator** and click **Install**.\\n3. In DevRev, **Snap-ins** > **Smart issue creator** > **Configure**.\\n4. Select the default owner, part, and tags. The default owner is assigned if no owner is selected from the snapkit.", "title": "Smart issue creator | Automate | Snap-ins | DevRev" }, { - "id": "ART-1992_KNOWLEDGE_NODE-31", - "text": "on the top right corner of your screen.\\n3. Add a title and description for your new issue. You can also attach files related to the issue in the description.\\n4. Select which part of the company/product this issue is related to.\\n\\n ![]()\\n5. Enter other attributes for the issue: change the assignee or accept the default; enter the severity; add any relevant tags to help employees identify any relevant traits of the issue; select the workspace that the issue pertains to.\\n6. If there are", - "title": "Issues | Computer for Builders | DevRev" + "id": "ART-15833_KNOWLEDGE_NODE-7", + "text": "better workflow management and creating a single source of truth for customer issues and development priorities.\\n\\n### Unified knowledge access\\n\\nThe implementation of Computer\\xe2\\x80\\x99s Memory has transformed how support agents access information. Centralized knowledge management enables agents to efficiently find answers, reducing resolution times and improving effectiveness. Rexera has already achieved a 55% deflection rate for internal agents, and is expanding to enterprise-wide search", + "title": "Rexera transforms real estate operations with knowledge-driven automation" }, { - "id": "ART-1992_KNOWLEDGE_NODE-29", - "text": "an issue, you can create a parent issue or a child issue. In an issue, select **Link Issues** in the **Issues** pane and select the type to add.\\n\\n![]()\\n\\n![]()\\n\\nWhile a parent issue can and usually does have multiple children, an issue can have only one parent. If you try to add a parent to an issue that already has one, it fails.\\n\\n[Tasks](./tasks) can be used to break an issue down into smaller pieces. Issues may involve a checklist of items to be handled that can be represented as", - "title": "Issues | Computer for Builders | DevRev" + "id": "ART-15716_KNOWLEDGE_NODE-32", + "text": "issues, or custom objects) is supported via the DevRev API.\\n\\nYou can use the API to create, update, or reorder stages in your workflow.\\n\\nThe endpoint and payload depend on the object type (ticket, issue, custom object, etc.).\\n\\nIf you share which object\\xe2\\x80\\x99s stages you want to customize, I can provide a sample API call or payload.Analytics and Reporting\\n\\n1. Creating Reports in DevRev\\n\\nYou can create reports in DevRev by building dashboards with widgets:\\n\\nGo to the Vista you", + "title": "Support queries related playbook" }, { - "id": "ART-2010_KNOWLEDGE_NODE-28", - "text": "user ID mentioned in a row doesn\\'t exist. Other work items aren\\'t impacted by this.\\n* The workspace ID is only used for associating tickets to the workspace and not issues.\\n* If the CSV lists multiple owners, only the first is set as the owner in the DevRev work item.\\n\\nHow to use bulk ticket uploader\\n-------------------------------\\n\\n1. In the **Discussion** tab of an account, ticket, part, or issue, enter /upload\\\\_workitems.\\n A **Bulk Uploader Bot** form appears.\\n2. From the", + "id": "ART-2010_KNOWLEDGE_NODE-26", + "text": "is not specified or empty, the work item is created as a ticket.\\n\\n![]()\\n\\nIf the CSV lists multiple owners, only the first is set as the owner in the DevRev ticket. Update the owner value to the email. In the Subtype column, write the name of the subtype instead of the display name. Default work item created is a ticket if not specified.\\n\\nFor detailed information about DevRev tickets, refer to [Tickets](https://docs.devrev.ai/product/tickets).\\n\\nFor detailed information about DevRev", "title": "Bulk work item uploader | Automate | Snap-ins | DevRev" }, { - "id": "ART-4022_KNOWLEDGE_NODE-27", - "text": "person who should be assigned as the owner or reporter of the work item. If the CSV lists multiple owners, only the first is set as the owner.\\n2. For Applies to Part, Stage, Account, RevOrg, Developed with Parts, and Tags columns, provide the part name, stage name, account name, workspace, part name, and tag name respectively as it appears in the UI (case-sensitive).\\n3. For Date and Timestamp related fields, provide the date and timestamp in the format YYYY/MM/DD.\\n4. The tnt\\\\_\\\\_ prefix in", - "title": "CSV work item uploader | Automate | Snap-ins | DevRev" + "id": "ART-1645_KNOWLEDGE_NODE-5", + "text": "organization\\xe2\\x80\\x99s unique workflows and reporting needs. By using the customization framework, you can extend these objects with custom fields that reflect your processes.\\n\\nThis section provides an overview of the customization framework and walks you through the process of tracking bugs in your organization. By the end of this section, you\\xe2\\x80\\x99ll be able to:\\n\\n 1. Customize DevRev objects such as _issue_ and _ticket_ by adding custom fields.\\n 2. Override default field", + "title": "Object customization (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-12394_KNOWLEDGE_NODE-13", - "text": "creator](/docs/automations/smart-issue-creator)\\n - [Set user preference for group](/docs/automations/set-user-preference)\\n - [SLA status change Slack notifier](/docs/automations/sla-change-notifier)\\n - [Slash commands](/docs/automations/slash-commands)\\n - [Spam Shield](/docs/automations/spam-shield)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field", - "title": "Workflow management | Workflows | Computer by DevRev | DevRev" + "id": "ART-15159_KNOWLEDGE_NODE-1", + "text": "Handles This Difference:\\n\\nDevRev creates a separate \"group\" field alongside the owner field\\n\\nIf a Salesforce owner is a group/queue, DevRev sets:\\n\\nThe group field = imported group\\n\\nThe owner field = service account (\"unassigned\")\\n\\nIf a Salesforce owner is a user, DevRev sets:\\n\\nThe owner field = the user\\n\\nSync Limitation:\\n\\nWhen syncing from DevRev to Salesforce, the system checks if:\\n\\nThe group field has changed AND\\n\\nThe owner is a service account\\n\\nOnly when both conditions", + "title": "Skipped Updates Due to Group Field Changes in Salesforce-DevRev Airdrop" }, { - "id": "ART-2737_KNOWLEDGE_NODE-25", - "text": "snap-in](https://marketplace.devrev.ai/smart-issue-creator) on the DevRev marketplace.\\n\\nInstallation\\n------------\\n\\n1. In DevRev, go to **Settings** > **Snap-ins** and click **Explore Marketplace** in the top-right corner.\\n2. In the DevRev marketplace, find **Smart issue creator** and click **Install**.\\n3. In DevRev, **Snap-ins** > **Smart issue creator** > **Configure**.\\n4. Select the default owner, part, and tags. The default owner is assigned if no owner is selected from the snapkit.", - "title": "Smart issue creator | Automate | Snap-ins | DevRev" + "id": "ART-1994_KNOWLEDGE_NODE-33", + "text": "sprint board and click **+Issue**.\\n Create a new issue, assign it to the part, sprint and add the owner.\\n\\n ![]()\\n\\n Sprints are not coordinated with stages.\\n3. Select issues that you would like to assign to **Sprint 1** or **Sprint 2** then click **Move** in the toolbar at the top of the screen and select the sprint.\\n\\n ![]()\\n4. Go to **Sprint 1** or **Sprint 2** to see that issues are displayed.\\n\\n ![]()\\n\\n The sprint is also displayed in (and can be changed from) the", + "title": "Sprint mode | Computer for Builders | DevRev" }, { - "id": "ART-1645_KNOWLEDGE_NODE-13", - "text": ">| }, \\n >| ] \\n >| }\\'\\n[/code] \\n \\n#####\\n\\nA bug has been identified in the production environment. The reporter creates a _bug_ -flavored _issue_ object to track it and assigns a relevant owner.\\n\\n[code]\\n\\n $| curl --location \\'https://api.devrev.ai/works.create\\' \\\\ \\n ---|--- \\n >| --header \\'Content-Type: application/json\\' \\\\ \\n >| --header \\'Authorization: Bearer \\' \\\\ \\n >| --data \\'{ \\n >| \"type\": \"issue\", \\n >|", - "title": "Object customization (Beta) \u2014 DevRev | Docs" + "id": "ART-1276_KNOWLEDGE_NODE-14", + "text": "initialized, the next step is to invoke the necessary\\nAPIs.\\n\\nAs a preliminary step, the required fields for creating a GitHub Issue, namely **title** and **body**, need to be extracted. These details are sourced from the issue.\\n\\nTo facilitate this, introduce a function defined for this specific purpose:\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | const getIssueDetails = async (workId: string, devrevSDK: any) => { |\\n| 2 | try { |\\n| 3 | // Get the issue details from the database using the workId", + "title": "Using a snap-in to perform an external action | DevRev | Docs" }, { - "id": "ART-1951_KNOWLEDGE_NODE-27", - "text": "work record can be assigned to others.\\n\\n![]()\\n\\nUse child issues and dependency issues for more heavy work assignments to others that are related to your work. Use tasks only for lightweight things like reviewing your work.\\n\\nYou cannot see the linked work item (issue, ticket, or opportunity) for a task and can navigate to it directly from there.\\n\\n[PreviousBoard view](/docs/product/board-view)[NextUpdates](/docs/product/updates)\\n\\n[Enterprise grade security to protect customer", - "title": "Tasks | Computer by DevRev | DevRev" + "id": "ART-16803_KNOWLEDGE_NODE-26", + "text": "Tickets\\n* Meetings\\n* Objects linked to issues\\n* Users\\n\\nTo configure a workspace object loop:\\n\\n1. On the **workflow canvas**, add an action step named **Loop for [Object]**, where [Object] is the entity you want to iterate over.\\n2. Apply **filter conditions** to refine the set of objects included in the loop and perform operations on them.\\n\\nAll **actions** inside the loop execute once per object that satisfies the filter conditions.\\n\\n### For Each\\n\\nThe **For Each** loop iterates", + "title": "Workflow nodes | Workflows | Computer by DevRev | DevRev" } ] }, @@ -2412,54 +2412,54 @@ "query": "add multiple email addresses to one contact through Grow interface", "retrievals": [ { - "id": "ART-2032_KNOWLEDGE_NODE-31", - "text": "creators. Enter multiple emails separated by commas.\\n * **Add non-existing customers**: Enable this to allow people in meetings who are not already customers to be added as customers.\\n\\nIf a meeting is scheduled with people who are neither part of the company nor existing customers, this option allows them to be added as customers.\\n\\n* **Track meetings from free email domains**: Enable this feature to capture meetings scheduled using non-work email addresses, such as gmail.com or", - "title": "Google Calendar | Integrate | Snap-ins | DevRev" + "id": "ART-6175_KNOWLEDGE_NODE-26", + "text": "contacts.\\n* **Link Account and Contact:**\\n Enable this option to link the account and contact to the custom object.\\n* **Account Description Fields:**\\n Enable this option to generate a rich description for accounts using values from multiple Airtable columns.\\n* **Contact Description Fields:**\\n Enable this option to generate a rich description for contacts using values from multiple Airtable columns.\\n* **Airtable Email Columns:**\\n Comma-separated list of names of the columns in", + "title": "Airtable | Automate | Snap-ins | DevRev" }, { - "id": "ART-2002_KNOWLEDGE_NODE-27", - "text": "Plug, email, and WhatsApp) can be matched to the right customer record.\\n\\n![]()\\n\\nYou can create a contact using DevRev's rev-users.create API. Follow the [Create accounts and contacts in DevRev](https://developer.devrev.ai/beta/guides/create-accounts-and-contacts-in-dev-rev) tutorial.\\n\\n### Bulk import customer records\\n\\nTo bulk import customer records, see [Account and contact import](/docs/product/account-contact-import).\\n\\nYou can also use [AirSync](https://docs.devrev.ai/import) to", - "title": "Contacts | Computer for Growth Teams | DevRev" + "id": "ART-15506_KNOWLEDGE_NODE-6", + "text": "[here](https://devrev.ai/docs/product/grow).\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/auth-tokens.create\\' \\\\ |\\n| > | --header \\'accept: application/json, text/plain, */*\\' \\\\ |\\n| > | --header \\'authorization: \\' \\\\ |\\n| > | --header \\'content-type: application/json\\' \\\\ |\\n| > | --data-raw \\'{ |\\n| > | \"rev_info\": { |\\n| > | \"user_ref\": \"example@devrev.ai\", |\\n| > | \"account_ref\": \"devrev.ai\", |\\n| > | \"workspace_ref\": \"devrev-dev\", |\\n| > |", + "title": "Identify your users with Plug | DevRev | Docs" }, { - "id": "ART-2002_KNOWLEDGE_NODE-28", - "text": "migrate your customer contacts from various platforms such as Hubspot, Salesforce, Zendesk, Jira, Linear, ServiceNow and more.\\n\\nCustomer records offer a place to do the following:\\n\\n* Find all conversations and tickets linked to a customer in one view.\\n* Have internal discussions related to a customer.\\n* Add description or notes about a customer.\\n* Assign an owner or tags to the customer.\\n\\n![]()\\n\\nApart from customer records that get automatically created from your [Plug", - "title": "Contacts | Computer for Growth Teams | DevRev" + "id": "ART-980_KNOWLEDGE_NODE-24", + "text": "Email integration\\n Support Portal\\n \\n \\n Operate App\\n Grow App\\n \\n Account Management\\n Contact Management\\n Engagement Tracking\\n \\n \\n Core Services\\n Marketplace\\n \\n Partnerships\\n Integrations\\n \\n Discord\\n Slack\\n DevRev CLI\\n KB Extraction\\n Github Airdrop\\n SFDC Airdrop\\n", + "title": "How to Think About (And Structure) Your Products" }, { - "id": "ART-2575_KNOWLEDGE_NODE-32", - "text": "required headers | Include headers for the required fields in the CSV. |\\n\\n[PreviousContacts](/docs/product/customers)[NextGrow snap-ins](/docs/product/snapins-grow)\\n\\n#### On this page\\n\\n* [Import data](#import-data)\\n* [CSV file requirements](#csv-file-requirements)\\n* [Mandatory fields](#mandatory-fields)\\n* [Array fields](#array-fields)\\n* [Tags](#tags)\\n* [Owner fields](#owner-fields)\\n* [Limitations](#limitations)\\n* [Troubleshooting](#troubleshooting)\\n\\n[Enterprise grade security to", - "title": "Account and contact import | Computer for Growth Teams | DevRev" + "id": "ART-1284_KNOWLEDGE_NODE-45", + "text": "12 | \"inReplyToId\": { |\\n| 13 | \"stringValues\": [ |\\n| 14 | \"jksdnfjnsflkdsfkjaabcdefghiuK8BA@mail.gmail.com\" |\\n| 15 | ] |\\n| 16 | }, |\\n| 17 | \"messageId\": \"ABCdEfghijklmnopqrstuvwZHL+AB_XYZg@mail.gmail.com\", |\\n| 18 | \"rawBodyartifactId\": \"don:core:dvrv-us-1:devo/802:artifact/296\", |\\n| 19 | \"referenceIds\": { |\\n| 20 | \"stringValues\": [ |\\n| 21 | \"abcdabc123123123@mail.gmail.com\" |\\n| 22 | ] |\\n| 23 | }, |\\n| 24 | \"artifactIds\": [ |\\n| 25 | \"don:core:dvrv-us-1:devo/802:artifact/1\" |\\n| 26 |", + "title": "Event sources | DevRev | Docs" }, { - "id": "ART-2575_KNOWLEDGE_NODE-8", - "text": "options](/docs/plug/session-recording)\\n - [Cross-domain session tracking](/docs/plug/cross-domain-session)\\n + [Nudges](/docs/plug/nudges)\\n* [Computer for Growth Teams](/docs/product/grow)\\n\\n + [Accounts](/docs/product/account)\\n + [Opportunities](/docs/product/opportunity)\\n + [Contacts](/docs/product/customers)\\n + [Account and contact import](/docs/product/account-contact-import)\\n + [Grow snap-ins](/docs/product/snapins-grow)\\n* [Snap-ins](/docs/snapins)\\n\\n +", - "title": "Account and contact import | Computer for Growth Teams | DevRev" + "id": "ART-2933_KNOWLEDGE_NODE-2", + "text": "[contacts](https://docs.devrev.ai/product/grow#-contact) which represents an individual user associated with the account of the organization. To create a contact, we also need to use the `rev-orgs.list` API with the `accounts` filter to get the default [workspace](https://docs.devrev.ai/product/grow#-workspace)(rev org) created with the account. We will be creating a contact under the workspace (`rev_org`) of the account as contacts (`rev_user`) cannot exist individually without being", + "title": "Account creation | DevRev | Docs" }, { - "id": "ART-2002_KNOWLEDGE_NODE-8", - "text": "tracking](/docs/plug/cross-domain-session)\\n + [Nudges](/docs/plug/nudges)\\n* [Computer for Growth Teams](/docs/product/grow)\\n\\n + [Accounts](/docs/product/account)\\n + [Opportunities](/docs/product/opportunity)\\n + [Contacts](/docs/product/customers)\\n + [Account and contact import](/docs/product/account-contact-import)\\n + [Grow snap-ins](/docs/product/snapins-grow)\\n* [Snap-ins](/docs/snapins)\\n\\n + [Automate](/docs/automate)\\n\\n - [Account", - "title": "Contacts | Computer for Growth Teams | DevRev" + "id": "ART-6177_KNOWLEDGE_NODE-26", + "text": "**Enable *Contact* Custom Field Mapping For Tracxn:** \\n Use the Tracxn-based *Contact* custom field mappings.\\n* **Enable *Contact* Custom Field Mapping for DevRev:** \\n Use static *Contact* custom field values.\\n* **Enable Tags For *Accounts*:** \\n Apply tags to created *Accounts*.\\n* **Enable Tags For *Contacts*:** \\n Apply tags to created *Contacts*.\\n* ***Account* Field Mapping:** \\n Map fields from Tracxn company objects to DevRev *Account* fields.\\n\\n **Format:**\\n\\n ```\\n", + "title": "Tracxn sync | Automate | Snap-ins | DevRev" }, { - "id": "ART-2575_KNOWLEDGE_NODE-17", - "text": "* [Email snap-in configuration](/docs/integrations/email-config)\\n - [Exotel](/docs/integrations/exotel)\\n - [Slack](/docs/integrations/slack)\\n - [WhatsApp](/docs/integrations/whatsapp)\\n - [GitHub](/docs/integrations/github)\\n - [GitLab](/docs/integrations/gitlab)\\n - [Harness](/docs/integrations/harness)\\n - [Marker.io](/docs/integrations/marker-io)\\n - [Instabug](/docs/integrations/instabug)\\n - [Qase](/docs/integrations/qase)\\n - [Tracxn", - "title": "Account and contact import | Computer for Growth Teams | DevRev" + "id": "ART-2045_KNOWLEDGE_NODE-51", + "text": "email: [a@example.com](mailto:a@example.com) account: **None** | email: [a@example.com](mailto:a@example.com) account: **None** | Existing contact used |\\n| email: [a@example.com](mailto:a@example.com) account: \"Example\" | email: [a@example.com](mailto:a@example.com) account: \"Example\" | Existing contact used |\\n| email: [a@example.com](mailto:a@example.com) account: \"Example\" | email: [a@example.com](mailto:a@example.com) account: **None** | New contact created |\\n| email:", + "title": "AirSync | Snap-ins | DevRev" }, { - "id": "ART-2032_KNOWLEDGE_NODE-28", - "text": "Emails**: Events containing any of these email addresses are completely excluded from sync. No meetings are created in DevRev for events where these emails appear as attendees, organizers, or creators. Enter multiple emails separated by commas.\\n * **Add non-existing customers**: Enable this to allow people in meeting that are not customer to be added as a customer.\\n\\nIf a meeting is scheduled with people who are neither part of the company nor customers, this option allows them to be added", - "title": "Google Calendar | Integrate | Snap-ins | DevRev" + "id": "ART-6175_KNOWLEDGE_NODE-27", + "text": "Airtable that contain email addresses. These are used to link or create contacts.\\n* **Airtable Phone Number Column:**\\n Provide the column name from Airtable that contains the contact\\'s phone number.\\n* **Airtable to Custom Object Mapping:**\\n Map fields from Airtable to your DevRev custom object fields.\\n **Format:**\\n\\n ```\\n ```\\n 1 { \"\": \"\" }\\n ```\\n ```\\n\\n **Explanation:**\\n Airtable Column Name: Column name exactly as it", + "title": "Airtable | Automate | Snap-ins | DevRev" }, { - "id": "ART-2002_KNOWLEDGE_NODE-26", - "text": "(for example Stripe as a customer of Slack) or a workspace in your software product (such as a Slack workspace).\\n\\nCreate a new customer contact\\n-----------------------------\\n\\n1. Go to **Contacts** > **+ Contact**.\\n2. Fill in the following fields as **Add Display Name, Description, Domains, Tags, Tiers**.\\n3. Click **Create**.\\n\\nWhile creating new customer records, be sure to specify the [**External Reference**](#external-reference) so customer information coming from other channels (like", - "title": "Contacts | Computer for Growth Teams | DevRev" + "id": "ART-6177_KNOWLEDGE_NODE-31", + "text": "**Format:**\\n\\n ```\\n ```\\n 1 { \"\": \"\" }\\n ```\\n ```\\n\\n **Explanation:** \\n Tracxn Field: Tracxn key exactly how it appears in the payload. \\n *Contact* Field API Name: Field API name in the *Contact* object\\n\\n **Example:**\\n\\n ```\\n ```\\n 1 { \"name\": \"display_name\", \"linkedin\": \"linkedin_profile\" }\\n ```\\n ```\\n* ***Contact* Custom Field Mapping From Tracxn:** \\n Map Tracxn fields to custom fields in DevRev\\xe2\\x80\\x99s *Contact*", + "title": "Tracxn sync | Automate | Snap-ins | DevRev" }, { - "id": "ART-1953_KNOWLEDGE_NODE-8", - "text": "tracking](/docs/plug/cross-domain-session)\\n + [Nudges](/docs/plug/nudges)\\n* [Computer for Growth Teams](/docs/product/grow)\\n\\n + [Accounts](/docs/product/account)\\n + [Opportunities](/docs/product/opportunity)\\n + [Contacts](/docs/product/customers)\\n + [Account and contact import](/docs/product/account-contact-import)\\n + [Grow snap-ins](/docs/product/snapins-grow)\\n* [Snap-ins](/docs/snapins)\\n\\n + [Automate](/docs/automate)\\n\\n - [Account", - "title": "Customer email notifications | Computer by DevRev | DevRev" + "id": "ART-1960_KNOWLEDGE_NODE-26", + "text": "address.\\n: Terms related to\\xc2\\xa0*account*:\\n\\n * *[customer](#customer)*\\n * *[workspace](#workspace)*\\n: Read more about\\xc2\\xa0[*account*](https://docs.devrev.ai/product/grow)\\n\\ncapability\\n\\n: A collection of features that enable a customer to achieve a use case.\\n: Capability is a unit of licensing and entitlement for the persona driving a particular use case. As a collection of features, capabilities are grouped into different buckets for tiered use cases (for example,", + "title": "Glossary | Computer by DevRev | DevRev" } ] }, @@ -2468,54 +2468,54 @@ "query": "list agents API for account", "retrievals": [ { - "id": "ART-1465_KNOWLEDGE_NODE-17", - "text": "Agents?](https://devrev.ai/what-are-ai-agents)\\n * [What is Agentic AI?](https://devrev.ai/what-is-agentic-ai)\\n * [What is Enterprise Search?](https://devrev.ai/what-is-enterprise-search)\\n * [What is Conversational AI?](https://devrev.ai/what-is-conversational-ai)\\n\\n[](https://devrev.ai)\\n\\n[](https://www.linkedin.com/company/devrev)[](https://medium.com/devrev)[](https://twitter.com/devrev)\\n\\n[System Status](https://devrev.ai/status)\\n\\n\\xc2\\xa9 2025 DevRev Inc.\\n\\n'", - "title": "List Accounts (POST) \u2014 DevRev | Docs" + "id": "ART-1258_KNOWLEDGE_NODE-0", + "text": "b'List Accounts | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[accounts](/api-reference/accounts/accounts)\\n\\nList Accounts\\n=============\\n\\nCopy page\\n\\nGET\\n\\nhttps://api.devrev.ai/accounts.list\\n\\nGET\\n\\n/accounts.list\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl https://api.devrev.ai/accounts.list \\\\ |\\n| > | -H \"Authorization: Bearer \" |\\n```\\n\\n[Try", + "title": "List Accounts | DevRev | Docs" }, { - "id": "ART-1464_KNOWLEDGE_NODE-13", - "text": "Agents?](https://devrev.ai/what-are-ai-agents)\\n * [What is Agentic AI?](https://devrev.ai/what-is-agentic-ai)\\n * [What is Enterprise Search?](https://devrev.ai/what-is-enterprise-search)\\n * [What is Conversational AI?](https://devrev.ai/what-is-conversational-ai)\\n\\n[](https://devrev.ai)\\n\\n[](https://www.linkedin.com/company/devrev)[](https://medium.com/devrev)[](https://twitter.com/devrev)\\n\\n[System Status](https://devrev.ai/status)\\n\\n\\xc2\\xa9 2025 DevRev Inc.\\n\\n'", - "title": "Get Account (POST) \u2014 DevRev | Docs" + "id": "ART-1453_KNOWLEDGE_NODE-0", + "text": "b'[](/public/api-reference/accounts/list)\\n\\nPublic\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources", + "title": "List Accounts \u2014 DevRev | Docs" }, { - "id": "ART-1465_KNOWLEDGE_NODE-1", - "text": "__\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[API Reference](/public/api-reference/getting-started)[Accounts](/public/api-reference/accounts/accounts)\\n\\n# List Accounts (POST)\\n\\nPOST\\n\\nhttps://api.devrev.ai/accounts.list\\n\\nTry it\\n\\nGets a list of accounts.\\n\\n### Request\\n\\nThis endpoint expects an object.\\n\\ncreated_bylist of stringsOptional\\n\\nFilters for accounts created by the specified", - "title": "List Accounts (POST) \u2014 DevRev | Docs" + "id": "ART-1259_KNOWLEDGE_NODE-0", + "text": "b'List Accounts (POST) | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[accounts](/api-reference/accounts/accounts)\\n\\nList Accounts (POST)\\n====================\\n\\nCopy page\\n\\nPOST\\n\\nhttps://api.devrev.ai/accounts.list\\n\\nPOST\\n\\n/accounts.list\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl -X POST https://api.devrev.ai/accounts.list \\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\ |\\n| > | -H", + "title": "List Accounts (POST) | DevRev | Docs" }, { - "id": "ART-1257_KNOWLEDGE_NODE-6", - "text": "Response\\n\\nThe returned account.\\n\\naccountobject\\n\\nShow 14 properties\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n404\\n\\nNot Found Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/accounts/get)[#### List Accounts\\n\\nNext](/api-reference/accounts/list)[Built", - "title": "Get Account (POST) | DevRev | Docs" + "id": "ART-1465_KNOWLEDGE_NODE-0", + "text": "b'[](/public/api-reference/accounts/list-post)\\n\\nPublic\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources", + "title": "List Accounts (POST) \u2014 DevRev | Docs" }, { - "id": "ART-1453_KNOWLEDGE_NODE-1", - "text": "__\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[API Reference](/public/api-reference/getting-started)[Accounts](/public/api-reference/accounts/accounts)\\n\\n# List Accounts\\n\\nGET\\n\\nhttps://api.devrev.ai/accounts.list\\n\\nTry it\\n\\nGets a list of accounts.\\n\\n### Query parameters\\n\\ncreated_bylist of stringsOptional\\n\\nFilters for accounts created by the specified", - "title": "List Accounts \u2014 DevRev | Docs" + "id": "ART-1259_KNOWLEDGE_NODE-1", + "text": "\"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{}\\' |\\n```\\n\\n[Try it](/api-reference/accounts/list-post?explorer=true)\\n\\n200Successful\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"accounts\": [ |\\n| 3 | { |\\n| 4 | \"id\": \"string\", |\\n| 5 | \"owned_by\": [ |\\n| 6 | { |\\n| 7 | \"display_id\": \"string\", |\\n| 8 | \"id\": \"string\", |\\n| 9 | \"display_name\": \"string\", |\\n| 10 | \"display_picture\": { |\\n| 11 | \"display_id\": \"string\", |\\n| 12 | \"id\": \"string\", |\\n| 13 | \"file\": { |\\n| 14 | \"type\":", + "title": "List Accounts (POST) | DevRev | Docs" }, { - "id": "ART-1564_KNOWLEDGE_NODE-9", - "text": "objects\\n\\nThe exported accounts.\\n\\nShow 18 properties\\nAPI Reference accounts Get.\\n\\nGET https://api.devrev.ai / accounts.get\\n\\nRetrieves an account\\xe2\\x80\\x99s information.\\n\\nQuery parameters.\\n\\nid string Required\\n\\nThe ID of the account to be retrieved.\\n\\nResponse.\\n\\nThis endpoint returns an object.\\naccount object\\nShow 18 properties\\nAPI Reference accounts Get Post.\\n\\nPOST https://api.devrev.ai / accounts.get\\n\\nRetrieves an account\\xe2\\x80\\x99s information.\\n\\nRequest.\\n\\nThis", - "title": "List (Beta) \u2014 DevRev | Docs" + "id": "ART-1306_KNOWLEDGE_NODE-19", + "text": "api.devrev.ai / accounts.list\\nGets a list of accounts.\\nRequest.\\n\\nThis endpoint expects an object.\\ncreated_by list of strings Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date object Optional\\nShow 2 properties\\ncursor string Optional\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name list of strings Optional\\nArray of display", + "title": "List \u2014 DevRev | Docs" }, { - "id": "ART-1259_KNOWLEDGE_NODE-0", - "text": "b'List Accounts (POST) | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[accounts](/api-reference/accounts/accounts)\\n\\nList Accounts (POST)\\n====================\\n\\nCopy page\\n\\nPOST\\n\\nhttps://api.devrev.ai/accounts.list\\n\\nPOST\\n\\n/accounts.list\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl -X POST https://api.devrev.ai/accounts.list \\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\ |\\n| > | -H", - "title": "List Accounts (POST) | DevRev | Docs" + "id": "ART-1305_KNOWLEDGE_NODE-21", + "text": "api.devrev.ai / accounts.list\\nGets a list of accounts.\\nRequest.\\n\\nThis endpoint expects an object.\\ncreated_by list of strings Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date object Optional\\nShow 2 properties\\ncursor string Optional\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name list of strings Optional\\nArray of display", + "title": "Get Post \u2014 DevRev | Docs" }, { - "id": "ART-1259_KNOWLEDGE_NODE-9", - "text": "criteria.\\n\\naccountslist of objects\\n\\nList containing all the accounts\\n\\nShow 14 properties\\n\\nnext\\\\_cursorstring or null`format: \"text\"`\\n\\nThe cursor used to iterate subsequent results in accordance to the\\nsort order. If not set, then no later elements exist.\\n\\nprev\\\\_cursorstring or null`format: \"text\"`\\n\\nThe cursor used to iterate preceding results in accordance to the\\nsort order. If not set, then no prior elements exist.\\n\\n### Errors\\n\\n400\\n\\nBad Request", - "title": "List Accounts (POST) | DevRev | Docs" + "id": "ART-2933_KNOWLEDGE_NODE-22", + "text": "created in **Accounts** and selecting the **Contacts** tab to view all the contacts created for the selected account.\\n\\n![]()\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/beta/changelog/2024/12/2)[#### Agents async API\\n\\nNext](/beta/guides/agents-async-api)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n![]()'", + "title": "Account creation | DevRev | Docs" }, { - "id": "ART-1590_KNOWLEDGE_NODE-9", - "text": "object.\\naccount object\\nShow 18 properties\\nAPI Reference accounts Get Post.\\n\\nPOST https:// api.devrev.ai / accounts.get\\nRetrieves an account\\'s information.\\nRequest.\\n\\nThis endpoint expects an object.\\nid string Required\\nThe ID of the account to be retrieved.\\nResponse.\\n\\nThis endpoint returns an object.\\naccount object\\nShow 18 properties\\nAPI Reference accounts List.\\n\\nGET https:// api.devrev.ai / accounts.list\\nGets a list of accounts.\\nQuery parameters.\\n\\ncreated_by string", - "title": "List \u2014 DevRev | Docs" + "id": "ART-13047_KNOWLEDGE_NODE-8", + "text": "67| \"foo\" \\n 68| ], \\n 69| \"user_agent\": \"foo\" \\n 70| } \\n 71| ], \\n 72| \"next_cursor\": \"foo\", \\n 73| \"prev_cursor\": \"foo\" \\n 74| }\\n[/code] \\n \\n[List Web Crawler Jobs (POST)Up Next](/public/api-reference/web-crawler-job/list-web-crawler-jobs-post)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n[Enterprise grade security to protect customer dataLearn more about", + "title": "List Web Crawler Jobs \u2014 DevRev | Docs" }, { - "id": "ART-1595_KNOWLEDGE_NODE-9", - "text": "object.\\naccount object\\nShow 18 properties\\nAPI Reference accounts Get Post.\\n\\nPOST https:// api.devrev.ai / accounts.get\\nRetrieves an account\\'s information.\\nRequest.\\n\\nThis endpoint expects an object.\\nid string Required\\nThe ID of the account to be retrieved.\\nResponse.\\n\\nThis endpoint returns an object.\\naccount object\\nShow 18 properties\\nAPI Reference accounts List.\\n\\nGET https:// api.devrev.ai / accounts.list\\nGets a list of accounts.\\nQuery parameters.\\n\\ncreated_by string", - "title": "List \u2014 DevRev | Docs" + "id": "ART-1305_KNOWLEDGE_NODE-14", + "text": ", 37 \" tier \" : \" tier \" 38 } 39 }\\nAPI Reference accounts List.\\n\\nGET https:// api.devrev.ai / accounts.list\\nGets a list of accounts.\\nQuery parameters.\\n\\ncreated_by string Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date.after datetime Optional\\nFilters for objects created after the provided timestamp (inclusive).\\ncreated_date.before datetime Optional\\nFilters for objects created before the provided timestamp (inclusive).\\ncursor string Optional\\nThe cursor", + "title": "Get Post \u2014 DevRev | Docs" } ] }, @@ -2524,54 +2524,54 @@ "query": "SLA timer not running for newly created tickets with L1 SLA tag and Test SLA Pilot", "retrievals": [ { - "id": "ART-1986_KNOWLEDGE_NODE-45", - "text": "selected on the ticket is not assigned any SLA.\\n\\n\\xc2\\xa0\\xc2\\xa0 \\xc2\\xa0 - Action: Check your SLA assignment rules or add the customer as an exception to any of your SLAs.\\n\\n![]()\\n\\nThe **SLA Name** is never empty if your organization has a default SLA.\\n\\n1. Verify policy conditions:\\n\\n\\xc2\\xa0\\xc2\\xa0 - If the **SLA Name** is populated but you still see no SLA metrics running on the ticket, the ticket does not satisfy the conditions of any policy within the SLA.\\n\\n\\xc2\\xa0\\xc2\\xa0", - "title": "Service-level agreement | Computer for Support Teams | DevRev" + "id": "ART-2017_KNOWLEDGE_NODE-25", + "text": "ticket\\'s owner and subscribers, when a ticket\\'s resolution time SLA changes into the *Warning* or *Breached* stage.\\n\\n![]()\\n\\nFor more information, refer to the\\n[SLA status change Slack notifier snap-in](/marketplace/sla-status-change-slack-notifier) on the DevRev\\nmarketplace.\\n\\nInstallation\\n------------\\n\\n1. Create a Slack app for your workspace in .\\n2. In App features, generate bot token in **OAuth & Permissions**.\\n3. Grant the app bot the following", + "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" }, { - "id": "ART-1986_KNOWLEDGE_NODE-44", - "text": "**Custom**: Filters all tickets that will breach by the selected date.\\n\\n![]()\\n\\nTroubleshooting: No SLA running on the ticket\\n---------------------------------------------\\n\\n### Issue\\n\\nYou have created and published an SLA, but no SLA is running on the ticket.\\n\\n### Solution\\n\\n1. Check the **SLA Name** attribute:\\n\\n\\xc2\\xa0\\xc2\\xa0 - Verify that the **SLA Name** attribute on the ticket is not empty.\\n\\n\\xc2\\xa0\\xc2\\xa0 - If the **SLA Name** is empty, it means the customer account", - "title": "Service-level agreement | Computer for Support Teams | DevRev" + "id": "ART-1483_KNOWLEDGE_NODE-24", + "text": "[here](https://github.com/devrev/snap-in-examples/tree/main/6-timer-ticket-creator)\\n\\nWas this page helpful?YesNo\\n\\n[Using a snap-in to perform an external actionUp Next](/public/snapin-development/tutorials/perform-external-action)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n[Enterprise grade security to protect customer dataLearn more about it.](https://devrev.ai/blog/soc-compliance)\\n\\nProduct\\n\\n *", + "title": "Using a snap-in to perform a DevRev action \u2014 DevRev | Docs" }, { - "id": "ART-2017_KNOWLEDGE_NODE-28", - "text": "you would like to tag on the message (the ticket owner gets tagged automatically); and the target Slack channel. The channel\\'s ID can be found by going to the channel details. Refer to the placeholder value on the input to see an example of how this looks.\\n2. Decide if notifications should go out even if the ticket has a target end date set. Set the toggle to the desired behavior.\\n3. Decide if a ticket should pass the check if it\\'s part is a descendant of the filter part. For example, if a", - "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" + "id": "ART-1275_KNOWLEDGE_NODE-12", + "text": "`src/functions/ticket_creator/index.test.ts`\\n\\n[4](/snapin-development/tutorials/timer-ticket-creator#event-received-by-the-snap-in-function)\\n\\n### Event received by the snap-in function\\n\\nIn the hello-world snap-in, the ID of the created work-item gets extracted from\\nthe input event as such.\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | console.info( |\\n| 2 | `The work ${events[0].payload.work_created.work.id} has been created.` |\\n| 3 | ); |\\n```\\n\\nThe schema for a event received by the snap-in", + "title": "Using a snap-in to perform a DevRev action | DevRev | Docs" }, { - "id": "ART-1986_KNOWLEDGE_NODE-35", - "text": "of schedule when they remain at the same stage, but time spent out of schedule isn't included in the calculation.\\n\\n![]()\\n\\nIf the customer account is updated after the ticket is created, all SLA metrics will be recalculated based on the updated customer account information. Any previous SLA breaches or achievements will be discarded, and new calculations will be applied according to the updated SLA.\\n\\nThe following table describes how each metric works for tickets and", - "title": "Service-level agreement | Computer for Support Teams | DevRev" + "id": "ART-1275_KNOWLEDGE_NODE-7", + "text": "account\\xe2\\x80\\x99s display name to better reflect the\\nsnap-in\\xe2\\x80\\x99s behavior.\\n\\nmanifest.yaml\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | version: \"2\" |\\n| 2 | |\\n| 3 | name: \"Timely Ticketer\" |\\n| 4 | description: \"Snap-in to create ticket every 10 minutes\" |\\n| 5 | |\\n| 6 | service_account: |\\n| 7 | display_name: Automatic Ticket Creator Bot |\\n```\\n\\nNext, update the `event_sources` section to use the `timer-events` event source.\\nThe `timer-events` source type takes a `config` of", + "title": "Using a snap-in to perform a DevRev action | DevRev | Docs" }, { - "id": "ART-15281_KNOWLEDGE_NODE-2", - "text": "| \"completed_in\": 1, |\\n| 16 | \"in_policy\": true, |\\n| 17 | \"is_out_of_schedule\": true, |\\n| 18 | \"next_schedule_transition\": \"2023-01-01T12:00:00.000Z\", |\\n| 19 | \"org_schedule\": { |\\n| 20 | \"id\": \"string\", |\\n| 21 | \"status\": \"archived\", |\\n| 22 | \"display_id\": \"string\", |\\n| 23 | \"name\": \"string\", |\\n| 24 | \"timezone\": \"string\", |\\n| 25 | \"valid_until\": \"2023-01-01T12:00:00.000Z\" |\\n| 26 | }, |\\n| 27 | \"remaining_time\": 1, |\\n| 28 | \"status\": \"string\", |\\n| 29 | \"target_time\":", - "title": "List SLA Trackers | DevRev | Docs" + "id": "ART-17231_KNOWLEDGE_NODE-153", + "text": "this object, which is used to track the SLA metrics. |\\n| `source_channel_v2` | reference\\xe2\\x86\\x92[#record:external\\\\_communication\\\\_channel] | | Source channel ID of the ticket |\\n| `stage` | enum | \\xe2\\x9c\\x94\\xef\\xb8\\x8e | Stage of the object |\\n| `tags` | reference (collection)\\xe2\\x86\\x92[#record:tag] | | Tags associated with the object |\\n| `target_close_date` | timestamp | | Timestamp when the work is expected to be complete |\\n| `title` | text | \\xe2\\x9c\\x94\\xef\\xb8\\x8e | Title", + "title": "Supported DevRev object types | DevRev | Docs" }, { - "id": "ART-1262_KNOWLEDGE_NODE-2", - "text": "| \"completed_in\": 1, |\\n| 15 | \"in_policy\": true, |\\n| 16 | \"is_out_of_schedule\": true, |\\n| 17 | \"next_schedule_transition\": \"2023-01-01T12:00:00.000Z\", |\\n| 18 | \"org_schedule\": { |\\n| 19 | \"id\": \"string\", |\\n| 20 | \"status\": \"archived\", |\\n| 21 | \"display_id\": \"string\", |\\n| 22 | \"name\": \"string\", |\\n| 23 | \"timezone\": \"string\", |\\n| 24 | \"valid_until\": \"2023-01-01T12:00:00.000Z\" |\\n| 25 | }, |\\n| 26 | \"remaining_time\": 1, |\\n| 27 | \"status\": \"string\", |\\n| 28 | \"target_time\":", - "title": "Get SLA Tracker | DevRev | Docs" + "id": "ART-15688_KNOWLEDGE_NODE-13", + "text": "group](/docs/automations/set-user-preference)\\n - [SLA status change Slack notifier](/docs/automations/sla-change-notifier)\\n - [Slash commands](/docs/automations/slash-commands)\\n - [Spam Shield](/docs/automations/spam-shield)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field migrator](/docs/automations/ticket-issue-field-migrator)\\n - [Ticket", + "title": "Effort logger | Automate | Snap-ins | DevRev" }, { - "id": "ART-1986_KNOWLEDGE_NODE-28", - "text": "*Conversation Policy*.\\n3. In the **New ticket policy** pane, under **Conditions**, select the ticket attributes values of **Tag**, **Part**, and **Severity**.\\n4. Under **Metrics**, enable or disable **First response**, **Next response**, and **Resolution time**.\\n5. Click **Publish**.\\n\\n![]()\\n\\nSLA metrics are only applied to tickets or conversations that meet the policy's conditions.\\n\\nPublishing an SLA\\n-----------------\\n\\nSLAs can be published once all policies are created. Published", - "title": "Service-level agreement | Computer for Support Teams | DevRev" + "id": "ART-1483_KNOWLEDGE_NODE-22", + "text": "27| } \\n 28| }; \\n 29| \\n 30| export default run;\\n[/code] \\n \\n[6](/public/snapin-development/tutorials/timer-ticket-creator#deploying-the-snap-in-to-your-organization)\\n\\n### Deploying the snap-in to your organization\\n\\nOnce satisfied with the code changes, move to the `code` folder, and run\\n\\n[code]\\n\\n $| npm install \\n ---|--- \\n >| \\n >| npm run build \\n >| \\n >| npm run package\\n[/code] \\n \\nThis builds and packages your snap-in and creates a", + "title": "Using a snap-in to perform a DevRev action \u2014 DevRev | Docs" }, { - "id": "ART-2632_KNOWLEDGE_NODE-7", - "text": "\"2023-01-01T12:00:00.000Z\", \\n 15| \"completed_in\": 42, \\n 16| \"in_policy\": true, \\n 17| \"is_out_of_schedule\": true, \\n 18| \"next_schedule_transition\": \"2023-01-01T12:00:00.000Z\", \\n 19| \"org_schedule\": { \\n 20| \"id\": \"foo\", \\n 21| \"status\": \"archived\", \\n 22| \"display_id\": \"foo\", \\n 23| \"name\": \"foo\", \\n 24| \"timezone\": \"foo\", \\n 25|", - "title": "List SLA Trackers (POST) \u2014 DevRev | Docs" + "id": "ART-4021_KNOWLEDGE_NODE-13", + "text": "group](/docs/automations/set-user-preference)\\n - [SLA status change Slack notifier](/docs/automations/sla-change-notifier)\\n - [Slash commands](/docs/automations/slash-commands)\\n - [Spam Shield](/docs/automations/spam-shield)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field migrator](/docs/automations/ticket-issue-field-migrator)\\n - [Ticket", + "title": "Slack scraper | Automate | Snap-ins | DevRev" }, { - "id": "ART-2017_KNOWLEDGE_NODE-25", - "text": "ticket\\'s owner and subscribers, when a ticket\\'s resolution time SLA changes into the *Warning* or *Breached* stage.\\n\\n![]()\\n\\nFor more information, refer to the\\n[SLA status change Slack notifier snap-in](/marketplace/sla-status-change-slack-notifier) on the DevRev\\nmarketplace.\\n\\nInstallation\\n------------\\n\\n1. Create a Slack app for your workspace in .\\n2. In App features, generate bot token in **OAuth & Permissions**.\\n3. Grant the app bot the following", - "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" + "id": "ART-6174_KNOWLEDGE_NODE-32", + "text": "handling**: Conversation and ticket SLAs operate independently. When converting:\\n\\n + The new ticket starts with its own response and resolution SLA timers\\n + All active SLA metrics on the original conversation are marked as completed\\n\\n[PreviousConversations](/docs/product/conversation)[NextTickets](/docs/product/tickets)\\n\\n#### On this page\\n\\n* [Conversation conversion process](#conversation-conversion-process)\\n* [Convert conversations to tickets](#convert-conversations-to-tickets)\\n*", + "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" }, { - "id": "ART-15280_KNOWLEDGE_NODE-2", - "text": "| \"breached_at\": \"2023-01-01T12:00:00.000Z\", |\\n| 14 | \"completed_at\": \"2023-01-01T12:00:00.000Z\", |\\n| 15 | \"completed_in\": 1, |\\n| 16 | \"in_policy\": true, |\\n| 17 | \"is_out_of_schedule\": true, |\\n| 18 | \"next_schedule_transition\": \"2023-01-01T12:00:00.000Z\", |\\n| 19 | \"org_schedule\": { |\\n| 20 | \"id\": \"string\", |\\n| 21 | \"status\": \"archived\", |\\n| 22 | \"display_id\": \"string\", |\\n| 23 | \"name\": \"string\", |\\n| 24 | \"timezone\": \"string\", |\\n| 25 | \"valid_until\": \"2023-01-01T12:00:00.000Z\" |\\n|", - "title": "List SLA Trackers (POST) | DevRev | Docs" + "id": "ART-3235_KNOWLEDGE_NODE-13", + "text": "group](/docs/automations/set-user-preference)\\n - [SLA status change Slack notifier](/docs/automations/sla-change-notifier)\\n - [Slash commands](/docs/automations/slash-commands)\\n - [Spam Shield](/docs/automations/spam-shield)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field migrator](/docs/automations/ticket-issue-field-migrator)\\n - [Ticket", + "title": "Reported by enricher | Automate | Snap-ins | DevRev" } ] }, @@ -2580,54 +2580,54 @@ "query": "how to find secondary ticket", "retrievals": [ { - "id": "ART-1979_KNOWLEDGE_NODE-54", - "text": "already raised in the primary ticket. Duplicate tickets often arise from customers submitting multiple requests through different channels (email, portal, Slack). All duplicate tickets become *immutable* after merging.\\n\\n**Primary ticket**\\n\\nA primary ticket is the main record that consolidates all relevant information from duplicate tickets. It serves as the primary source of communication for all merged duplicate tickets, ensuring that all customer interactions, updates, and resolutions are", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-15376_KNOWLEDGE_NODE-2", + "text": "tickets, parts\\netc. owned by the secondary Dev user will be transferred to the primary\\nDev user.\\n\\n### Headers\\n\\nAuthorizationstringRequired\\n\\nBearer authentication of the form `Bearer `, where token is your auth token.\\n\\n### Request\\n\\nThis endpoint expects an object.\\n\\nprimary\\\\_userstringRequired`format: \"id\"`\\n\\nThe unique ID of the primary user.\\n\\nsecondary\\\\_userstringRequired`format: \"id\"`\\n\\nThe unique ID of the secondary user.\\n\\n### Response\\n\\nResponse object for", + "title": "Merge Dev Users | DevRev | Docs" }, { - "id": "ART-1979_KNOWLEDGE_NODE-59", - "text": "duplicate tickets transfer to the primary ticket.\\n* The older messages and attachments on the duplicate ticket remains within the duplicate ticket post merge.\\n* Any new customer message on duplicate tickets post merge sync to the primary ticket.\\n* Duplicate tickets remain accessible through the **Linked Objects** section of the primary ticket.\\n* CSAT triggers only for the primary ticket resolution.\\n* Merge actions cannot be reversed, and merged tickets cannot be merged again.\\n\\nFollow up", + "id": "ART-1979_KNOWLEDGE_NODE-54", + "text": "already raised in the primary ticket. Duplicate tickets often arise from customers submitting multiple requests through different channels (email, portal, Slack). All duplicate tickets become *immutable* after merging.\\n\\n**Primary ticket**\\n\\nA primary ticket is the main record that consolidates all relevant information from duplicate tickets. It serves as the primary source of communication for all merged duplicate tickets, ensuring that all customer interactions, updates, and resolutions are", "title": "Tickets | Computer for Support Teams | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-57", - "text": "only when users configure the post merge stage in the ticket preference settings page.\\n\\n### Merge tickets\\n\\n1. Open the primary ticket and select the merge option from the side panel.\\n\\n ![]()\\n\\n The ticket from which you initiate the merge becomes the primary ticket.\\n2. In the modal window that appears, review the suggested duplicate tickets based on the pre-filled primary ticket title.\\n3. Select the appropriate duplicate tickets and confirm the merge action.\\n\\n There is no limit", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-15664_KNOWLEDGE_NODE-13", + "text": "\\n\\nYou may want to restrict links to specific subtypes of objects. For example, only allowing issues\\nof a particular subtype to be linked to tickets.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"name\": \"Link between social media issues and tickets\", |\\n| > | \"source_types\": [ |\\n| > | { |\\n|", + "title": "Links | DevRev | Docs" }, { - "id": "ART-1979_KNOWLEDGE_NODE-58", - "text": "on the number of tickets that can be merged.\\n4. Review the automatic communication sent to primary and duplicate ticket owners (configurable in ticket preferences).\\n\\n### Post-merge conditions\\n\\n* The primary ticket retains all key fields (description, part, group, owner, creator, priority, stage), and the SLA remains unchanged.\\n* Events are updated to reflect all merge actions.\\n* Subscribers and reporters from duplicate tickets are added to the primary ticket.\\n* Linked objects from", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1244_KNOWLEDGE_NODE-22", + "text": "tickets belonging to specific groups.\\n\\nticket.is\\\\_frozenbooleanOptional\\n\\nFilters for frozen tickets.\\n\\nticket.is\\\\_spambooleanOptional\\n\\nFilters for tickets that are spam.\\n\\nticket.needs\\\\_responsebooleanOptional\\n\\nFilters for tickets that need response.\\n\\nticket.rev\\\\_orglist of stringsOptional\\n\\nFilters for tickets that are associated with any of the provided Rev\\norganizations.\\n\\nticket.severitylist of enumsOptional\\n\\nFilters for tickets with any of the provided", + "title": "Export Works | DevRev | Docs" }, { - "id": "ART-1979_KNOWLEDGE_NODE-56", - "text": "reporters or no reporters.\\n* Active status: Only unclosed tickets can be selected as primary or duplicate tickets.\\n* Channel flexibility: Tickets from any channel can be merged if they share the same reporters.\\n\\n### Merge settings\\n\\nYou can configure the following options in the ticket preferences page:\\n\\n* Communication messages for duplicate and primary ticket owners\\n* Stage of duplicate tickets after merge\\n* Accounts to exclude from automated messages\\n\\n![]()\\n\\nMerge can be enabled", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1961_KNOWLEDGE_NODE-37", + "text": "\\n{{Ticket\\xc2\\xa0Created\\xc2\\xa0>\\xc2\\xa0Output\\xc2\\xa0>\\xc2\\xa0Reported\\xc2\\xa0By\\xc2\\xa0>\\xc2\\xa0Rev\\xc2\\xa0Org\\xc2\\xa0>\\xc2\\xa0Display\\xc2\\xa0Name}}.\\xe2\\x80\\x9d\\n\\n\\n\\nDelay\\n\\n\\n\\nDuration: 2 minutes\\n\\n\\n\\nIf-else\\n\\n\\n\\nAttribute:\\xc2\\xa0Ticket\\xc2\\xa0Created/Output\\xc2\\xa0>\\xc2\\xa0Applies\\xc2\\xa0to\\xc2\\xa0part\\xc2\\xa0>\\xc2\\xa0Display\\xc2\\xa0ID \\nOperator: Equals \\nOperand: CAPL-18\\n\\n\\n\\nTicket \\ncreated\\n\\n\\n\\nEnd\\n```\\n\\n[### Workflow action", + "title": "Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-39", - "text": "other tickets or issues that relate to this ticket, click **Link Records** and select the relevant items.\\n7. If you would like to immediately create another ticket, select **Create multiple**.\\n8. Click **Create**.\\n\\nIf a ticket is created from an existing conversation, then the ticket's title and description are populated automatically from the conversation.\\n\\n![]()\\n\\nYou can create a child issue by clicking **+ Link issue** > **Add a child issue**. You can link the other existing issue as", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1986_KNOWLEDGE_NODE-43", + "text": "tickets that have been in breach for more than one hour.\\n + **Over a day**: Filters all tickets that have been in breach for more than one day.\\n + **Custom**: Filters all tickets that have been in breach from a given date.\\n* **Will breach in**:\\n\\n + **Any**: Filters all tickets that are currently not in breach.\\n + **Over an hour**: Filters all tickets that have less than 1 hour left for breach.\\n + **Over a day**: Filters all tickets that have less than 1 day left for breach.\\n +", + "title": "Service-level agreement | Computer for Support Teams | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-60", - "text": "tickets\\n-----------------\\n\\nFollow up tickets allow support teams to seamlessly address unresolved issues, recurring problems, or additional concerns without losing context. By linking follow-up tickets to the original ticket(archived/immutable), teams can track ongoing issues more effectively, minimize duplicate work and enhance customer experience. A follow-up ticket is a new ticket that is created and linked when a customer responds in reference to an archived/immutable ticket. The", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1483_KNOWLEDGE_NODE-18", + "text": "the code\\n\\nUpdate the code in `src/functions/ticket_creator/index.ts` to reflect the behavior.\\n\\nFirstly, import the DevRev TypeScript SDK in the `index.ts` file\\n\\nindex.ts\\n\\n[code]\\n\\n 1| import {client, publicSDK} from \"@devrev/typescript-sdk\"; \\n ---|---\\n[/code] \\n \\nNext, update the `run` function in the hello-world example. Since the ticket gets created frequently, set some creation time in the title and the body. The example uses the part as `PROD-1` and keeps the owner as", + "title": "Using a snap-in to perform a DevRev action \u2014 DevRev | Docs" }, { - "id": "ART-1979_KNOWLEDGE_NODE-52", - "text": "don\\xe2\\x80\\x99t forget to give \\xf0\\x9f\\x91\\x8d on the suggestion if you like it or \\xf0\\x9f\\x91\\x8e to dislike it.\\n\\n![]()\\n\\nDuplicate ticket merging\\n------------------------\\n\\nDuplicate tickets in a support system pose a significant challenge by creating inefficiencies, increasing the workload for support agents, and negatively impacting user experience. These tickets often result from user frustration or misunderstandings of the resolution process, leading to confusion and disrupting", + "id": "ART-1979_KNOWLEDGE_NODE-59", + "text": "duplicate tickets transfer to the primary ticket.\\n* The older messages and attachments on the duplicate ticket remains within the duplicate ticket post merge.\\n* Any new customer message on duplicate tickets post merge sync to the primary ticket.\\n* Duplicate tickets remain accessible through the **Linked Objects** section of the primary ticket.\\n* CSAT triggers only for the primary ticket resolution.\\n* Merge actions cannot be reversed, and merged tickets cannot be merged again.\\n\\nFollow up", "title": "Tickets | Computer for Support Teams | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-64", - "text": "internal tickets.\\n\\nTo create an internal ticket, click the **Create Ticket** button. At the bottom of the ticket creation panel, click the dropdown menu on **Create external ticket** and select **Create internal ticket**.\\n\\nYou can convert an internal ticket to an external ticket by clicking **Convert to External** within the **Customer Messages** tab. Once a ticket is converted to external, it cannot be reverted back to internal.\\n\\n[PreviousConversation to ticket", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-15643_KNOWLEDGE_NODE-7", + "text": "tickets \\xe2\\x80\\x93 with your unstructured data, like docs and chats. This gives our AI the complete context that others are missing.\\n\\nIt's a really hard problem; we\\xe2\\x80\\x99ve already spent five years on it. Our competitors are only now realizing that they will need to do the same.\\n\\nSecond, our AI takes action. Our competitors offer passive, read-only AI that can find and summarize information. That\\xe2\\x80\\x99s impressive, but the work stops there. And that\\xe2\\x80\\x99s not", + "title": "DevRev Corp Narrative - for PLuG on website" }, { - "id": "ART-1979_KNOWLEDGE_NODE-61", - "text": "following scenarios can lead to the creation of follow up ticket:\\n\\n* Customers communicated on an archived/immutable ticket from any channel such as email.\\n* Customer communicated on a merged ticket and the primary ticket is also archived.\\n\\nAfter creation of a follow up ticket the customer messages will reflect only on the new followup ticket and the customer will continue to see response on the same thread in channels like email & slack. The user can continue responding on the new follow", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-15664_KNOWLEDGE_NODE-6", + "text": "you want to establish a parent-child relationship between tickets and a custom object\\ntype called \\xe2\\x80\\x9cCampaign\\xe2\\x80\\x9d. This relationship helps track which tickets are assigned to which campaigns.\\n\\nTo create this relationship, make an API call to create a link type:\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\'", + "title": "Links | DevRev | Docs" } ] }, @@ -2635,40 +2635,35 @@ "query_id": "05e8a3ee-fe67-4ece-b8c8-5088330b0864", "query": "converting conversations to tickets issue customer channel acme", "retrievals": [ - { - "id": "ART-4271_KNOWLEDGE_NODE-29", - "text": "end user.\\n\\n## Why you should convert a Conversation to a Ticket\\n\\nConsider converting a conversation to a ticket in these scenarios:\\n\\n * **Complex issues** : When a customer inquiry requires in-depth investigation that can't be resolved in a quick conversation.\\n * **Cross-team collaboration** : Issues requiring input from multiple departments or specialists.\\n * **Escalation needs** : When a conversation needs to be escalated to a higher support tier.\\n * **Feature requests** :", - "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" - }, { "id": "ART-4271_KNOWLEDGE_NODE-26", - "text": "conversation metadata including: \\n * Source channel\\n * Customer account information\\n * External members added as **reported by** on the ticket\\n * An AI-generated ticket title and description based on customer messages.\\n\\n### How to convert Conversations to Tickets\\n\\n**Manual Conversion**\\n\\nTo manually convert a conversation to a ticket:\\n\\n 1. Open the conversation record pane view.\\n 2. Click **Convert to Ticket** to initiate the conversion.\\n\\n**Automated Conversion", + "text": "conversation metadata including: \\n * Source channel\\n * Customer account information\\n * External members added as **reported by** on the ticket\\n * An AI-generated ticket title and description based on customer messages.\\n\\n### How to convert Conversations to Tickets\\n\\n**Manual Conversion**\\n\\nTo manually convert a conversation to a ticket:\\n\\n 1. Open the conversation record pane view.\\n 2. Click **Convert to Ticket** to initiate the conversion.\\n\\n**Automated Conversion", "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" }, { - "id": "ART-4271_KNOWLEDGE_NODE-31", - "text": "AI-handled conversation reaches its capability limits and needs human expertise.\\n * **Extended troubleshooting** : Issues requiring multiple steps or follow-ups over time.\\n\\n## Key information\\n\\n * **Channel support** : Currently, the conversion feature is only available for PLuG and Slack conversations. Other channels still use the traditional **Link Ticket** functionality.\\n\\n * **CSAT surveys** : CSAT surveys are not sent when a conversation is converted to a ticket. Surveys are only", - "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" + "id": "ART-2024_KNOWLEDGE_NODE-27", + "text": "help now... ask again in 5d\\n\\nSample response:\\n\\n> I am unable to assist you at the moment, however please reach out to me again in five days and I will be happy to help you.\\n\\n### Summarize\\n\\nUsing the summarize command, you can sum up the entire conversation. It applies to the following:\\n\\n* Conversation\\n* Tickets\\n* Issues\\n* Part\\n* Workspace\\n* Customer\\n* Account\\n\\nSample response:\\n\\n> **Summary:**\\n>\\n> * Rahul from DummyOrg is having difficulty installing the Plug Widget.\\n> *", + "title": "Slash commands | Automate | Snap-ins | DevRev" }, { "id": "ART-6174_KNOWLEDGE_NODE-32", - "text": "handling**: Conversation and ticket SLAs operate independently. When converting:\\n\\n + The new ticket starts with its own response and resolution SLA timers\\n + All active SLA metrics on the original conversation are marked as completed\\n\\n[PreviousConversations](/docs/product/conversation)[NextTickets](/docs/product/tickets)\\n\\n#### On this page\\n\\n* [Conversation conversion process](#conversation-conversion-process)\\n* [Convert conversations to tickets](#convert-conversations-to-tickets)\\n*", + "text": "handling**: Conversation and ticket SLAs operate independently. When converting:\\n\\n + The new ticket starts with its own response and resolution SLA timers\\n + All active SLA metrics on the original conversation are marked as completed\\n\\n[PreviousConversations](/docs/product/conversation)[NextTickets](/docs/product/tickets)\\n\\n#### On this page\\n\\n* [Conversation conversion process](#conversation-conversion-process)\\n* [Convert conversations to tickets](#convert-conversations-to-tickets)\\n*", "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" }, { - "id": "ART-6174_KNOWLEDGE_NODE-27", - "text": "happens automatically:\\n\\n* The original conversation moves to *Archived* stage and cannot be reopened.\\n* A new ticket is created with:\\n + All internal discussions and customer messages copied from the conversation\\n + Equivalent metadata as the conversation, including source channel, customer account information, and external members added as **reported by** on the ticket\\n + An AI-generated ticket title and description based on customer messages\\n\\nConvert conversations to", - "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" + "id": "ART-4271_KNOWLEDGE_NODE-29", + "text": "end user.\\n\\n## Why you should convert a Conversation to a Ticket\\n\\nConsider converting a conversation to a ticket in these scenarios:\\n\\n * **Complex issues** : When a customer inquiry requires in-depth investigation that can't be resolved in a quick conversation.\\n * **Cross-team collaboration** : Issues requiring input from multiple departments or specialists.\\n * **Escalation needs** : When a conversation needs to be escalated to a higher support tier.\\n * **Feature requests** :", + "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" }, { - "id": "ART-6174_KNOWLEDGE_NODE-28", - "text": "tickets\\n--------------------------------\\n\\n**Manual conversion**\\n\\nGo to the conversation record pane and select **Convert to Ticket** to create a new ticket from the conversation.\\n\\n![]()\\n\\n**Automated conversion via workflows**\\n\\nSet up automated [workflows](./workflow-engine) to convert conversations to tickets based on specific triggers:\\n\\n* When a conversation meets defined criteria\\n* When the AI agent identifies an issue requiring escalation\\n* According to custom business", - "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" + "id": "ART-4271_KNOWLEDGE_NODE-25", + "text": "is being replaced with a new **Convert to Ticket** feature. This change provides a more seamless transition from conversation to ticket management.\\n\\n## How Conversation conversion works\\n\\nWhen you convert a conversation to a ticket, the following happens automatically:\\n\\n * The original conversation is moved to _Archived_ stage and cannot be reopened.\\n * A new ticket is created with: \\n * All internal discussions and customer messages copied from the conversation.\\n * Preserved", + "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" }, { - "id": "ART-6174_KNOWLEDGE_NODE-31", - "text": "Cross-team collaboration needs\\n* Escalation requirements\\n* Feature requests\\n* Bug reports\\n* SLA tracking requirements\\n* Documentation needs\\n* Resource allocation requirements\\n* AI capability limitations\\n* Extended troubleshooting needs\\n\\nSupport workflows\\n-----------------\\n\\n* **CSAT surveys**: CSAT surveys are not sent when a conversation is converted to a ticket. Surveys are only triggered when a conversation is resolved, not when it's archived through conversion.\\n* **SLA", - "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" + "id": "ART-1639_KNOWLEDGE_NODE-248", + "text": "definition applies to.\\nAllowed values: conversation issue ticket\\ncursor string Optional\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\ninclude_custom_metrics boolean Optional\\nWhether to include custom metrics in the response. If not set, then custom metrics are excluded.\\nlimit integer Optional\\nThe maximum number of records to return. The default is \\'50\\'.\\nmode \"after\" or \"before\" Optional\\nThe iteration mode to use, otherwise if not set,", + "title": "Export Post \u2014 DevRev | Docs" }, { "id": "ART-6174_KNOWLEDGE_NODE-26", @@ -2676,14 +2671,19 @@ "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" }, { - "id": "ART-6174_KNOWLEDGE_NODE-30", - "text": "there.\\n\\n![]()\\n\\nSlack end-user experience\\n-------------------------\\n\\nWhen a conversation is converted to a ticket in Slack:\\n\\n* Ticket information appears within the same thread.\\n* All subsequent messages sync with the newly created ticket.\\n* The transition is seamless for the end user.\\n\\nConversation conversion scenarios\\n---------------------------------\\n\\nConsider converting a conversation to a ticket in these scenarios:\\n\\n* Complex issues requiring in-depth investigation\\n*", + "id": "ART-6174_KNOWLEDGE_NODE-25", + "text": "Teams](/docs/product/support)\\n[Conversations](/docs/product/conversation)\\n[Conversation to ticket conversion](/docs/product/conversation-ticket)\\n\\nConversation to ticket conversion\\n=================================\\n\\nYou can convert conversations from Plug and Slack directly into tickets. Previously, conversations were only linked to tickets. This update streamlines workflows and enhances the customer experience.\\n\\nFor conversations originating from Plug or Slack, the **Link to Ticket**", "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" }, { - "id": "ART-4271_KNOWLEDGE_NODE-8", - "text": "* [Automatic customer reply](/docs/automations/auto-reply?)\\n * [Auto parts to conversation](/docs/automations/auto-parts?)\\n * [Automate opportunities](/docs/automations/opportunity?)\\n * [Bulk delete data](/docs/automations/bulk-delete?)\\n * [Bulk work item uploader](/docs/automations/bulk-upload?)\\n * [Commands surface expander](/docs/automations/commands-surface-expander?)\\n * [Convergence](/docs/automations/converge?)\\n * [Conversation", - "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" + "id": "ART-1592_KNOWLEDGE_NODE-248", + "text": "definition applies to.\\nAllowed values: conversation issue ticket\\ncursor string Optional\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\ninclude_custom_metrics boolean Optional\\nWhether to include custom metrics in the response. If not set, then custom metrics are excluded.\\nlimit integer Optional\\nThe maximum number of records to return. The default is \\'50\\'.\\nmode \"after\" or \"before\" Optional\\nThe iteration mode to use, otherwise if not set,", + "title": "Update \u2014 DevRev | Docs" + }, + { + "id": "ART-1831_KNOWLEDGE_NODE-248", + "text": "definition applies to.\\nAllowed values: conversation issue ticket\\ncursor string Optional\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\ninclude_custom_metrics boolean Optional\\nWhether to include custom metrics in the response. If not set, then custom metrics are excluded.\\nlimit integer Optional\\nThe maximum number of records to return. The default is \\'50\\'.\\nmode \"after\" or \"before\" Optional\\nThe iteration mode to use, otherwise if not set,", + "title": "Get \u2014 DevRev | Docs" } ] }, @@ -2692,54 +2692,54 @@ "query": "add subtype in conversation in DevRev", "retrievals": [ { - "id": "ART-5010_KNOWLEDGE_NODE-0", - "text": "b'Subtype Migration | Automate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", - "title": "Subtype Migration | Automate | Snap-ins | DevRev" + "id": "ART-1957_KNOWLEDGE_NODE-24", + "text": "subtype](#add-a-new-subtype)\\n\\n1. [Documentation](/docs)\\n3. [Computer by DevRev](/docs/intro)\\n[Object customization](/docs/product/object-customization)\\n\\nObject customization\\n====================\\n\\nDevRev powers your organization with the ability to customize DevRev objects for your organization\\'s needs. You can add custom fields to the objects along with the pre-existing fields or add new subtypes to the objects which helps you extend an object\\'s capabilities.\\nObjects are the core", + "title": "Object customization | Computer by DevRev | DevRev" }, { - "id": "ART-17231_KNOWLEDGE_NODE-58", - "text": "top](/airsync/supported-object-types#summary)\\n\\nconversation\\n------------\\n\\n**Resource Type:** `conversation`\\n\\n**Capabilities:** Can Load, Can Subtype\\n\\n### Fields\\n\\n| Field | Type | Required | Description |\\n| --- | --- | --- | --- |\\n| `applies_to_part_ids` | reference (collection)\\xe2\\x86\\x92[#category:part] | | Details of the parts relevant to the conversation. |\\n| `broadcast_channels` | text (collection) | | Active channels for the conversation |\\n| `channels` | reference", - "title": "Supported DevRev object types | DevRev | Docs" + "id": "ART-16685_KNOWLEDGE_NODE-4", + "text": "power of conversational AI.\\n\\n**Objectives of this role will include:**\\n\\n* Proactively manage accounts to maximize customer value and drive tangible business growth and ROI for the customer and DevRev.\\n* Lead customers through onboarding; owning the implementation plan, developing product adoption strategies,and providing technical subject matter expertise and guidance.\\n* Develop new ways of helping customers increase the usage of our products.\\n* Enable integration of DevRev with", + "title": "DevRev Careers | Customer Success Manager" }, { - "id": "ART-5010_KNOWLEDGE_NODE-32", - "text": "[Marketplace](https://marketplace.devrev.ai/)\\n\\nResources\\n\\n* [Blog](/blog)\\n* [Our Customers](/case-study)\\n* [Snap-In Extensions](https://developer.devrev.ai/public/snapin-development/concepts)\\n* [DevRevU training](/docs/DevRevU)\\n* [Documentation](https://docs.devrev.ai/)\\n* [API References](https://docs.devrev.ai/api/)\\n\\nCompany\\n\\n* [About](/about)\\n* [Events](/events)\\n* [Careers](/careers)\\n* [What Why How](/what-why-how)\\n\\nInitiatives\\n\\n* [Partner Program](/partners)\\n* [Startups", - "title": "Subtype Migration | Automate | Snap-ins | DevRev" + "id": "ART-12390_KNOWLEDGE_NODE-27", + "text": "applies\\\\_to\\\\_part, etc. * subtype: (Optional) Incident subtype * apps: (Optional) Related apps * app\\\\_custom\\\\_fields: (Optional) Custom fields | Created incident object |\\n| Create Issue | Creates a new issue in DevRev. | * Issue details like title, body, priority\\\\_v2, etc. * subtype: (Optional) Issue subtype * apps: (Optional) Related apps * app\\\\_custom\\\\_fields: (Optional) Custom fields | Created issue object |\\n| Create Meeting | Creates a new meeting in DevRev. | * Meeting details", + "title": "Workflow action library | Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-4116_KNOWLEDGE_NODE-10", - "text": "Agents?](https://devrev.ai/what-are-ai-agents)\\n * [What is Agentic AI?](https://devrev.ai/what-is-agentic-ai)\\n * [What is Enterprise Search?](https://devrev.ai/what-is-enterprise-search)\\n * [What is Conversational AI?](https://devrev.ai/what-is-conversational-ai)\\n\\n[](https://devrev.ai)\\n\\n[](https://www.linkedin.com/company/devrev)[](https://medium.com/devrev)[](https://twitter.com/devrev)\\n\\n[System Status](https://devrev.ai/status)\\n\\n\\xc2\\xa9 2025 DevRev", - "title": "Prepare-Update Schemas Subtypes (Beta) \u2014 DevRev | Docs" + "id": "ART-1510_KNOWLEDGE_NODE-10", + "text": "\"don:core:dvrv-us-1:devo/example:custom_type_fragment/custom-type-fragment-id\", \\n 115| \"subtype\": \"subtype\", \\n 116| \"tags\": [ \\n 117| { \\n 118| \"tag\": { \\n 119| \"id\": \"id\", \\n 120| \"name\": \"name\" \\n 121| } \\n 122| } \\n 123| ], \\n 124| \"title\": \"title\" \\n 125| } \\n 126| }\\n[/code] \\n \\n[Get Conversation (POST)Up Next](/beta/api-reference/conversations/get-post)\\n\\n[Built", + "title": "Get Conversation (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1593_KNOWLEDGE_NODE-318", - "text": "subtype \" : \" string \" , 35 \" tags \" : [ 36 { 37 \" tag \" : { 38 \" name \" : \" string \" , 39 \" display_id \" : \" string \" , 40 \" id \" : \" string \" 41 } , 42 \" value \" : \" string \" 43 } 44 ] , 45 \" created_by \" : { 46 \" type \" : \" dev_user \" , 47 \" display_name \" : \" string \" , 48 \" display_picture \" : { 49 \" display_id \" : \" string \" , 50 \" id \" : \" string \" 51 } , 52 \" email \" : \" string \" , 53 \" full_name \" : \" string \" , 54 \" state \" : \" active \" , 55 \" display_id \" : \" string \" , 56 \" id \" : \"", - "title": "Get \u2014 DevRev | Docs" + "id": "ART-3068_KNOWLEDGE_NODE-26", + "text": "corner.\\n2. In the DevRev marketplace, find **Conversation reminder** and click\\n **Install**.\\n3. In DevRev, make necessary changes in configuration click **Save** and click\\n **Deploy**.\\n\\n[PreviousConvergence](/docs/automations/converge)[NextCSAT on conversation](/docs/automations/csat-conv)\\n\\n#### On this page\\n\\n* [Installing the auto parts to conversation snap-in](#installing-the-auto-parts-to-conversation-snapin)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more", + "title": "Conversation reminder | Automate | Snap-ins | DevRev" }, { - "id": "ART-1957_KNOWLEDGE_NODE-24", - "text": "subtype](#add-a-new-subtype)\\n\\n1. [Documentation](/docs)\\n3. [Computer by DevRev](/docs/intro)\\n[Object customization](/docs/product/object-customization)\\n\\nObject customization\\n====================\\n\\nDevRev powers your organization with the ability to customize DevRev objects for your organization\\'s needs. You can add custom fields to the objects along with the pre-existing fields or add new subtypes to the objects which helps you extend an object\\'s capabilities.\\nObjects are the core", - "title": "Object customization | Computer by DevRev | DevRev" + "id": "ART-12390_KNOWLEDGE_NODE-28", + "text": "like title, description, start\\\\_date, attendees, etc. * subtype: (Optional) Meeting subtype * apps: (Optional) Related apps * app\\\\_custom\\\\_fields: (Optional) Custom fields | Created meeting object |\\n| Create Opportunity | Creates a new opportunity in DevRev. | * Opportunity details like title, body, applies\\\\_to\\\\_part, etc. * subtype: (Optional) Opportunity subtype * apps: (Optional) Related apps * app\\\\_custom\\\\_fields: (Optional) Custom fields | Created opportunity object |\\n| Create", + "title": "Workflow action library | Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-5010_KNOWLEDGE_NODE-2", - "text": "[Object customization](/docs/product/object-customization)\\n + [Glossary \\xe2\\x86\\x97\\xef\\xb8\\x8f](https://support.devrev.ai/devrev/article/ART-16784-glossary)\\n + [Search](/docs/product/search)\\n + [Workflows](/docs/product/workflow-engine)\\n\\n - [Workflow action library](/docs/product/action-library)\\n - [Triggers](/docs/product/trigger-library)\\n - [Conversational workflows](/docs/product/conversational-workflows)\\n - [Workflow management](/docs/product/workflow-management)\\n", - "title": "Subtype Migration | Automate | Snap-ins | DevRev" + "id": "ART-17218_KNOWLEDGE_NODE-13", + "text": "will be defined in DevRev and a **Subtype** will automatically be created. For more details on customization concepts, please refer to the\\n[Customization](/public/guides/object-customization) and [Custom Objects](/public/guides/custom-objects) documentation.\\n\\nThe field mapping works the same as for the stock DevRev types, with the difference being that there are significantly fewer fields to map. All the unmapped fields of the external record type will be created as custom", + "title": "Initial domain mapping | DevRev | Docs" }, { - "id": "ART-5010_KNOWLEDGE_NODE-4", - "text": "insights](/docs/dashboards/conversation-insights)\\n - [Conversation-SLA Analytics](/docs/dashboards/conversation-sla-analytics)\\n - [Conversation-Team Performance](/docs/dashboards/conversation-team-performance)\\n - [Ticket insights](/docs/dashboards/ticket-insights)\\n - [Ticket-SLA Analytics](/docs/dashboards/ticket-sla-analytics)\\n - [Ticket-Team Performance](/docs/dashboards/ticket-team-performance)\\n + [Conversations](/docs/product/conversation)\\n\\n - [Conversation to", - "title": "Subtype Migration | Automate | Snap-ins | DevRev" + "id": "ART-1036_KNOWLEDGE_NODE-5", + "text": "Computer\\n-----------------------------------------------------------------------------------\\n\\nShipsy implemented DevRev's unified platform, transforming their support operations with DevRev Support and conversational product management capabilities powered by AI and Computer's memory that connected previously siloed data sources.\\n\\n### 1. Easily integrated siloed data sources to unleash AI capabilities\\n\\nShipsy connected its existing knowledge base from Jira Confluence and integrated", + "title": "Shipsy elevates logistics support with AI-powered automation and cross team collaboration" }, { - "id": "ART-5010_KNOWLEDGE_NODE-33", - "text": "Program](/startups)\\n* [Gr.ai.ce](/graice)\\n\\n* [Security](https://security.devrev.ai/)\\n* [SLA](/legal/sla)\\n* [DPA](/legal/dpa)\\n* [Subprocessors](/security/sub-processors)\\n* [Cookie Policy](/legal/cookie-policy)\\n* [Privacy Policy](/legal/privacy-policy)\\n* [Terms of Service](/legal/terms-of-service)\\n\\n[System Status](/status)\\n\\n\\xc2\\xa9 2025 DevRev Inc.'", - "title": "Subtype Migration | Automate | Snap-ins | DevRev" + "id": "ART-1818_KNOWLEDGE_NODE-223", + "text": "Reference customization Subtypes List.\\n\\nGET https:// api.devrev.ai / schemas.subtypes.list\\nLists subtypes.\\nQuery parameters.\\n\\nleaf_type string Optional\\nLeaf type for which subtypes are required.\\nleaf_types string Optional\\nList of leaf types for which subtypes are required.\\nResponse.\\n\\nThis endpoint returns an object.\\nsubtypes list of objects\\nList of subtypes.\\nShow 4 properties\\nAPI Reference customization Subtypes List Post.\\n\\nPOST https:// api.devrev.ai /", + "title": "Sla Trackers Get Post \u2014 DevRev | Docs" }, { - "id": "ART-4116_KNOWLEDGE_NODE-8", - "text": "[About](https://devrev.ai/about)\\n * [People](https://devrev.ai/people)\\n * [Careers](https://devrev.ai/careers)\\n * [Places](https://devrev.ai/places)\\n * [Invest](https://revd.devrev.ai/)\\n * [What Why How](https://devrev.ai/what-why-how)\\n\\nConnect\\n\\n * [Contact ](mailto:humansofdevrev@devrev.ai)\\n * [Instagram ](https://www.instagram.com/devrev)\\n * [Medium ](https://medium.com/devrev)\\n * [Linkedin ](https://www.linkedin.com/company/devrev)\\n * [X (formerly", - "title": "Prepare-Update Schemas Subtypes (Beta) \u2014 DevRev | Docs" + "id": "ART-1838_KNOWLEDGE_NODE-223", + "text": "Reference customization Subtypes List.\\n\\nGET https:// api.devrev.ai / schemas.subtypes.list\\nLists subtypes.\\nQuery parameters.\\n\\nleaf_type string Optional\\nLeaf type for which subtypes are required.\\nleaf_types string Optional\\nList of leaf types for which subtypes are required.\\nResponse.\\n\\nThis endpoint returns an object.\\nsubtypes list of objects\\nList of subtypes.\\nShow 4 properties\\nAPI Reference customization Subtypes List Post.\\n\\nPOST https:// api.devrev.ai /", + "title": "List Post \u2014 DevRev | Docs" } ] }, @@ -2748,54 +2748,54 @@ "query": "DevRev Platform Orientation & Navigation Guide video login options", "retrievals": [ { - "id": "ART-1944_KNOWLEDGE_NODE-0", - "text": "b\"Product Platform Solutions Marketplace Company Resources Pricing\\n\\nLogin Book a demo\\nProduct Platform Solutions Marketplace Company Resources Pricing\\nLogin Book a demo\\nSearch CTRL + K\\n\\nIntroduction AgentOS platform\\n\\nCore concepts Apps Groups Parts & trails Vistas Vista Reports\\nTasks Updates Customer email notifications Roles Default privileges by group\\nAccess control Object customization Glossary Search People insights Workflow Templates Accessing DevRev External identity provider", - "title": "DevRev Documentation" + "id": "ART-15701_KNOWLEDGE_NODE-6", + "text": "Option: Keep it as default i.e. allow both incoming and outgoing calls to truly experience the features provided by DevRev integration.\\n\\nYou can customise data storage options here.Recommended Option: Keep this as default and click on Next.\\n\\nReview the details and click on Create Instance.\\n\\nUse the Emergency Access to login the first time to setup the instance. If you are an administrator, you can directly use the access URL to login.\\n\\nYou can directly follow the guide available at home", + "title": "Amazon Connect Telephony Integration Guide" }, { - "id": "ART-2076_KNOWLEDGE_NODE-2", - "text": "applications](https://rise.articulate.com/share/yTvcdwN0dMgzhiU_Kgbbs2t8lfkpnC5O)[![]()\\n\\nDevRev: Admin management and set-up\\n\\nSet up, manage, and streamline workflows for smooth operations](https://devrevu.reach360.com/share/course/d238d6fd-ab6a-41b3-a99b-44e1d2a8d221)\\n\\nExplore more courses\\n--------------------\\n\\nDiscover more courses to expand your DevRev skills and continue your learning journey\\n\\n[![]()\\n\\nDevRev platform fundamentals\\n\\nYour first step to navigating and mastering", - "title": "DevRev University" + "id": "ART-1963_KNOWLEDGE_NODE-0", + "text": "b'Accessing DevRev | Computer by DevRev | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", + "title": "Accessing DevRev | Computer by DevRev | DevRev" }, { - "id": "ART-4179_KNOWLEDGE_NODE-2", - "text": "applications](https://rise.articulate.com/share/yTvcdwN0dMgzhiU_Kgbbs2t8lfkpnC5O)[![]()\\n\\nDevRev: Admin management and set-up\\n\\nSet up, manage, and streamline workflows for smooth operations](https://devrevu.reach360.com/share/course/d238d6fd-ab6a-41b3-a99b-44e1d2a8d221)\\n\\nExplore more courses\\n--------------------\\n\\nDiscover more courses to expand your DevRev skills and continue your learning journey\\n\\n[![]()\\n\\nDevRev platform fundamentals\\n\\nYour first step to navigating and mastering", - "title": "DevRev University" + "id": "ART-2004_KNOWLEDGE_NODE-0", + "text": "b'Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CMD`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n + [Groups](/docs/product/groups)\\n +", + "title": "Snap-ins | DevRev" }, { - "id": "ART-2666_KNOWLEDGE_NODE-27", - "text": "DevRev's left navigation is designed to provide a more customizable and intuitive navigation experience. This update introduces new sections for better organization, enhanced customization capabilities, and a dedicated **Explore** page for managing views, dashboards, and sprint boards.\\n\\nWhen existing users log in, a prompt appears to guide them in migrating to the new left navigation. Follow the on-screen instructions to complete the migration and begin customizing your experience.\\n\\n## Key", - "title": "October 5: Left navigation | Changelog | DevRev" + "id": "ART-12602_KNOWLEDGE_NODE-8", + "text": "platforms\\n * Knowledge of revenue attribution models and sales funnel metrics\\n * Background in business analytics, finance, or a related field\\n\\n### **What We Offer:**\\n\\n * Competitive compensation and benefits\\n * Opportunities for career growth and advancement\\n * A collaborative, supportive team environment\\n * Flexible work arrangements\\n * Access to modern tools and technology\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry,", + "title": "DevRev Careers | Revenue Operations Analyst" }, { - "id": "ART-1362_KNOWLEDGE_NODE-15", - "text": "Inc.\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources __\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a", - "title": "Authentication \u2014 DevRev | Docs" + "id": "ART-2031_KNOWLEDGE_NODE-0", + "text": "b\"Harness | Integrate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", + "title": "Harness | Integrate | Snap-ins | DevRev" }, { - "id": "ART-12447_KNOWLEDGE_NODE-14", - "text": "Inc.\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources __\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a", - "title": "Quickstart guide \u2014 DevRev | Docs" + "id": "ART-12475_KNOWLEDGE_NODE-1", + "text": ".\\n\\nProceed to integrate the DevRev PLuG SDK. For specific platform migration guides, refer to the following resources:\\n\\nAndroid SDK migration guide: Android Migration Guide\\n\\niOS SDK migration guide: iOS Migration Guide\\n\\nReact Native & Expo SDK migration guide: React Native Migration Guide\\n\\nCordova SDK migration guide: Cordova Migration Guide\\n\\nWeb SDK migration guide: Web Migration Guide\\n\\nOnce the integration is complete, you will be able to view sessions on the Session", + "title": "Migrating from UserExperior to DevRev" }, { - "id": "ART-12450_KNOWLEDGE_NODE-13", - "text": "Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources __\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n'", - "title": "Quickstart guide \u2014 DevRev | Docs" + "id": "ART-16570_KNOWLEDGE_NODE-8", + "text": "access\\n--------------------------------------------------------------\\n\\n**The Transformation Journey**\\n\\nThe shift from FAME\\'s previous fragmented information landscape to DevRev\\'s unified memory represented a fundamental change in how teams work. What once required navigating multiple platforms, piecing together incomplete information, and spending hours searching for answers became as simple as having a conversation.\\n\\nDevRev\\'s AirSync technology seamlessly ingested FAME\\'s existing", + "title": "FAME transforms information access with AI-powered enterprise search" }, { - "id": "ART-4256_KNOWLEDGE_NODE-6", - "text": "the user logs in. If you have the user information available at app launch, call the function after the `DevRev.configure(appID:)` method.\\n\\n#####\\n\\nOn iOS, if you haven\\xe2\\x80\\x99t previously identified the user, the DevRev SDK will automatically create an anonymous user for you immediately after the SDK is configured.\\n\\n#####\\n\\nThe `Identity` structure allows for custom fields in the user, organization, and account traits. These fields must be configured through the DevRev app before", - "title": "DevRev SDK for React Native \u2014 DevRev | Docs" + "id": "ART-2035_KNOWLEDGE_NODE-0", + "text": "b\"Slack | Integrate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", + "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-12475_KNOWLEDGE_NODE-0", - "text": "b'This document serves as a guide for migrating from UserExperior ( plug.devrev.ai ) to DevRev ( app.devrev.ai ).\\n\\nLog in to your DevRev account at app.devrev.ai/login .\\n\\nPin the relevant views in the left navigation panel for Session Analytics. The views to pin are Session Replays , Session Analytics: Web , and Session Analytics: Mobile . For detailed instructions on this process, click here .\\n\\nLocate the SDK integration key by navigating to Settings > Support > Session Replays", - "title": "Migrating from UserExperior to DevRev" + "id": "ART-16078_KNOWLEDGE_NODE-0", + "text": "b\"DevRev Careers | Head of Data Science and Analytics \\n\\n* Product\\n* Platform\\n* Marketplace\\n* Company\\n* Resources\\n* Pricing\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nProduct\\n\\nPlatform\\n\\nMarketplace\\n\\nCompany\\n\\nResources\\n\\nPricing\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\ncareers\\n\\nHead of Data Science and Analytics\\n==================================\\n\\nPalo Alto, California, United", + "title": "DevRev Careers | Head of Data Science and Analytics" }, { - "id": "ART-2662_KNOWLEDGE_NODE-0", - "text": "b'DevRev Documentation\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n + [Groups](/docs/product/groups)\\n +", - "title": "DevRev Documentation" + "id": "ART-2041_KNOWLEDGE_NODE-0", + "text": "b'Qase | Integrate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", + "title": "Qase | Integrate | Snap-ins | DevRev" } ] }, @@ -2804,54 +2804,54 @@ "query": "change subtype of ticket error something went wrong", "retrievals": [ { - "id": "ART-5010_KNOWLEDGE_NODE-5", - "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", - "title": "Subtype Migration | Automate | Snap-ins | DevRev" + "id": "ART-15664_KNOWLEDGE_NODE-14", + "text": "> | \"leaf_type\": \"issue\", |\\n| > | \"subtype\": \"social_media\" |\\n| > | } |\\n| > | ], |\\n| > | \"target_types\": [ |\\n| > | { |\\n| > | \"leaf_type\": \"ticket\" |\\n| > | } |\\n| > | ], |\\n| > | \"forward_name\": \"is related to\", |\\n| > | \"backward_name\": \"is related to\" |\\n| > | }\\' |\\n```\\n\\nThis configuration:\\n\\n* Allows issues of subtype \\xe2\\x80\\x9csocial\\\\_media\\xe2\\x80\\x9d to be linked to tickets\\n* Rejects attempts to link issues with no subtype or with other subtypes\\n\\n##### \\n\\nThe subtype", + "title": "Links | DevRev | Docs" }, { - "id": "ART-1979_KNOWLEDGE_NODE-49", - "text": "tickets. Resolved means that the customer's concerns which led to the ticket have been addressed.\\n\\nSubtypes\\n--------\\n\\nYou can create subtypes for tickets to categorize them based on the type of issue. For example, you can create subtypes for bugs, feature requests, or questions.\\nA subtype inherits all the attributes of its parent ticket type. You can add custom attributes to a subtype.\\nTo know how to create subtypes and add custom attributes to them, see [object", + "id": "ART-15664_KNOWLEDGE_NODE-13", + "text": "\\n\\nYou may want to restrict links to specific subtypes of objects. For example, only allowing issues\\nof a particular subtype to be linked to tickets.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"name\": \"Link between social media issues and tickets\", |\\n| > | \"source_types\": [ |\\n| > | { |\\n|", + "title": "Links | DevRev | Docs" + }, + { + "id": "ART-1979_KNOWLEDGE_NODE-47", + "text": "validate the fix with the user and then to *resolved*. If the user wants to cancel the ticket then the stage moves to *canceled*.\\n\\n**Closed**\\n\\n* *Canceled* (C)\\n\\n The ticket is determined to be invalid either by the user or the customer experience engineer. In certain scenarios, a ticket may have been created by accident and may be canceled by the creator. In other scenarios, garbage tickets may be created through automation or because of spam. Automation or the customer experience", "title": "Tickets | Computer for Support Teams | DevRev" }, { - "id": "ART-5010_KNOWLEDGE_NODE-26", - "text": "**Work Item Type**: Select either \"ticket\" or \"issue\" based on the type of work items you want to migrate\\n * **Source Subtype**: Enter the name of the current subtype from which you want to migrate work items\\n * **Target Subtype**: Enter the name of the target subtype to which you want to migrate work items\\n * **Field Mappings**: Enter each mapping as source\\\\_field, target\\\\_field, one mapping per line\\n\\n ![]()\\n\\n Field names and subtype names must exactly match how they appear", - "title": "Subtype Migration | Automate | Snap-ins | DevRev" + "id": "ART-1961_KNOWLEDGE_NODE-37", + "text": "\\n{{Ticket\\xc2\\xa0Created\\xc2\\xa0>\\xc2\\xa0Output\\xc2\\xa0>\\xc2\\xa0Reported\\xc2\\xa0By\\xc2\\xa0>\\xc2\\xa0Rev\\xc2\\xa0Org\\xc2\\xa0>\\xc2\\xa0Display\\xc2\\xa0Name}}.\\xe2\\x80\\x9d\\n\\n\\n\\nDelay\\n\\n\\n\\nDuration: 2 minutes\\n\\n\\n\\nIf-else\\n\\n\\n\\nAttribute:\\xc2\\xa0Ticket\\xc2\\xa0Created/Output\\xc2\\xa0>\\xc2\\xa0Applies\\xc2\\xa0to\\xc2\\xa0part\\xc2\\xa0>\\xc2\\xa0Display\\xc2\\xa0ID \\nOperator: Equals \\nOperand: CAPL-18\\n\\n\\n\\nTicket \\ncreated\\n\\n\\n\\nEnd\\n```\\n\\n[### Workflow action", + "title": "Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-24", - "text": "[Subtypes](#subtypes)\\n* [Viewing attachments on tickets](#viewing-attachments-on-tickets)\\n* [Turing suggests](#turing-suggests)\\n* [Duplicate ticket merging](#duplicate-ticket-merging)\\n* [Merging guidelines](#merging-guidelines)\\n* [Merge settings](#merge-settings)\\n* [Merge tickets](#merge-tickets)\\n* [Post-merge conditions](#postmerge-conditions)\\n* [Follow up tickets](#follow-up-tickets)\\n* [Internal Tickets](#internal-tickets)\\n\\n1. [Documentation](/docs)\\n3. [Computer for Support", + "id": "ART-1979_KNOWLEDGE_NODE-49", + "text": "tickets. Resolved means that the customer's concerns which led to the ticket have been addressed.\\n\\nSubtypes\\n--------\\n\\nYou can create subtypes for tickets to categorize them based on the type of issue. For example, you can create subtypes for bugs, feature requests, or questions.\\nA subtype inherits all the attributes of its parent ticket type. You can add custom attributes to a subtype.\\nTo know how to create subtypes and add custom attributes to them, see [object", "title": "Tickets | Computer for Support Teams | DevRev" }, { - "id": "ART-1959_KNOWLEDGE_NODE-34", - "text": "subtype: :\\n```\\n```\\n\\n**Examples**\\n\\nSearch for tickets related to access issues with tenant field escalated:\\n\\n```\\n```\\n1 tnt__escalated:true access issues\\n```\\n```\\n\\nSearch for bugs related to access issues with subtype field customer\\\\_impact:\\n\\n```\\n```\\n1 subtype:Bug ctype__customer_impact:true access issues\\n```\\n```\\n\\nSearch across multiple subtypes for tickets related to access issues:\\n\\n```\\n```\\n1 subtype:Bug,Events access", - "title": "Search | Computer by DevRev | DevRev" + "id": "ART-2874_KNOWLEDGE_NODE-27", + "text": "updated, and not updated. If the fields specified in the configuration are not found, a notification will be provided in the **Discussion** tab.\\n\\n[PreviousTicket age in engineering](/docs/automations/ticket-age-in-engineering)[NextTicket Immutability](/docs/automations/ticket-immutability)\\n\\n#### On this page\\n\\n* [Ticket issue field migrator](#ticket-issue-field-migrator)\\n* [Installation](#installation)\\n* [Configuration](#configuration)\\n\\n[Enterprise grade security to protect customer", + "title": "Ticket issue field migrator | Automate | Snap-ins | DevRev" }, { - "id": "ART-1566_KNOWLEDGE_NODE-521", - "text": "response.\\n\\nticket.rev_org string Optional\\n\\nFilters for tickets that are associated with any of the provided Rev organizations.\\n\\nticket.severity enum Optional\\n\\nFilters for tickets with any of the provided severities.\\n\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\n\\nFilters for records with any of the provided SLA stages.\\n\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\n\\nFilters for tickets with any", - "title": "Transition (Beta) \u2014 DevRev | Docs" + "id": "ART-1483_KNOWLEDGE_NODE-18", + "text": "the code\\n\\nUpdate the code in `src/functions/ticket_creator/index.ts` to reflect the behavior.\\n\\nFirstly, import the DevRev TypeScript SDK in the `index.ts` file\\n\\nindex.ts\\n\\n[code]\\n\\n 1| import {client, publicSDK} from \"@devrev/typescript-sdk\"; \\n ---|---\\n[/code] \\n \\nNext, update the `run` function in the hello-world example. Since the ticket gets created frequently, set some creation time in the title and the body. The example uses the part as `PROD-1` and keeps the owner as", + "title": "Using a snap-in to perform a DevRev action \u2014 DevRev | Docs" }, { - "id": "ART-15664_KNOWLEDGE_NODE-14", - "text": "> | \"leaf_type\": \"issue\", |\\n| > | \"subtype\": \"social_media\" |\\n| > | } |\\n| > | ], |\\n| > | \"target_types\": [ |\\n| > | { |\\n| > | \"leaf_type\": \"ticket\" |\\n| > | } |\\n| > | ], |\\n| > | \"forward_name\": \"is related to\", |\\n| > | \"backward_name\": \"is related to\" |\\n| > | }\\' |\\n```\\n\\nThis configuration:\\n\\n* Allows issues of subtype \\xe2\\x80\\x9csocial\\\\_media\\xe2\\x80\\x9d to be linked to tickets\\n* Rejects attempts to link issues with no subtype or with other subtypes\\n\\n##### \\n\\nThe subtype", - "title": "Links | DevRev | Docs" + "id": "ART-1959_KNOWLEDGE_NODE-34", + "text": "subtype: :\\n```\\n```\\n\\n**Examples**\\n\\nSearch for tickets related to access issues with tenant field escalated:\\n\\n```\\n```\\n1 tnt__escalated:true access issues\\n```\\n```\\n\\nSearch for bugs related to access issues with subtype field customer\\\\_impact:\\n\\n```\\n```\\n1 subtype:Bug ctype__customer_impact:true access issues\\n```\\n```\\n\\nSearch across multiple subtypes for tickets related to access issues:\\n\\n```\\n```\\n1 subtype:Bug,Events access", + "title": "Search | Computer by DevRev | DevRev" }, { - "id": "ART-5010_KNOWLEDGE_NODE-13", - "text": "group](/docs/automations/set-user-preference)\\n - [SLA status change Slack notifier](/docs/automations/sla-change-notifier)\\n - [Slash commands](/docs/automations/slash-commands)\\n - [Spam Shield](/docs/automations/spam-shield)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field migrator](/docs/automations/ticket-issue-field-migrator)\\n - [Ticket", - "title": "Subtype Migration | Automate | Snap-ins | DevRev" + "id": "ART-1639_KNOWLEDGE_NODE-459", + "text": "Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the provided types.\\nAllowed values: issue opportunity task ticket\\nResponse.\\n\\nThis endpoint returns an object.\\nworks list of objects\\nThe list of works.\\nShow 4 variants\\nnext_cursor string Optional\\nThe cursor used to iterate subsequent results in accordance to the sort order. If not set, then no later elements exist.\\nprev_cursor string Optional\\nThe cursor used to iterate preceding", + "title": "Export Post \u2014 DevRev | Docs" }, { - "id": "ART-2874_KNOWLEDGE_NODE-5", - "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", + "id": "ART-2874_KNOWLEDGE_NODE-24", + "text": "[Configuration](#configuration)\\n\\n1. [Documentation](/docs)\\n3. [Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[Ticket issue field migrator](/docs/automations/ticket-issue-field-migrator)\\n\\nTicket issue field migrator\\n---------------------------\\n\\nThe Ticket issue field migration snap-in automates the transfer of custom field values from tickets to new linked issues in DevRev. It checks for empty or undefined fields and fills them with corresponding ticket values based on the field", "title": "Ticket issue field migrator | Automate | Snap-ins | DevRev" - }, - { - "id": "ART-1979_KNOWLEDGE_NODE-65", - "text": "conversion](/docs/product/conversation-ticket)[NextRouting](/docs/product/routing)\\n\\n#### On this page\\n\\n* [Attributes](#attributes)\\n* [Create a ticket](#create-a-ticket)\\n* [Tags](#tags)\\n* [Stages](#stages)\\n* [Subtypes](#subtypes)\\n* [Viewing attachments on tickets](#viewing-attachments-on-tickets)\\n* [Turing suggests](#turing-suggests)\\n* [Duplicate ticket merging](#duplicate-ticket-merging)\\n* [Merging guidelines](#merging-guidelines)\\n* [Merge settings](#merge-settings)\\n* [Merge", - "title": "Tickets | Computer for Support Teams | DevRev" } ] }, @@ -2860,54 +2860,54 @@ "query": "Why would I use DevRev?", "retrievals": [ { - "id": "ART-1487_KNOWLEDGE_NODE-7", - "text": "Program](https://devrev.ai/startups)\\n\\nCompany\\n\\n * [About](https://devrev.ai/about)\\n * [People](https://devrev.ai/people)\\n * [Careers](https://devrev.ai/careers)\\n * [Places](https://devrev.ai/places)\\n * [Invest](https://revd.devrev.ai/)\\n * [What Why How](https://devrev.ai/what-why-how)\\n\\nConnect\\n\\n * [Contact ](mailto:humansofdevrev@devrev.ai)\\n * [Instagram ](https://www.instagram.com/devrev)\\n * [Medium ](https://medium.com/devrev)\\n * [Linkedin", - "title": "Install DevRev CLI \u2014 DevRev | Docs" + "id": "ART-15203_KNOWLEDGE_NODE-10", + "text": "Technical knowledge of web solutions including APIs and Webhooks. Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n* Outstanding communication (written and verbal), with fluency in English.\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who", + "title": "DevRev Careers | Senior Customer Success Manager" }, { - "id": "ART-12989_KNOWLEDGE_NODE-6", - "text": "[Documentation](https://docs.devrev.ai/)\\n * [API Reference](https://docs.devrev.ai/api/)\\n * [The Book of DevRev](https://thebook.devrev.ai/)\\n * [Partner Program](https://devrev.ai/partners)\\n * [Startup Program](https://devrev.ai/startups)\\n\\nCompany\\n\\n * [About](https://devrev.ai/about)\\n * [People](https://devrev.ai/people)\\n * [Careers](https://devrev.ai/careers)\\n * [Places](https://devrev.ai/places)\\n * [Invest](https://revd.devrev.ai/)\\n * [What Why", - "title": "Activate Dev Users \u2014 DevRev | Docs" + "id": "ART-15681_KNOWLEDGE_NODE-2", + "text": "to increase product velocity and reduce customer churn. DevRev is used by thousands of companies in search of low latency analytics and customizable LLMs to thrive in this era of GenAI. \\n \\nHeadquartered in Palo Alto, California, DevRev has offices in seven global locations. We have raised $100 million in funding from investors like Khosla Ventures and Mayfield at a $1.1 billion valuation. We are also honored to be named on the Forbes 2024 list of America\\xe2\\x80\\x99s Best Startup", + "title": "DevRev Careers | Revenue: Account Executive - Mumbai" }, { - "id": "ART-17231_KNOWLEDGE_NODE-157", - "text": "with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Supported DevRev object types | DevRev | Docs" + "id": "ART-15958_KNOWLEDGE_NODE-2", + "text": "to increase product velocity and reduce customer churn. DevRev is used by thousands of companies in search of low latency analytics and customizable LLMs to thrive in this era of GenAI. \\n \\nHeadquartered in Palo Alto, California, DevRev has offices in seven global locations. We have raised $100 million in funding from investors like Khosla Ventures and Mayfield at a $1.1 billion valuation. We are also honored to be named on the Forbes 2024 list of America\\xe2\\x80\\x99s Best Startup", + "title": "DevRev Careers | Member of Technical Staff: Front-End" }, { - "id": "ART-1400_KNOWLEDGE_NODE-12", - "text": "[Documentation](https://docs.devrev.ai/)\\n * [API Reference](https://docs.devrev.ai/api/)\\n * [The Book of DevRev](https://thebook.devrev.ai/)\\n * [Partner Program](https://devrev.ai/partners)\\n * [Startup Program](https://devrev.ai/startups)\\n\\nCompany\\n\\n * [About](https://devrev.ai/about)\\n * [People](https://devrev.ai/people)\\n * [Careers](https://devrev.ai/careers)\\n * [Places](https://devrev.ai/places)\\n * [Invest](https://revd.devrev.ai/)\\n * [What Why", - "title": "Get Dev User \u2014 DevRev | Docs" + "id": "ART-16798_KNOWLEDGE_NODE-9", + "text": "skills are also valued.\\n\\n* Outstanding communication (written and verbal), with fluency in English.\\n\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the earth\\xe2\\x80\\x99s most customer-centric companies. Our mission is", + "title": "DevRev Careers | Partner Success Manager" }, { - "id": "ART-13031_KNOWLEDGE_NODE-5", - "text": "[Documentation](https://docs.devrev.ai/)\\n * [API Reference](https://docs.devrev.ai/api/)\\n * [The Book of DevRev](https://thebook.devrev.ai/)\\n * [Partner Program](https://devrev.ai/partners)\\n * [Startup Program](https://devrev.ai/startups)\\n\\nCompany\\n\\n * [About](https://devrev.ai/about)\\n * [People](https://devrev.ai/people)\\n * [Careers](https://devrev.ai/careers)\\n * [Places](https://devrev.ai/places)\\n * [Invest](https://revd.devrev.ai/)\\n * [What Why", - "title": "Merge Rev Users \u2014 DevRev | Docs" + "id": "ART-15957_KNOWLEDGE_NODE-2", + "text": "to increase product velocity and reduce customer churn. DevRev is used by thousands of companies in search of low latency analytics and customizable LLMs to thrive in this era of GenAI. \\n \\nHeadquartered in Palo Alto, California, DevRev has offices in seven global locations. We have raised $100 million in funding from investors like Khosla Ventures and Mayfield at a $1.1 billion valuation. We are also honored to be named on the Forbes 2024 list of America\\xe2\\x80\\x99s Best Startup", + "title": "DevRev Careers | Member of Technical Staff" }, { - "id": "ART-12988_KNOWLEDGE_NODE-7", - "text": "DevRev](https://thebook.devrev.ai/)\\n * [Partner Program](https://devrev.ai/partners)\\n * [Startup Program](https://devrev.ai/startups)\\n\\nCompany\\n\\n * [About](https://devrev.ai/about)\\n * [People](https://devrev.ai/people)\\n * [Careers](https://devrev.ai/careers)\\n * [Places](https://devrev.ai/places)\\n * [Invest](https://revd.devrev.ai/)\\n * [What Why How](https://devrev.ai/what-why-how)\\n\\nConnect\\n\\n * [Contact ](mailto:humansofdevrev@devrev.ai)\\n * [Instagram", - "title": "Get Dev Org \u2014 DevRev | Docs" + "id": "ART-15962_KNOWLEDGE_NODE-9", + "text": "areas.\\n\\n**Preferred Qualifications** \\nList additional skills, experience, or attributes that are advantageous but not required.\\n\\n* MBA or related advanced degree.\\n* 10+ years of experience in software product marketing, with direct experience in AI, large language models, machine learning, or related fields preferred.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the", + "title": "DevRev Careers | Senior Product Marketing Manager" }, { - "id": "ART-1487_KNOWLEDGE_NODE-10", - "text": "Status](https://devrev.ai/status)\\n\\n\\xc2\\xa9 2025 DevRev Inc.\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources", - "title": "Install DevRev CLI \u2014 DevRev | Docs" + "id": "ART-16077_KNOWLEDGE_NODE-2", + "text": "to increase product velocity and reduce customer churn. DevRev is used by thousands of companies in search of low latency analytics and customizable LLMs to thrive in this era of GenAI. \\n \\nHeadquartered in Palo Alto, California, DevRev has offices in seven global locations. We have raised $100 million in funding from investors like Khosla Ventures and Mayfield at a $1.1 billion valuation. We are also honored to be named on the Forbes 2024 list of America\\xe2\\x80\\x99s Best Startup", + "title": "DevRev Careers | Demand Gen Content Marketer" }, { - "id": "ART-1487_KNOWLEDGE_NODE-8", - "text": "](https://www.linkedin.com/company/devrev)\\n * [X (formerly Twitter)](https://twitter.com/devrev)\\n * [Gr.ai.ce](https://devrev.ai/graice)\\n\\nLegal\\n\\n * [Security](https://security.devrev.ai/)\\n * [SLA](https://devrev.ai/legal/sla)\\n * [DPA](https://devrev.ai/legal/dpa)\\n * [Subprocessors](https://devrev.ai/security/sub-processors)\\n * [Cookie Policy](https://devrev.ai/legal/cookie-policy)\\n * [Privacy Policy](https://devrev.ai/legal/privacy-policy)\\n * [Terms of", - "title": "Install DevRev CLI \u2014 DevRev | Docs" + "id": "ART-15202_KNOWLEDGE_NODE-10", + "text": "including APIs and Webhooks. Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n* Outstanding communication (written and verbal), with fluency in English.\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to", + "title": "DevRev Careers | Senior Customer Success Manager" }, { - "id": "ART-1487_KNOWLEDGE_NODE-11", - "text": "__\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n'", - "title": "Install DevRev CLI \u2014 DevRev | Docs" + "id": "ART-12589_KNOWLEDGE_NODE-2", + "text": "to increase product velocity and reduce customer churn. DevRev is used by thousands of companies in search of low latency analytics and customizable LLMs to thrive in this era of GenAI. \\n \\nHeadquartered in Palo Alto, California, DevRev has offices in seven global locations. We have raised $100 million in funding from investors like Khosla Ventures and Mayfield at a $1.1 billion valuation. We are also honored to be named on the Forbes 2024 list of America\\xe2\\x80\\x99s Best Startup", + "title": "DevRev Careers | Forward Deployed Architect" }, { - "id": "ART-4096_KNOWLEDGE_NODE-14", - "text": "[Documentation](https://docs.devrev.ai/)\\n * [API Reference](https://docs.devrev.ai/api/)\\n * [The Book of DevRev](https://thebook.devrev.ai/)\\n * [Partner Program](https://devrev.ai/partners)\\n * [Startup Program](https://devrev.ai/startups)\\n\\nCompany\\n\\n * [About](https://devrev.ai/about)\\n * [People](https://devrev.ai/people)\\n * [Careers](https://devrev.ai/careers)\\n * [Places](https://devrev.ai/places)\\n * [Invest](https://revd.devrev.ai/)\\n * [What Why", - "title": "Create Rev User \u2014 DevRev | Docs" + "id": "ART-15201_KNOWLEDGE_NODE-10", + "text": "Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n * Outstanding communication (written and verbal), with fluency in English.\\n * Comfort operating in a fast-paced, high-demand, global environment.\\n * Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the", + "title": "DevRev Careers | Senior Customer Success Manager" } ] }, @@ -2916,54 +2916,54 @@ "query": "apply repeated multiple fields on tickets with one click", "retrievals": [ { - "id": "ART-3107_KNOWLEDGE_NODE-24", - "text": "existing tickets](#triggering-tag-checks-for-existing-tickets)\\n\\n1. [Documentation](/docs)\\n3. [Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[Ticket Tagger](/docs/automations/ticket-tagger)\\n\\nTicket tagger\\n=============\\n\\nThe **Ticket Tagger** is an automation tool designed to streamline ticket\\nmanagement. It automatically assigns appropriate tags to tickets based on the\\ntags of the contact or their account.\\n\\nKey features\\n------------\\n\\n* Automatically tags tickets created by", - "title": "Ticket Tagger | Automate | Snap-ins | DevRev" + "id": "ART-2874_KNOWLEDGE_NODE-24", + "text": "[Configuration](#configuration)\\n\\n1. [Documentation](/docs)\\n3. [Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[Ticket issue field migrator](/docs/automations/ticket-issue-field-migrator)\\n\\nTicket issue field migrator\\n---------------------------\\n\\nThe Ticket issue field migration snap-in automates the transfer of custom field values from tickets to new linked issues in DevRev. It checks for empty or undefined fields and fills them with corresponding ticket values based on the field", + "title": "Ticket issue field migrator | Automate | Snap-ins | DevRev" }, { - "id": "ART-6175_KNOWLEDGE_NODE-5", - "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", - "title": "Airtable | Automate | Snap-ins | DevRev" + "id": "ART-2048_KNOWLEDGE_NODE-30", + "text": "as necessary.\\n\\n If you want ClickUp tasks to become tickets rather than issues, map the task object to Works.Issue.\\n\\n While DevRev attempts to automatically map fields, you may be prompted to manually map indicated fields.\\n\\nThe duration of the import depends on the size of the ClickUp workspace and the\\ndata being imported. It can take seconds for a workspace with only a few dozen\\ntasks to a few hours for a workspace with tens of thousands of\\nitems with many attachments. DevRev", + "title": "ClickUp AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-2874_KNOWLEDGE_NODE-5", - "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", + "id": "ART-2874_KNOWLEDGE_NODE-26", + "text": "> **Ticket Issue Field Migrator** > **Configure**.\\n2. Specify the **Field Names** to migrate values from the ticket to the issue when fields are empty or undefined.\\n3. Click **Save** and **Install** to complete the setup.\\n4. Link an issue to a ticket to begin the migration of values from the ticket fields to the issue fields.\\n5. After the migration process is complete, you will receive a summary message in the snap-in **Discussion** tab, informing you of the number of fields processed,", "title": "Ticket issue field migrator | Automate | Snap-ins | DevRev" }, { - "id": "ART-13083_KNOWLEDGE_NODE-13", - "text": "field migrator](/docs/automations/ticket-issue-field-migrator)\\n * [Ticket Immutability](/docs/automations/ticket-immutability)\\n * [Ticket email notifier](/docs/automations/ticket-email-notifier)\\n * [Task tracker](/docs/automations/task-tracker)\\n * [Ticket Tagger](/docs/automations/ticket-tagger)\\n * [Tracxn sync](/docs/automations/tracxn-sync)\\n * [User group validator](/docs/automations/user-group-validator)\\n *", - "title": "| Automate | Snap-ins | DevRev" + "id": "ART-1508_KNOWLEDGE_NODE-27", + "text": "for tickets that are associated with any of the brands.\\n\\nchannelslist of stringsOptional\\n\\nFilters for conversations that are associated with any of the\\nchannels.\\n\\ncustom\\\\_fieldsobjectOptional\\n\\nFilters for custom fields.\\n\\nfirstintegerOptional\\n\\nThe number of conversation items to return. The default is \\'50\\', the\\nmaximum is \\'5000\\'.\\n\\ngrouplist of stringsOptional\\n\\nFilters for conversation that belong to the given groups.\\n\\nis\\\\_creator\\\\_verifiedbooleanOptional\\n\\nFilters for", + "title": "Export Conversations | DevRev | Docs" }, { - "id": "ART-2874_KNOWLEDGE_NODE-26", - "text": "> **Ticket Issue Field Migrator** > **Configure**.\\n2. Specify the **Field Names** to migrate values from the ticket to the issue when fields are empty or undefined.\\n3. Click **Save** and **Install** to complete the setup.\\n4. Link an issue to a ticket to begin the migration of values from the ticket fields to the issue fields.\\n5. After the migration process is complete, you will receive a summary message in the snap-in **Discussion** tab, informing you of the number of fields processed,", - "title": "Ticket issue field migrator | Automate | Snap-ins | DevRev" + "id": "ART-15664_KNOWLEDGE_NODE-13", + "text": "\\n\\nYou may want to restrict links to specific subtypes of objects. For example, only allowing issues\\nof a particular subtype to be linked to tickets.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"name\": \"Link between social media issues and tickets\", |\\n| > | \"source_types\": [ |\\n| > | { |\\n|", + "title": "Links | DevRev | Docs" }, { - "id": "ART-2010_KNOWLEDGE_NODE-5", - "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", - "title": "Bulk work item uploader | Automate | Snap-ins | DevRev" + "id": "ART-13083_KNOWLEDGE_NODE-13", + "text": "field migrator](/docs/automations/ticket-issue-field-migrator)\\n * [Ticket Immutability](/docs/automations/ticket-immutability)\\n * [Ticket email notifier](/docs/automations/ticket-email-notifier)\\n * [Task tracker](/docs/automations/task-tracker)\\n * [Ticket Tagger](/docs/automations/ticket-tagger)\\n * [Tracxn sync](/docs/automations/tracxn-sync)\\n * [User group validator](/docs/automations/user-group-validator)\\n *", + "title": "| Automate | Snap-ins | DevRev" }, { - "id": "ART-4185_KNOWLEDGE_NODE-15", - "text": "[Custom field migration](/docs/automations/custom-field-migration)\\n - [Slack scraper](/docs/automations/slack-scraper)\\n - [Slack Broadcaster](/docs/automations/slack-broadcaster)\\n - [Reported by enricher](/docs/automations/ticket-reported-by)\\n - [Ticket approval workflow](/docs/automations/ticket-approval-workflow)\\n - [Ticket linked issues comment sync](/docs/automations/ticket-linked-issues-comment-sync)\\n - [Slack message agent](/docs/automations/slack-message-agent)\\n", - "title": "Ticket approval workflow | Automate | Snap-ins | DevRev" + "id": "ART-1961_KNOWLEDGE_NODE-37", + "text": "\\n{{Ticket\\xc2\\xa0Created\\xc2\\xa0>\\xc2\\xa0Output\\xc2\\xa0>\\xc2\\xa0Reported\\xc2\\xa0By\\xc2\\xa0>\\xc2\\xa0Rev\\xc2\\xa0Org\\xc2\\xa0>\\xc2\\xa0Display\\xc2\\xa0Name}}.\\xe2\\x80\\x9d\\n\\n\\n\\nDelay\\n\\n\\n\\nDuration: 2 minutes\\n\\n\\n\\nIf-else\\n\\n\\n\\nAttribute:\\xc2\\xa0Ticket\\xc2\\xa0Created/Output\\xc2\\xa0>\\xc2\\xa0Applies\\xc2\\xa0to\\xc2\\xa0part\\xc2\\xa0>\\xc2\\xa0Display\\xc2\\xa0ID \\nOperator: Equals \\nOperand: CAPL-18\\n\\n\\n\\nTicket \\ncreated\\n\\n\\n\\nEnd\\n```\\n\\n[### Workflow action", + "title": "Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-2874_KNOWLEDGE_NODE-10", - "text": "data](/docs/automations/bulk-delete)\\n - [Bulk work item uploader](/docs/automations/bulk-upload)\\n - [Commands surface expander](/docs/automations/commands-surface-expander)\\n - [Convergence](/docs/automations/converge)\\n - [Conversation reminder](/docs/automations/conversation-reminder)\\n - [CSAT on conversation](/docs/automations/csat-conv)\\n - [CSAT on ticket](/docs/automations/csat-tickets)\\n - [CSV work item uploader](/docs/automations/csv-work-item-uploader)\\n -", - "title": "Ticket issue field migrator | Automate | Snap-ins | DevRev" + "id": "ART-8442_KNOWLEDGE_NODE-13", + "text": "field migrator](/docs/automations/ticket-issue-field-migrator)\\n * [Ticket Immutability](/docs/automations/ticket-immutability)\\n * [Ticket email notifier](/docs/automations/ticket-email-notifier)\\n * [Task tracker](/docs/automations/task-tracker)\\n * [Ticket Tagger](/docs/automations/ticket-tagger)\\n * [Tracxn sync](/docs/automations/tracxn-sync)\\n * [User group validator](/docs/automations/user-group-validator)\\n *", + "title": "January 2025 | Changelog | DevRev" }, { - "id": "ART-2874_KNOWLEDGE_NODE-14", - "text": "Immutability](/docs/automations/ticket-immutability)\\n - [Ticket email notifier](/docs/automations/ticket-email-notifier)\\n - [Task tracker](/docs/automations/task-tracker)\\n - [Ticket Tagger](/docs/automations/ticket-tagger)\\n - [Tracxn sync](/docs/automations/tracxn-sync)\\n - [User group validator](/docs/automations/user-group-validator)\\n - [Work duration](/docs/automations/work-duration)\\n - [Operational SLA Metrics](/docs/automations/operational-sla-metrics)\\n -", - "title": "Ticket issue field migrator | Automate | Snap-ins | DevRev" + "id": "ART-12390_KNOWLEDGE_NODE-39", + "text": "to update * subtype: (Optional) Ticket subtype * apps: (Optional) Related apps * app\\\\_custom\\\\_fields: (Optional) Custom fields * stage: (Optional) New stage | Updated ticket object |\\n\\nObject links\\n------------\\n\\n| Operation | Description | Input Parameters | Output |\\n| --- | --- | --- | --- |\\n| LinkConversationWithTicket | Creates a link between a conversation and a ticket. | * source: Conversation ID * link\\\\_type: Type of link (usually \"is\\\\_related\\\\_to\") * target: Ticket ID | Empty", + "title": "Workflow action library | Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-2874_KNOWLEDGE_NODE-27", - "text": "updated, and not updated. If the fields specified in the configuration are not found, a notification will be provided in the **Discussion** tab.\\n\\n[PreviousTicket age in engineering](/docs/automations/ticket-age-in-engineering)[NextTicket Immutability](/docs/automations/ticket-immutability)\\n\\n#### On this page\\n\\n* [Ticket issue field migrator](#ticket-issue-field-migrator)\\n* [Installation](#installation)\\n* [Configuration](#configuration)\\n\\n[Enterprise grade security to protect customer", - "title": "Ticket issue field migrator | Automate | Snap-ins | DevRev" + "id": "ART-12391_KNOWLEDGE_NODE-27", + "text": "workflow.\\n\\nNow, your workflow runs whenever a conversation or a ticket gets created and it\\nassigns it to an AI agent, which handles the conversation. No brittle rules.\\n\\nFind below a detailed explanation of all the fields needed to configure in the\\n\"Talk to Agent\" Step\\n\\n| Parameter | Type | Description |\\n| --- | --- | --- |\\n| agent | String | ID of the AI agent to use. Use the dropdown to select one. |\\n| object | String | ID of the conversation or ticket where the agent operate.s |\\n|", + "title": "Conversational workflows | Workflows | Computer by DevRev | DevRev" } ] }, @@ -2972,54 +2972,54 @@ "query": "configure contact to open ticket in different workspace", "retrievals": [ { - "id": "ART-1979_KNOWLEDGE_NODE-55", - "text": "centralized in one location. This ticket not only retains the most comprehensive data but also acts as the focal point for tracking the progress of the customer's issue.\\n\\n### Merging guidelines\\n\\nTo ensure consistency and accuracy in the merging process, apply these guidelines when determining eligible tickets for merging:\\n\\n* Same workspace: All selected tickets must belong to the same customer workspace or have no workspace.\\n* Matching reporters: All selected tickets must have the same", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-2012_KNOWLEDGE_NODE-28", + "text": "say \\xe2\\x80\\x9cI would like to add a terminal stage on my tickets\\xe2\\x80\\x9d and we will get it done.\\n\\n * If no terminal stage is set, tickets will reopen on new comments from customers if **Reopen Closed Tickets on customer message** is enabled in the [convergence snap-in](./converge). The tickets move to the _In Progress_ state by default.\\n\\n * If you connected your support email address with DevRev, it is recommended that you enable the **Allow automations to send email** in your", + "title": "Follow-up ticket | Automate | Snap-ins | DevRev" }, { - "id": "ART-1978_KNOWLEDGE_NODE-41", - "text": "If no such contact is found, JIT provisioning automatically creates a user account, allowing immediate access to the portal. This means users can sign up and log in without manual contact creation within the app.\\n* **Existing contacts without mapped accounts**: If a user is already a contact within the app but does not have a mapped account, they can still log in and create a ticket. In this scenario, the login is performed under the default workspace assigned to the contact.\\n* **Account", - "title": "Customer portal | Computer for Support Teams | DevRev" + "id": "ART-16803_KNOWLEDGE_NODE-26", + "text": "Tickets\\n* Meetings\\n* Objects linked to issues\\n* Users\\n\\nTo configure a workspace object loop:\\n\\n1. On the **workflow canvas**, add an action step named **Loop for [Object]**, where [Object] is the entity you want to iterate over.\\n2. Apply **filter conditions** to refine the set of objects included in the loop and perform operations on them.\\n\\nAll **actions** inside the loop execute once per object that satisfies the filter conditions.\\n\\n### For Each\\n\\nThe **For Each** loop iterates", + "title": "Workflow nodes | Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-38", - "text": "the top-right corner of your screen.\\n3. Add a title and description for your new ticket. You can also attach files related to the ticket in the description.\\n4. Select which part of the company/product this ticket is related to.\\n\\n ![]()\\n5. Enter other attributes for the ticket: change the assignee or accept the default; enter the severity; add any relevant tags to help employees identify any relevant traits of the ticket; select the workspace that the ticket pertains to.\\n6. If there are", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-2040_KNOWLEDGE_NODE-30", + "text": "established, select the Zendesk workspace you want to import and specify the DevRev part where the imported tickets should be created. This initiates a bulk import of the selected workspace.\\n4. DevRev makes an effort to automatically map the fields from Zendesk to corresponding fields in DevRev. However, you may be prompted to manually map certain fields if needed.\\n\\n![]()\\n\\nDevRev supports importing Zendesk organization custom fields. When importing organizations, AirSync will display", + "title": "Zendesk AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-6174_KNOWLEDGE_NODE-17", - "text": "* [Email snap-in configuration](/docs/integrations/email-config)\\n - [Exotel](/docs/integrations/exotel)\\n - [Slack](/docs/integrations/slack)\\n - [WhatsApp](/docs/integrations/whatsapp)\\n - [GitHub](/docs/integrations/github)\\n - [GitLab](/docs/integrations/gitlab)\\n - [Harness](/docs/integrations/harness)\\n - [Marker.io](/docs/integrations/marker-io)\\n - [Instabug](/docs/integrations/instabug)\\n - [Qase](/docs/integrations/qase)\\n - [Tracxn", - "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" + "id": "ART-2874_KNOWLEDGE_NODE-25", + "text": "mappings specified in the configuration input. The process features robust error handling, detailed logging, and appends a summary comment to the timeline for easy update tracking.\\n\\nInstallation\\n------------\\n\\n1. Install the **Ticket Issue Field Migrator** snap-in from the DevRev marketplace.\\n2. Select the workspace where you want to install the snap-in, confirm your selection, and click **Deploy snap-in**.\\n\\nConfiguration\\n-------------\\n\\n1. In DevRev, go to **Settings** > **Snap-ins**", + "title": "Ticket issue field migrator | Automate | Snap-ins | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-30", - "text": "the ticket was created.\\n* **Modified date**: The date the ticket was last modified.\\n* **Tags**: Tags are used to categorize tickets.\\n* **Customer workspace**: The workspace that the ticket pertains to. You can create a new account or workspace if it doesn't exist.\\n* **Target close date**: The date by which the issue is expected to be resolved.\\n* **Modified by**: The user who last modified the ticket.\\n* **Reported by**: Which customer is experiencing the issue. When a ticket is created", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-2035_KNOWLEDGE_NODE-31", + "text": "creating conversations from any Slack channel:\\n\\n1. Link the DevRev Customer workspace to the channel by running /devrev link in the channel.\\n2. In the pop-up modal, search for the DevRev Customer workspace. \\n 2a. Select the preferred workspace and click **Link**. \\n 2b. If your channel is already linked to a workspace, the modal will show the details of the workspace and an option to unlink.\\n3. Once linked, new contacts identified via Slack are automatically added to the associated", + "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-62", - "text": "up ticket.\\n\\nThe below fields would be copied on the new follow up ticket from the archived/immutable ticket:\\n\\n* Part\\n* Channel\\n* Account\\n* Workspace\\n* Reported by\\n* Description\\n* Title\\n* Channel specific custom fields\\n* Subtype\\n\\nThe follow up trigger is added in the workflows and admins configure the changes required on new follow up ticket, for example, copying of any other fields.\\n\\nInternal Tickets\\n----------------\\n\\nInternal tickets allow your team to create and manage", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-2010_KNOWLEDGE_NODE-28", + "text": "user ID mentioned in a row doesn\\'t exist. Other work items aren\\'t impacted by this.\\n* The workspace ID is only used for associating tickets to the workspace and not issues.\\n* If the CSV lists multiple owners, only the first is set as the owner in the DevRev work item.\\n\\nHow to use bulk ticket uploader\\n-------------------------------\\n\\n1. In the **Discussion** tab of an account, ticket, part, or issue, enter /upload\\\\_workitems.\\n A **Bulk Uploader Bot** form appears.\\n2. From the", + "title": "Bulk work item uploader | Automate | Snap-ins | DevRev" }, { - "id": "ART-1947_KNOWLEDGE_NODE-28", - "text": "members from your own workspace and other members from the user\\'s workspace without starting a new thread or email chain. Because there can be many tickets attached to a single conversation, there is no need to start a new thread for new topics either.\\n\\nWe recommend closing the conversation whenever you feel the interaction has reached a natural end. Closing the conversation does not close the tickets and your external users are still able to see them in the widget.\\n\\nTickets\\n-------\\n\\nA", - "title": "Apps | Computer by DevRev | DevRev" + "id": "ART-1957_KNOWLEDGE_NODE-27", + "text": "[Issues](./issues#attributes)\\n* [Tickets](./tickets#attributes)\\n* [Opportunity](./grow#opportunity-attributes)\\n* [Account](./grow#account-attributes)\\n* [Contact](./grow#contact-attributes)\\n* [Parts](./parts#attributes)\\n\\n![]()\\n\\nAdding custom fields can be done by workspace admins only. Members of your organization can only view the custom fields and subtypes.\\n\\nTo get started with object customization, go to [**Settings** > **Object", + "title": "Object customization | Computer by DevRev | DevRev" }, { - "id": "ART-2002_KNOWLEDGE_NODE-25", - "text": "about the customer initiating the conversation. Similarly, tickets on DevRev can capture who the ticket was reported by (or reported for).\\n\\nConcepts\\n--------\\n\\nCustomer identity in DevRev includes the following important constructs:\\n\\n* **External User/contact**: Your end user or customer or users associated with organization Accounts or Workspaces.\\n* **Account/workspace**: Any logical grouping that an external user is part of. It could represent a customer account for your B2B product", - "title": "Contacts | Computer for Growth Teams | DevRev" + "id": "ART-2027_KNOWLEDGE_NODE-26", + "text": "configuration instructions, refer to [Email snap-in configuration](/docs/integrations/email-config).\\n\\nFor more information, refer to the [Email snap-in](/marketplace/email-with-tickets) on the DevRev marketplace.\\n\\nConversation and ticket creation for emails\\n-------------------------------------------\\n\\nWhen an email is received, DevRev checks if the sender is linked to your workspace and creates a conversation or ticket. If a sender is not recognized, DevRev creates a new user profile to", + "title": "Email | Integrate | Snap-ins | DevRev" }, { - "id": "ART-1981_KNOWLEDGE_NODE-30", - "text": "conversation of which you are not the owner, let the owner know to respond. It's beneficial to retain the same point of contact for the duration of the conversation unless the owner refers some another user.\\n* If the conversation has a customer org that's unidentified or is new, add yourself (the customer experience engineer) as the owner of the ticket. Try to find the appropriate owner for the customer org and update the customer record accordingly.\\n* Change the stage of the conversation to", - "title": "Support best practices | Computer for Support Teams | DevRev" + "id": "ART-6175_KNOWLEDGE_NODE-26", + "text": "contacts.\\n* **Link Account and Contact:**\\n Enable this option to link the account and contact to the custom object.\\n* **Account Description Fields:**\\n Enable this option to generate a rich description for accounts using values from multiple Airtable columns.\\n* **Contact Description Fields:**\\n Enable this option to generate a rich description for contacts using values from multiple Airtable columns.\\n* **Airtable Email Columns:**\\n Comma-separated list of names of the columns in", + "title": "Airtable | Automate | Snap-ins | DevRev" }, { - "id": "ART-1976_KNOWLEDGE_NODE-25", - "text": "and effective resolution. Users can design workflows tailored to various scenarios; the example below illustrates a basic routing use case.\\n\\n| NODE | ACTIVITY |\\n| --- | --- |\\n| Trigger | Ticket created |\\n| Action | Pick user by group |\\n| Action | Update ticket |\\n| | ID: Ticket created > Output > ID |\\n| | Group > Output > ID |\\n| | Owned by > Set: Pick user > Output > User |\\n\\nOrgs can set up pull-based routing by updating the group instead of the user ID in the workflow illustrated", - "title": "Routing | Computer for Support Teams | DevRev" + "id": "ART-2035_KNOWLEDGE_NODE-32", + "text": "workspace. When creating work items, the linked customer workspace is pre-selected for quick access.\\n4. Invite the DevRev app to a channel by running /invite @DevRev in the channel.\\n\\nOnce the above steps are completed:\\n\\n* Messages sent by customers directly to the channel will create new conversations.\\n* Any messages in thread, or channel messages by members from your own team won\\xe2\\x80\\x99t create new conversations.\\n* Created conversations can be located in the **Inbox vista** in your", + "title": "Slack | Integrate | Snap-ins | DevRev" } ] }, @@ -3028,54 +3028,54 @@ "query": "link an agent with the search agent so that the search agent can ask the other agent", "retrievals": [ { - "id": "ART-2897_KNOWLEDGE_NODE-20", - "text": "agent is currently open or closed.\\n\\n[code]\\n\\n 1| window.plugSDK.isSearchAgentOpen \\n ---|---\\n[/code] \\n \\nThis returns `true` if the search agent is open and `false` if it is closed.\\n\\n## Prefill search query in search agent\\n\\nUse the `prefillSearchQuery` method to prefill a search query when opening and initializing the search agent.\\n\\n[code]\\n\\n 1| window.plugSDK.prefillSearchQuery(\"search_query\"); \\n ---|---\\n[/code] \\n \\n## Add session properties\\n\\nThe", - "title": "Methods \u2014 DevRev | Docs" + "id": "ART-2665_KNOWLEDGE_NODE-31", + "text": "interactions occurring within the chat widget and search agent should be captured or not. | True |\\n| sessionDetails.sessionId | Field to pass session ID of the previous session to link. | null |\\n| sessionDetails.tabId | Field to pass the tab ID of the previous session to link. | null |\\n| maskTextFn | An option to customize the logic for masking sensitive text during session recording. This function accepts a callback that receives the text content and allows you to define how the text should", + "title": "Session recording options | Session analytics | Computer for Your Customers | DevRev" }, { - "id": "ART-15509_KNOWLEDGE_NODE-19", - "text": "status\\n-------------------------\\n\\nUse `isSearchAgentOpen` to determine whether the search agent is currently open or closed.\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | window.plugSDK.isSearchAgentOpen |\\n```\\n\\nThis returns `true` if the search agent is open and `false` if it is closed.\\n\\nPrefill search query in search agent\\n------------------------------------\\n\\nUse the `prefillSearchQuery` method to prefill a search query when opening and initializing the search agent.\\n\\n```\\n| | |\\n| ---", - "title": "Methods | DevRev | Docs" + "id": "ART-1591_KNOWLEDGE_NODE-113", + "text": "api.devrev.ai / dev-users.identities.link\\nLinks an external/secondary identity to the Dev user.\\nRequest.\\n\\nThis endpoint expects an object.\\ndev_user string Required\\nThe ID of the Dev user to link the external identity to.\\nid string Required\\nUnique ID of the Dev user in the external source.\\nissuer string Required\\nIssuer of the external identity of the Dev user.\\ndisplay_name string Optional\\nDisplay name of the Dev user in the external source.\\nResponse.\\n\\nThis endpoint returns an", + "title": "Create \u2014 DevRev | Docs" }, { - "id": "ART-1466_KNOWLEDGE_NODE-27", - "text": "Toggle search agent.\\n\\nThe toggleSearchAgent method allows you to control the visibility of the search agent.\\n\\nIf no input is provided, the method toggles the search bar: opening it if it\\xe2\\x80\\x99s closed, and closing it if it\\xe2\\x80\\x99s open.\\n\\n1 window. plugSDK. toggleSearchAgent ( true ) ; Prefill search query in search agent.\\n\\nUse the prefillSearchQuery method to prefill a search query when opening and initializing the search agent.\\n\\n1 window. plugSDK. prefillSearchQuery ( \"", - "title": "Methods \u2014 DevRev | Docs" + "id": "ART-15490_KNOWLEDGE_NODE-6", + "text": "Setup for React\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | |\\n```\\n\\nYou can modify the keydown event listener to bind it to other", + "title": "Install Plug search | DevRev | Docs" }, { - "id": "ART-1466_KNOWLEDGE_NODE-26", - "text": "agent.\\n\\nCalling the initSearchAgent() method sets up the PLuG search agent on your website. This initialization is required before performing any other actions with the PLuG widget SDK.\\n\\n1 useEffect ( () => { 2 window. plugSDK. init ( { 3 app_id : \\' \\' , 4 disable_plug_chat_window : true , 5 } ) ; 6 7 window. plugSDK. onEvent ( ( payload ) => { 8 if ( payload. type === \\' ON_PLUG_WIDGET_READY \\' ) { 9 window. plugSDK. initSearchAgent () ; 10 } 11 } ) ; 12 } , []) ;", - "title": "Methods \u2014 DevRev | Docs" + "id": "ART-1832_KNOWLEDGE_NODE-113", + "text": "api.devrev.ai / dev-users.identities.link\\nLinks an external/secondary identity to the Dev user.\\nRequest.\\n\\nThis endpoint expects an object.\\ndev_user string Required\\nThe ID of the Dev user to link the external identity to.\\nid string Required\\nUnique ID of the Dev user in the external source.\\nissuer string Required\\nIssuer of the external identity of the Dev user.\\ndisplay_name string Optional\\nDisplay name of the Dev user in the external source.\\nResponse.\\n\\nThis endpoint returns an", + "title": "Create \u2014 DevRev | Docs" }, { - "id": "ART-2897_KNOWLEDGE_NODE-19", - "text": "10| } \\n 11| }); \\n 12| }, []);\\n[/code] \\n \\n## Toggle search agent\\n\\nThe `toggleSearchAgent` method allows you to control the visibility of the search agent.\\n\\nIf no input is provided, the method toggles the search bar: opening it if it\\xe2\\x80\\x99s closed, and closing it if it\\xe2\\x80\\x99s open.\\n\\n[code]\\n\\n 1| window.plugSDK.toggleSearchAgent(true); \\n ---|---\\n[/code] \\n \\n## Check Search Agent status\\n\\nUse `isSearchAgentOpen` to determine whether the search", - "title": "Methods \u2014 DevRev | Docs" + "id": "ART-1590_KNOWLEDGE_NODE-113", + "text": "api.devrev.ai / dev-users.identities.link\\nLinks an external/secondary identity to the Dev user.\\nRequest.\\n\\nThis endpoint expects an object.\\ndev_user string Required\\nThe ID of the Dev user to link the external identity to.\\nid string Required\\nUnique ID of the Dev user in the external source.\\nissuer string Required\\nIssuer of the external identity of the Dev user.\\ndisplay_name string Optional\\nDisplay name of the Dev user in the external source.\\nResponse.\\n\\nThis endpoint returns an", + "title": "List \u2014 DevRev | Docs" }, { - "id": "ART-15509_KNOWLEDGE_NODE-18", - "text": "window.plugSDK.initSearchAgent(); |\\n| 10 | } |\\n| 11 | }); |\\n| 12 | }, []); |\\n```\\n\\nToggle search agent\\n-------------------\\n\\nThe `toggleSearchAgent` method allows you to control the visibility of the search agent.\\n\\nIf no input is provided, the method toggles the search bar: opening it if it\\xe2\\x80\\x99s closed, and closing it if it\\xe2\\x80\\x99s open.\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | window.plugSDK.toggleSearchAgent(true); |\\n```\\n\\nCheck Search Agent", - "title": "Methods | DevRev | Docs" + "id": "ART-12988_KNOWLEDGE_NODE-9", + "text": "[Privacy Policy](https://devrev.ai/legal/privacy-policy)\\n * [Terms of Service](https://devrev.ai/legal/terms-of-service)\\n\\nLearn\\n\\n * [What are AI Agents?](https://devrev.ai/what-are-ai-agents)\\n * [What is Agentic AI?](https://devrev.ai/what-is-agentic-ai)\\n * [What is Enterprise Search?](https://devrev.ai/what-is-enterprise-search)\\n * [What is Conversational", + "title": "Get Dev Org \u2014 DevRev | Docs" }, { - "id": "ART-15490_KNOWLEDGE_NODE-5", - "text": "shared any information.\\n\\nAfter integrating the Plug widget, you can personalize and contextualize customer engagement. Learn how to [identify your customers](/sdks/web/user-identity) and update their information.\\n\\nBind a hotkey to toggle search agent\\n------------------------------------\\n\\nYou can bind the `toggleSearchAgent` method to a hotkey, such as `Cmd + K` (or `Ctrl + K` for Windows), to toggle the search agent. Here\\xe2\\x80\\x99s an example implementation:\\n\\n###### Setup\\n\\n######", - "title": "Install Plug search | DevRev | Docs" + "id": "ART-1806_KNOWLEDGE_NODE-113", + "text": "api.devrev.ai / dev-users.identities.link\\nLinks an external/secondary identity to the Dev user.\\nRequest.\\n\\nThis endpoint expects an object.\\ndev_user string Required\\nThe ID of the Dev user to link the external identity to.\\nid string Required\\nUnique ID of the Dev user in the external source.\\nissuer string Required\\nIssuer of the external identity of the Dev user.\\ndisplay_name string Optional\\nDisplay name of the Dev user in the external source.\\nResponse.\\n\\nThis endpoint returns an", + "title": "Self Post \u2014 DevRev | Docs" }, { - "id": "ART-15509_KNOWLEDGE_NODE-1", - "text": "conversation](/sdks/web/methods#start-conversation)\\n* [Shutdown](/sdks/web/methods#shutdown)\\n* [Initialize the search agent](/sdks/web/methods#initialize-the-search-agent)\\n* [Toggle search agent](/sdks/web/methods#toggle-search-agent)\\n* [Check Search Agent status](/sdks/web/methods#check-search-agent-status)\\n* [Prefill search query in search agent](/sdks/web/methods#prefill-search-query-in-search-agent)\\n* [Add session properties](/sdks/web/methods#add-session-properties)\\n* [Get session", - "title": "Methods | DevRev | Docs" + "id": "ART-1391_KNOWLEDGE_NODE-8", + "text": "[Privacy Policy](https://devrev.ai/legal/privacy-policy)\\n * [Terms of Service](https://devrev.ai/legal/terms-of-service)\\n\\nLearn\\n\\n * [What are AI Agents?](https://devrev.ai/what-are-ai-agents)\\n * [What is Agentic AI?](https://devrev.ai/what-is-agentic-ai)\\n * [What is Enterprise Search?](https://devrev.ai/what-is-enterprise-search)\\n * [What is Conversational", + "title": "Delete Auth Token \u2014 DevRev | Docs" }, { - "id": "ART-2894_KNOWLEDGE_NODE-4", - "text": "2| window.plugSDK.init({ \\n 3| app_id: \\'\\', \\n 4| disable_plug_chat_window: true, \\n 5| }); \\n 6| \\n 7| window.plugSDK.onEvent((payload) => { \\n 8| if (payload.type === \\'ON_PLUG_WIDGET_READY\\') { \\n 9| window.plugSDK.initSearchAgent(); \\n 10| } \\n 11| }); \\n 12| \\n[/code] \\n \\nTo toggle `searchAgent`, call the following method on any event required:\\n\\n[code]\\n\\n", - "title": "Install PLuG search \u2014 DevRev | Docs" + "id": "ART-1653_KNOWLEDGE_NODE-113", + "text": "api.devrev.ai / dev-users.identities.link\\nLinks an external/secondary identity to the Dev user.\\nRequest.\\n\\nThis endpoint expects an object.\\ndev_user string Required\\nThe ID of the Dev user to link the external identity to.\\nid string Required\\nUnique ID of the Dev user in the external source.\\nissuer string Required\\nIssuer of the external identity of the Dev user.\\ndisplay_name string Optional\\nDisplay name of the Dev user in the external source.\\nResponse.\\n\\nThis endpoint returns an", + "title": "Get \u2014 DevRev | Docs" }, { - "id": "ART-4090_KNOWLEDGE_NODE-13", - "text": "[Subprocessors](https://devrev.ai/security/sub-processors)\\n * [Cookie Policy](https://devrev.ai/legal/cookie-policy)\\n * [Privacy Policy](https://devrev.ai/legal/privacy-policy)\\n * [Terms of Service](https://devrev.ai/legal/terms-of-service)\\n\\nLearn\\n\\n * [What are AI Agents?](https://devrev.ai/what-are-ai-agents)\\n * [What is Agentic AI?](https://devrev.ai/what-is-agentic-ai)\\n * [What is Enterprise Search?](https://devrev.ai/what-is-enterprise-search)\\n * [What is Conversational", - "title": "Create Link \u2014 DevRev | Docs" + "id": "ART-13045_KNOWLEDGE_NODE-12", + "text": "[Privacy Policy](https://devrev.ai/legal/privacy-policy)\\n * [Terms of Service](https://devrev.ai/legal/terms-of-service)\\n\\nLearn\\n\\n * [What are AI Agents?](https://devrev.ai/what-are-ai-agents)\\n * [What is Agentic AI?](https://devrev.ai/what-is-agentic-ai)\\n * [What is Enterprise Search?](https://devrev.ai/what-is-enterprise-search)\\n * [What is Conversational", + "title": "Get Web Crawler Job \u2014 DevRev | Docs" } ] }, @@ -3084,54 +3084,54 @@ "query": "devrev platform orientation and navigation guide", "retrievals": [ { - "id": "ART-2666_KNOWLEDGE_NODE-27", - "text": "DevRev's left navigation is designed to provide a more customizable and intuitive navigation experience. This update introduces new sections for better organization, enhanced customization capabilities, and a dedicated **Explore** page for managing views, dashboards, and sprint boards.\\n\\nWhen existing users log in, a prompt appears to guide them in migrating to the new left navigation. Follow the on-screen instructions to complete the migration and begin customizing your experience.\\n\\n## Key", + "id": "ART-2666_KNOWLEDGE_NODE-26", + "text": "[Developer](https://developer.devrev.ai/)\\n * [DevRevU](/docs/DevRevU)\\n\\n * [Product demos](/docs/DevRevU/demos)\\n\\nOn this page\\n\\n * Key changes\\n * New navigation sections\\n * Explore the section for boards and views\\n * Search and filter options in Explore\\n * Pinning and unpinning views\\n * Recents section\\n\\n 1. [Documentation](/docs)\\n 2. 3. [Changelog](/docs/changelog)\\n 4. [October 5: Left navigation](/docs/product/left-navigation)\\n\\n# Left navigation\\n\\nThe updated", "title": "October 5: Left navigation | Changelog | DevRev" }, { - "id": "ART-1944_KNOWLEDGE_NODE-0", - "text": "b\"Product Platform Solutions Marketplace Company Resources Pricing\\n\\nLogin Book a demo\\nProduct Platform Solutions Marketplace Company Resources Pricing\\nLogin Book a demo\\nSearch CTRL + K\\n\\nIntroduction AgentOS platform\\n\\nCore concepts Apps Groups Parts & trails Vistas Vista Reports\\nTasks Updates Customer email notifications Roles Default privileges by group\\nAccess control Object customization Glossary Search People insights Workflow Templates Accessing DevRev External identity provider", - "title": "DevRev Documentation" + "id": "ART-12602_KNOWLEDGE_NODE-8", + "text": "platforms\\n * Knowledge of revenue attribution models and sales funnel metrics\\n * Background in business analytics, finance, or a related field\\n\\n### **What We Offer:**\\n\\n * Competitive compensation and benefits\\n * Opportunities for career growth and advancement\\n * A collaborative, supportive team environment\\n * Flexible work arrangements\\n * Access to modern tools and technology\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry,", + "title": "DevRev Careers | Revenue Operations Analyst" }, { - "id": "ART-2666_KNOWLEDGE_NODE-26", - "text": "[Developer](https://developer.devrev.ai/)\\n * [DevRevU](/docs/DevRevU)\\n\\n * [Product demos](/docs/DevRevU/demos)\\n\\nOn this page\\n\\n * Key changes\\n * New navigation sections\\n * Explore the section for boards and views\\n * Search and filter options in Explore\\n * Pinning and unpinning views\\n * Recents section\\n\\n 1. [Documentation](/docs)\\n 2. 3. [Changelog](/docs/changelog)\\n 4. [October 5: Left navigation](/docs/product/left-navigation)\\n\\n# Left navigation\\n\\nThe updated", + "id": "ART-2666_KNOWLEDGE_NODE-27", + "text": "DevRev's left navigation is designed to provide a more customizable and intuitive navigation experience. This update introduces new sections for better organization, enhanced customization capabilities, and a dedicated **Explore** page for managing views, dashboards, and sprint boards.\\n\\nWhen existing users log in, a prompt appears to guide them in migrating to the new left navigation. Follow the on-screen instructions to complete the migration and begin customizing your experience.\\n\\n## Key", "title": "October 5: Left navigation | Changelog | DevRev" }, { - "id": "ART-2666_KNOWLEDGE_NODE-0", - "text": "b\"[](/)\\n\\n * Product\\n * Platform\\n * Marketplace\\n * Company\\n * Resources\\n * Pricing\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\n[](/)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources __\\n\\nPricing __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL` \\\\+ `K`\\n\\n * [Introduction](/docs)\\n * [AgentOS platform](/docs/intro)\\n\\n * [Core concepts](/docs/product/core)\\n *", - "title": "October 5: Left navigation | Changelog | DevRev" + "id": "ART-12475_KNOWLEDGE_NODE-1", + "text": ".\\n\\nProceed to integrate the DevRev PLuG SDK. For specific platform migration guides, refer to the following resources:\\n\\nAndroid SDK migration guide: Android Migration Guide\\n\\niOS SDK migration guide: iOS Migration Guide\\n\\nReact Native & Expo SDK migration guide: React Native Migration Guide\\n\\nCordova SDK migration guide: Cordova Migration Guide\\n\\nWeb SDK migration guide: Web Migration Guide\\n\\nOnce the integration is complete, you will be able to view sessions on the Session", + "title": "Migrating from UserExperior to DevRev" }, { - "id": "ART-12450_KNOWLEDGE_NODE-7", - "text": "page helpful?YesNo\\n\\n[FeaturesUp Next](/public/sdks/ios/features)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n[Enterprise grade security to protect customer dataLearn more about it.](https://devrev.ai/blog/soc-compliance)\\n\\nProduct\\n\\n * [Build](https://devrev.ai/build)\\n * [Support](https://devrev.ai/support)\\n * [Search](https://devrev.ai/search)\\n * [PLuG - User", - "title": "Quickstart guide \u2014 DevRev | Docs" + "id": "ART-2662_KNOWLEDGE_NODE-0", + "text": "b'DevRev Documentation\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n + [Groups](/docs/product/groups)\\n +", + "title": "DevRev Documentation" }, { - "id": "ART-2666_KNOWLEDGE_NODE-28", - "text": "changes\\n\\n### New navigation sections\\n\\nThe updated left navigation includes the following sections:\\n\\n * **Work**\\n * **Product**\\n * **Customer**\\n * **People**\\n\\nThese new sections replace the former categories of **Build** , **Product** , **Support** , and **Grow** , offering a more personalized user experience. You can set defaults based on your primary application preferences and add custom views to these sections for easier access.\\n\\n### Explore the section for boards and", - "title": "October 5: Left navigation | Changelog | DevRev" + "id": "ART-16570_KNOWLEDGE_NODE-8", + "text": "access\\n--------------------------------------------------------------\\n\\n**The Transformation Journey**\\n\\nThe shift from FAME\\'s previous fragmented information landscape to DevRev\\'s unified memory represented a fundamental change in how teams work. What once required navigating multiple platforms, piecing together incomplete information, and spending hours searching for answers became as simple as having a conversation.\\n\\nDevRev\\'s AirSync technology seamlessly ingested FAME\\'s existing", + "title": "FAME transforms information access with AI-powered enterprise search" }, { - "id": "ART-15498_KNOWLEDGE_NODE-8", - "text": "helpful?\\n\\nYesNo\\n\\n[Previous](/sdks/web/migration)[#### Features\\n\\nNext](/sdks/android/features)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Quickstart guide | DevRev | Docs" + "id": "ART-15203_KNOWLEDGE_NODE-10", + "text": "Technical knowledge of web solutions including APIs and Webhooks. Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n* Outstanding communication (written and verbal), with fluency in English.\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who", + "title": "DevRev Careers | Senior Customer Success Manager" }, { - "id": "ART-2662_KNOWLEDGE_NODE-1", - "text": "[Parts & trails](/docs/product/parts)\\n + [Vistas](/docs/product/vistas)\\n\\n - [Vista Reports](/docs/product/vista-reports)\\n - [Board view](/docs/product/board-view)\\n + [Tasks](/docs/product/tasks)\\n + [Updates](/docs/product/updates)\\n + [Customer email notifications](/docs/product/customer-emails)\\n + [Roles](/docs/product/roles)\\n\\n - [Default privileges by group](/docs/product/privs)\\n + [Access control](/docs/product/access-control)\\n + [Object", - "title": "DevRev Documentation" + "id": "ART-2031_KNOWLEDGE_NODE-0", + "text": "b\"Harness | Integrate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", + "title": "Harness | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2662_KNOWLEDGE_NODE-0", - "text": "b'DevRev Documentation\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n + [Groups](/docs/product/groups)\\n +", - "title": "DevRev Documentation" + "id": "ART-16798_KNOWLEDGE_NODE-9", + "text": "skills are also valued.\\n\\n* Outstanding communication (written and verbal), with fluency in English.\\n\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the earth\\xe2\\x80\\x99s most customer-centric companies. Our mission is", + "title": "DevRev Careers | Partner Success Manager" }, { - "id": "ART-12461_KNOWLEDGE_NODE-0", - "text": "b'[](/public/sdks/cordova/quickstart)\\n\\nPublic\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources", - "title": "Quickstart guide \u2014 DevRev | Docs" + "id": "ART-2039_KNOWLEDGE_NODE-0", + "text": "b\"Marker.io | Integrate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CMD`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", + "title": "Marker.io | Integrate | Snap-ins | DevRev" } ] }, @@ -3140,54 +3140,54 @@ "query": "common causes of Bad_Request error in DevRev", "retrievals": [ { - "id": "ART-1364_KNOWLEDGE_NODE-3", - "text": "\\n`429`| `Too Many Requests`| The user is currently throttled due to exceeding their permitted rate limit. The `Retry-After` response header contains the number of seconds before the user should retry. \\n`500`| `Internal Server Error`| An internal error was encountered in the handling of the request which couldn\\xe2\\x80\\x99t be processed to completion. DevRev is automatically alerted to any occurrence of this error. The user should retry after a short delay and contact DevRev support if the", - "title": "Errors \u2014 DevRev | Docs" + "id": "ART-15203_KNOWLEDGE_NODE-10", + "text": "Technical knowledge of web solutions including APIs and Webhooks. Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n* Outstanding communication (written and verbal), with fluency in English.\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who", + "title": "DevRev Careers | Senior Customer Success Manager" }, { - "id": "ART-15376_KNOWLEDGE_NODE-3", - "text": "request to merge Dev users.\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n404\\n\\nNot Found Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/dev-users/list-post)[#### Self Dev User\\n\\nNext](/api-reference/dev-users/self)[Built", - "title": "Merge Dev Users | DevRev | Docs" + "id": "ART-1174_KNOWLEDGE_NODE-0", + "text": "b'Errors | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[About](/about/for-developers)\\n\\nErrors\\n======\\n\\nCopy page\\n\\nDevRev\\xe2\\x80\\x99s APIs use standard HTTP status codes when responding to requests. On success, a `20X` status code is returned along with any response data, as indicated in the OpenAPI specification.\\n\\n| Status Code | Status | Description |\\n| --- | --- | --- |\\n| `200` | `OK` | The request succeeded and the result is", + "title": "Errors | DevRev | Docs" }, { - "id": "ART-1204_KNOWLEDGE_NODE-9", - "text": "Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/dev-users/get)[#### Link Dev Users Identities\\n\\nNext](/api-reference/dev-users/identities-link)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Get Dev User (POST) | DevRev | Docs" + "id": "ART-16798_KNOWLEDGE_NODE-9", + "text": "skills are also valued.\\n\\n* Outstanding communication (written and verbal), with fluency in English.\\n\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the earth\\xe2\\x80\\x99s most customer-centric companies. Our mission is", + "title": "DevRev Careers | Partner Success Manager" }, { - "id": "ART-15449_KNOWLEDGE_NODE-3", - "text": "Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/rev-users/list-post)[#### Scan Rev Users\\n\\nNext](/api-reference/rev-users/scan)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Merge Rev Users | DevRev | Docs" + "id": "ART-1174_KNOWLEDGE_NODE-3", + "text": "to perform the requested action. |\\n| `404` | `Not Found` | The requested endpoint doesn\\xe2\\x80\\x99t exist. |\\n| `429` | `Too Many Requests` | The user is currently throttled due to exceeding their permitted rate limit. The `Retry-After` response header contains the number of seconds before the user should retry. |\\n| `500` | `Internal Server Error` | An internal error was encountered in the handling of the request which couldn\\xe2\\x80\\x99t be processed to completion. DevRev is automatically", + "title": "Errors | DevRev | Docs" }, { - "id": "ART-1364_KNOWLEDGE_NODE-2", - "text": "{\"message\":\"route not found\"}\\n[/code] \\n \\nStatus Code| Status| Description \\n---|---|--- \\n`400`| `Bad Request`| The request was malformed or contained invalid arguments. \\n`401`| `Unauthorized`| The user attempted to access an endpoint that requires authentication and no credentials were provided or their validation failed. \\n`403`| `Forbidden`| The user isn\\xe2\\x80\\x99t authorized to perform the requested action. \\n`404`| `Not Found`| The requested endpoint doesn\\xe2\\x80\\x99t exist.", - "title": "Errors \u2014 DevRev | Docs" + "id": "ART-15962_KNOWLEDGE_NODE-9", + "text": "areas.\\n\\n**Preferred Qualifications** \\nList additional skills, experience, or attributes that are advantageous but not required.\\n\\n* MBA or related advanced degree.\\n* 10+ years of experience in software product marketing, with direct experience in AI, large language models, machine learning, or related fields preferred.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the", + "title": "DevRev Careers | Senior Product Marketing Manager" }, { - "id": "ART-15440_KNOWLEDGE_NODE-9", - "text": "Error\\n\\n409\\n\\nConflict Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/rev-users/scan-post)[#### Create Service Account\\n\\nNext](/api-reference/service-accounts/create)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Update Rev User | DevRev | Docs" + "id": "ART-1364_KNOWLEDGE_NODE-3", + "text": "\\n`429`| `Too Many Requests`| The user is currently throttled due to exceeding their permitted rate limit. The `Retry-After` response header contains the number of seconds before the user should retry. \\n`500`| `Internal Server Error`| An internal error was encountered in the handling of the request which couldn\\xe2\\x80\\x99t be processed to completion. DevRev is automatically alerted to any occurrence of this error. The user should retry after a short delay and contact DevRev support if the", + "title": "Errors \u2014 DevRev | Docs" }, { - "id": "ART-4097_KNOWLEDGE_NODE-1", - "text": "Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n404\\n\\nNot Found Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nPOST\\n\\n/rev-users.delete\\n\\n[code]\\n\\n $| curl -X POST https://api.devrev.ai/rev-users.delete \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -H \"Content-Type: application/json\" \\\\ \\n >| -d \\'{ \\n >| \"id\": \"foo\" \\n >| }\\'\\n[/code] \\n \\nTry", - "title": "Delete Rev User \u2014 DevRev | Docs" + "id": "ART-4098_KNOWLEDGE_NODE-1", + "text": "Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n404\\n\\nNot Found Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nGET\\n\\n/rev-users.get\\n\\n[code]\\n\\n $| curl -G https://api.devrev.ai/rev-users.get \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -d id=id\\n[/code] \\n \\nTry it\\n\\n200getExample\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"rev_user\": { \\n 3|", + "title": "Get Rev User \u2014 DevRev | Docs" }, { - "id": "ART-1213_KNOWLEDGE_NODE-5", - "text": "properties\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n404\\n\\nNot Found Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/rev-orgs/delete)[#### Get Rev Org (POST)\\n\\nNext](/api-reference/rev-orgs/get-post)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Get Rev Org | DevRev | Docs" + "id": "ART-15202_KNOWLEDGE_NODE-10", + "text": "including APIs and Webhooks. Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n* Outstanding communication (written and verbal), with fluency in English.\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to", + "title": "DevRev Careers | Senior Customer Success Manager" }, { - "id": "ART-15314_KNOWLEDGE_NODE-8", - "text": "Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n404\\n\\nNot Found Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/code-changes/update)[#### Get Command\\n\\nNext](/api-reference/commands/get)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Create Command | DevRev | Docs" + "id": "ART-15201_KNOWLEDGE_NODE-10", + "text": "Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n * Outstanding communication (written and verbal), with fluency in English.\\n * Comfort operating in a fast-paced, high-demand, global environment.\\n * Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the", + "title": "DevRev Careers | Senior Customer Success Manager" }, { - "id": "ART-1205_KNOWLEDGE_NODE-11", - "text": "Error\\n\\n403\\n\\nForbidden Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/dev-users/identities-unlink)[#### List Dev Users (POST)\\n\\nNext](/api-reference/dev-users/list-post)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "List Dev Users | DevRev | Docs" + "id": "ART-1854_KNOWLEDGE_NODE-6", + "text": "retries is exhausted, the errored events are moved to a dead-letter queue (DLQ) for further handling.\\n\\n## Error interface\\n\\nThe DevRev SDK defines the `FunctionExecutionError` type to represent errors returned from the snap-in\\xe2\\x80\\x99s run function. Developers can use this type to provide additional error details and indicate whether an error is retryable.\\n\\n[code]\\n\\n 1| class FunctionExecutionError extends Error { \\n ---|--- \\n 2| /** \\n 3| * Toggle to determine if", + "title": "Event reliability in DevRev snap-ins \u2014 DevRev | Docs" } ] }, @@ -3196,54 +3196,54 @@ "query": "associate multiple workspaces to a contact", "retrievals": [ { - "id": "ART-1210_KNOWLEDGE_NODE-0", - "text": "b'Workspaces | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[rev-orgs](/api-reference/rev-orgs/workspaces)\\n\\nWorkspaces\\n==========\\n\\nCopy page\\n\\n`rev-orgs` endpoint\\n\\n\\xe2\\x84\\xb9\\xef\\xb8\\x8f Workspaces (or rev orgs) are the organizations that your customers belong to. A workspace offers more granularity than accounts to define the instances of your product. Users can be mapped to track", - "title": "Workspaces | DevRev | Docs" + "id": "ART-2035_KNOWLEDGE_NODE-31", + "text": "creating conversations from any Slack channel:\\n\\n1. Link the DevRev Customer workspace to the channel by running /devrev link in the channel.\\n2. In the pop-up modal, search for the DevRev Customer workspace. \\n 2a. Select the preferred workspace and click **Link**. \\n 2b. If your channel is already linked to a workspace, the modal will show the details of the workspace and an option to unlink.\\n3. Once linked, new contacts identified via Slack are automatically added to the associated", + "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-1414_KNOWLEDGE_NODE-1", - "text": "__\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[API Reference](/public/api-reference/getting-started)[rev-orgs](/public/api-reference/rev-orgs/workspaces)\\n\\n#\\n\\nWorkspaces\\n\\n`rev-orgs` endpoint\\n\\n\\xe2\\x84\\xb9\\xef\\xb8\\x8f Workspaces (or rev orgs) are the organizations that your customers belong to. A workspace offers more granularity than accounts to define the instances of your product. Users can be mapped", - "title": "Workspaces \u2014 DevRev | Docs" + "id": "ART-1997_KNOWLEDGE_NODE-31", + "text": "users associated with an organization's workspaces or accounts. A contact is also known as a rev-user in the DevRev API.\\n\\nContacts represent customers, leads, and stakeholders with whom a business interacts. Contacts can be associated with an account or workspace, but not always.\\n\\n\\xf0\\x9f\\xa4\\x9d Engagement\\n------------\\n\\nDevRev uses engagements to capture all interactions between employees and customers, encompassing communications across various channels and touchpoints. DevRev records", + "title": "Computer for Growth Teams | DevRev" }, { - "id": "ART-1960_KNOWLEDGE_NODE-28", - "text": "Individual prospects or users associated with an organization\\'s workspaces or accounts.\\n: Contacts can be associated with an account or workspace, but not always.\\n: Terms related to\\xc2\\xa0*contact*:\\n\\n * *[account](#account)*\\n * *[workspace](#workspace)*\\n: Read more about\\xc2\\xa0[*contact*](https://docs.devrev.ai/product/grow)\\n\\nconversation\\n\\n: An interaction between the builder and consumer that may be escalated to a ticket.\\n: Terms related", - "title": "Glossary | Computer by DevRev | DevRev" + "id": "ART-2933_KNOWLEDGE_NODE-3", + "text": "associated with a workspace.\\n\\n##### \\n\\nJust want to get a token and get started? This [tutorial](/about/authentication#generate-a-personal-access-token-pat) teaches you the fastest way to get a token.\\n\\nYes\\n\\nNo\\n\\naccounts.create\\n\\nAccount is existing \\n\\'account ID\\'\\n\\nrev-orgs.list with \\n\\'account\\' filter\\n\\nrev-orgs.get with \\n\\'account ID\\'\\n\\nGet rev-org \\'display\\\\_id\\'\\n\\nCreate a \\'rev-user\\' under \\'contact\\'\\n\\nCreate an account\\n-----------------\\n\\nThe payload to make a", + "title": "Account creation | DevRev | Docs" }, { - "id": "ART-1210_KNOWLEDGE_NODE-1", - "text": "usage per workspace.\\n\\n\\xf0\\x9f\\x93\\x8c For more information about workspaces, refer to [Customers](https://docs.devrev.ai/product/customers).\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/parts/update)[#### Create Rev Org\\n\\nNext](/api-reference/rev-orgs/create)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Workspaces | DevRev | Docs" + "id": "ART-16784_KNOWLEDGE_NODE-6", + "text": "in the source system.\\n\\nTerms related to connection: AirSync, snap-incontact\\n\\nIndividual prospects or users associated with an organization\\'s workspaces or accounts.\\n\\nContacts can be associated with an account or workspace, but not always.\\n\\nTerms related to contact: account, workspace\\n\\nRead more about contact: [https://devrev.ai/docs/product/grow](https://devrev.ai/docs/product/grow)conversation\\n\\nAn interaction between the builder and consumer that may be escalated to a", + "title": "Glossary" }, { - "id": "ART-16264_KNOWLEDGE_NODE-29", - "text": "account.\\n + If both **Reported By** and **Account** fields are initially empty, you can search for and add any contact to the **Reported By** field, which will auto-fill the **Account** and **Workspace** (if applicable).\\n* **Handling multiple users:**\\n\\n + If all selected users within the **Reported By** field belong to the same workspace, the **Workspace** field remains unchanged.\\n + If users are from different workspaces, the **Workspace** field is emptied, while the **Account** field", - "title": "June 2025 | Changelog | DevRev" + "id": "ART-2035_KNOWLEDGE_NODE-32", + "text": "workspace. When creating work items, the linked customer workspace is pre-selected for quick access.\\n4. Invite the DevRev app to a channel by running /invite @DevRev in the channel.\\n\\nOnce the above steps are completed:\\n\\n* Messages sent by customers directly to the channel will create new conversations.\\n* Any messages in thread, or channel messages by members from your own team won\\xe2\\x80\\x99t create new conversations.\\n* Created conversations can be located in the **Inbox vista** in your", + "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-15506_KNOWLEDGE_NODE-17", - "text": "Contacts linked to the account | User and account information | Recommended for most B2B cases |\\n| **Three-level** | Account with linked workspaces and contacts | User, workspace and account information | Used for B2B cases but only recommended if your business model requires workspace organization |\\n\\n**What happens when you send different combinations:**\\n\\nUser reference:\\n\\n* A user reference is mandatory, ensuring its constant presence.\\n* If a user with the provided reference", - "title": "Identify your users with Plug | DevRev | Docs" + "id": "ART-1960_KNOWLEDGE_NODE-28", + "text": "Individual prospects or users associated with an organization\\'s workspaces or accounts.\\n: Contacts can be associated with an account or workspace, but not always.\\n: Terms related to\\xc2\\xa0*contact*:\\n\\n * *[account](#account)*\\n * *[workspace](#workspace)*\\n: Read more about\\xc2\\xa0[*contact*](https://docs.devrev.ai/product/grow)\\n\\nconversation\\n\\n: An interaction between the builder and consumer that may be escalated to a ticket.\\n: Terms related", + "title": "Glossary | Computer by DevRev | DevRev" }, { - "id": "ART-1414_KNOWLEDGE_NODE-2", - "text": "to track usage per workspace.\\n\\n\\xf0\\x9f\\x93\\x8c For more information about workspaces, refer to [Customers](https://docs.devrev.ai/product/customers).\\n\\nWas this page helpful?YesNo\\n\\n[ConceptsUp Next](/public/api-reference/tags/concepts)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n[Enterprise grade security to protect customer dataLearn more about it.](https://devrev.ai/blog/soc-compliance)\\n\\nProduct\\n\\n *", - "title": "Workspaces \u2014 DevRev | Docs" + "id": "ART-16264_KNOWLEDGE_NODE-29", + "text": "account.\\n + If both **Reported By** and **Account** fields are initially empty, you can search for and add any contact to the **Reported By** field, which will auto-fill the **Account** and **Workspace** (if applicable).\\n* **Handling multiple users:**\\n\\n + If all selected users within the **Reported By** field belong to the same workspace, the **Workspace** field remains unchanged.\\n + If users are from different workspaces, the **Workspace** field is emptied, while the **Account** field", + "title": "June 2025 | Changelog | DevRev" }, { - "id": "ART-16784_KNOWLEDGE_NODE-6", - "text": "in the source system.\\n\\nTerms related to connection: AirSync, snap-incontact\\n\\nIndividual prospects or users associated with an organization\\'s workspaces or accounts.\\n\\nContacts can be associated with an account or workspace, but not always.\\n\\nTerms related to contact: account, workspace\\n\\nRead more about contact: [https://devrev.ai/docs/product/grow](https://devrev.ai/docs/product/grow)conversation\\n\\nAn interaction between the builder and consumer that may be escalated to a", - "title": "Glossary" + "id": "ART-6175_KNOWLEDGE_NODE-26", + "text": "contacts.\\n* **Link Account and Contact:**\\n Enable this option to link the account and contact to the custom object.\\n* **Account Description Fields:**\\n Enable this option to generate a rich description for accounts using values from multiple Airtable columns.\\n* **Contact Description Fields:**\\n Enable this option to generate a rich description for contacts using values from multiple Airtable columns.\\n* **Airtable Email Columns:**\\n Comma-separated list of names of the columns in", + "title": "Airtable | Automate | Snap-ins | DevRev" }, { - "id": "ART-1414_KNOWLEDGE_NODE-0", - "text": "b'[](/public/api-reference/rev-orgs/workspaces)\\n\\nPublic\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources", - "title": "Workspaces \u2014 DevRev | Docs" + "id": "ART-6177_KNOWLEDGE_NODE-26", + "text": "**Enable *Contact* Custom Field Mapping For Tracxn:** \\n Use the Tracxn-based *Contact* custom field mappings.\\n* **Enable *Contact* Custom Field Mapping for DevRev:** \\n Use static *Contact* custom field values.\\n* **Enable Tags For *Accounts*:** \\n Apply tags to created *Accounts*.\\n* **Enable Tags For *Contacts*:** \\n Apply tags to created *Contacts*.\\n* ***Account* Field Mapping:** \\n Map fields from Tracxn company objects to DevRev *Account* fields.\\n\\n **Format:**\\n\\n ```\\n", + "title": "Tracxn sync | Automate | Snap-ins | DevRev" }, { - "id": "ART-1997_KNOWLEDGE_NODE-31", - "text": "users associated with an organization's workspaces or accounts. A contact is also known as a rev-user in the DevRev API.\\n\\nContacts represent customers, leads, and stakeholders with whom a business interacts. Contacts can be associated with an account or workspace, but not always.\\n\\n\\xf0\\x9f\\xa4\\x9d Engagement\\n------------\\n\\nDevRev uses engagements to capture all interactions between employees and customers, encompassing communications across various channels and touchpoints. DevRev records", - "title": "Computer for Growth Teams | DevRev" + "id": "ART-1986_KNOWLEDGE_NODE-30", + "text": "its own SLA, and a single customer can have multiple workspaces.\\n\\n**Adding assignment rules**\\n\\nGo to **Assignment rules** to add conditions for an account to be assigned a particular SLA.\\n\\n1. Click **+ Create Rule**.\\n2. In the **New SLA assignment rule** pane, select the account attributes and their values to check for.\\n3. Click **Save and Apply**.\\n\\n**Editing/Deleting an assignment rule**\\n\\nOnce an assignment rule is created, you have the option to edit or delete it. Any changes made", + "title": "Service-level agreement | Computer for Support Teams | DevRev" } ] }, @@ -3252,18 +3252,13 @@ "query": "Slack notifications org name unknown organisation", "retrievals": [ { - "id": "ART-2035_KNOWLEDGE_NODE-60", - "text": "hidden.\\n\\n![]()\\n\\nSlack currently does not support custom objects or related automations.\\n\\nSlack snap-in user resolution\\n-----------------------------\\n\\n* The Slack snap-in uses email for user resolution between platforms. If a user or organization hides their emails, the integration cannot resolve the user to a DevRev Contact and will act on behalf of itself instead. It's recommended to ask customers to share their emails with your organization so apps, including DevRev, can access", - "title": "Slack | Integrate | Snap-ins | DevRev" - }, - { - "id": "ART-2035_KNOWLEDGE_NODE-35", - "text": "the channel will not sync to DevRev.\\n\\nConversation notifications\\n--------------------------\\n\\nAny new message added to a conversation within your DevRev workspace, regardless of its originating source channel or platform, can trigger a notification in a designated Slack channel, helping your team stay updated on customer interactions.\\n\\n### To enable conversation notifications\\n\\n1. Turn on **Enable the conversation notification feature** in the Slack snap-in configuration.\\n2. Provide a", - "title": "Slack | Integrate | Snap-ins | DevRev" + "id": "ART-1276_KNOWLEDGE_NODE-18", + "text": "--- |\\n| 1 | const verifyOrgName = async (orgName: string, octokit: Octokit) => { |\\n| 2 | try { |\\n| 3 | await octokit.request(\"GET /orgs/{org}\", { |\\n| 4 | headers: { |\\n| 5 | \"X-GitHub-Api-Version\": \"2022-11-28\", |\\n| 6 | }, |\\n| 7 | org: orgName, |\\n| 8 | }); |\\n| 9 | } catch (error) { |\\n| 10 | console.error(error); |\\n| 11 | throw new Error(\"Invalid Organisation Name\"); |\\n| 12 | } |\\n| 13 | }; |\\n```\\n\\nSimilarly, the [GET", + "title": "Using a snap-in to perform an external action | DevRev | Docs" }, { - "id": "ART-2017_KNOWLEDGE_NODE-27", - "text": "Connection**.\\n * Select **Slack** from the dowpdown list.\\n * Give it a name and sign in with Slack. Ensure to toggle on **Make public** to make the connection public for your organization.\\n\\nConfigure the snap-in\\n---------------------\\n\\n1. In the **Configuration** tab, the first input field to set is *filters*. Here you can declare for which tickets to track the SLA status and to which channels to send notifications.\\n\\n Set the ticket subtype, severity, and part; the support heads", + "id": "ART-2017_KNOWLEDGE_NODE-28", + "text": "you would like to tag on the message (the ticket owner gets tagged automatically); and the target Slack channel. The channel\\'s ID can be found by going to the channel details. Refer to the placeholder value on the input to see an example of how this looks.\\n2. Decide if notifications should go out even if the ticket has a target end date set. Set the toggle to the desired behavior.\\n3. Decide if a ticket should pass the check if it\\'s part is a descendant of the filter part. For example, if a", "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" }, { @@ -3272,34 +3267,39 @@ "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2017_KNOWLEDGE_NODE-17", - "text": "* [Email snap-in configuration](/docs/integrations/email-config)\\n - [Exotel](/docs/integrations/exotel)\\n - [Slack](/docs/integrations/slack)\\n - [WhatsApp](/docs/integrations/whatsapp)\\n - [GitHub](/docs/integrations/github)\\n - [GitLab](/docs/integrations/gitlab)\\n - [Harness](/docs/integrations/harness)\\n - [Marker.io](/docs/integrations/marker-io)\\n - [Instabug](/docs/integrations/instabug)\\n - [Qase](/docs/integrations/qase)\\n - [Tracxn", - "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" + "id": "ART-1278_KNOWLEDGE_NODE-10", + "text": "as the\\nconduit for receiving relevant events.\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | event_sources: |\\n| 2 | organization: |\\n| 3 | - name: github-app-source |\\n| 4 | type: flow-custom-webhook |\\n| 5 | description: Event coming from Github app. |\\n| 6 | config: |\\n| 7 | policy: | |\\n| 8 | package rego |\\n| 9 | signature := crypto.hmac.sha256(base64.decode(input.request.body_raw), input.parameters.secret) |\\n| 10 | expected_header := sprintf(\"sha256=%v\", [signature]) |\\n| 11 |", + "title": "Snap-in triggered by an external source | DevRev | Docs" }, { - "id": "ART-4199_KNOWLEDGE_NODE-31", - "text": "Policy](/legal/cookie-policy)\\n* [Privacy Policy](/legal/privacy-policy)\\n* [Terms of Service](/legal/terms-of-service)\\n\\n[System Status](/status)\\n\\n\\xc2\\xa9 2025 DevRev Inc.\"", - "title": "Slack message agent | Automate | Snap-ins | DevRev" + "id": "ART-1484_KNOWLEDGE_NODE-98", + "text": "\\n 3| \"action_id\": \"emails\", \\n 4| \"placeholder\": { \\n 5| \"text\": \"Enter email here\", \\n 6| \"type\": \"plain_text\" \\n 7| }, \\n 8| \"type\": \"email_list\" \\n 9| }, \\n 10| \"hint\": { \\n 11| \"text\": \"When these emails are included in a Slack message, they automatically receive an email notification.\", \\n 12| \"type\": \"plain_text\" \\n 13| }, \\n 14| \"label\": { \\n 15| \"text\": \"List of emails\", \\n 16|", + "title": "Snapkit \u2014 DevRev | Docs" }, { - "id": "ART-2017_KNOWLEDGE_NODE-16", - "text": "sync](/docs/automations/ticket-linked-issues-comment-sync)\\n - [Slack message agent](/docs/automations/slack-message-agent)\\n + [Integrate](/docs/integrate)\\n\\n - [Bitbucket](/docs/integrations/bitbucket)\\n - [Calendly](/docs/integrations/calendly)\\n - [Coralogix security integration](/docs/integrations/coralogix)\\n - [Datadog](/docs/integrations/datadog)\\n - [Google Calendar AirSync](/docs/integrations/google-calendar-airdrop)\\n - [Email](/docs/integrations/email)\\n\\n", - "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" + "id": "ART-1276_KNOWLEDGE_NODE-17", + "text": "getOrgAndRepoNames = (paramString: string): string[] => { |\\n| 2 | const paramList = paramString.split(\" \"); |\\n| 3 | if (paramList.length !== 2) { |\\n| 4 | throw new Error(\"Invalid Parameters\"); |\\n| 5 | } |\\n| 6 | const [orgName, repoName] = paramList; |\\n| 7 | return [orgName, repoName]; |\\n| 8 | }; |\\n```\\n\\nThe GitHub REST API () is used to confirm the specified organisation name.\\n\\n```\\n| | |\\n| --- |", + "title": "Using a snap-in to perform an external action | DevRev | Docs" }, { - "id": "ART-2017_KNOWLEDGE_NODE-24", - "text": "[Product demos](/docs/DevRevU/demos)\\n\\nOn this page\\n\\n* [Installation](#installation)\\n* [Configure the snap-in](#configure-the-snapin)\\n\\n1. [Documentation](/docs)\\n3. [Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[SLA status change Slack notifier](/docs/automations/sla-change-notifier)\\n\\nSLA status change Slack notifier\\n================================\\n\\nGet alerted on your ticket\\'s SLAs. This snap-in sends a notification through Slack to user configured channels, tagging the", - "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" + "id": "ART-968_KNOWLEDGE_NODE-2", + "text": "The tagging will occur once the\\nticket is created from a Slack channel provided the ticket-share acknowledgment\\ncheckbox is enabled(the conversation stays private otherwise). This app connects with a\\nSnapin at DevRev that would invoke the app at the time of ticket creation. The ticket\\xe2\\x80\\x99s\\nsource(Slack) serves as the delimiter.\\nYield:\\n\\nThe group\\xe2\\x80\\x99s ID is obtained within the configuration of the snapin at DevRev\\nas shown below.\\n\\nGroup ID to be obtained from within the", + "title": "Rocketium: On call Tagging - Slack" }, { - "id": "ART-2035_KNOWLEDGE_NODE-48", - "text": "channel.\\n\\n1. **Sync messages with the thread (for incidents created from Slack)**\\n\\n* Works only for incidents created from Slack.\\n* It syncs messages with the originating thread, similar to ticket and issue work items.\\n\\n1. **Sync messages with the notification thread**\\n\\n* Syncs with the thread of the incident notification sent on the channel mentioned in the **Channel ID to send incident notifications** configuration.\\n* Works for all incidents irrespective of source channel or", - "title": "Slack | Integrate | Snap-ins | DevRev" + "id": "ART-1484_KNOWLEDGE_NODE-86", + "text": "keywords in a Slack message, they are prompted to send the message to your DevRev inbox.\", \\n 16| \"type\": \"plain_text\" \\n 17| }, \\n 18| \"label\": { \\n 19| \"text\": \"List of strings\", \\n 20| \"type\": \"plain_text\" \\n 21| }, \\n 22| \"type\": \"input_layout\" \\n 23| }\\n[/code] \\n \\nMultiline string list input with a minimum of 1 item and a maximum of 2 items.\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"element\": { \\n 3| \"action_id\":", + "title": "Snapkit \u2014 DevRev | Docs" }, { - "id": "ART-4199_KNOWLEDGE_NODE-23", - "text": "2025](/docs/changelog/_2025-06-01)\\n + [May 2025](/docs/changelog/_2025-05-01)\\n + [March and April 2025](/docs/changelog/_2025-04-01)\\n + [February 2025](/docs/changelog/_2025-02-01)\\n* [Developer \\xe2\\x86\\x97\\xef\\xb8\\x8f](https://developer.devrev.ai/)\\n* [DevRevU \\xe2\\x86\\x97\\xef\\xb8\\x8f](/docs/DevRevU)\\n\\n + [Product demos](/docs/DevRevU/demos)\\n\\nOn this page\\n\\n* [Install](#install)\\n* [Configure the custom Slack bot](#configure-the-custom-slack-bot)\\n* [Configure", - "title": "Slack message agent | Automate | Snap-ins | DevRev" + "id": "ART-12395_KNOWLEDGE_NODE-26", + "text": "docs](/docs/integrations/slack?_gl=1*sit0d5*_ga*MTkzMTU5ODIyOS4xNzE5ODEyMjEw*_ga_MK3C9L001S*czE3NDc2NjIxOTkkbzEzNTkkZzEkdDE3NDc2NjIyMzMkajAkbDAkaDA).\\n\\nFeatures\\n--------\\n\\n* **Customer release notes**: Automatically share release notes with customers via Slack Connect channels.\\n* **Account linking**: Link Slack channels to accounts using the /slack\\\\_broadcaster\\\\_link command in the account timeline. To unlink, use /slack\\\\_broadcaster\\\\_link invalid.\\n* **Bulk account", + "title": "Slack Broadcaster | Automate | Snap-ins | DevRev" + }, + { + "id": "ART-968_KNOWLEDGE_NODE-0", + "text": "b'Rocketium: Slack - On-call Tagging\\n\\n\\xe2\\x97\\x8f Problem statement:\\n\\xe2\\x97\\x8b Rocketium\\xe2\\x80\\x99s CS team creates tickets in DevRev from a specific Slack channel for their\\non-call team to address and work on them.\\n\\xe2\\x97\\x8b Currently, the users are required to manually tag the on-call Slack group members in\\nthe ticket description as shown in the image below.\\n\\n\\xe2\\x97\\x8b The requirement is to automatically tag the members without manual intervention.\\nNote: The requirement", + "title": "Rocketium: On call Tagging - Slack" } ] }, @@ -3308,54 +3308,54 @@ "query": "how to create tickets in DevRev MVP org", "retrievals": [ { - "id": "ART-1979_KNOWLEDGE_NODE-27", - "text": "also be used to engage customers for feedback/ideas (such as new feature ideas). Scoping is important for broadcast tickets as there needs to be a differentiation between broadcast (all revs) vs. multicast (particular revs).\\n\\nViews of tickets can be found under **Support** in the DevRev app.\\n\\n![]()\\n\\nYou can export views to CSV or JSON by selecting **Actions** in the upper-right corner and choosing the format.\\n\\nAttributes\\n----------\\n\\nTickets have attributes that can be used to filter", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-12390_KNOWLEDGE_NODE-29", + "text": "Ticket | Creates a new ticket in DevRev. | * Ticket details like title, body, applies\\\\_to\\\\_part, etc. * subtype: (Optional) Ticket subtype * apps: (Optional) Related apps * app\\\\_custom\\\\_fields: (Optional) Custom fields | Created ticket object |\\n| Convert Conversation To Ticket | Converts a conversation to a ticket. | * conversation\\\\_id: ID of the conversation to convert | ticket\\\\_id: ID of the created ticket |\\n\\nObject retrieval\\n----------------\\n\\n| Operation | Description | Input", + "title": "Workflow action library | Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-37", - "text": "filters and **Group** conditions across various vistas in DevRev to track specific work, capacity, and more.\\n\\nYou can add custom attributes to tickets to track additional information. For more information on custom attributes, see [object customization](./object-customization).\\n\\nIssues are attached to tickets in order to track efforts with product priorities.\\n\\nCreate a ticket\\n---------------\\n\\n1. Go to **Support** > **Tickets** from the sidebar on the left.\\n2. Click **New Ticket** on", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1978_KNOWLEDGE_NODE-43", + "text": "with that email or not.\\n + This could also be because your customer hasn't logged in.\\n* Customer isn't able to view the tickets they have created.\\n\\n + Check if there are any reported tickets by that customer. You can do so by logging into your DevRev app and then going into the tickets section. Here you can filter based on **reported by** and see if any tickets have been reported by the customer who isn't able to view the tickets.\\n + Check if the customer has logged in on the correct", + "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-1447_KNOWLEDGE_NODE-1", - "text": "[Tickets](https://docs.devrev.ai/product/tickets) and [Issues](https://docs.devrev.ai/product/issues).\\n\\nWas this page helpful?YesNo\\n\\n[Create WorkUp Next](/public/api-reference/works/create)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n[Enterprise grade security to protect customer dataLearn more about it.](https://devrev.ai/blog/soc-compliance)\\n\\nProduct\\n\\n * [Build](https://devrev.ai/build)\\n *", - "title": "Tickets and issues \u2014 DevRev | Docs" + "id": "ART-1981_KNOWLEDGE_NODE-26", + "text": "a small number of tags to help categorize tickets. For example, at DevRev we have the following: bug, feature-request, other-request, question, and incident.\\n* Designate one or more customer experience engineers to be on call. Add them to the **Support** group inside **Settings > Groups** and as default owner in the **Support Routing** snap-in. Default owners are notified through email and the DevRev app as soon as a new conversation is started.\\n\\nMonitor the inbox\\n-----------------\\n\\n*", + "title": "Support best practices | Computer for Support Teams | DevRev" }, { - "id": "ART-1605_KNOWLEDGE_NODE-461", - "text": "need response.\\nticket.rev_org string Optional\\nFilters for tickets that are associated with any of the provided Rev organizations.\\nticket.severity enum Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the", - "title": "Create \u2014 DevRev | Docs" + "id": "ART-1979_KNOWLEDGE_NODE-37", + "text": "filters and **Group** conditions across various vistas in DevRev to track specific work, capacity, and more.\\n\\nYou can add custom attributes to tickets to track additional information. For more information on custom attributes, see [object customization](./object-customization).\\n\\nIssues are attached to tickets in order to track efforts with product priorities.\\n\\nCreate a ticket\\n---------------\\n\\n1. Go to **Support** > **Tickets** from the sidebar on the left.\\n2. Click **New Ticket** on", + "title": "Tickets | Computer for Support Teams | DevRev" }, { - "id": "ART-1785_KNOWLEDGE_NODE-459", - "text": "need response.\\nticket.rev_org string Optional\\nFilters for tickets that are associated with any of the provided Rev organizations.\\nticket.severity enum Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the", - "title": "Create \u2014 DevRev | Docs" + "id": "ART-1275_KNOWLEDGE_NODE-18", + "text": "= `Ticket created at ${date.toLocaleString()}`; |\\n| 14 | const ticketBody = `This ticket was created by a snap-in at ${date.toLocaleString()}`; |\\n| 15 | |\\n| 16 | const response = await devrevSDK.worksCreate({ |\\n| 17 | title: ticketName, |\\n| 18 | body: ticketBody, |\\n| 19 | // The ticket is created in the PROD-1 part. Rename this to match your part. |\\n| 20 | applies_to_part: \"PROD-1\", |\\n| 21 | // The ticket is owned by the DEVU-1 user. Rename this to match the required user. |\\n| 22 |", + "title": "Using a snap-in to perform a DevRev action | DevRev | Docs" }, { - "id": "ART-1832_KNOWLEDGE_NODE-468", - "text": "need response.\\nticket.rev_org string Optional\\nFilters for tickets that are associated with any of the provided Rev organizations.\\nticket.severity enum Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the", - "title": "Create \u2014 DevRev | Docs" + "id": "ART-15664_KNOWLEDGE_NODE-13", + "text": "\\n\\nYou may want to restrict links to specific subtypes of objects. For example, only allowing issues\\nof a particular subtype to be linked to tickets.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"name\": \"Link between social media issues and tickets\", |\\n| > | \"source_types\": [ |\\n| > | { |\\n|", + "title": "Links | DevRev | Docs" }, { - "id": "ART-4177_KNOWLEDGE_NODE-5", - "text": "Users, Not tickets\\n--------------------------\\n\\nDelve into the ways by which you can delight customers and build strong brand association early on, using DevRev.\\n\\n[![]()\\n\\nIntroducing Conversations and Inbox\\n\\nDelve into the basics of the DevRev Inbox and understand how to manage different types of customer conversations](https://vimeo.com/1027655861)[![]()\\n\\nExploring tickets and their attributes\\n\\nLearn more about the different stages on tickets, and how progress is communicated", - "title": "DevRev University - DevRev for Startups" + "id": "ART-1978_KNOWLEDGE_NODE-33", + "text": "tickets but also all the tickets raised by the other users from their organization. You can add multiple customer admins from the same customer organization.\\n\\nOnly verified users can login into the portal.\\n\\nTo create a verified user:\\n\\n1. Go to **Accounts** in the DevRev app and create an account.\\n2. Create a contact under **Contacts** and link it to the account.\\n\\n### Set up customer admins\\n\\nTo set up customer admins, follow these steps:\\n\\n1. Log in on your DevRev app with your", + "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-23", - "text": "2025](/docs/changelog/_2025-06-01)\\n + [May 2025](/docs/changelog/_2025-05-01)\\n + [March and April 2025](/docs/changelog/_2025-04-01)\\n + [February 2025](/docs/changelog/_2025-02-01)\\n* [Developer \\xe2\\x86\\x97\\xef\\xb8\\x8f](https://developer.devrev.ai/)\\n* [DevRevU \\xe2\\x86\\x97\\xef\\xb8\\x8f](/docs/DevRevU)\\n\\n + [Product demos](/docs/DevRevU/demos)\\n\\nOn this page\\n\\n* [Attributes](#attributes)\\n* [Create a ticket](#create-a-ticket)\\n* [Tags](#tags)\\n* [Stages](#stages)\\n*", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-3235_KNOWLEDGE_NODE-25", + "text": "one.\\n\\nInstallation\\n------------\\n\\nInstall the [Reported by Enricher](https://marketplace.devrev.ai/ticket-reported-by) from DevRev marketplace.\\n\\nConfiguration\\n-------------\\n\\nIn the **Configuration** tab, the following settings are available:\\n\\n* **Custom Email Field**: Specify the backend name of the custom field where the email is entered when creating a ticket.\\n* **Default Account**: Select the account to which new customers should be linked if they do not already exist in the", + "title": "Reported by enricher | Automate | Snap-ins | DevRev" }, { - "id": "ART-1447_KNOWLEDGE_NODE-7", - "text": "Inc.\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources __\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a", - "title": "Tickets and issues \u2014 DevRev | Docs" + "id": "ART-2027_KNOWLEDGE_NODE-29", + "text": "your communication requirements.\\n\\nThe visibility and interaction capabilities with a ticket in DevRev are determined by the user's role and how they were added to the email thread.\\n\\nEnd users\\n\\n* Original sender\\n\\n *Added to:* **Reported by** or **Email members** field.\\n\\n *Is able to:* View the ticket on the portal and reply via email.\\n* An end user in the same organization\\n\\n *Added to:* **To** or **CC** fields in the email thread; **Reported by** field, **Email members** field,", + "title": "Email | Integrate | Snap-ins | DevRev" }, { - "id": "ART-1447_KNOWLEDGE_NODE-8", - "text": "demo](https://devrev.ai/request-a-demo)\\n\\n'", - "title": "Tickets and issues \u2014 DevRev | Docs" + "id": "ART-2039_KNOWLEDGE_NODE-25", + "text": "create DevRev tickets from Marker.io issues, you can configure the\\nsnap-in to use this email to auto-fill the **Reported By** and **Customer\\nWorkspace** fields in tickets. If no contact or accounts match the email, they\\nare automatically created.\\n\\nInstalling the Marker.io integration snap-in\\n--------------------------------------------\\n\\n1. Install the [Marker.io](/marketplace/marker-io) from the\\n DevRev Marketplace.\\n2. Configure the snap-in as needed.\\n\\n * (Optional) Select the", + "title": "Marker.io | Integrate | Snap-ins | DevRev" } ] }, @@ -3364,54 +3364,54 @@ "query": "manage multiple email addresses for one account", "retrievals": [ { - "id": "ART-888_KNOWLEDGE_NODE-48", - "text": "you use an email address provided by an organization (such as your work email address) to access the Services, then the owner of the domain associated with your email address (e.g. your employer) may assert administrative control over your account and use of the Services at a later date. You will be notified if this happens.If you do not want an administrator to be able to assert control over your account or use of the Services, you should deactivate your membership with the relevant", - "title": "Privacy Policy" + "id": "ART-980_KNOWLEDGE_NODE-24", + "text": "Email integration\\n Support Portal\\n \\n \\n Operate App\\n Grow App\\n \\n Account Management\\n Contact Management\\n Engagement Tracking\\n \\n \\n Core Services\\n Marketplace\\n \\n Partnerships\\n Integrations\\n \\n Discord\\n Slack\\n DevRev CLI\\n KB Extraction\\n Github Airdrop\\n SFDC Airdrop\\n", + "title": "How to Think About (And Structure) Your Products" }, { - "id": "ART-888_KNOWLEDGE_NODE-49", - "text": "enterprise, or use your personal email address to register for or access the Services. If an administrator has not already asserted control over your account or access to the Services, you can update the email address associated with your account through your account settings in your profile. Once an administrator asserts control over your account or use of the Services, you will no longer be able to change the email address associated with your account without administrator approval.Please", - "title": "Privacy Policy" + "id": "ART-1640_KNOWLEDGE_NODE-3", + "text": "}, \\n 17| \"email\": \"email\", \\n 18| \"full_name\": \"full_name\", \\n 19| \"state\": \"active\" \\n 20| } \\n 21| }, \\n 22| { \\n 23| \"address\": \"address\", \\n 24| \"name\": \"name\", \\n 25| \"user\": { \\n 26| \"type\": \"dev_user\", \\n 27| \"id\": \"id\", \\n 28| \"display_id\": \"display_id\", \\n 29| \"display_name\": \"display_name\", \\n 30|", + "title": "Create Snap Widget (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-2027_KNOWLEDGE_NODE-45", - "text": "due to mail loops, the email integration has the provision to specify user-specific email limits. By default, the user-specific limit is set to 30 emails per 10 minutes.\\n\\nIf a user sends 30 emails in a 10-minute time frame, this particular user is marked with the tag spammer. Once marked as a spammer, the user can only send 100 emails in a 24-hour period. All of these emails are marked as spam by the system. Any emails beyond the 100 spam email default limit are dropped, and the blocked tag", - "title": "Email | Integrate | Snap-ins | DevRev" + "id": "ART-2045_KNOWLEDGE_NODE-51", + "text": "email: [a@example.com](mailto:a@example.com) account: **None** | email: [a@example.com](mailto:a@example.com) account: **None** | Existing contact used |\\n| email: [a@example.com](mailto:a@example.com) account: \"Example\" | email: [a@example.com](mailto:a@example.com) account: \"Example\" | Existing contact used |\\n| email: [a@example.com](mailto:a@example.com) account: \"Example\" | email: [a@example.com](mailto:a@example.com) account: **None** | New contact created |\\n| email:", + "title": "AirSync | Snap-ins | DevRev" }, { - "id": "ART-2027_KNOWLEDGE_NODE-27", - "text": "track interactions (**Support > Inbox** for conversations and **Support > Tickets** for tickets). All replies are sent from your organization\\xe2\\x80\\x99s own email addresses, maintaining a professional and personalized customer experience that strengthens your brand and fosters better engagement. This method builds trust with mailbox providers and recipients across any email service, reducing spam flags and protecting your brand identity by adhering to DMARC standards.\\n\\nYou can choose for an", - "title": "Email | Integrate | Snap-ins | DevRev" + "id": "ART-16790_KNOWLEDGE_NODE-1", + "text": "Computer.\\n\\nCan I change my email address?\\n\\nYour email address appears to be managed at the organization level and may not be directly editable from the profile page. Contact your organization administrator if you need to update your email address.\\n\\nHow do I leave an organization?\\n\\nIn the Profile settings, you\\'ll find a \"Leave organization\" button. Clicking this will remove your access to the current organization, but you\\'ll retain access to any other organizations you belong", + "title": "Computer Settings and Preferences FAQs" }, { - "id": "ART-2032_KNOWLEDGE_NODE-31", - "text": "creators. Enter multiple emails separated by commas.\\n * **Add non-existing customers**: Enable this to allow people in meetings who are not already customers to be added as customers.\\n\\nIf a meeting is scheduled with people who are neither part of the company nor existing customers, this option allows them to be added as customers.\\n\\n* **Track meetings from free email domains**: Enable this feature to capture meetings scheduled using non-work email addresses, such as gmail.com or", - "title": "Google Calendar | Integrate | Snap-ins | DevRev" + "id": "ART-1978_KNOWLEDGE_NODE-34", + "text": "registered email address and go to **Settings** > **User management** > **Groups > Customer Admins**.\\n2. Select the **Add User** option in the top-right corner to search for the customer whom you want to designate as a customer admin.\\n\\n### Customer portal login methods\\n\\nThe customer portal supports three login methods:\\n\\n1. Email OTP (One-Time Password): User enters their email, receives a one-time code, and enters it to log in.\\n2. SSO: Users log in through organization\\xe2\\x80\\x99s", + "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-2575_KNOWLEDGE_NODE-17", - "text": "* [Email snap-in configuration](/docs/integrations/email-config)\\n - [Exotel](/docs/integrations/exotel)\\n - [Slack](/docs/integrations/slack)\\n - [WhatsApp](/docs/integrations/whatsapp)\\n - [GitHub](/docs/integrations/github)\\n - [GitLab](/docs/integrations/gitlab)\\n - [Harness](/docs/integrations/harness)\\n - [Marker.io](/docs/integrations/marker-io)\\n - [Instabug](/docs/integrations/instabug)\\n - [Qase](/docs/integrations/qase)\\n - [Tracxn", - "title": "Account and contact import | Computer for Growth Teams | DevRev" + "id": "ART-1640_KNOWLEDGE_NODE-8", + "text": "\\n 89| \"email\": \"email\", \\n 90| \"full_name\": \"full_name\", \\n 91| \"state\": \"active\" \\n 92| } \\n 93| }, \\n 94| { \\n 95| \"address\": \"address\", \\n 96| \"name\": \"name\", \\n 97| \"user\": { \\n 98| \"type\": \"dev_user\", \\n 99| \"id\": \"id\", \\n 100| \"display_id\": \"display_id\", \\n 101| \"display_name\": \"display_name\", \\n 102|", + "title": "Create Snap Widget (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-3207_KNOWLEDGE_NODE-38", - "text": "Step 2: Define the Primary Use Case\\n\\nChoose how DevRev should interpret emails sent to the primary address:\\n\\n* Choose between generating a **Ticket or a Conversation** from the incoming email.\\n\\nToggle on **Set email as the default channel for tickets** to ensure that:\\n\\n* Customer chat replies are sent via email as well as to the original source of the channel.\\n\\n### Step 3: Add Additional Support Emails\\n\\nYou can add more addresses to handle support requests.\\n\\n* **Tickets**: Emails", - "title": "Email snap-in configuration | Email | Integrate | Snap-ins | DevRev" + "id": "ART-2575_KNOWLEDGE_NODE-28", + "text": "a database identifier or an email address.)\\n* account\\\\_external\\\\_reference (the external reference of the contact\\'s parent account)\\n\\n### Array fields\\n\\nFor fields that accept multiple values, such as **owners** and **industry**, values should be separated by commas (,). For example, Agriculture and Forestry should be written as Agriculture,Forestry.\\n\\n![]()\\n\\nIf a value contains a comma, enclose it in backticks. For example, enter \"Rail, Bus & Taxi\" as `Rail, Bus & Taxi`.\\n\\n###", + "title": "Account and contact import | Computer for Growth Teams | DevRev" }, { - "id": "ART-1953_KNOWLEDGE_NODE-27", - "text": "conversation, ensuring seamless and continuous communication.\\n\\nBy default, notifications are sent from [notifications@devrev.ai](mailto:notifications@devrev.ai). However, this setting can be overridden to use the organization\\xe2\\x80\\x99s primary email address as the sender, or notifications can be turned off entirely.\\n\\nTo configure the notifications setting, under [**Settings** > **Snap-ins** > **Email Integration**](https://app.devrev.ai/devrev/settings/snap-ins/email-with-tickets), go to", - "title": "Customer email notifications | Computer by DevRev | DevRev" + "id": "ART-2654_KNOWLEDGE_NODE-15", + "text": "\\n 154| }, \\n 155| \"email\": \"email\", \\n 156| \"full_name\": \"full_name\", \\n 157| \"state\": \"active\" \\n 158| }, \\n 159| \"modified_date\": \"modified_date\", \\n 160| \"parent\": { \\n 161| \"id\": \"id\", \\n 162| \"display_id\": \"display_id\", \\n 163| \"sync_metadata\": { \\n 164| \"external_reference\": \"external_reference\", \\n 165| \"origin_system\": \"origin_system\" \\n 166|", + "title": "List Directories (POST) (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-3207_KNOWLEDGE_NODE-26", - "text": "Configure email forwarding for your email provider](#3-configure-email-forwarding-for-your-email-provider)\\n* [4. Verify configuration](#4-verify-configuration)\\n* [5. Events Panel](#5-events-panel)\\n\\n1. [Documentation](/docs)\\n3. [Snap-ins](/docs/snapins)\\n[Integrate](/docs/integrate)\\n[Email](/docs/integrations/email)\\n[Email snap-in configuration](/docs/integrations/email-config)\\n\\nEmail snap-in configuration\\n===========================\\n\\n1. Create a new", + "id": "ART-3207_KNOWLEDGE_NODE-57", + "text": "connection](#1-create-a-new-connection)\\n* [2. Configure email integration snap-in](#2-configure-email-integration-snapin)\\n* [Next steps for configuration of the snap-in](#next-steps-for-configuration-of-the-snapin)\\n* [Step 1: Add a Primary Email Address](#step-1-add-a-primary-email-address)\\n* [Step 2: Define the Primary Use Case](#step-2-define-the-primary-use-case)\\n* [Step 3: Add Additional Support Emails](#step-3-add-additional-support-emails)\\n* [Step 4: Set the Default Part and", "title": "Email snap-in configuration | Email | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2575_KNOWLEDGE_NODE-3", - "text": "management](/docs/product/workflow-management)\\n - [Workflow nodes](/docs/product/workflow-nodes)\\n - [Troubleshooting](/docs/product/troubleshooting-workflows)\\n + [Templates](/docs/product/template)\\n + [Accessing DevRev](/docs/product/ui)\\n + [External identity provider setup](/docs/product/sso-saml)\\n + [Remote MCP server](/docs/product/remote-mcp)\\n* [Computer for Support Teams](/docs/product/support)\\n\\n + [Inbox](/docs/product/inbox)\\n + [Support", - "title": "Account and contact import | Computer for Growth Teams | DevRev" + "id": "ART-888_KNOWLEDGE_NODE-49", + "text": "enterprise, or use your personal email address to register for or access the Services. If an administrator has not already asserted control over your account or access to the Services, you can update the email address associated with your account through your account settings in your profile. Once an administrator asserts control over your account or use of the Services, you will no longer be able to change the email address associated with your account without administrator approval.Please", + "title": "Privacy Policy" } ] }, @@ -3420,24 +3420,24 @@ "query": "how to install PLuG website installation PLuG ID setup guide", "retrievals": [ { - "id": "ART-2059_KNOWLEDGE_NODE-7", - "text": "these steps.\\n\\nIn DevRev, go to Settings. > Support. > PLuG Settings. through the settings icon in the top-left corner.\\nClick Enable PLuG Widget. if it isn\\'t already enabled.\\nCopy your Unique App ID. from the Configuration tab..\\nSetup for HTML.\\n\\nPlace this code in the head of your HTML page.\\n\\n1 //\\n2 < script\\n3 type = \"text/javascript\"\\n4 src = \"https://plug-platform.devrev.ai/static/plug.js\"\\n5 > \\n\\nPlace this code in the body of your HTML page.\\n\\n1 < script >\\n2", - "title": "Install PLuG chat on your website" + "id": "ART-15490_KNOWLEDGE_NODE-1", + "text": "code snippet provided below on every page where you want the widget to appear for website visitors.\\n\\nUnique app ID\\n-------------\\n\\nEnsure to replace the app ID with your app ID which identifies your Plug search widget. You can access your app ID from your DevRev account by following these steps.\\n\\n1. In DevRev, go to **Settings** > **Support** > **Plug Settings** through the settings icon in the top-left corner.\\n2. Click **Enable Plug Widget** if it isn\\xe2\\x80\\x99t already enabled.\\n3.", + "title": "Install Plug search | DevRev | Docs" }, { - "id": "ART-2059_KNOWLEDGE_NODE-10", - "text": "users that come to your site and haven\\'t yet logged in or shared any information.\\n\\nWe understand the importance of making your engagement more personalized and contextual with your customers. Learn how to identify your customers and update their information.\\n\\nPrevious PLuG Next Install PLuG search on your website\\nOn this page\\n\\nIntegration code Unique app ID Setup for HTML Setup for React\\n\\nEnterprise grade security to protect customer data\\nLearn more about it.\\nProduct\\n\\nBuild", - "title": "Install PLuG chat on your website" + "id": "ART-2894_KNOWLEDGE_NODE-2", + "text": "insert the code snippet provided below on every page where you want the widget to appear for website visitors.\\n\\n## Unique app ID\\n\\nEnsure to replace the app ID with your app ID which identifies your PLuG search widget. You can access your app ID from your DevRev account by following these steps.\\n\\n 1. In DevRev, go to **Settings** > **Support** > **PLuG Settings** through the settings icon in the top-left corner.\\n 2. Click **Enable PLuG Widget** if it isn\\xe2\\x80\\x99t already enabled.\\n", + "title": "Install PLuG search \u2014 DevRev | Docs" }, { - "id": "ART-2059_KNOWLEDGE_NODE-6", - "text": "to the Customize documentation.\\n\\nAlternatively, for the most comprehensive customizations, refer to our SDK functions here.\\n\\nIntegration code.\\n\\nTo get the PLuG chat widget to appear on your website and web app, copy and paste the snippet below on every page where you want the widget to appear for website visitors.\\n\\nUnique app ID.\\n\\nMake sure to replace the app ID with your app ID which identifies your PLuG chat widget. You can access your app ID from your DevRev account by following", - "title": "Install PLuG chat on your website" + "id": "ART-1466_KNOWLEDGE_NODE-5", + "text": "\\n+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------+--------+\\n| The unique identifier for your PLuG SDK. This parameter is required.", + "title": "Methods \u2014 DevRev | Docs" }, { - "id": "ART-2059_KNOWLEDGE_NODE-12", - "text": "width=\"0\" style=\"display:none;visibility:hidden\">'", - "title": "Install PLuG chat on your website" + "id": "ART-15509_KNOWLEDGE_NODE-17", + "text": "the `initSearchAgent()` method sets up the Plug search agent on your website. This initialization is required before performing any other actions with the Plug widget SDK.\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | useEffect(() => { |\\n| 2 | window.plugSDK.init({ |\\n| 3 | app_id: \\'\\', |\\n| 4 | disable_plug_chat_window: true, |\\n| 5 | }); |\\n| 6 | |\\n| 7 | window.plugSDK.onEvent((payload) => { |\\n| 8 | if (payload.type === \\'ON_PLUG_WIDGET_READY\\') { |\\n| 9 |", + "title": "Methods | DevRev | Docs" }, { "id": "ART-2059_KNOWLEDGE_NODE-5", @@ -3445,29 +3445,29 @@ "title": "Install PLuG chat on your website" }, { - "id": "ART-2059_KNOWLEDGE_NODE-9", - "text": "App.js.\\n\\n1 useEffect ( () => {\\n2 window. plugSDK. init ({\\n3 // Please ensure you replace the app_id with your unique app id\\n4 app_id : \"\" ,\\n5 });\\n6 }, []);\\n\\nYou should now have PLuG chat widget installed on your website. Facing some issues? Reach out to us through our own PLuG chat widget from the bottom right of your screen.\\n\\nOnce the widget is installed on your website, every user who visits your website is considered an anonymous user. Anonymous users are the", - "title": "Install PLuG chat on your website" + "id": "ART-2893_KNOWLEDGE_NODE-0", + "text": "b'[](/public/sdks/web/installation)\\n\\nPublic\\n\\nOn this page\\n\\n * [Getting your unique app ID](/public/sdks/web/installation#getting-your-unique-app-id)\\n\\n[SDKs](/public/sdks)[PLuG Web SDK](/public/sdks/web/installation)\\n\\n#\\n\\nInstall the Web SDK\\n\\nTo install the PLuG SDK on your website or web application, insert the code snippet provided below on every page where you want the SDK to be active. Once the SDK is installed, the chat widget appears by default.\\n\\n## Getting your unique app", + "title": "Install the Web SDK \u2014 DevRev | Docs" }, { - "id": "ART-2059_KNOWLEDGE_NODE-0", - "text": "b'Product Platform Solutions Marketplace Company Resources Pricing\\n\\nLogin Book a demo\\nProduct Platform Solutions Marketplace Company Resources Pricing\\nLogin Book a demo\\nSearch CTRL + K\\n\\nIntroduction AgentOS platform\\n\\nCore concepts Apps Groups Parts & trails Vistas Vista Reports\\nTasks Updates Customer email notifications Roles Default privileges by group\\nAccess control Object customization Glossary Search People insights Workflow Templates Accessing DevRev External identity provider", - "title": "Install PLuG chat on your website" + "id": "ART-3109_KNOWLEDGE_NODE-29", + "text": "go to **Settings > Support > Plug Chat > Layout** through the settings icon on the top-left corner.\\n2. Select **Add a Card** and enter a title, description, image, and redirect URL.\\n3. Click **Save and Publish** in the top-right corner. The new card is visible in your Plug widget.\\n\\nWant to add more personalization to your Plug widget? Create your own. Visit [SDK Methods and Customization](https://developer.devrev.ai/sdks/web/customize) to create your own Plug from the ground", + "title": "Plug widget customization | Computer for Your Customers | DevRev" }, { - "id": "ART-2059_KNOWLEDGE_NODE-3", - "text": "status change Slack notifier Slash commands Smart sprint Spam Shield Ticket age in engineering Work duration\\n\\nIntegrate\\n\\nBitbucket Calendly Datadog Google Calendar Email Slack WhatsApp GitHub Harness Marker.io Instabug Qase Twilio Glean SendSafely\\n\\nAirdrop\\n\\nHubspot Airdrop Salesforce Airdrop Zendesk Airdrop Freshdesk Airdrop Rocketlane Airdrop Confluence Airdrop ServiceNow Airdrop Jira Airdrop DevRev for Jira app\\nLinear Airdrop ClickUp Airdrop Azure Boards Airdrop\\n\\nPLuG\\n\\nInstall", - "title": "Install PLuG chat on your website" + "id": "ART-2893_KNOWLEDGE_NODE-2", + "text": "2| type=\"text/javascript\" \\n 3| src=\"https://plug-platform.devrev.ai/static/plug.js\" \\n 4| >\\n[/code] \\n \\nPlace the following code in the `` section of your HTML page:\\n\\n[code]\\n\\n 1| \\n[/code] \\n \\nThe PLuG widget should now be installed on", + "title": "Install the Web SDK \u2014 DevRev | Docs" }, { - "id": "ART-2894_KNOWLEDGE_NODE-1", - "text": "__\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\nOn this page\\n\\n * [Unique app ID](/public/sdks/web/install-search#unique-app-id)\\n * [Bind a hotkey to toggle search agent](/public/sdks/web/install-search#bind-a-hotkey-to-toggle-search-agent)\\n\\n[SDKs](/public/sdks)[PLuG Web SDK](/public/sdks/web/installation)\\n\\n#\\n\\nInstall PLuG search\\n\\nTo get the PLuG search widget to appear on your website and web app,", - "title": "Install PLuG search \u2014 DevRev | Docs" + "id": "ART-1270_KNOWLEDGE_NODE-3", + "text": "might get a warning message from window.plugSDK.init() being called multiple times. These errors won\\xe2\\x80\\x99t impact the installation and functioning of the widget.\\n\\nInitialize search.\\n\\nCalling the initSearchAgent() method initializes the PLuG Search agent on your website. Initializing search is necessary for you to perform any other actions on the PLuG widget SDK.\\n\\n1 useEffect ( () => { 2 window. plugSDK. init ( { 3 app_id : \\' \\' , 4 disable_plug_chat_window :", + "title": "Methods \u2014 DevRev | Docs" }, { - "id": "ART-2059_KNOWLEDGE_NODE-8", - "text": "window.plugSDK.init({\\n3 // Please ensure you replace the app_id with your unique app id\\n4 app_id: \"\",\\n5 });\\n6 \\nSetup for React.\\n\\nPlace this in public/index.html file, inside the body tag of your HTML page.\\n\\n1 ;\\n\\nPlace this code inside the react component where you want to render the chat widget. Typically you should do it as top level component like", - "title": "Install PLuG chat on your website" + "id": "ART-15490_KNOWLEDGE_NODE-0", + "text": "b'Install Plug search | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\nOn this page\\n\\n* [Unique app ID](/sdks/web/install-search#unique-app-id)\\n* [Bind a hotkey to toggle search agent](/sdks/web/install-search#bind-a-hotkey-to-toggle-search-agent)\\n\\n[SDKs](/sdks)[Plug Web SDK](/sdks/web/installation)\\n\\nInstall Plug search\\n===================\\n\\nCopy page\\n\\nTo get the Plug search widget to appear on your website and web app, insert the", + "title": "Install Plug search | DevRev | Docs" } ] }, @@ -3485,30 +3485,25 @@ "text": "ticket notifications\\n\\n* Enable through the **Notify on new ticket creation** snap-in configuration.\\n* Provide a Slack channel ID in the **Channel ID to send ticket notifications** configuration.\\n* Snap-in will send notifications to the target channel whenever a new ticket is created, regardless of the source channel or platform.\\n* Notification message threads are **not** synced between platforms.\\n\\n### Notifications for ticket state update\\n\\n* Enable through **Notify on ticket state", "title": "Slack | Integrate | Snap-ins | DevRev" }, - { - "id": "ART-2017_KNOWLEDGE_NODE-25", - "text": "ticket\\'s owner and subscribers, when a ticket\\'s resolution time SLA changes into the *Warning* or *Breached* stage.\\n\\n![]()\\n\\nFor more information, refer to the\\n[SLA status change Slack notifier snap-in](/marketplace/sla-status-change-slack-notifier) on the DevRev\\nmarketplace.\\n\\nInstallation\\n------------\\n\\n1. Create a Slack app for your workspace in .\\n2. In App features, generate bot token in **OAuth & Permissions**.\\n3. Grant the app bot the following", - "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" - }, { "id": "ART-2035_KNOWLEDGE_NODE-36", "text": "Slack Channel ID in the **Channel ID to send conversation notifications** snap-in configuration as the target to post notifications.\\n\\n* Any new message within tickets in the customer messages panel is also subjected to the same automation.\\n* To prevent notification overload, each conversation or ticket is subject to a five minute cooldown period between notifications. Multiple consecutive messages within this window will not trigger additional notifications.\\n* Notification threads are not", "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2912_KNOWLEDGE_NODE-13", - "text": "group](/docs/automations/set-user-preference)\\n - [SLA status change Slack notifier](/docs/automations/sla-change-notifier)\\n - [Slash commands](/docs/automations/slash-commands)\\n - [Spam Shield](/docs/automations/spam-shield)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field migrator](/docs/automations/ticket-issue-field-migrator)\\n - [Ticket", - "title": "Ticket email notifier | Automate | Snap-ins | DevRev" + "id": "ART-2035_KNOWLEDGE_NODE-43", + "text": "update** snap-in configuration.\\n* Applies only to tickets syncing with Slack threads.\\n* If enabled, the Slack snap-in will send notifications to the syncing thread whenever the ticket state changes.\\n\\n### Ticket digest\\n\\nTo see all open and in-progress tickets in Slack, use the /devrev ticket-digest command. This opens a modal with a paginated list of all open and in-progress tickets.\\n\\nDevRev Issues and Slack\\n-----------------------\\n\\nThe Slack snap-in allows issues to be created", + "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2017_KNOWLEDGE_NODE-29", - "text": "ticket with part set as \"Feature 1\" should trigger a notification when the filter is set to \"Capability 1\" and this is a parent part of that feature. Set the toggle to the desired behavior.\\n4. Check the default message body and change it if you would like a different phrasing.\\n\\n[PreviousSet user preference for group](/docs/automations/set-user-preference)[NextSlash commands](/docs/automations/slash-commands)\\n\\n#### On this page\\n\\n* [Installation](#installation)\\n* [Configure the", - "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" + "id": "ART-6174_KNOWLEDGE_NODE-30", + "text": "there.\\n\\n![]()\\n\\nSlack end-user experience\\n-------------------------\\n\\nWhen a conversation is converted to a ticket in Slack:\\n\\n* Ticket information appears within the same thread.\\n* All subsequent messages sync with the newly created ticket.\\n* The transition is seamless for the end user.\\n\\nConversation conversion scenarios\\n---------------------------------\\n\\nConsider converting a conversation to a ticket in these scenarios:\\n\\n* Complex issues requiring in-depth investigation\\n*", + "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" }, { - "id": "ART-2017_KNOWLEDGE_NODE-27", - "text": "Connection**.\\n * Select **Slack** from the dowpdown list.\\n * Give it a name and sign in with Slack. Ensure to toggle on **Make public** to make the connection public for your organization.\\n\\nConfigure the snap-in\\n---------------------\\n\\n1. In the **Configuration** tab, the first input field to set is *filters*. Here you can declare for which tickets to track the SLA status and to which channels to send notifications.\\n\\n Set the ticket subtype, severity, and part; the support heads", - "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" + "id": "ART-4271_KNOWLEDGE_NODE-28", + "text": "PLuG widget:\\n\\n * The ticket number and basic details appear in the same conversation pane.\\n * Users can click **Details** to view complete ticket information.\\n * If the **Tickets** tab is enabled in PLuG, users can track their ticket status there.\\n\\n### Slack experience\\n\\nWhen a conversation is converted to a ticket in Slack:\\n\\n * Ticket information is sent within the same thread.\\n * All subsequent messages sync with the newly created ticket.\\n * The transition is seamless for the", + "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" }, { "id": "ART-2035_KNOWLEDGE_NODE-38", @@ -3516,14 +3511,19 @@ "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2017_KNOWLEDGE_NODE-24", - "text": "[Product demos](/docs/DevRevU/demos)\\n\\nOn this page\\n\\n* [Installation](#installation)\\n* [Configure the snap-in](#configure-the-snapin)\\n\\n1. [Documentation](/docs)\\n3. [Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[SLA status change Slack notifier](/docs/automations/sla-change-notifier)\\n\\nSLA status change Slack notifier\\n================================\\n\\nGet alerted on your ticket\\'s SLAs. This snap-in sends a notification through Slack to user configured channels, tagging the", - "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" + "id": "ART-2035_KNOWLEDGE_NODE-44", + "text": "directly from Slack:\\n\\n* Using the /devrev create-issue command.\\n* Using the **Create a new issue** message action.\\n\\nBoth the options open a new pop-up modal with a new issue form. Some of the fields are pre-populated based on the messages in the thread.\\n\\n* The **Share with everyone** functionality operates identically to ticket creation. Only shared issues are synchronized between the platforms.\\n* The messages are always synced in the **Internal Discussions** panel with Slack thread.\\n*", + "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2017_KNOWLEDGE_NODE-13", - "text": "creator](/docs/automations/smart-issue-creator)\\n - [Set user preference for group](/docs/automations/set-user-preference)\\n - [SLA status change Slack notifier](/docs/automations/sla-change-notifier)\\n - [Slash commands](/docs/automations/slash-commands)\\n - [Spam Shield](/docs/automations/spam-shield)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field", + "id": "ART-2017_KNOWLEDGE_NODE-27", + "text": "Connection**.\\n * Select **Slack** from the dowpdown list.\\n * Give it a name and sign in with Slack. Ensure to toggle on **Make public** to make the connection public for your organization.\\n\\nConfigure the snap-in\\n---------------------\\n\\n1. In the **Configuration** tab, the first input field to set is *filters*. Here you can declare for which tickets to track the SLA status and to which channels to send notifications.\\n\\n Set the ticket subtype, severity, and part; the support heads", "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" + }, + { + "id": "ART-4199_KNOWLEDGE_NODE-28", + "text": "**Trigger URL** that is displayed.\\n6. Paste the Trigger URL under **Enable Events** in the custom Slack bot.\\n\\n[PreviousTicket linked issues comment sync](/docs/automations/ticket-linked-issues-comment-sync)[NextIntegrate](/docs/integrate)\\n\\n#### On this page\\n\\n* [Install](#install)\\n* [Configure the custom Slack bot](#configure-the-custom-slack-bot)\\n* [Configure DevRev](#configure-devrev)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about", + "title": "Slack message agent | Automate | Snap-ins | DevRev" } ] }, @@ -3531,55 +3531,55 @@ "query_id": "3b420be6-ebc2-458e-a551-3a6038309339", "query": "export all accounts without 500 limit", "retrievals": [ - { - "id": "ART-1255_KNOWLEDGE_NODE-8", - "text": "Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/accounts/export)[#### Get Account\\n\\nNext](/api-reference/accounts/get)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Export Accounts (POST) | DevRev | Docs" - }, - { - "id": "ART-1462_KNOWLEDGE_NODE-3", - "text": "Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nPOST\\n\\n/accounts.export\\n\\n[code]\\n\\n $| curl -X POST https://api.devrev.ai/accounts.export \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -H \"Content-Type: application/json\" \\\\ \\n >| -d \\'{}\\'\\n[/code] \\n \\nTry it\\n\\n200accountsExportPostExample\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"accounts\": [ \\n 3| { \\n 4| \"id\": \"foo\", \\n 5|", - "title": "Export Accounts (POST) \u2014 DevRev | Docs" - }, { "id": "ART-1254_KNOWLEDGE_NODE-9", "text": "Export Accounts (POST)\\n\\nNext](/api-reference/accounts/export-post)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", "title": "Export Accounts | DevRev | Docs" }, { - "id": "ART-1254_KNOWLEDGE_NODE-1", - "text": "it](/api-reference/accounts/export?explorer=true)\\n\\n200Retrieved\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"accounts\": [ |\\n| 3 | { |\\n| 4 | \"id\": \"string\", |\\n| 5 | \"owned_by\": [ |\\n| 6 | { |\\n| 7 | \"display_id\": \"string\", |\\n| 8 | \"id\": \"string\", |\\n| 9 | \"display_name\": \"string\", |\\n| 10 | \"display_picture\": { |\\n| 11 | \"display_id\": \"string\", |\\n| 12 | \"id\": \"string\", |\\n| 13 | \"file\": { |\\n| 14 | \"type\": \"string\", |\\n| 15 | \"name\": \"string\", |\\n| 16 | \"size\": 1 |\\n| 17 | } |\\n| 18", + "id": "ART-1254_KNOWLEDGE_NODE-0", + "text": "b'Export Accounts | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[accounts](/api-reference/accounts/accounts)\\n\\nExport Accounts\\n===============\\n\\nCopy page\\n\\nGET\\n\\nhttps://api.devrev.ai/accounts.export\\n\\nGET\\n\\n/accounts.export\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl https://api.devrev.ai/accounts.export \\\\ |\\n| > | -H \"Authorization: Bearer \" |\\n```\\n\\n[Try", "title": "Export Accounts | DevRev | Docs" }, { - "id": "ART-1255_KNOWLEDGE_NODE-1", - "text": "|\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{}\\' |\\n```\\n\\n[Try it](/api-reference/accounts/export-post?explorer=true)\\n\\n200Successful\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"accounts\": [ |\\n| 3 | { |\\n| 4 | \"id\": \"string\", |\\n| 5 | \"owned_by\": [ |\\n| 6 | { |\\n| 7 | \"display_id\": \"string\", |\\n| 8 | \"id\": \"string\", |\\n| 9 | \"display_name\": \"string\", |\\n| 10 | \"display_picture\": { |\\n| 11 | \"display_id\": \"string\", |\\n| 12 | \"id\": \"string\", |\\n| 13 | \"file\": { |\\n| 14", + "id": "ART-1449_KNOWLEDGE_NODE-0", + "text": "b'[](/public/api-reference/accounts/export)\\n\\nPublic\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources", + "title": "Export Accounts \u2014 DevRev | Docs" + }, + { + "id": "ART-1255_KNOWLEDGE_NODE-0", + "text": "b'Export Accounts (POST) | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[accounts](/api-reference/accounts/accounts)\\n\\nExport Accounts (POST)\\n======================\\n\\nCopy page\\n\\nPOST\\n\\nhttps://api.devrev.ai/accounts.export\\n\\nPOST\\n\\n/accounts.export\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl -X POST https://api.devrev.ai/accounts.export \\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\", "title": "Export Accounts (POST) | DevRev | Docs" }, { - "id": "ART-1254_KNOWLEDGE_NODE-0", - "text": "b'Export Accounts | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[accounts](/api-reference/accounts/accounts)\\n\\nExport Accounts\\n===============\\n\\nCopy page\\n\\nGET\\n\\nhttps://api.devrev.ai/accounts.export\\n\\nGET\\n\\n/accounts.export\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl https://api.devrev.ai/accounts.export \\\\ |\\n| > | -H \"Authorization: Bearer \" |\\n```\\n\\n[Try", - "title": "Export Accounts | DevRev | Docs" + "id": "ART-1449_KNOWLEDGE_NODE-4", + "text": "specified stages.\\n\\ntierlist of stringsOptional\\n\\nTier of the accounts to be filtered.\\n\\nwebsiteslist of stringsOptional\\n\\nArray of websites of accounts to be filtered.\\n\\n### Response\\n\\nThe response to exporting a collection of accounts.\\n\\naccountslist of objects\\n\\nThe exported accounts.\\n\\nShow 14 properties\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService", + "title": "Export Accounts \u2014 DevRev | Docs" }, { - "id": "ART-1255_KNOWLEDGE_NODE-0", - "text": "b'Export Accounts (POST) | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[accounts](/api-reference/accounts/accounts)\\n\\nExport Accounts (POST)\\n======================\\n\\nCopy page\\n\\nPOST\\n\\nhttps://api.devrev.ai/accounts.export\\n\\nPOST\\n\\n/accounts.export\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl -X POST https://api.devrev.ai/accounts.export \\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\", + "id": "ART-1255_KNOWLEDGE_NODE-1", + "text": "|\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{}\\' |\\n```\\n\\n[Try it](/api-reference/accounts/export-post?explorer=true)\\n\\n200Successful\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"accounts\": [ |\\n| 3 | { |\\n| 4 | \"id\": \"string\", |\\n| 5 | \"owned_by\": [ |\\n| 6 | { |\\n| 7 | \"display_id\": \"string\", |\\n| 8 | \"id\": \"string\", |\\n| 9 | \"display_name\": \"string\", |\\n| 10 | \"display_picture\": { |\\n| 11 | \"display_id\": \"string\", |\\n| 12 | \"id\": \"string\", |\\n| 13 | \"file\": { |\\n| 14", "title": "Export Accounts (POST) | DevRev | Docs" }, { - "id": "ART-1449_KNOWLEDGE_NODE-5", - "text": "Unavailable Error\\n\\nGET\\n\\n/accounts.export\\n\\n[code]\\n\\n $| curl https://api.devrev.ai/accounts.export \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \"\\n[/code] \\n \\nTry it\\n\\n200exportExample\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"accounts\": [ \\n 3| { \\n 4| \"id\": \"foo\", \\n 5| \"owned_by\": [ \\n 6| { \\n 7| \"display_id\": \"foo\", \\n 8| \"id\": \"foo\", \\n 9| \"display_name\": \"foo\", \\n", - "title": "Export Accounts \u2014 DevRev | Docs" + "id": "ART-1303_KNOWLEDGE_NODE-6", + "text": "exported accounts.\\nShow 18 properties\\nGET / accounts.export\\n$ curl -G https://api.devrev.ai/accounts.export \\\\ > -H \" Authorization: Bearer \" \\\\ > --data-urlencode created_date.after=2023-01-01T12:00:00Z \\\\ > --data-urlencode created_date.before=2023-01-01T12:00:00Z \\\\ > --data-urlencode modified_date.after=2023-01-01T12:00:00Z \\\\ > --data-urlencode modified_date.before=2023-01-01T12:00:00Z\\n200 Retrieved 1 { 2 \" accounts \" : [ 3 { 4 \" created_date \" : \" 2023-01-01T12:00:00Z \" , 5 \"", + "title": "Export Post \u2014 DevRev | Docs" }, { - "id": "ART-1254_KNOWLEDGE_NODE-8", - "text": "stringsOptional\\n\\nArray of websites of accounts to be filtered.\\n\\n### Response\\n\\nThe response to exporting a collection of accounts.\\n\\naccountslist of objects\\n\\nThe exported accounts.\\n\\nShow 14 properties\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/accounts/delete)[####", + "id": "ART-1254_KNOWLEDGE_NODE-1", + "text": "it](/api-reference/accounts/export?explorer=true)\\n\\n200Retrieved\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"accounts\": [ |\\n| 3 | { |\\n| 4 | \"id\": \"string\", |\\n| 5 | \"owned_by\": [ |\\n| 6 | { |\\n| 7 | \"display_id\": \"string\", |\\n| 8 | \"id\": \"string\", |\\n| 9 | \"display_name\": \"string\", |\\n| 10 | \"display_picture\": { |\\n| 11 | \"display_id\": \"string\", |\\n| 12 | \"id\": \"string\", |\\n| 13 | \"file\": { |\\n| 14 | \"type\": \"string\", |\\n| 15 | \"name\": \"string\", |\\n| 16 | \"size\": 1 |\\n| 17 | } |\\n| 18", "title": "Export Accounts | DevRev | Docs" }, { - "id": "ART-1449_KNOWLEDGE_NODE-1", - "text": "__\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[API Reference](/public/api-reference/getting-started)[Accounts](/public/api-reference/accounts/accounts)\\n\\n# Export Accounts\\n\\nGET\\n\\nhttps://api.devrev.ai/accounts.export\\n\\nTry it\\n\\nExports a collection of accounts.\\n\\n### Query parameters\\n\\ncreated_bylist of stringsOptional\\n\\nFilters for accounts created by the specified", - "title": "Export Accounts \u2014 DevRev | Docs" + "id": "ART-1654_KNOWLEDGE_NODE-6", + "text": "exported accounts.\\nShow 18 properties\\nAPI Reference accounts Export Post.\\n\\nPOST https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nRequest.\\n\\nThis endpoint expects an object.\\ncreated_by list of strings Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date object Optional\\nShow 2 properties\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name list of strings Optional\\nArray of display names of accounts", + "title": "List \u2014 DevRev | Docs" + }, + { + "id": "ART-1560_KNOWLEDGE_NODE-9", + "text": "objects\\n\\nThe exported accounts.\\n\\nShow 18 properties\\nAPI Reference accounts Get.\\n\\nGET https://api.devrev.ai / accounts.get\\n\\nRetrieves an account\\xe2\\x80\\x99s information.\\n\\nQuery parameters.\\n\\nid string Required\\n\\nThe ID of the account to be retrieved.\\n\\nResponse.\\n\\nThis endpoint returns an object.\\naccount object\\nShow 18 properties\\nAPI Reference accounts Get Post.\\n\\nPOST https://api.devrev.ai / accounts.get\\n\\nRetrieves an account\\xe2\\x80\\x99s information.\\n\\nRequest.\\n\\nThis", + "title": "Assign (Beta) \u2014 DevRev | Docs" } ] }, @@ -3588,54 +3588,54 @@ "query": "export report CSV download location", "retrievals": [ { - "id": "ART-1254_KNOWLEDGE_NODE-1", - "text": "it](/api-reference/accounts/export?explorer=true)\\n\\n200Retrieved\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"accounts\": [ |\\n| 3 | { |\\n| 4 | \"id\": \"string\", |\\n| 5 | \"owned_by\": [ |\\n| 6 | { |\\n| 7 | \"display_id\": \"string\", |\\n| 8 | \"id\": \"string\", |\\n| 9 | \"display_name\": \"string\", |\\n| 10 | \"display_picture\": { |\\n| 11 | \"display_id\": \"string\", |\\n| 12 | \"id\": \"string\", |\\n| 13 | \"file\": { |\\n| 14 | \"type\": \"string\", |\\n| 15 | \"name\": \"string\", |\\n| 16 | \"size\": 1 |\\n| 17 | } |\\n| 18", - "title": "Export Accounts | DevRev | Docs" + "id": "ART-4022_KNOWLEDGE_NODE-27", + "text": "person who should be assigned as the owner or reporter of the work item. If the CSV lists multiple owners, only the first is set as the owner.\\n2. For Applies to Part, Stage, Account, RevOrg, Developed with Parts, and Tags columns, provide the part name, stage name, account name, workspace, part name, and tag name respectively as it appears in the UI (case-sensitive).\\n3. For Date and Timestamp related fields, provide the date and timestamp in the format YYYY/MM/DD.\\n4. The tnt\\\\_\\\\_ prefix in", + "title": "CSV work item uploader | Automate | Snap-ins | DevRev" }, { - "id": "ART-1449_KNOWLEDGE_NODE-0", - "text": "b'[](/public/api-reference/accounts/export)\\n\\nPublic\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources", - "title": "Export Accounts \u2014 DevRev | Docs" + "id": "ART-2575_KNOWLEDGE_NODE-32", + "text": "required headers | Include headers for the required fields in the CSV. |\\n\\n[PreviousContacts](/docs/product/customers)[NextGrow snap-ins](/docs/product/snapins-grow)\\n\\n#### On this page\\n\\n* [Import data](#import-data)\\n* [CSV file requirements](#csv-file-requirements)\\n* [Mandatory fields](#mandatory-fields)\\n* [Array fields](#array-fields)\\n* [Tags](#tags)\\n* [Owner fields](#owner-fields)\\n* [Limitations](#limitations)\\n* [Troubleshooting](#troubleshooting)\\n\\n[Enterprise grade security to", + "title": "Account and contact import | Computer for Growth Teams | DevRev" }, { - "id": "ART-1244_KNOWLEDGE_NODE-1", - "text": "it](/api-reference/works/export?explorer=true)\\n\\n200Retrieved\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"works\": [ |\\n| 3 | { |\\n| 4 | \"created_by\": { |\\n| 5 | \"display_id\": \"string\", |\\n| 6 | \"id\": \"string\", |\\n| 7 | \"display_name\": \"string\", |\\n| 8 | \"display_picture\": { |\\n| 9 | \"display_id\": \"string\", |\\n| 10 | \"id\": \"string\", |\\n| 11 | \"file\": { |\\n| 12 | \"type\": \"string\", |\\n| 13 | \"name\": \"string\", |\\n| 14 | \"size\": 1 |\\n| 15 | } |\\n| 16 | }, |\\n| 17 | \"email\": \"string\", |\\n| 18", - "title": "Export Works | DevRev | Docs" + "id": "ART-16355_KNOWLEDGE_NODE-26", + "text": "**Reported\\\\_by,** and **Contact** columns, provide the email of the person to be assigned as the owner or reporter of the work item. If the CSV lists multiple owners, only the first will be set as the owner.\\n* For the **Applies to Part**, **Stage**, **Account**, **Developed with Parts**, and **Tags** columns, provide the part name, stage name, account name, part name, and tag name respectively as it is present in the UI, ensuring case sensitivity.\\n* For **Date** and **Timestamp** related", + "title": "CSV commands uploader | Automate | Snap-ins | DevRev" }, { - "id": "ART-1254_KNOWLEDGE_NODE-0", - "text": "b'Export Accounts | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[accounts](/api-reference/accounts/accounts)\\n\\nExport Accounts\\n===============\\n\\nCopy page\\n\\nGET\\n\\nhttps://api.devrev.ai/accounts.export\\n\\nGET\\n\\n/accounts.export\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl https://api.devrev.ai/accounts.export \\\\ |\\n| > | -H \"Authorization: Bearer \" |\\n```\\n\\n[Try", - "title": "Export Accounts | DevRev | Docs" + "id": "ART-15689_KNOWLEDGE_NODE-29", + "text": "invalid headers and any missing required headers.\\n7. After the operation is completed, a sample CSV is generated in the **Discussion** tab of the snap-in with the status of the operation, including each line number, any error messages for failed rows, and the link of the successfully created timeline entry for successful rows.\\n8. In case of a retry, a timeline entry is created, and the user needs to re-enter the command /upload\\\\_timelines.\\n\\n[PreviousCSV work item", + "title": "CSV comments uploader | Automate | Snap-ins | DevRev" }, { - "id": "ART-1449_KNOWLEDGE_NODE-10", - "text": "\"modified_date\": \"2023-01-01T12:00:00.000Z\", \\n 69| \"primary_account\": { \\n 70| \"id\": \"foo\", \\n 71| \"display_id\": \"foo\", \\n 72| \"display_name\": \"foo\" \\n 73| }, \\n 74| \"tier\": \"foo\", \\n 75| \"websites\": [ \\n 76| \"foo\" \\n 77| ] \\n 78| } \\n 79| ] \\n 80| }\\n[/code] \\n \\n[Export Accounts (POST)Up Next](/public/api-reference/accounts/export-post)\\n\\n[Built", - "title": "Export Accounts \u2014 DevRev | Docs" + "id": "ART-17228_KNOWLEDGE_NODE-7", + "text": "\"tags\": [\"bug\", \"good-first-issue\"] |\\n| 15 | } |\\n```\\n\\nSome systems provide collections as enum values or references in a string, separated by some separator (comma or semicolon):\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"reporter_ids\": \"2103232131,2103232144\", |\\n| 3 | \"tags\": \"bug;good-first-issue\" |\\n| 4 | } |\\n```\\n\\nThis format should be avoided, and the data normalized to the natural format in the extractor.\\n\\n###### Using struct fields\\n\\nStructs are embedded JSON objects", + "title": "Common issues | DevRev | Docs" }, { - "id": "ART-1254_KNOWLEDGE_NODE-9", - "text": "Export Accounts (POST)\\n\\nNext](/api-reference/accounts/export-post)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Export Accounts | DevRev | Docs" + "id": "ART-16355_KNOWLEDGE_NODE-31", + "text": "is completed, a sample CSV is generated in the **Discussion** tab of the snap-in with the status of the operation, including each line number, any error messages for failed rows, and the display ID of the created commands for successful rows.\\n9. In case of a retry, a command timeline entry is created, and the user needs to re-enter the command /upload\\\\_commands .\\n\\n[PreviousCSV comments uploader](/docs/automations/csv-comments-uploader)[NextDescope identity", + "title": "CSV commands uploader | Automate | Snap-ins | DevRev" }, { - "id": "ART-1302_KNOWLEDGE_NODE-11", - "text": "accounts.export\\n$ curl -G https://api.devrev.ai/accounts.export \\\\ > -H \" Authorization: Bearer \" \\\\ > --data-urlencode created_date.after=2023-01-01T12:00:00Z \\\\ > --data-urlencode created_date.before=2023-01-01T12:00:00Z \\\\ > --data-urlencode modified_date.after=2023-01-01T12:00:00Z \\\\ > --data-urlencode modified_date.before=2023-01-01T12:00:00Z\\n200 Retrieved 1 { 2 \" accounts \" : [ 3 { 4 \" created_date \" : \" 2023-01-01T12:00:00Z \" , 5 \" display_id \" : \" display_id \" , 6 \" id \" : \"", - "title": "Export \u2014 DevRev | Docs" + "id": "ART-16355_KNOWLEDGE_NODE-24", + "text": "CSV](#validations-for-uploading-csv)\\n* [Upload commands from CSV](#upload-commands-from-csv)\\n\\n1. [Documentation](/docs)\\n3. [Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[CSV commands uploader](/docs/automations/csv-commands-uploader)\\n\\nCSV commands uploader\\n=====================\\n\\nThe CSV commands uploader is a snap-in designed to streamline the process of creating commands for work items in bulk through a CSV file. It efficiently handles commands while providing dynamic error", + "title": "CSV commands uploader | Automate | Snap-ins | DevRev" }, { - "id": "ART-1449_KNOWLEDGE_NODE-5", - "text": "Unavailable Error\\n\\nGET\\n\\n/accounts.export\\n\\n[code]\\n\\n $| curl https://api.devrev.ai/accounts.export \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \"\\n[/code] \\n \\nTry it\\n\\n200exportExample\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"accounts\": [ \\n 3| { \\n 4| \"id\": \"foo\", \\n 5| \"owned_by\": [ \\n 6| { \\n 7| \"display_id\": \"foo\", \\n 8| \"id\": \"foo\", \\n 9| \"display_name\": \"foo\", \\n", - "title": "Export Accounts \u2014 DevRev | Docs" + "id": "ART-17228_KNOWLEDGE_NODE-6", + "text": "be a collection instead.\\nThe natural format of a collection is a JSON array (or `null`), containing the natural format of its elements.\\nFor example:\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"reporter_ids\": [ |\\n| 3 | { |\\n| 4 | \"ref_type\": \"user\", |\\n| 5 | \"id\": \"2103232131\", |\\n| 6 | \"fallback_record_name\": \"John Doe\" |\\n| 7 | }, |\\n| 8 | { |\\n| 9 | \"ref_type\": \"contact\", |\\n| 10 | \"id\": \"2103232144\", |\\n| 11 | \"fallback_record_name\": \"Jane Doe\" |\\n| 12 | } |\\n| 13 | ], |\\n| 14 |", + "title": "Common issues | DevRev | Docs" }, { - "id": "ART-1255_KNOWLEDGE_NODE-0", - "text": "b'Export Accounts (POST) | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[accounts](/api-reference/accounts/accounts)\\n\\nExport Accounts (POST)\\n======================\\n\\nCopy page\\n\\nPOST\\n\\nhttps://api.devrev.ai/accounts.export\\n\\nPOST\\n\\n/accounts.export\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl -X POST https://api.devrev.ai/accounts.export \\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\", - "title": "Export Accounts (POST) | DevRev | Docs" + "id": "ART-1590_KNOWLEDGE_NODE-181", + "text": "reporters.\\nseverity long Optional\\nFilters for incidents containing any of the provided severities.\\nsort_by string Optional\\nThe list of fields to sort the items by and how to sort them.\\nsource long Optional\\nFilters for incidents with any of the provided sources.\\nstage string Optional\\nFilters for incidents in any of the provided stages.\\ntitle string Optional\\nFilters for incidents by the provided titles.\\nResponse.\\n\\nThis endpoint returns an object.\\nincidents list of objects\\nThe", + "title": "List \u2014 DevRev | Docs" }, { - "id": "ART-1255_KNOWLEDGE_NODE-1", - "text": "|\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{}\\' |\\n```\\n\\n[Try it](/api-reference/accounts/export-post?explorer=true)\\n\\n200Successful\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"accounts\": [ |\\n| 3 | { |\\n| 4 | \"id\": \"string\", |\\n| 5 | \"owned_by\": [ |\\n| 6 | { |\\n| 7 | \"display_id\": \"string\", |\\n| 8 | \"id\": \"string\", |\\n| 9 | \"display_name\": \"string\", |\\n| 10 | \"display_picture\": { |\\n| 11 | \"display_id\": \"string\", |\\n| 12 | \"id\": \"string\", |\\n| 13 | \"file\": { |\\n| 14", - "title": "Export Accounts (POST) | DevRev | Docs" + "id": "ART-15689_KNOWLEDGE_NODE-24", + "text": "CSV](#validations-for-uploading-csv)\\n* [Upload comments from CSV on work-items](#upload-comments-from-csv-on-workitems)\\n\\n1. [Documentation](/docs)\\n3. [Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[CSV comments uploader](/docs/automations/csv-comments-uploader)\\n\\nCSV comments uploader\\n=====================\\n\\nThe CSV comments uploader is a snap-in designed to streamline the process of creating timeline entries on work items in bulk through a CSV file. It efficiently handles", + "title": "CSV comments uploader | Automate | Snap-ins | DevRev" } ] }, @@ -3644,54 +3644,54 @@ "query": "ticket calls show playback access issue", "retrievals": [ { - "id": "ART-1447_KNOWLEDGE_NODE-8", - "text": "demo](https://devrev.ai/request-a-demo)\\n\\n'", - "title": "Tickets and issues \u2014 DevRev | Docs" + "id": "ART-1444_KNOWLEDGE_NODE-9", + "text": "breachedcompletedpausedrunningwarning\\n\\nticket.source_channellist of stringsOptional\\n\\nFilters for tickets with any of the provided source channels.\\n\\nticket.source_channel_v2list of stringsOptional\\n\\nFilters for tickets that are associated with any of the source channels.\\n\\ntypelist of enumsOptional\\n\\nFilters for work of the provided types.\\n\\nAllowed values: issueticket\\n\\n### Response\\n\\nSuccess.\\n\\nworkslist of objects\\n\\nThe list of works.\\n\\nShow 2", + "title": "List Works \u2014 DevRev | Docs" }, { - "id": "ART-1979_KNOWLEDGE_NODE-41", - "text": "progress\\n\\n\\n\\nOpen\\n\\n\\n\\nEscalate\\n\\n\\n\\nValidate the fix\\n\\n\\n\\nAdditional detail needed\\n\\n\\n\\nCustomer responds\\n\\n\\n\\nStart\\n\\n\\n\\nFeature request accepted\\n\\n\\n\\nResolved\\n\\n\\n\\nNot valid\\n\\n\\n\\nQueued\\n\\n\\n\\nWork in progress\\n\\n\\n\\nAwaiting product assist\\n\\n\\n\\nAwaiting development\\n\\n\\n\\nAwating customer response\\n\\n\\n\\nIn development\\n\\n\\n\\nAccepted\\n\\n\\n\\nResolved\\n\\n\\n\\nCanceled\\n```\\n\\n**Open**\\n\\n* *Queued* (Q)\\n The initial stage for all tickets. When a new ticket is created,", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1981_KNOWLEDGE_NODE-26", + "text": "a small number of tags to help categorize tickets. For example, at DevRev we have the following: bug, feature-request, other-request, question, and incident.\\n* Designate one or more customer experience engineers to be on call. Add them to the **Support** group inside **Settings > Groups** and as default owner in the **Support Routing** snap-in. Default owners are notified through email and the DevRev app as soon as a new conversation is started.\\n\\nMonitor the inbox\\n-----------------\\n\\n*", + "title": "Support best practices | Computer for Support Teams | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-39", - "text": "other tickets or issues that relate to this ticket, click **Link Records** and select the relevant items.\\n7. If you would like to immediately create another ticket, select **Create multiple**.\\n8. Click **Create**.\\n\\nIf a ticket is created from an existing conversation, then the ticket's title and description are populated automatically from the conversation.\\n\\n![]()\\n\\nYou can create a child issue by clicking **+ Link issue** > **Add a child issue**. You can link the other existing issue as", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-15664_KNOWLEDGE_NODE-13", + "text": "\\n\\nYou may want to restrict links to specific subtypes of objects. For example, only allowing issues\\nof a particular subtype to be linked to tickets.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"name\": \"Link between social media issues and tickets\", |\\n| > | \"source_types\": [ |\\n| > | { |\\n|", + "title": "Links | DevRev | Docs" }, { - "id": "ART-1002_KNOWLEDGE_NODE-1", - "text": "\\xe2\\x86\\x92 Issues\\n Items to track customer requests/problems \\xe2\\x86\\x92 Tickets\\n\\n\\nGiven the converged nature of the DevRev platform, we have both Tickets, and Issues, so when do you use what? The answer is \\xe2\\x80\\x9cit depends\\xe2\\x80\\x9d on what your role is on the part you\\xe2\\x80\\x99re creating the work item on. In general, issues should be restricted to those individuals that either own or contribute to a part. Tickets should be used for all customer/consumer (internal or", - "title": "Tickets, Issues: When to Use Each" + "id": "ART-1804_KNOWLEDGE_NODE-452", + "text": "response.\\nticket.rev_org string Optional\\nFilters for tickets that are associated with any of the provided Rev organizations.\\nticket.severity enum Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided", + "title": "Self \u2014 DevRev | Docs" }, { - "id": "ART-1979_KNOWLEDGE_NODE-27", - "text": "also be used to engage customers for feedback/ideas (such as new feature ideas). Scoping is important for broadcast tickets as there needs to be a differentiation between broadcast (all revs) vs. multicast (particular revs).\\n\\nViews of tickets can be found under **Support** in the DevRev app.\\n\\n![]()\\n\\nYou can export views to CSV or JSON by selecting **Actions** in the upper-right corner and choosing the format.\\n\\nAttributes\\n----------\\n\\nTickets have attributes that can be used to filter", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-16803_KNOWLEDGE_NODE-26", + "text": "Tickets\\n* Meetings\\n* Objects linked to issues\\n* Users\\n\\nTo configure a workspace object loop:\\n\\n1. On the **workflow canvas**, add an action step named **Loop for [Object]**, where [Object] is the entity you want to iterate over.\\n2. Apply **filter conditions** to refine the set of objects included in the loop and perform operations on them.\\n\\nAll **actions** inside the loop execute once per object that satisfies the filter conditions.\\n\\n### For Each\\n\\nThe **For Each** loop iterates", + "title": "Workflow nodes | Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-1447_KNOWLEDGE_NODE-1", - "text": "[Tickets](https://docs.devrev.ai/product/tickets) and [Issues](https://docs.devrev.ai/product/issues).\\n\\nWas this page helpful?YesNo\\n\\n[Create WorkUp Next](/public/api-reference/works/create)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n[Enterprise grade security to protect customer dataLearn more about it.](https://devrev.ai/blog/soc-compliance)\\n\\nProduct\\n\\n * [Build](https://devrev.ai/build)\\n *", - "title": "Tickets and issues \u2014 DevRev | Docs" + "id": "ART-1802_KNOWLEDGE_NODE-452", + "text": "response.\\nticket.rev_org string Optional\\nFilters for tickets that are associated with any of the provided Rev organizations.\\nticket.severity enum Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided", + "title": "Get Post \u2014 DevRev | Docs" }, { - "id": "ART-15716_KNOWLEDGE_NODE-8", - "text": "for TicketsWe have a summarize option (it would resemble sparkle symbol) in the top right corner of the ticket view, which uses the ticket content to summarize the ticket\\n\\n7. Difference between Issues and Tickets\\n\\nTickets\\xc2\\xa0are for customer support\\xe2\\x80\\x94tracking requests, problems, or questions from customers or prospects.\\n\\nIssues\\xc2\\xa0are internal work items for developers\\xe2\\x80\\x94used to improve the product, fix bugs, or implement features. Issues can be linked to", - "title": "Support queries related playbook" + "id": "ART-1792_KNOWLEDGE_NODE-450", + "text": "response.\\nticket.rev_org string Optional\\nFilters for tickets that are associated with any of the provided Rev organizations.\\nticket.severity enum Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided", + "title": "Update \u2014 DevRev | Docs" }, { - "id": "ART-1002_KNOWLEDGE_NODE-3", - "text": "systems being used for engineering work are commonly abused by sales, marketing and support teams. For example, a sales rep may create an issue for a developer for a customer request. In the case of support, you\\xe2\\x80\\x99ll commonly see a ton of duplicate issues when only one was really necessary. This leads to a lot of noise for developers, and devalues the notion of an \\xe2\\x80\\x9cissue\\xe2\\x80\\x9d. By keeping a clear line between tickets and issues, we ensure the following:\\n\\n\\n issues", - "title": "Tickets, Issues: When to Use Each" + "id": "ART-16611_KNOWLEDGE_NODE-4", + "text": "ticket ID, issue ID)\\n // - value: array of attachments belonging to that parent\\n \\n for (const [parentId, attachments] of reducedAttachments) {\\n // Fetch the parent item to get fresh attachment URLs\\n // Implement your custom logic here (API call, URL refresh, token renewal, etc.)\\n const freshAttachments = await refetchParentAttachments(parentId);\\n \\n // Process each attachment in this parent group\\n for (const attachment of attachments) {\\n // Find the", + "title": "Using custom processors for attachments in Airdrop snap-in" }, { - "id": "ART-1979_KNOWLEDGE_NODE-40", - "text": "a child issue or create a new one by clicking on **+ New issue**.\\nJust update the title of the child issue and click enter. All other fields will be populated automatically by DevRev. You can edit them later.\\n\\nTags\\n----\\n\\n* Stalled\\n* Priority/Escalated\\n* Fast/Slow Moving\\n* Blocked\\n* Resolution: [*value*]\\n* Impact: [*value*]\\n* Reason: [*value*]\\n\\nStages\\n------\\n\\nThe following figure shows the state machine for tickets.\\n\\n```\\nClosed\\n\\n\\n\\nIn", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1949_KNOWLEDGE_NODE-26", + "text": "upper-right corner after you make a change.\\n You can toggle on **Show groups** in **Group by** dropdown to open up a side panel showing the groups.\\n\\n![]()\\n\\n![]()\\n\\nYou can also apply **Actions** > **Smart Clustering** if the number of tickets or issues is under 10,000. Clustering isn't available for conversations.\\n\\n1. Click **Save as**. You can give the list a name, and description and save it which causes it to show up in the **My list** section at the bottom of the left-side nav", + "title": "Vistas | Computer by DevRev | DevRev" }, { - "id": "ART-1242_KNOWLEDGE_NODE-0", - "text": "b'Tickets and issues | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[works](/api-reference/works/tickets-and-issues)\\n\\nTickets and issues\\n==================\\n\\nCopy page\\n\\n`works` endpoint\\n\\n\\xe2\\x84\\xb9\\xef\\xb8\\x8f A work item is a record of some work that has to be done for a customer (ticket) or for another builder or maintainer of a part (issue).\\n\\n\\xf0\\x9f\\x93\\x8c For more information", - "title": "Tickets and issues | DevRev | Docs" + "id": "ART-1592_KNOWLEDGE_NODE-449", + "text": "response.\\nticket.rev_org string Optional\\nFilters for tickets that are associated with any of the provided Rev organizations.\\nticket.severity enum Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided", + "title": "Update \u2014 DevRev | Docs" } ] }, @@ -3705,49 +3705,49 @@ "title": "Issues with Salesforce OAuth connection" }, { - "id": "ART-2047_KNOWLEDGE_NODE-30", - "text": "it\\'s your first).\\n2. Create a new connection to your Salesforce account, or use an existing connection if you already have one.\\n3. Once the connection is established, select the Salesforce account you want to import and specify the DevRev part that should be used for any imported cases without a product. This initiates a bulk import of the selected account.\\n4. DevRev makes an effort to automatically map the fields from Salesforce to corresponding fields in DevRev. However, you may be", - "title": "Salesforce AirSync | AirSync | Snap-ins | DevRev" + "id": "ART-1687_KNOWLEDGE_NODE-2", + "text": "DevRev snap-in) without needing to share their passwords directly. This approach enhances security and user convenience.\\n\\nFor comprehensive information about the OAuth specification, refer to the official documentation: [OAuth 2.0](https://oauth.net/2/).\\n\\nUsing OAuth 2.0 keyrings\\n------------------------\\n\\n1. **Define the keyring:** Within your snap-in manifest, define a keyring specifically for OAuth credentials. DevRev offers pre-defined keyring types for popular services like Slack or", + "title": "OAuth 2.0 configuration: Securely storing access tokens | DevRev | Docs" }, { - "id": "ART-15716_KNOWLEDGE_NODE-3", - "text": "SMTP/IMAP). You\\xe2\\x80\\x99ll need admin access to complete the setup.\\n\\n[Email integration setup instructions](https://devrev.ai/docs/integrations/email)\\n\\n6. Syncing Cases Between DevRev and Salesforce\\n\\nYes, you can sync cases (tickets) from DevRev to Salesforce using the Salesforce integration. Mapping and sync options are available during setup.\\n\\n[Syncing cases with Salesforce](https://devrev.ai/docs/integrations/salesforce#sync-cases)\\n\\n7. Supported Airdrop Sources\\n\\nDevRev Airdrop", - "title": "Support queries related playbook" + "id": "ART-12994_KNOWLEDGE_NODE-3", + "text": "Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n404\\n\\nNot Found Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nPOST\\n\\n/dev-users.identities.link\\n\\n[code]\\n\\n $| curl -X POST https://api.devrev.ai/dev-users.identities.link \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -H \"Content-Type: application/json\" \\\\ \\n >| -d \\'{ \\n >| \"dev_user\": \"foo\", \\n >|", + "title": "Link Dev Users Identities \u2014 DevRev | Docs" }, { - "id": "ART-2047_KNOWLEDGE_NODE-36", - "text": "DevRev**.\\n\\n![]()\\n\\nThis may override fields in previously imported items, even if they were modified in DevRev.\\n\\n### Sync to Salesforce\\n\\nAfter a successful import from a Salesforce account, you can sync changes made in DevRev to the previously imported cases back to Salesforce. Additionally, any new [DevRev tickets marked for sync](#mark-a-devrev-ticket-for-syncing) is created as new Salesforce items.\\n\\nTo perform a one-time sync to Salesforce, follow these steps:\\n\\n1. Go to", - "title": "Salesforce AirSync | AirSync | Snap-ins | DevRev" + "id": "ART-1491_KNOWLEDGE_NODE-16", + "text": "devrev-example-oauth # Predefined keyring type to be used as a reference for the custom keyring type 8 scopes : 9 - name : read 10 description : Read access to Example resources 11 value : read 12 - name : write 13 description : Write access to Example resources 14 value : write 15 is_optional : true\\n\\n3.2. Custom keyring type definition. : This approach defines a new, entirely custom keyring type with complete control over the OAuth flow configuration.\\n\\n1 keyring_types : 2 - id :", + "title": "Keyrings \u2014 DevRev | Docs" }, { - "id": "ART-2047_KNOWLEDGE_NODE-35", - "text": "longer available.\\n\\n### Sync to DevRev\\n\\nAfter a successful import from a Salesforce account, you can choose to sync the imported data with DevRev. This feature airdrops any new items and any changes made to previously imported items from Salesforce.\\n\\nTo perform a one-time sync to DevRev, follow these steps:\\n\\n1. Go to **Settings** > **Integrations** > **AirSyncs**.\\n2. Locate the previously imported project.\\n3. Select **\\xe2\\x8b\\xae** > **Sync Salesforce Service to", - "title": "Salesforce AirSync | AirSync | Snap-ins | DevRev" + "id": "ART-4055_KNOWLEDGE_NODE-2", + "text": "Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nPOST\\n\\n/dev-orgs.auth-connections.get\\n\\n[code]\\n\\n $| curl -X POST https://api.devrev.ai/dev-orgs.auth-connections.get \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -H \"Content-Type: application/json\" \\\\ \\n >| -d \\'{ \\n >| \"id\": \"foo\" \\n >| }\\'\\n[/code] \\n \\nTry it\\n\\n200authConnectionsDevOrgAuthConnectionsGetPostExample\\n\\n[code]\\n\\n 1| { \\n", + "title": "Get Dev Orgs Auth Connection (POST) \u2014 DevRev | Docs" }, { - "id": "ART-17569_KNOWLEDGE_NODE-2", - "text": "connection:\\n\\nOpen a Support Case w/ SFDC Support.\\n\\nAsk to have the API Access Control feature enabled\\n\\nOnce enabled, go to the system user in SFDC and select the appropriate profle/permission set and go to System Permissions.\\n\\nCheck the box that says \"Use Any API client\"\\n\\nThis is a setting that wouldn\\'t be available without the API Access Control feature.\\n\\nRetry creating the connection after you\\'ve completed the previous steps.'", - "title": "Issues with Salesforce OAuth connection" + "id": "ART-1283_KNOWLEDGE_NODE-16", + "text": "devrev-example-oauth # Predefined keyring type to be used as a reference for the custom keyring type 8 scopes : 9 - name : read 10 description : Read access to Example resources 11 value : read 12 - name : write 13 description : Write access to Example resources 14 value : write 15 is_optional : true\\n\\n3.2. Custom keyring type definition. : This approach defines a new, entirely custom keyring type with complete control over the OAuth flow configuration.\\n\\n1 keyring_types : 2 - id :", + "title": "Keyrings \u2014 DevRev | Docs" }, { - "id": "ART-15716_KNOWLEDGE_NODE-2", - "text": "details](https://devrev.ai/docs/integrations/jira)\\n\\n4. Integration with Salesforce\\n\\nYes, DevRev offers a Salesforce integration. You can sync accounts, contacts, opportunities, and more between DevRev and Salesforce.\\n\\n[Salesforce integration overview](https://devrev.ai/docs/integrations/salesforce)\\n\\n5. Configuring Email Integration Snap-In\\n\\nGo to Settings \\xe2\\x86\\x92 Integrations \\xe2\\x86\\x92 Email, then follow the prompts to connect your email provider (Gmail, Outlook, or custom", - "title": "Support queries related playbook" + "id": "ART-1966_KNOWLEDGE_NODE-44", + "text": "errors**: Verify the sign\\\\_in\\\\_endpoint (SAML) or issuer (OIDC) is accessible and returns valid responses.\\n2. **Login failures**: Check that users are assigned to the application in your identity provider.\\n\\nFor additional support, contact the DevRev customer success team with your connection details and error messages.\\n\\n[PreviousAccessing DevRev](/docs/product/ui)[NextRemote MCP server](/docs/product/remote-mcp)\\n\\n#### On this page\\n\\n* [Before you begin](#before-you-begin)\\n* [Setup", + "title": "External identity provider setup | Computer by DevRev | DevRev" }, { - "id": "ART-16740_KNOWLEDGE_NODE-1", - "text": "expected sync is from DevRev \\xe2\\x86\\x92 Salesforce, the Owner field in Salesforce will be overwritten with the Owner value from DevRev.'", - "title": "Handling Conflicts in Two-Way Sync Between DevRev and External Systems" + "id": "ART-4057_KNOWLEDGE_NODE-3", + "text": "Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nPOST\\n\\n/dev-orgs.auth-connections.list\\n\\n[code]\\n\\n $| curl -X POST https://api.devrev.ai/dev-orgs.auth-connections.list \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -H \"Content-Type: application/json\" \\\\ \\n >| -d \\'{}\\'\\n[/code] \\n \\nTry", + "title": "List Dev Orgs Auth Connections (POST) \u2014 DevRev | Docs" }, { - "id": "ART-2047_KNOWLEDGE_NODE-37", - "text": "**Settings** > **Integrations** > **AirSyncs**.\\n2. Locate the previously imported project.\\n3. Select **\\xe2\\x8b\\xae** > **Sync DevRev to Salesforce Service**.\\n\\n![]()\\n\\nThis may override fields in Salesforce of previously imported items, even if they were modified in Salesforce.\\n\\n#### Mark a DevRev ticket for syncing\\n\\nUsing the [Sync to Salesforce](#sync-to-salesforce) feature, it\\'s possible to sync DevRev tickets to Salesforce. In order to sync a DevRev ticket to a specific Salesforce", - "title": "Salesforce AirSync | AirSync | Snap-ins | DevRev" + "id": "ART-16805_KNOWLEDGE_NODE-37", + "text": "deleted, all the content it created gets deleted, even if they were modified in DevRev. It's possible to import the learning data again after its deletion.\\n\\nTo delete an import and all the content it created, go to **Settings > Integrations > Imports**, find the previously imported project, and select \\xe2\\x8b\\xae > **Delete Import**.\\n\\n### Limitations\\n\\n* Limited to API key authentication only; OAuth 2.0 not currently supported by Articulate Reach 360 platform.\\n* No delta synchronization", + "title": "Articulate Reach 360 AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-2047_KNOWLEDGE_NODE-33", - "text": "Salesforce](#sync-to-salesforce):\\n + This option synchronizes any changes made in DevRev to previously synced Salesforce [supported items](#supported-objects) back to Salesforce. It also creates any [items marked in DevRev](#mark-a-devrev-ticket-for-syncing) for creation in Salesforce. This is a one-time operation.\\n* [Periodic Sync](#periodic-sync):\\n + By enabling this option, you can automatically sync new changes from Salesforce to DevRev on a periodic basis. The default frequency is", - "title": "Salesforce AirSync | AirSync | Snap-ins | DevRev" + "id": "ART-4056_KNOWLEDGE_NODE-3", + "text": "Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nGET\\n\\n/dev-orgs.auth-connections.get\\n\\n[code]\\n\\n $| curl -G https://api.devrev.ai/dev-orgs.auth-connections.get \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -d id=id\\n[/code] \\n \\nTry it\\n\\n200devOrgAuthConnectionsGetExample\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"auth_connection\": {} \\n 3| }\\n[/code] \\n \\n[Get Dev Orgs Auth Connection (POST)Up", + "title": "Get Dev Orgs Auth Connection \u2014 DevRev | Docs" } ] }, @@ -3756,54 +3756,54 @@ "query": "DevRev statistical data on ticket resolution time and customer benefits", "retrievals": [ { - "id": "ART-1975_KNOWLEDGE_NODE-25", - "text": "insights\\n===============\\n\\n* **Tickets created**\\n\\n The number of tickets created within the date range that meet the other filtering criteria.\\n* **Active tickets**\\n\\n The number of tickets that are in the Open or In Progress state.\\n* **Closed tickets**\\n\\n The number of tickets closed within the date range that meet the other filtering criteria.\\n* **Average resolution time**\\n\\n The average time taken to resolve tickets.\\n* **Median resolution time**\\n\\n The median time taken to", - "title": "Ticket insights | Support analytics | Computer for Support Teams | DevRev" + "id": "ART-1771_KNOWLEDGE_NODE-10", + "text": "approach to customer service. The result was faster responses, more accurate solutions, and a significantly improved customer experience.\\n\\nThe bottom line: A transformation in support operations\\n-------------------------------------------------------\\n\\nToughTrucksForKids\\' implementation of DevRev delivers concrete business results:\\n\\n* 64% reduction in ticket resolution time\\n* 83% improvement in first response time\\n* 30% increase in CSAT scores\\n* 20% increase in conversion rates\\n* 65%", + "title": "ToughTrucksForKids.com achieves dramatic efficiency gains and customer satisfaction through AI-powered support automation" }, { - "id": "ART-15792_KNOWLEDGE_NODE-8", - "text": "they come from - chat, email, Slack, phone - using unified data from across your company.\\n\\nCustomizable Ticket Routing: Route tickets with customizable workflows. Go beyond just priority and agent skill levels to assign the right ticket to the right person\\n\\nTakes actions: Support resolves common customer requests like password resets, subscription changes, and more from start to finish.\\n\\nUnified Data View: Eliminate disjointed middleware and layers of complex integrations. Speed up", - "title": "DevRev Products and Agents" + "id": "ART-16189_KNOWLEDGE_NODE-13", + "text": "faster ticket resolution\\n* 57% drop in resolution time\\n* Improved coordination between support and engineering\\n* Real-time visibility into issue status\\n* Automation of routine support tasks\\n* Reduced backlog by 100+ tickets\\n* Enhanced customer communication and transparency\\n* Scalable, future-proof support operations\\n\\n### Related Articles\\n\\n[![]()\\n\\n5 min readLuxCreo boosts operational efficiency and agility with DevRev](/case-study/luxcreo)[![]()\\n\\n5 min readAditya Birla Capital", + "title": "FOSSA\u2019s Unified Support Strategy for Elevated Customer Experience" }, { - "id": "ART-1975_KNOWLEDGE_NODE-28", - "text": "conversations against standalone tickets.\\n* **Tickets linked to issues**\\n\\n The percentage of tickets linked to product issues.\\n* **Active tickets by owner**\\n\\n The number of Open or In Progress tickets grouped by owner.\\n* **Tickets created vs. closed**\\n\\n The trend of tickets created against those closed.\\n\\nCustomer satisfaction (CSAT)\\n----------------------------\\n\\n* **CSAT score distribution**\\n\\n A distribution of customer satisfaction scores on tickets.\\n\\nTime spent per", - "title": "Ticket insights | Support analytics | Computer for Support Teams | DevRev" + "id": "ART-1035_KNOWLEDGE_NODE-0", + "text": "b'Goodmeetings uses PLuG to reduce ticket resolution time\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\n- [Case Studies](/case-study)\\n\\n- Goodmeetings\\n\\nGoodmeetings uses DevRev to reduce ticket resolution time\\n=========================================================\\n\\n3 min", + "title": "Goodmeetings uses PLuG to reduce ticket resolution time" }, { - "id": "ART-1975_KNOWLEDGE_NODE-24", - "text": "[Product demos](/docs/DevRevU/demos)\\n\\nOn this page\\n\\n* [Customer & product impact](#customer-product-impact)\\n* [Ticket distribution](#ticket-distribution)\\n* [Customer satisfaction (CSAT)](#customer-satisfaction-csat)\\n* [Time spent per stage](#time-spent-per-stage)\\n\\n1. [Documentation](/docs)\\n3. [Computer for Support Teams](/docs/product/support)\\n[Support analytics](/docs/product/support-analytics)\\n[Ticket insights](/docs/dashboards/ticket-insights)\\n\\nTicket", - "title": "Ticket insights | Support analytics | Computer for Support Teams | DevRev" + "id": "ART-16570_KNOWLEDGE_NODE-13", + "text": "and improve, making information access increasingly effortless over time.\\n\\nData-backed transformation\\n--------------------------\\n\\nSince the rollout in June 2025, the data shows clear improvements in operational efficiency:\\n\\n* **+10 hrs saved** every user each week\\n* **~40% faster ticket resolution** when DevRev is used\\n* **Up to 75% faster resolution** in specific cases\\n* **Consistent adoption** across the team through June and July\\n\\nBenefits\\n--------\\n\\nFAME\\'s adoption of", + "title": "FAME transforms information access with AI-powered enterprise search" }, { - "id": "ART-1977_KNOWLEDGE_NODE-26", - "text": "owner.\\n* **Average Resolution Time**\\n\\n Average time taken to resolve tickets by ticket owners.\\n\\n[PreviousTicket-SLA Analytics](/docs/dashboards/ticket-sla-analytics)[NextConversations](/docs/product/conversation)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer works](/how-computer-works)\\n\\nApps\\n\\n* [For Support Teams](/for-support-teams)\\n* [For", - "title": "Ticket-Team Performance | Support analytics | Computer for Support Teams | DevRev" + "id": "ART-1981_KNOWLEDGE_NODE-26", + "text": "a small number of tags to help categorize tickets. For example, at DevRev we have the following: bug, feature-request, other-request, question, and incident.\\n* Designate one or more customer experience engineers to be on call. Add them to the **Support** group inside **Settings > Groups** and as default owner in the **Support Routing** snap-in. Default owners are notified through email and the DevRev app as soon as a new conversation is started.\\n\\nMonitor the inbox\\n-----------------\\n\\n*", + "title": "Support best practices | Computer for Support Teams | DevRev" }, { - "id": "ART-1975_KNOWLEDGE_NODE-27", - "text": "customer satisfaction score for tickets.\\n* **Escalated tickets**\\n\\n The number of tickets that are escalated.\\n\\nCustomer & product impact\\n-------------------------\\n\\n* **Active tickets by customer**\\n\\n The number of Open or In Progress tickets grouped by customer.\\n* **Active tickets by part**\\n\\n The number of Open or In Progress tickets grouped by part.\\n\\nTicket distribution\\n-------------------\\n\\n* **Tickets linked to conversations**\\n\\n The percentage of tickets linked from", - "title": "Ticket insights | Support analytics | Computer for Support Teams | DevRev" + "id": "ART-1709_KNOWLEDGE_NODE-14", + "text": "_The future is not just about fewer tickets or resolving them faster. It 's about having no tickets at all. And that\\xe2\\x80\\x99s precisely what DevRev aims to achieve for digital businesses._**\\n\\nBook a demo\\n\\n### Related Articles\\n\\n[6 min readUniphore builds a proactive support culture with DevRev01.27.2025](/case-study/uniphore)[5 min readDescope drives its PLG motion using a single consolidated inbox01.27.2025](/case-study/descope)[3 min readGoodmeetings uses PLuG to reduce ticket", + "title": "ACC-qjz7ErXz - Mad Rewards: MadRewards uses DevRev\u2019s AI to modernize customer su" }, { - "id": "ART-1975_KNOWLEDGE_NODE-29", - "text": "stage\\n--------------------\\n\\n* **Average time spent per stage**\\n\\n The average time tickets spent in each stage.\\n\\n[PreviousConversation-Team Performance](/docs/dashboards/conversation-team-performance)[NextTicket-SLA Analytics](/docs/dashboards/ticket-sla-analytics)\\n\\n#### On this page\\n\\n* [Customer & product impact](#customer-product-impact)\\n* [Ticket distribution](#ticket-distribution)\\n* [Customer satisfaction (CSAT)](#customer-satisfaction-csat)\\n* [Time spent per", - "title": "Ticket insights | Support analytics | Computer for Support Teams | DevRev" + "id": "ART-1870_KNOWLEDGE_NODE-10", + "text": "retention or engagement\\n\\n![]()\\n\\nTasso ArgyrosCEO, ActionIQ\\n\\nThe bottom line: Transforming support through connected operations\\n------------------------------------------------------------------\\n\\nActionIQ's implementation of DevRev delivered concrete business results:\\n\\n* 67% reduction in median incident resolution times\\n* 50% faster customer ticket resolution\\n* 60% reduction in turnaround time for responses to customer tickets\\n* 68% increase in incidents closed within Level 1", + "title": "Unifying teams: How ActionIQ transformed support with integration" }, { - "id": "ART-1986_KNOWLEDGE_NODE-36", - "text": "conversations:\\n\\n**Tickets**\\n\\n| Metric | Default conditions | Start event | End event | Pause event | Resume event |\\n| --- | --- | --- | --- | --- | --- |\\n| First response time | * Ticket created by a customer * The ticket was created by a customer experience engineer but reported by a customer | Ticket created | * The agent added a comment to the customer chat * The ticket is moved to Awaiting Customer Response, or the ticket is closed | | |\\n| Next response time | * Ticket created by", - "title": "Service-level agreement | Computer for Support Teams | DevRev" + "id": "ART-2749_KNOWLEDGE_NODE-6", + "text": "tools, giving their support and engineering teams context on customer history, product usage, and prior interactions.\\n\\nThis shift improved operational efficiency while fostering better collaboration and faster resolution times, aligning more closely with Phenom's evolving needs and goals.\\n\\nWith DevRev, we've significantly reduced our ticket resolution time by 30%, enhancing our overall support efficiency.\\n\\n![]()\\n\\nMark MacDonaldVice President of Global Customer Care, Phenom\\n\\nThe", + "title": "Phenom transforms talent experience with streamlined support and development workflows" }, { - "id": "ART-1986_KNOWLEDGE_NODE-37", - "text": "a customer * The ticket was created by a customer experience engineer but reported by a customer | A new comment on the ticket by the customer after the customer experience engineer replied | * The agent added a comment to the customer chat * The ticket is moved to Awaiting Customer Response, or the ticket is closed | | |\\n| Full resolution time | * Ticket created by a customer * The ticket was created by a customer experience engineer but reported by a customer | Ticket created | The", - "title": "Service-level agreement | Computer for Support Teams | DevRev" + "id": "ART-15716_KNOWLEDGE_NODE-34", + "text": "DevRev provides dashboards for CSAT (Customer Satisfaction) scores:\\n\\nClick the Explore Section and search for the Ticket Insights or Ticket Team Performance Dashboard\\n\\nNavigate to find the CSAT widgets.\\n\\nYou can filter by time, team, or agent to get detailed insights.\\n\\nThis gives you a centralized view of customer feedback trends.3. Visualizing Data Using Dashboards and Widgets\\n\\nTo create dashboards:\\n\\nGo to the Vista you are interested in visualizing\\n\\nApply the necessary", + "title": "Support queries related playbook" }, { - "id": "ART-2662_KNOWLEDGE_NODE-4", - "text": "insights](/docs/dashboards/conversation-insights)\\n - [Conversation-SLA Analytics](/docs/dashboards/conversation-sla-analytics)\\n - [Conversation-Team Performance](/docs/dashboards/conversation-team-performance)\\n - [Ticket insights](/docs/dashboards/ticket-insights)\\n - [Ticket-SLA Analytics](/docs/dashboards/ticket-sla-analytics)\\n - [Ticket-Team Performance](/docs/dashboards/ticket-team-performance)\\n + [Conversations](/docs/product/conversation)\\n\\n - [Conversation to", - "title": "DevRev Documentation" + "id": "ART-1027_KNOWLEDGE_NODE-12", + "text": "driver\\n----------------------------------------------------------\\n\\nBy deploying DevRev, Descope has achieved:\\n\\n* 54% reduction in average resolution time\\n* 5\\xc3\\x97 faster ticket resolution with complete lifecycle visibility\\n* 300M+ users supported daily, up from 10M\\n* 100% SLA adherence maintained during scale\\n* 32\\xe2\\x80\\x9340% of inquiries resolved through AI-powered self-service\\n* Increased CSAT and reduced time to resolution\\n\\nThe result: a streamlined, product-led support", + "title": "Descope streamlines support at scale with automation, AI, and unified collaboration" } ] }, @@ -3812,19 +3812,19 @@ "query": "who can provide access to a dashboard or board", "retrievals": [ { - "id": "ART-1958_KNOWLEDGE_NODE-30", - "text": "do not, by default, have permission to read any datasets besides their own. Admins are responsible for granting read permissions to all or a subset of datasets, which platform users can then utilize in building dashboards or reports.\\n\\n### Sharing\\n\\nThe share functionality allows dashboard or report editors to grant read or update permissions to other users.\\n\\n1. Select **Share** from the actions drop-down.\\n2. Search for the desired user, assign them a role (Editor or Viewer), then click", - "title": "Access control | Computer by DevRev | DevRev" + "id": "ART-15617_KNOWLEDGE_NODE-8", + "text": "capability to build custom dashboards quite intuitively and quickly. The Ask AI runs analytics on support data with very simple prompts. It has the capability to track gaps in knowledge base, ensuring that the training data improves with time. Detailed Strengths and Weaknesses Strengths\\n\\nSeamless Integration : Excellent Slack integration and multi-channel support including MS Teams\\n\\nUser Experience : Intuitive, easy-to-use interface with minimal learning curve\\n\\nCustomer Success :", + "title": "Pylon - Competitive - for the PLuG on website" }, { - "id": "ART-1958_KNOWLEDGE_NODE-29", - "text": "whatever combination, that will give user groups permission to perform various operations on dashboards/reports. Out of the box, the following roles are enabled for the predefined user groups:\\n\\n* Admins\\n\\n ![]()\\n* Platform users\\n\\n ![]()\\n\\n By default, platform users have the following permissions:\\n\\n + Create dashboards or reports.\\n + Read, update, and delete their own dashboards or reports.\\n + Create datasets.\\n + Read, update, and delete their own datasets.\\n\\nPlatform users", - "title": "Access control | Computer by DevRev | DevRev" + "id": "ART-15687_KNOWLEDGE_NODE-33", + "text": "organization.\\n Define the reference ID for each tab before mapping widgets to them.\\n* **Create the dashboard**:\\n Once satisfied with the linked widgets and layout, click the **Create dashboard** button.\\n* **Accessing dashboards**:\\n\\nSearch in the **Explore** section:\\n\\n* Go to **Explore** in the left nav in DevRev.\\n* Search for your dashboard by its name.\\n* Click on the dashboard to access it.\\n* For easy access, you can pin your dashboard under a section of your", + "title": "Dashboards | Computer by DevRev | DevRev" }, { - "id": "ART-1958_KNOWLEDGE_NODE-32", - "text": "**Create**: Build a dashboard or report. A user must have dashboard create permissions and dataset read permissions to create a dashboard or report.\\n* **Update**: Modify an existing dashboard or report. A user must have dashboard update permissions and dataset read permissions to modify a dashboard or report.\\n* **Share**: Allows a user to share an existing dashboard or report with other users. A user must have dashboard update permissions to share a dashboard or report.\\n\\n[PreviousDefault", - "title": "Access control | Computer by DevRev | DevRev" + "id": "ART-15687_KNOWLEDGE_NODE-0", + "text": "b'Dashboards | Computer by DevRev | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CMD`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", + "title": "Dashboards | Computer by DevRev | DevRev" }, { "id": "ART-1958_KNOWLEDGE_NODE-28", @@ -3832,33 +3832,33 @@ "title": "Access control | Computer by DevRev | DevRev" }, { - "id": "ART-1958_KNOWLEDGE_NODE-31", - "text": "**Share**.\\n\\nVista privileges\\n----------------\\n\\nTwo objects power vista reports: dashboards and datasets. Dashboards represent the view, while datasets represent the actual underlying data. A user must, at a minimum, have access permissions to dashboards in order to perform any meaningful operations on vista reports. Below is a list of possible operations:\\n\\n* **Read**: View a dashboard or report. Dashboard read permissions are required for a user to view a dashboard or report.\\n*", - "title": "Access control | Computer by DevRev | DevRev" + "id": "ART-2666_KNOWLEDGE_NODE-30", + "text": "in Explore\\n\\nIn the **Explore** section, users can search for specific views using the search bar located in the top-left corner. Additionally, users can filter views by type, including:\\n\\n * **Dashboards**\\n * **Sprint Boards**\\n * **Vistas**\\n\\n### Pinning and unpinning views\\n\\nYou can now pin views from the **Explore** section directly to your left navigation menu or remove them for a more tailored experience. This feature ensures quick access to the most important views.\\n\\nTo pin or", + "title": "October 5: Left navigation | Changelog | DevRev" }, { - "id": "ART-15687_KNOWLEDGE_NODE-1", - "text": "[Groups](/docs/product/groups)\\n + [Parts & trails](/docs/product/parts)\\n + [Vistas](/docs/product/vistas)\\n\\n - [Vista Reports](/docs/product/vista-reports)\\n - [Board view](/docs/product/board-view)\\n + [Tasks](/docs/product/tasks)\\n + [Updates](/docs/product/updates)\\n + [Customer email notifications](/docs/product/customer-emails)\\n + [Roles](/docs/product/roles)\\n\\n - [Default privileges by group](/docs/product/privs)\\n + [Access control](/docs/product/access-control)\\n +", + "id": "ART-15687_KNOWLEDGE_NODE-34", + "text": "choice.\\n\\n[PreviousObject customization](/docs/product/object-customization)[NextGlossary \\xe2\\x86\\x97\\xef\\xb8\\x8f](/docshttps://support.devrev.ai/devrev/article/ART-16784-glossary)\\n\\n#### On this page\\n\\n* [Dashboards](#dashboards)\\n* [Creating widgets](#creating-widgets)\\n* [Creating dashboards](#creating-dashboards)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer", "title": "Dashboards | Computer by DevRev | DevRev" }, { - "id": "ART-1955_KNOWLEDGE_NODE-38", - "text": "allows a user to create a dashboard\\n\\n Privileges: dashboard object ['CREATE']\\n* *Dashboard Owner:* A role that allows the creator to view, edit and delete a dashboard\\n\\n Privileges: dashboard object ['READ', 'UPDATE', 'DELETE']\\n* *Question Answer Interactor:* Contains privileges on question answers for members of the default group 'Members'.\\n\\n Privileges: question\\\\_answer object ['CREATE', 'READ', 'UPDATE']\\n* *Dataset Creator:* A role that allows a user to create a dataset\\n\\n", - "title": "Default privileges by group | Roles | Computer by DevRev | DevRev" + "id": "ART-15716_KNOWLEDGE_NODE-35", + "text": "filters\\n\\nYou can create a simple report by clicking on the Smart Icon at the top right corner and selecting \\'Create New report.\\' Create a dashboard and a widget by giving a name. Select the dimensions and measures and finalize the visualization of the widget and click on the preview widget to test it out.\\n\\nEach widget can be customized with filters, groupings, and visualizations (charts, tables, etc.)4. Create a dashboard for tracking ticket resolution time\\n\\nCreate a new dashboard in", + "title": "Support queries related playbook" }, { - "id": "ART-15687_KNOWLEDGE_NODE-31", - "text": "dashboards\\n-------------------\\n\\nDashboards organize and display multiple widgets.\\n\\n* **Access the dashboard builder**:\\n Similar to the widget builder, access the dashboard builder by modifying your DevRev workspace URL. For example, your\\\\_workspace\\\\_slug/dashboard-preview.\\n The builder provides a boilerplate code.\\n\\n ![]()\\n* **Link widgets to the dashboard**:\\n\\n + Scroll to the section that defines the widgets to be linked.\\n + Remove any existing widget IDs and paste the", - "title": "Dashboards | Computer by DevRev | DevRev" + "id": "ART-15691_KNOWLEDGE_NODE-30", + "text": "accessibility and user experience without the need to navigate to the Dev360 dashboard.\\n\\n **What's improved:**\\n\\n + Metric Trends and Roll-up Functionality: Enhanced metrics with trend data for better context and introduced roll-up functionality to view data across various levels of the knowledge graph.\\n + Monitoring and Alerting Setup: Set up comprehensive alerting and monitoring for widget errors and established usage metrics to track dashboard adoption effectively.\\n + Conversational", + "title": "May 2025 | Changelog | DevRev" }, { - "id": "ART-15687_KNOWLEDGE_NODE-33", - "text": "organization.\\n Define the reference ID for each tab before mapping widgets to them.\\n* **Create the dashboard**:\\n Once satisfied with the linked widgets and layout, click the **Create dashboard** button.\\n* **Accessing dashboards**:\\n\\nSearch in the **Explore** section:\\n\\n* Go to **Explore** in the left nav in DevRev.\\n* Search for your dashboard by its name.\\n* Click on the dashboard to access it.\\n* For easy access, you can pin your dashboard under a section of your", - "title": "Dashboards | Computer by DevRev | DevRev" + "id": "ART-17233_KNOWLEDGE_NODE-13", + "text": "and groups.\\n\\n##### \\n\\nOnly 1-way sync (from the external system to DevRev) is supported for authorization policy.\\n\\n### Object fields\\n\\nThe Authorization policy object supports the following fields:\\n\\n* `groups` (optional): A list of group identifiers from the external system to which this policy applies.\\n* `users` (optional): A list of user identifiers from the external system to which this policy applies.\\n* `targets`: Defines the DevRev record types the permissions apply to. It uses", + "title": "Permissions | DevRev | Docs" }, { - "id": "ART-15687_KNOWLEDGE_NODE-37", - "text": "Service](/legal/terms-of-service)\\n\\n[System Status](/status)\\n\\n\\xc2\\xa9 2025 DevRev Inc.\\n\\n![]()\\n\\n![]()\\n\\n![]()'", + "id": "ART-15687_KNOWLEDGE_NODE-31", + "text": "dashboards\\n-------------------\\n\\nDashboards organize and display multiple widgets.\\n\\n* **Access the dashboard builder**:\\n Similar to the widget builder, access the dashboard builder by modifying your DevRev workspace URL. For example, your\\\\_workspace\\\\_slug/dashboard-preview.\\n The builder provides a boilerplate code.\\n\\n ![]()\\n* **Link widgets to the dashboard**:\\n\\n + Scroll to the section that defines the widgets to be linked.\\n + Remove any existing widget IDs and paste the", "title": "Dashboards | Computer by DevRev | DevRev" } ] @@ -3868,54 +3868,54 @@ "query": "Escalation triggers for complex queries requiring human intervention, including probing questions and answer capturing", "retrievals": [ { - "id": "ART-1003_KNOWLEDGE_NODE-25", - "text": "* 100\\n \\n \\n\\n\\nSELECT (COUNT(*) * 100) / (SELECT COUNT(*) FROM tickets WHERE EXTRACT(@period FROM created_at) = EXTRACT(@period FROM CURRENT_DATE)) AS EscalationRate\\nFROM tickets\\nWHERE is_escalated = 1\\nAND EXTRACT(@period FROM created_at) = EXTRACT(@period FROM CURRENT_DATE);\\n-- NOTE: Replace @period with 'DAY', 'WEEK', 'MONTH', or 'QUARTER'.\\n\\n\\nAgent Utilization Rate\\n\\n\\n Definition\\n \\n The percentage of an engineer\\xe2\\x80\\x99s working hours spent on handling customer", - "title": "Understanding a Support Lead's Pain Points and KPIs" + "id": "ART-1987_KNOWLEDGE_NODE-27", + "text": "automatically replies to the user query before it gets assigned to support. It goes through the knowledge base (articles and QAs), generates an answer, and checks with the user if the answer is useful or not.\\n\\n* If Computer doesn't understand the query, it gives the user an option to rephrase the question and ask again.\\n* If the user marks the answer as useful, Computer asks the user if they have more questions, then resolves the conversation.\\n* If the user marks the answer as not useful,", + "title": "Turing AI agent | Computer for Support Teams | DevRev" }, { - "id": "ART-1974_KNOWLEDGE_NODE-30", - "text": "stage.\\n* *Needs response* (NR)\\n\\n The customer has responded; the customer experience engineer needs to review the item and respond or resolve the issue if the user requests or validates the fix. When a customer experience engineer responds the stage transitions to *waiting on user*.\\n\\n In certain cases it may be necessary to escalate the item internally where the conversation may depend on tickets, issues, or a response from someone other than themselves. In this case the stage", - "title": "Conversations | Computer for Support Teams | DevRev" + "id": "ART-13178_KNOWLEDGE_NODE-4", + "text": "traditional AI that simply responds to specific queries, agentic AI can make decisions, execute multiple steps, and complete tasks with minimal human intervention, allowing for greater operational efficiency.\\n\\nThink of agentic AI as a digital assistant that doesn\\xe2\\x80\\x99t just answer your questions but actively works to achieve outcomes for you. These autonomous agents can plan sequences of actions, use various tools and systems, adapt to new information, and persist until completing the", + "title": "Understanding Agentic AI: Capabilities and Implications for the Future" }, { - "id": "ART-1983_KNOWLEDGE_NODE-28", - "text": "creation of Q&As, Computer learns from customer conversations\\xc2\\xa0in which a human answers a question that it previously could not answer.\\n\\nWhen a customer initiates a conversation seeking answers, Computer springs into action, drawing upon published Q&As and knowledge articles to provide a solution. If Computer falls short or the user prefers a more personalized touch, they opt to connect with a customer experience engineer and resolve the conversation. Computer doesn't just move", - "title": "Questions & answers | Computer for Support Teams | DevRev" + "id": "ART-1829_KNOWLEDGE_NODE-331", + "text": "provided users.\\nResponse.\\n\\nThis endpoint returns an object.\\nquestion_answers list of objects\\nThe question-answers entries matching the request.\\nShow 12 properties\\ntotal integer\\nTotal number of question-answer items for the request.\\nnext_cursor string Optional\\nThe cursor used to iterate subsequent results in accordance to the sort order. If not set, then no later elements exist.\\nprev_cursor string Optional\\nThe cursor used to iterate preceding results in accordance to the sort order.", + "title": "Delete \u2014 DevRev | Docs" }, { - "id": "ART-1003_KNOWLEDGE_NODE-3", - "text": "transfer session (KT) with teams as new features go out?\\n\\nHow to resolve them:\\n\\n\\n Leverage intelligent deflection and AI offloads\\n \\n For example, don\\xe2\\x80\\x99t waste time making a human gather context, AI can now very accurately gather context and/or suggest articles.\\n \\n \\n Leverage load in terms of routing\\n \\n Normally routing is statically done or done in a round-robin manner, however, that doesn\\xe2\\x80\\x99t work when cases may be differing in complexity.\\n", - "title": "Understanding a Support Lead's Pain Points and KPIs" + "id": "ART-970_KNOWLEDGE_NODE-48", + "text": "of escalations and have that status automatically reflected in the ticket?\\n\\n\\nSales Representative:\\n\\n\\n What if you had full visibility and could easily monitor the challenges your customers face, receiving notifications when issues arise?\\n What if you could prioritize certain fixes based on deal size?\\n Imagine having immediate insight into matters that your customers care about or being promptly notified about new developments from the engineering team.\\n\\n\\nCustomer Success:\\n\\n\\n", + "title": "The Story" }, { - "id": "ART-1004_KNOWLEDGE_NODE-4", - "text": "these resources most productive, it is important to leverage automation to handle some of these lower-level activities; then, by the time it reaches the engineer, they are dealing with more complex pieces of the puzzle. Examples of this are KB deflection, Q&A flows (gather context), and system offloads (AI is great here).\\n\\nA great example is the monotony and frequency of \\xe2\\x80\\x9cWhat\\xe2\\x80\\x99s the status of this?\\xe2\\x80\\x9d inquiries. If people have access to the system, and the", - "title": "Understanding a Support Engineer's Pain Points and KPIs" + "id": "ART-4172_KNOWLEDGE_NODE-3", + "text": "enlist a balance between AI, Automation and Human approaches to meet these goals. Our AI Support Agent is designed to enhance the efficiency of customer service operations by interacting with users to resolve common queries to taking complex actions. The majority of the time (>50%), our AI Support Agent can address our customers\\xe2\\x80\\x99 needs; however, in the event an issue is not resolved, the agent seamlessly escalates the conversation by creating a ticket. This hybrid approach of", + "title": "DevRev Service Level Agreement" }, { - "id": "ART-1974_KNOWLEDGE_NODE-28", - "text": "transitions from *new* to *waiting on user*. When a customer responds back to support, the stage transitions to *needs response*.\\n\\n Towards the end of the conversation when the resolution is expected to be valid, the customer experience engineer asks the customer to acknowledge their concerns have been resolved. When the customer experience engineer asks this question the stage transitions to *waiting on user*, and if they validate it moves to *needs response* for the customer experience", - "title": "Conversations | Computer for Support Teams | DevRev" + "id": "ART-1637_KNOWLEDGE_NODE-331", + "text": "provided users.\\nResponse.\\n\\nThis endpoint returns an object.\\nquestion_answers list of objects\\nThe question-answers entries matching the request.\\nShow 12 properties\\ntotal integer\\nTotal number of question-answer items for the request.\\nnext_cursor string Optional\\nThe cursor used to iterate subsequent results in accordance to the sort order. If not set, then no later elements exist.\\nprev_cursor string Optional\\nThe cursor used to iterate preceding results in accordance to the sort order.", + "title": "Delete \u2014 DevRev | Docs" }, { - "id": "ART-1983_KNOWLEDGE_NODE-27", - "text": "**Q&As** and click **+ QA** in the top-right corner.\\n2. Fill in the **Question** and **Answer** fields, and select the relevant **Part**.\\n3. Set the appropriate **Status** and **Access level**. Set the status to *External* or *Public* if you want Computer to use it.\\n4. Confirm by clicking **Create**.\\n\\n![]()\\n\\nAutomatic creation\\n------------------\\n\\nYour customer conversations include a lot of knowledge, including some of the most accurate and current information. With the automated", - "title": "Questions & answers | Computer for Support Teams | DevRev" + "id": "ART-1771_KNOWLEDGE_NODE-7", + "text": "queries instantly, which frees up our human support agents to promptly address more complex issues.\\n\\n![]()\\n\\nAnkur ShresthaCo-Founder of Tough Trucks for Kids\\n\\nThe impact: Automation, scalability, measurable results\\n-------------------------------------------------------\\n\\n#### Powerful AI automation\\n\\nDevRev\\'s Conversational AI agent intelligently handles 85-90% of routine customer inquiries without human intervention, allowing the support team to focus on more complex issues that", + "title": "ToughTrucksForKids.com achieves dramatic efficiency gains and customer satisfaction through AI-powered support automation" }, { - "id": "ART-1987_KNOWLEDGE_NODE-27", - "text": "automatically replies to the user query before it gets assigned to support. It goes through the knowledge base (articles and QAs), generates an answer, and checks with the user if the answer is useful or not.\\n\\n* If Computer doesn't understand the query, it gives the user an option to rephrase the question and ask again.\\n* If the user marks the answer as useful, Computer asks the user if they have more questions, then resolves the conversation.\\n* If the user marks the answer as not useful,", - "title": "Turing AI agent | Computer for Support Teams | DevRev" + "id": "ART-1655_KNOWLEDGE_NODE-331", + "text": "provided users.\\nResponse.\\n\\nThis endpoint returns an object.\\nquestion_answers list of objects\\nThe question-answers entries matching the request.\\nShow 12 properties\\ntotal integer\\nTotal number of question-answer items for the request.\\nnext_cursor string Optional\\nThe cursor used to iterate subsequent results in accordance to the sort order. If not set, then no later elements exist.\\nprev_cursor string Optional\\nThe cursor used to iterate preceding results in accordance to the sort order.", + "title": "Update \u2014 DevRev | Docs" }, { - "id": "ART-1004_KNOWLEDGE_NODE-2", - "text": "troubleshooting.\\n\\nKPIs to track:\\n\\n\\n First Contact Resolution Rate\\n Knowledge Base Contributions\\n\\n\\nHigh-pressure environment\\n\\nDealing with people are angry or frustrated isn\\xe2\\x80\\x99t easy, even for the calmest person. In their role, they are the primary person triaging requets from customers and status updates from others in the organization; this can make this a very complex and tense role.\\n\\nAdditionally, most support organizations are very speed focused, so there is pressure", - "title": "Understanding a Support Engineer's Pain Points and KPIs" + "id": "ART-1636_KNOWLEDGE_NODE-331", + "text": "provided users.\\nResponse.\\n\\nThis endpoint returns an object.\\nquestion_answers list of objects\\nThe question-answers entries matching the request.\\nShow 12 properties\\ntotal integer\\nTotal number of question-answer items for the request.\\nnext_cursor string Optional\\nThe cursor used to iterate subsequent results in accordance to the sort order. If not set, then no later elements exist.\\nprev_cursor string Optional\\nThe cursor used to iterate preceding results in accordance to the sort order.", + "title": "Update \u2014 DevRev | Docs" }, { - "id": "ART-1003_KNOWLEDGE_NODE-13", - "text": "this is ensuring you have visibility helping foster communication between internal teams. If you see an increase in escalations, that could point to a lack of enablement for the team.\\n\\nKPIs to track:\\n\\n\\n Escalation Rate\\n Time to Escalation Resolution\\n\\n\\nStaff retention and development\\n\\nAs much as you must support your customers, it\\xe2\\x80\\x99s also imperative to attract, retain, and develop top talent. How can you help enable them? Are you helping them grow? If the staff gets burnt", - "title": "Understanding a Support Lead's Pain Points and KPIs" + "id": "ART-1709_KNOWLEDGE_NODE-12", + "text": "Significant cost overhead\\n\\n**After:**\\n\\n * AI-powered chatbot deflecting a huge portion of the basic incoming queries, in addition to email and live chat support\\n * Customer support scaled down to a team of two, handling complex queries that require human intervention.\\n * Cost-effective and optimized support operations, while maintaining customer satisfaction\\n\\n## Looking ahead\\n\\nPradeep believes the best customer service is when the customer does not have to reach out for support;", + "title": "ACC-qjz7ErXz - Mad Rewards: MadRewards uses DevRev\u2019s AI to modernize customer su" } ] }, @@ -3924,54 +3924,54 @@ "query": "API token vs Auth token for API calling DevRev", "retrievals": [ { - "id": "ART-1386_KNOWLEDGE_NODE-8", - "text": "[Documentation](https://docs.devrev.ai/)\\n * [API Reference](https://docs.devrev.ai/api/)\\n * [The Book of DevRev](https://thebook.devrev.ai/)\\n * [Partner Program](https://devrev.ai/partners)\\n * [Startup Program](https://devrev.ai/startups)\\n\\nCompany\\n\\n * [About](https://devrev.ai/about)\\n * [People](https://devrev.ai/people)\\n * [Careers](https://devrev.ai/careers)\\n * [Places](https://devrev.ai/places)\\n * [Invest](https://revd.devrev.ai/)\\n * [What Why", - "title": "Get Auth Token \u2014 DevRev | Docs" + "id": "ART-1472_KNOWLEDGE_NODE-17", + "text": "auth: githubPAT, \\n 4| });\\n[/code] \\n \\nTo facilitate authentication for DevRev API calls, a DevRev token is required. The initialization process for the DevRev SDK involves using the received endpoint.\\n\\n[code]\\n\\n 1| const devrevToken = event.context.secrets.service_account_token; \\n ---|--- \\n 2| const endpoint = event.execution_metadata.devrev_endpoint; \\n 3| const devrevSDK = client.setup({ \\n 4| endpoint: endpoint, \\n 5| token: devrevToken, \\n 6|", + "title": "Using a snap-in to perform an external action \u2014 DevRev | Docs" }, { - "id": "ART-1384_KNOWLEDGE_NODE-9", - "text": "Engine](https://devrev.ai/workflow-engine)\\n * [Turing AI](https://devrev.ai/turing-ai)\\n\\nResources\\n\\n * [Pricing](https://devrev.ai/pricing/support)\\n * [Blog](https://devrev.ai/blog)\\n * [Events](https://devrev.ai/events)\\n * [News](https://devrev.ai/blog?category=news)\\n * [Case Studies](https://devrev.ai/case-study)\\n * [Documentation](https://docs.devrev.ai/)\\n * [API Reference](https://docs.devrev.ai/api/)\\n * [The Book of DevRev](https://thebook.devrev.ai/)\\n * [Partner", - "title": "Create Auth Token \u2014 DevRev | Docs" + "id": "ART-1398_KNOWLEDGE_NODE-0", + "text": "b'[](/public/api-reference/auth-tokens/update)\\n\\nPublic\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources", + "title": "Update Auth Token \u2014 DevRev | Docs" }, { - "id": "ART-1388_KNOWLEDGE_NODE-9", - "text": "[Documentation](https://docs.devrev.ai/)\\n * [API Reference](https://docs.devrev.ai/api/)\\n * [The Book of DevRev](https://thebook.devrev.ai/)\\n * [Partner Program](https://devrev.ai/partners)\\n * [Startup Program](https://devrev.ai/startups)\\n\\nCompany\\n\\n * [About](https://devrev.ai/about)\\n * [People](https://devrev.ai/people)\\n * [Careers](https://devrev.ai/careers)\\n * [Places](https://devrev.ai/places)\\n * [Invest](https://revd.devrev.ai/)\\n * [What Why", - "title": "List Auth Tokens \u2014 DevRev | Docs" + "id": "ART-1276_KNOWLEDGE_NODE-13", + "text": "|\\n```\\n\\nTo facilitate authentication for DevRev API calls, a DevRev token is required.\\nThe initialization process for the DevRev SDK involves using the received endpoint.\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | const devrevToken = event.context.secrets.service_account_token; |\\n| 2 | const endpoint = event.execution_metadata.devrev_endpoint; |\\n| 3 | const devrevSDK = client.setup({ |\\n| 4 | endpoint: endpoint, |\\n| 5 | token: devrevToken, |\\n| 6 | }); |\\n```\\n\\nWith the SDKs successfully", + "title": "Using a snap-in to perform an external action | DevRev | Docs" }, { - "id": "ART-1386_KNOWLEDGE_NODE-11", - "text": "AI?](https://devrev.ai/what-is-conversational-ai)\\n\\n[](https://devrev.ai)\\n\\n[](https://www.linkedin.com/company/devrev)[](https://medium.com/devrev)[](https://twitter.com/devrev)\\n\\n[System Status](https://devrev.ai/status)\\n\\n\\xc2\\xa9 2025 DevRev Inc.\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a", - "title": "Get Auth Token \u2014 DevRev | Docs" + "id": "ART-1391_KNOWLEDGE_NODE-0", + "text": "b'[](/public/api-reference/auth-tokens/delete)\\n\\nPublic\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources", + "title": "Delete Auth Token \u2014 DevRev | Docs" }, { - "id": "ART-1196_KNOWLEDGE_NODE-6", - "text": "with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Get Auth Token | DevRev | Docs" + "id": "ART-12970_KNOWLEDGE_NODE-0", + "text": "b'[](/public/api-reference/auth-tokens/info-post)\\n\\nPublic\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources", + "title": "Info Auth Tokens (POST) \u2014 DevRev | Docs" }, { - "id": "ART-1394_KNOWLEDGE_NODE-9", - "text": "* [Blog](https://devrev.ai/blog)\\n * [Events](https://devrev.ai/events)\\n * [News](https://devrev.ai/blog?category=news)\\n * [Case Studies](https://devrev.ai/case-study)\\n * [Documentation](https://docs.devrev.ai/)\\n * [API Reference](https://docs.devrev.ai/api/)\\n * [The Book of DevRev](https://thebook.devrev.ai/)\\n * [Partner Program](https://devrev.ai/partners)\\n * [Startup Program](https://devrev.ai/startups)\\n\\nCompany\\n\\n * [About](https://devrev.ai/about)\\n *", - "title": "Get Auth Token (POST) \u2014 DevRev | Docs" + "id": "ART-1398_KNOWLEDGE_NODE-1", + "text": "__\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[API Reference](/public/api-reference/getting-started)[Auth Tokens](/public/api-reference/auth-tokens/create)\\n\\n# Update Auth Token\\n\\nPOST\\n\\nhttps://api.devrev.ai/auth-tokens.update\\n\\nTry it\\n\\nUpdates token metadata of a token issued under a given Dev organization.\\n\\n### Request\\n\\nThis endpoint expects an object.\\n\\ntoken_hintstringRequired`format:", + "title": "Update Auth Token \u2014 DevRev | Docs" }, { - "id": "ART-1384_KNOWLEDGE_NODE-4", - "text": "that identifies the token.\\n\\n### Response\\n\\nResponse for the request to create a new token corresponding to the requested token type.\\n\\naccess_tokenstring`format: \"text\"`\\n\\nThe issued JSON Web Token (JWT) corresponding to the requested token type.\\n\\nexpires_inlong\\n\\nThe validity lifetime of the token specified in seconds since Unix epoch.\\n\\ntoken_typeenum\\n\\nAllowed values: bearer\\n\\nThe type of the issued token. Bearer is the only supported token type.\\n\\nclient_idstringOptional`format:", - "title": "Create Auth Token \u2014 DevRev | Docs" + "id": "ART-1391_KNOWLEDGE_NODE-1", + "text": "__\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[API Reference](/public/api-reference/getting-started)[Auth Tokens](/public/api-reference/auth-tokens/create)\\n\\n# Delete Auth Token\\n\\nPOST\\n\\nhttps://api.devrev.ai/auth-tokens.delete\\n\\nTry it\\n\\nRevokes the token that matches the given token ID issued under the given Dev organization.\\n\\n### Request\\n\\nThis endpoint expects an", + "title": "Delete Auth Token \u2014 DevRev | Docs" }, { - "id": "ART-12969_KNOWLEDGE_NODE-6", - "text": "DevRev](https://thebook.devrev.ai/)\\n * [Partner Program](https://devrev.ai/partners)\\n * [Startup Program](https://devrev.ai/startups)\\n\\nCompany\\n\\n * [About](https://devrev.ai/about)\\n * [People](https://devrev.ai/people)\\n * [Careers](https://devrev.ai/careers)\\n * [Places](https://devrev.ai/places)\\n * [Invest](https://revd.devrev.ai/)\\n * [What Why How](https://devrev.ai/what-why-how)\\n\\nConnect\\n\\n * [Contact ](mailto:humansofdevrev@devrev.ai)\\n * [Instagram", - "title": "Info Auth Tokens \u2014 DevRev | Docs" + "id": "ART-1394_KNOWLEDGE_NODE-1", + "text": "__\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[API Reference](/public/api-reference/getting-started)[Auth Tokens](/public/api-reference/auth-tokens/create)\\n\\n# Get Auth Token (POST)\\n\\nPOST\\n\\nhttps://api.devrev.ai/auth-tokens.get\\n\\nTry it\\n\\nGets the token metadata corresponding to the given token ID under the given Dev organization.\\n\\n### Request\\n\\nThis endpoint expects an", + "title": "Get Auth Token (POST) \u2014 DevRev | Docs" }, { - "id": "ART-1384_KNOWLEDGE_NODE-13", - "text": "AI?](https://devrev.ai/what-is-conversational-ai)\\n\\n[](https://devrev.ai)\\n\\n[](https://www.linkedin.com/company/devrev)[](https://medium.com/devrev)[](https://twitter.com/devrev)\\n\\n[System Status](https://devrev.ai/status)\\n\\n\\xc2\\xa9 2025 DevRev Inc.\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a", - "title": "Create Auth Token \u2014 DevRev | Docs" + "id": "ART-1789_KNOWLEDGE_NODE-62", + "text": "2023-01-01T12:00:00Z \" , 11 \" requested_token_type \" : \" urn:devrev:params:oauth:token-type:aat \" , 12 \" scopes \" : [ 13 \" scopes \" 14 ] , 15 \" status \" : \" active \" , 16 \" subject \" : \" subject \" , 17 \" token_hint \" : \" token_hint \" 18 } 19 ] 20 }\\nAPI Reference auth-tokens List Post.\\n\\nPOST https:// api.devrev.ai / auth-tokens.list\\nGets the token metadata for all the tokens corresponding to the given token type issued for a given subject.\\nRequest.\\n\\nThis endpoint expects an", + "title": "List \u2014 DevRev | Docs" }, { - "id": "ART-1384_KNOWLEDGE_NODE-8", - "text": "it.](https://devrev.ai/blog/soc-compliance)\\n\\nProduct\\n\\n * [Build](https://devrev.ai/build)\\n * [Support](https://devrev.ai/support)\\n * [Search](https://devrev.ai/search)\\n * [PLuG - User Engagement](https://devrev.ai/plug-user-engagement)\\n * [PLuG - User Observability](https://devrev.ai/plug-observability)\\n * [Marketplace](https://marketplace.devrev.ai/)\\n\\nPlatform\\n\\n * [Airdrop](https://devrev.ai/airdrop)\\n * [Analytics](https://devrev.ai/analytics)\\n * [Workflow", - "title": "Create Auth Token \u2014 DevRev | Docs" + "id": "ART-15506_KNOWLEDGE_NODE-5", + "text": "token\\n------------------------\\n\\n##### \\n\\nFor security reasons, this API call must be made from the server side to prevent exposing your application access token (AAT).\\n\\nUsing the `rev_info` method, you can generate and recognize a user within the DevRev system by providing relevant user details. This method enables you to convey information systematically, ensuring alignment between your DevRev CRM and the structured data model. For information regarding terminologies, click", + "title": "Identify your users with Plug | DevRev | Docs" } ] }, @@ -3980,54 +3980,54 @@ "query": "SLA metrics dashboard filter not retaining selected data point showing all tickets instead of filtered tickets", "retrievals": [ { - "id": "ART-1986_KNOWLEDGE_NODE-44", - "text": "**Custom**: Filters all tickets that will breach by the selected date.\\n\\n![]()\\n\\nTroubleshooting: No SLA running on the ticket\\n---------------------------------------------\\n\\n### Issue\\n\\nYou have created and published an SLA, but no SLA is running on the ticket.\\n\\n### Solution\\n\\n1. Check the **SLA Name** attribute:\\n\\n\\xc2\\xa0\\xc2\\xa0 - Verify that the **SLA Name** attribute on the ticket is not empty.\\n\\n\\xc2\\xa0\\xc2\\xa0 - If the **SLA Name** is empty, it means the customer account", - "title": "Service-level agreement | Computer for Support Teams | DevRev" + "id": "ART-17231_KNOWLEDGE_NODE-153", + "text": "this object, which is used to track the SLA metrics. |\\n| `source_channel_v2` | reference\\xe2\\x86\\x92[#record:external\\\\_communication\\\\_channel] | | Source channel ID of the ticket |\\n| `stage` | enum | \\xe2\\x9c\\x94\\xef\\xb8\\x8e | Stage of the object |\\n| `tags` | reference (collection)\\xe2\\x86\\x92[#record:tag] | | Tags associated with the object |\\n| `target_close_date` | timestamp | | Timestamp when the work is expected to be complete |\\n| `title` | text | \\xe2\\x9c\\x94\\xef\\xb8\\x8e | Title", + "title": "Supported DevRev object types | DevRev | Docs" }, { - "id": "ART-1972_KNOWLEDGE_NODE-24", - "text": "[Product demos](/docs/DevRevU/demos)\\n\\n1. [Documentation](/docs)\\n3. [Computer for Support Teams](/docs/product/support)\\n[Support analytics](/docs/product/support-analytics)\\n[Ticket-SLA Analytics](/docs/dashboards/ticket-sla-analytics)\\n\\nTicket-SLA Analytics\\n====================\\n\\n* **SLA applied Tickets**\\n\\n Number of tickets where SLA is applied.\\n* **SLA compliance rate**\\n\\n Percentage of tickets where SLA was met out of all tickets where SLA is applied.\\n* **Active tickets with", - "title": "Ticket-SLA Analytics | Support analytics | Computer for Support Teams | DevRev" + "id": "ART-2633_KNOWLEDGE_NODE-3", + "text": "SLA tracker statuses the filter matches.\\n\\n### Response\\n\\nSuccess.\\n\\nsla_trackerslist of objects\\n\\nThe list of SLA trackers.\\n\\nShow 14 properties\\n\\nnext_cursorstringOptional`format: \"text\"`\\n\\nThe cursor used to iterate subsequent results in accordance to the sort order. If not set, then no later elements exist.\\n\\nprev_cursorstringOptional`format: \"text\"`\\n\\nThe cursor used to iterate preceding results in accordance to the sort order. If not set, then no prior elements exist.\\n\\n###", + "title": "List SLA Trackers \u2014 DevRev | Docs" }, { - "id": "ART-1972_KNOWLEDGE_NODE-15", - "text": "[Operational SLA Metrics](/docs/automations/operational-sla-metrics)\\n - [Custom field migration](/docs/automations/custom-field-migration)\\n - [Slack scraper](/docs/automations/slack-scraper)\\n - [Slack Broadcaster](/docs/automations/slack-broadcaster)\\n - [Reported by enricher](/docs/automations/ticket-reported-by)\\n - [Ticket approval workflow](/docs/automations/ticket-approval-workflow)\\n - [Ticket linked issues comment", - "title": "Ticket-SLA Analytics | Support analytics | Computer for Support Teams | DevRev" + "id": "ART-1823_KNOWLEDGE_NODE-461", + "text": "Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the", + "title": "Get \u2014 DevRev | Docs" }, { - "id": "ART-1972_KNOWLEDGE_NODE-4", - "text": "analytics](/docs/product/support-analytics)\\n\\n - [Conversation insights](/docs/dashboards/conversation-insights)\\n - [Conversation-SLA Analytics](/docs/dashboards/conversation-sla-analytics)\\n - [Conversation-Team Performance](/docs/dashboards/conversation-team-performance)\\n - [Ticket insights](/docs/dashboards/ticket-insights)\\n - [Ticket-SLA Analytics](/docs/dashboards/ticket-sla-analytics)\\n - [Ticket-Team Performance](/docs/dashboards/ticket-team-performance)\\n +", - "title": "Ticket-SLA Analytics | Support analytics | Computer for Support Teams | DevRev" + "id": "ART-17181_KNOWLEDGE_NODE-12", + "text": "rates.\\n\\nVisibility across the organization has improved through custom dashboards that provide real-time insights into SLA adherence and priorities. Leadership now has a unified operations view that enables data-driven decision making and proactive resource allocation.\\n\\nWith DevRev, our support team can build automations themselves without relying on product teams. A ticket lifecycle needs around 15 workflows, and now we can design and run them easily.\\n\\n![]()\\n\\nRajdeep Hazarika Rajdeep", + "title": "Skedulo reduced effort 30% to 5% and unlocked automation at scale" }, { - "id": "ART-1972_KNOWLEDGE_NODE-25", - "text": "SLA breaches**\\n\\n Number of Active Tickets that breached an SLA.\\n* **Tickets with SLA warning**\\n\\n Number of Active Tickets that about to breach an SLA.\\n* **Resolution compliance rate**\\n\\n Percentage of tickets where Resolution SLA was met out of all tickets where Resolution SLA is applied.\\n* **First Response compliance rate**\\n\\n Percentage of tickets where First Response SLA was met out of all tickets where First Response SLA is applied.\\n* **Next Response compliance rate**\\n\\n", - "title": "Ticket-SLA Analytics | Support analytics | Computer for Support Teams | DevRev" + "id": "ART-1651_KNOWLEDGE_NODE-468", + "text": "Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the", + "title": "Create \u2014 DevRev | Docs" }, { - "id": "ART-1986_KNOWLEDGE_NODE-45", - "text": "selected on the ticket is not assigned any SLA.\\n\\n\\xc2\\xa0\\xc2\\xa0 \\xc2\\xa0 - Action: Check your SLA assignment rules or add the customer as an exception to any of your SLAs.\\n\\n![]()\\n\\nThe **SLA Name** is never empty if your organization has a default SLA.\\n\\n1. Verify policy conditions:\\n\\n\\xc2\\xa0\\xc2\\xa0 - If the **SLA Name** is populated but you still see no SLA metrics running on the ticket, the ticket does not satisfy the conditions of any policy within the SLA.\\n\\n\\xc2\\xa0\\xc2\\xa0", - "title": "Service-level agreement | Computer for Support Teams | DevRev" + "id": "ART-4177_KNOWLEDGE_NODE-6", + "text": "through tickets](https://vimeo.com/1027660342)[![]()\\n\\nUnderstanding Support Analytics and SLAs\\n\\nExplore actionable insights and trends in customer experience metrics with our support analytics dashboard](https://vimeo.com/1027659562)[![]()\\n\\nInteractive walkthrough of SLA tracking\\n\\nLearn how to use DevRev track SLAs of tickets, to ensure that your customer's requests are always responded to in time.](https://devrev.navattic.com/bv10lxn)\\n\\nBuild Products, Not", + "title": "DevRev University - DevRev for Startups" }, { - "id": "ART-2017_KNOWLEDGE_NODE-4", - "text": "analytics](/docs/product/support-analytics)\\n\\n - [Conversation insights](/docs/dashboards/conversation-insights)\\n - [Conversation-SLA Analytics](/docs/dashboards/conversation-sla-analytics)\\n - [Conversation-Team Performance](/docs/dashboards/conversation-team-performance)\\n - [Ticket insights](/docs/dashboards/ticket-insights)\\n - [Ticket-SLA Analytics](/docs/dashboards/ticket-sla-analytics)\\n - [Ticket-Team Performance](/docs/dashboards/ticket-team-performance)\\n +", - "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" + "id": "ART-1829_KNOWLEDGE_NODE-476", + "text": "Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the", + "title": "Delete \u2014 DevRev | Docs" }, { - "id": "ART-1986_KNOWLEDGE_NODE-42", - "text": "Target\\n------------------------------------\\n\\nIn order to filter tickets based on SLA, you can use the **Next SLA Target** filter.\\nHere\\xe2\\x80\\x99s how the filter works:\\n\\n* **All**: Filters all tickets that currently have an SLA applied to them. It will not filter tickets that had an SLA applied in the past and have been completed.\\n* **Breached since**:\\n\\n + **Any**: Filters all tickets that breached SLA, irrespective of when they were breached.\\n + **Over an hour**: Filters all", + "id": "ART-1986_KNOWLEDGE_NODE-44", + "text": "**Custom**: Filters all tickets that will breach by the selected date.\\n\\n![]()\\n\\nTroubleshooting: No SLA running on the ticket\\n---------------------------------------------\\n\\n### Issue\\n\\nYou have created and published an SLA, but no SLA is running on the ticket.\\n\\n### Solution\\n\\n1. Check the **SLA Name** attribute:\\n\\n\\xc2\\xa0\\xc2\\xa0 - Verify that the **SLA Name** attribute on the ticket is not empty.\\n\\n\\xc2\\xa0\\xc2\\xa0 - If the **SLA Name** is empty, it means the customer account", "title": "Service-level agreement | Computer for Support Teams | DevRev" }, { - "id": "ART-1972_KNOWLEDGE_NODE-27", - "text": "by Channel**\\n\\n Number of tickets where SLA was breached for each source channel.\\n* **SLA breaches by Subtype**\\n\\n Number of tickets where SLA was breached for each ticket subtype.\\n* **SLA breaches by Owner**\\n\\n Number of Tickets with SLA breaches for ticket owners.\\n* **Avg CSAT by SLA status**\\n\\n Average CSAT rating of tickets w.r.t. their SLA status and severity.\\n* **Unassigned Tickets with SLA breaches per Customer**\\n\\n Number of Unassigned Tickets with SLA breaches for each", - "title": "Ticket-SLA Analytics | Support analytics | Computer for Support Teams | DevRev" + "id": "ART-1588_KNOWLEDGE_NODE-465", + "text": "Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the", + "title": "Get \u2014 DevRev | Docs" }, { - "id": "ART-2818_KNOWLEDGE_NODE-4", - "text": "insights](/docs/dashboards/conversation-insights)\\n - [Conversation-SLA Analytics](/docs/dashboards/conversation-sla-analytics)\\n - [Conversation-Team Performance](/docs/dashboards/conversation-team-performance)\\n - [Ticket insights](/docs/dashboards/ticket-insights)\\n - [Ticket-SLA Analytics](/docs/dashboards/ticket-sla-analytics)\\n - [Ticket-Team Performance](/docs/dashboards/ticket-team-performance)\\n + [Conversations](/docs/product/conversation)\\n\\n - [Conversation to", - "title": "Operational SLA Metrics | Automate | Snap-ins | DevRev" + "id": "ART-1971_KNOWLEDGE_NODE-24", + "text": "analytics](/docs/product/support-analytics)\\n\\nSupport analytics\\n=================\\n\\nThe support analytics is the gateway to actionable insights\\xc2\\xa0across a spectrum of customer\\xc2\\xa0experience metrics. Whether your focus is on blocker tickets, SLA compliance, or customer satisfaction, support analytics is the one-stop solution. Explore the depths of your data with dynamic filters and\\xc2\\xa0unravel\\xc2\\xa0more details using drill-through functionalities to\\xc2\\xa0understand\\xc2\\xa0the", + "title": "Support analytics | Computer for Support Teams | DevRev" } ] }, @@ -4036,54 +4036,54 @@ "query": "automatically change ticket stage when customer responds", "retrievals": [ { - "id": "ART-1979_KNOWLEDGE_NODE-43", - "text": "*awaiting customer response* until the customer responds.\\n\\n In certain scenarios, the customer experience engineer may be able to resolve the customer's concern. If that's the case, they would ask the customer if their resolution has resolved their concern and the stage would move to the *awaiting customer response*. Once the concern is resolved and the customer acknowledges the resolution, the stage may move to *resolved*. If the concern isn't resolved, the stage may change back to *work in", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1974_KNOWLEDGE_NODE-30", + "text": "stage.\\n* *Needs response* (NR)\\n\\n The customer has responded; the customer experience engineer needs to review the item and respond or resolve the issue if the user requests or validates the fix. When a customer experience engineer responds the stage transitions to *waiting on user*.\\n\\n In certain cases it may be necessary to escalate the item internally where the conversation may depend on tickets, issues, or a response from someone other than themselves. In this case the stage", + "title": "Conversations | Computer for Support Teams | DevRev" }, { - "id": "ART-1981_KNOWLEDGE_NODE-28", - "text": "new conversation. Respond within 1 hour to new messages on existing conversations. Change the stage of conversation to *awaiting customer response* as soon as you have responded.\\n* In **Updates**, filter by **Type** > **Mentioned**. Respond to those updates first.\\n* Create a ticket if you aren't able to resolve the conversation in 20 minutes. As soon as the ticket is opened, move it to the *escalate* stage. The owner of the ticket is the owner of the customer org where the conversation", - "title": "Support best practices | Computer for Support Teams | DevRev" + "id": "ART-2007_KNOWLEDGE_NODE-5", + "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", + "title": "Automate opportunities | Automate | Snap-ins | DevRev" }, { - "id": "ART-1953_KNOWLEDGE_NODE-31", - "text": "stage of a ticket/conversation\\n----------------------------------------\\n\\n* **Trigger**: When there\\'s a change of stage in a ticket or conversation.\\n* **Action**: The system sends out a notification detailing the Ticket/Conversation number and stage change.\\n* **Sender**: {Company\\\\_Name} [support@yourdomain.com](mailto:support@yourdomain.com)\\n* **Subject**:\\n + For ticket: \"[{Company\\\\_Name}] Update on TKT-XXX - Ticket Title\"\"\"\\n + For conversations:", - "title": "Customer email notifications | Computer by DevRev | DevRev" + "id": "ART-16192_KNOWLEDGE_NODE-5", + "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", + "title": "ServiceNow KB AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-2009_KNOWLEDGE_NODE-28", - "text": "ticket's stage when linked issue is linked or unlinked.\\n* Close pending tickets if they have remained in the *Awaiting customer response* stage for longer than x days.\\n* Update ticket's stage to waiting on user when user reverts on new conversation.\\n* Update ticket's stage to *Accepted* and notify owner and customers when an enhancement in ideation stage is linked.\\n* Update a spam conversation's stage to *Suspended*.\\n* Update a spam ticket's stage to", - "title": "Convergence | Automate | Snap-ins | DevRev" + "id": "ART-1979_KNOWLEDGE_NODE-45", + "text": "a user. In certain cases where the ticket depends on some fix (issues) the stage may go from *in development* to *awaiting customer response* when the corresponding issues have been resolved and the fix needs to be validated with the user.\\n\\n In certain cases, the customer experience engineer may be able to solve directly (without any required issues) which may change the stage from *work in progress* to *awaiting customer response* to validate they have solved the problem. If either has", + "title": "Tickets | Computer for Support Teams | DevRev" }, { - "id": "ART-1981_KNOWLEDGE_NODE-27", - "text": "Periodically group the **Inbox** by stage and make sure there conversations only in *hold* or *awaiting customer response* stages.\\n* Let the customer know when a ticket linked to a conversation is closed and request their verification.\\n* Once all tickets of a conversation are resolved and the customer is satisfied, resolve the conversation.\\n* Move new tickets to the *awaiting product assist* stage.\\n\\nRespond to conversations\\n------------------------\\n\\n* Respond as fast as possible to any", - "title": "Support best practices | Computer for Support Teams | DevRev" + "id": "ART-16082_KNOWLEDGE_NODE-5", + "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", + "title": "Gmail AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-1974_KNOWLEDGE_NODE-30", - "text": "stage.\\n* *Needs response* (NR)\\n\\n The customer has responded; the customer experience engineer needs to review the item and respond or resolve the issue if the user requests or validates the fix. When a customer experience engineer responds the stage transitions to *waiting on user*.\\n\\n In certain cases it may be necessary to escalate the item internally where the conversation may depend on tickets, issues, or a response from someone other than themselves. In this case the stage", - "title": "Conversations | Computer for Support Teams | DevRev" + "id": "ART-1979_KNOWLEDGE_NODE-47", + "text": "validate the fix with the user and then to *resolved*. If the user wants to cancel the ticket then the stage moves to *canceled*.\\n\\n**Closed**\\n\\n* *Canceled* (C)\\n\\n The ticket is determined to be invalid either by the user or the customer experience engineer. In certain scenarios, a ticket may have been created by accident and may be canceled by the creator. In other scenarios, garbage tickets may be created through automation or because of spam. Automation or the customer experience", + "title": "Tickets | Computer for Support Teams | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-45", - "text": "a user. In certain cases where the ticket depends on some fix (issues) the stage may go from *in development* to *awaiting customer response* when the corresponding issues have been resolved and the fix needs to be validated with the user.\\n\\n In certain cases, the customer experience engineer may be able to solve directly (without any required issues) which may change the stage from *work in progress* to *awaiting customer response* to validate they have solved the problem. If either has", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-4271_KNOWLEDGE_NODE-25", + "text": "is being replaced with a new **Convert to Ticket** feature. This change provides a more seamless transition from conversation to ticket management.\\n\\n## How Conversation conversion works\\n\\nWhen you convert a conversation to a ticket, the following happens automatically:\\n\\n * The original conversation is moved to _Archived_ stage and cannot be reopened.\\n * A new ticket is created with: \\n * All internal discussions and customer messages copied from the conversation.\\n * Preserved", + "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" }, { - "id": "ART-2012_KNOWLEDGE_NODE-28", - "text": "say \\xe2\\x80\\x9cI would like to add a terminal stage on my tickets\\xe2\\x80\\x9d and we will get it done.\\n\\n * If no terminal stage is set, tickets will reopen on new comments from customers if **Reopen Closed Tickets on customer message** is enabled in the [convergence snap-in](./converge). The tickets move to the _In Progress_ state by default.\\n\\n * If you connected your support email address with DevRev, it is recommended that you enable the **Allow automations to send email** in your", - "title": "Follow-up ticket | Automate | Snap-ins | DevRev" + "id": "ART-2053_KNOWLEDGE_NODE-5", + "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", + "title": "Jira Software AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-42", - "text": "it's automatically put into the *queued* stage, which indicates that it needs to be picked up by a customer experience engineer.\\n\\n**In-progress**\\n\\n* *Work in progress* (WIP)\\n\\n Work on the concern reported by the user has begun. When a customer experience engineer starts work on a ticket, the ticket's stage changes to *work in progress*. When they require more information, they may ask the customer for additional detail (such as logs or context), in which case the stage would change to", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1645_KNOWLEDGE_NODE-45", + "text": ">| --header \\'Content-Type: application/json\\' \\\\ \\n >| --header \\'Authorization: Bearer \\' \\\\ \\n >| --data \\'{ \\n >| \"name\": \"Needs RCA\", \\n >| \"state\": \"closed\", \\n >| \"ordinal\": 1000 \\n >| }\\'\\n[/code] \\n \\nA stage can be referenced by any object type. For example, both _issue_ and _ticket_ object types can use the _in_development_ stage. It\\xe2\\x80\\x99s incorrect to say that the stage is bound to an _issue_ or _ticket_.\\n\\n### Create stage", + "title": "Object customization (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-2016_KNOWLEDGE_NODE-28", - "text": "depending on the message given by a discussion participant.\\n\\n Enter /StageConfig in the snap-in **Discussions** tab and select the values from the dropdown for the stage transition whenever a message is given by a discussion participant.\\n4. Go to **Issues** or **Roadmap** and make updates. The tickets that were linked to the issue or enhancement reflect the changes you configured in the CSV file, notifying the ticket owner.\\n\\n[PreviousSend customized", - "title": "StageFlow automator | Automate | Snap-ins | DevRev" + "id": "ART-2011_KNOWLEDGE_NODE-5", + "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", + "title": "CSAT on ticket | Automate | Snap-ins | DevRev" } ] }, @@ -4092,24 +4092,19 @@ "query": "Article 471 not viewable from internal and external links", "retrievals": [ { - "id": "ART-15414_KNOWLEDGE_NODE-10", - "text": "elements exist.\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/links/list)[#### Replace Links\\n\\nNext](/api-reference/links/replace)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "List Links (POST) | DevRev | Docs" + "id": "ART-1985_KNOWLEDGE_NODE-39", + "text": "customers, the article should be visible to customers. If the **Visible to** option is set to **Verified Customers**, only signed-in customers are able to view the article.\\n* When sharing an external link with customers, the article status should be *Published*. If it is in *Draft* mode, they won\\xe2\\x80\\x99t be able to view it.\\n\\nArticle Formatting\\n------------------\\n\\nWhen you\\xe2\\x80\\x99re creating a new article or editing an existing article, formatting options are displayed. While", + "title": "Articles | Knowledge Base | Computer for Support Teams | DevRev" }, { "id": "ART-1985_KNOWLEDGE_NODE-35", - "text": "and no longer required can be removed by archiving them.\\n\\nVisibility settings\\n-------------------\\n\\n### Article visibility\\n\\nTo control who can view the articles, open the **Visible to** menu. This displays all external groups that the article can be shared with. By default, the following groups are available:\\n\\n* **Customers**: Allows public access without verification.\\n\\n ![]()\\n\\n Public access requires the public portal to be enabled. If the public portal is not enabled, only", + "text": "and no longer required can be removed by archiving them.\\n\\nVisibility settings\\n-------------------\\n\\n### Article visibility\\n\\nTo control who can view the articles, open the **Visible to** menu. This displays all external groups that the article can be shared with. By default, the following groups are available:\\n\\n* **Customers**: Allows public access without verification.\\n\\n ![]()\\n\\n Public access requires the public portal to be enabled. If the public portal is not enabled, only", "title": "Articles | Knowledge Base | Computer for Support Teams | DevRev" }, { - "id": "ART-15402_KNOWLEDGE_NODE-9", - "text": "elements exist.\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/links/get-post)[#### List Links (POST)\\n\\nNext](/api-reference/links/list-post)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "List Links | DevRev | Docs" - }, - { - "id": "ART-15404_KNOWLEDGE_NODE-7", - "text": "Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/links/list-post)[#### Count Meetings\\n\\nNext](/api-reference/meetings/count)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Replace Links | DevRev | Docs" + "id": "ART-1982_KNOWLEDGE_NODE-27", + "text": "visibility settings. Here are a few scenarios:\\n\\n* If a collection is not **Public**, none of the articles within it will be visible to customers, even if the articles are set to be **Visible to Customers**.\\n* If a collection is **Public**, only the articles set to be **Visible to Customers** will be publicly accessible. If an article within the public collection is configured with visibility for **Verified Customers**, non-signed-in customers won\\xe2\\x80\\x99t be able to view it.\\n* If a", + "title": "Collections | Knowledge Base | Computer for Support Teams | DevRev" }, { "id": "ART-1985_KNOWLEDGE_NODE-38", @@ -4117,9 +4112,9 @@ "title": "Articles | Knowledge Base | Computer for Support Teams | DevRev" }, { - "id": "ART-1985_KNOWLEDGE_NODE-39", - "text": "customers, the article should be visible to customers. If the **Visible to** option is set to **Verified Customers**, only signed-in customers are able to view the article.\\n* When sharing an external link with customers, the article status should be *Published*. If it is in *Draft* mode, they won\\xe2\\x80\\x99t be able to view it.\\n\\nArticle Formatting\\n------------------\\n\\nWhen you\\xe2\\x80\\x99re creating a new article or editing an existing article, formatting options are displayed. While", - "title": "Articles | Knowledge Base | Computer for Support Teams | DevRev" + "id": "ART-1783_KNOWLEDGE_NODE-40", + "text": "article\\'s ID.\\naccess_level enum Optional\\nAllowed values: external internal private public restricted\\napplies_to_parts object Optional\\nShow property\\nartifacts object Optional\\nShow property\\nauthored_by object Optional\\nShow property\\ncustom_fields map from strings to any Optional\\nApplication-defined custom fields.\\ncustom_schema_spec object Optional\\nRequested custom schemas described abstractly. Every provided schema\\'s custom field must be specified, otherwise a bad request error is", + "title": "Locate \u2014 DevRev | Docs" }, { "id": "ART-4070_KNOWLEDGE_NODE-1", @@ -4127,19 +4122,24 @@ "title": "Update Article \u2014 DevRev | Docs" }, { - "id": "ART-15297_KNOWLEDGE_NODE-9", - "text": "article\\'s ID.\\n\\naccess\\\\_levelenumOptional\\n\\nAllowed values:externalinternalprivatepublicrestricted\\n\\naliasesobjectOptional\\n\\nShow 1 properties\\n\\napplies\\\\_to\\\\_partsobjectOptional\\n\\nShow 1 properties\\n\\nartifactsobjectOptional\\n\\nShow 1 properties\\n\\nauthored\\\\_byobjectOptional\\n\\nShow 1 properties\\n\\nbrandstring or nullOptional`format: \"id\"`\\n\\nThe updated brand of the article.\\n\\ncontent\\\\_blocksobjectOptional\\n\\nShow 1 properties\\n\\ncontent\\\\_formatenumOptional\\n\\nContent format of", - "title": "Update Article | DevRev | Docs" + "id": "ART-1834_KNOWLEDGE_NODE-40", + "text": "article\\'s ID.\\naccess_level enum Optional\\nAllowed values: external internal private public restricted\\napplies_to_parts object Optional\\nShow property\\nartifacts object Optional\\nShow property\\nauthored_by object Optional\\nShow property\\ncustom_fields map from strings to any Optional\\nApplication-defined custom fields.\\ncustom_schema_spec object Optional\\nRequested custom schemas described abstractly. Every provided schema\\'s custom field must be specified, otherwise a bad request error is", + "title": "Delete \u2014 DevRev | Docs" + }, + { + "id": "ART-1792_KNOWLEDGE_NODE-40", + "text": "article\\'s ID.\\naccess_level enum Optional\\nAllowed values: external internal private public restricted\\napplies_to_parts object Optional\\nShow property\\nartifacts object Optional\\nShow property\\nauthored_by object Optional\\nShow property\\ncustom_fields map from strings to any Optional\\nApplication-defined custom fields.\\ncustom_schema_spec object Optional\\nRequested custom schemas described abstractly. Every provided schema\\'s custom field must be specified, otherwise a bad request error is", + "title": "Update \u2014 DevRev | Docs" }, { - "id": "ART-15410_KNOWLEDGE_NODE-2", - "text": "link.\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n404\\n\\nNot Found Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/links/create)[#### Get Link\\n\\nNext](/api-reference/links/get)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Delete Link | DevRev | Docs" + "id": "ART-4070_KNOWLEDGE_NODE-5", + "text": "article object, or unchanged if not provided.\\n\\nurlstringOptional`format: \"text\"`\\n\\nUpdates the URL of the external article.\\n\\n### Response\\n\\nSuccess.\\n\\narticleobject\\n\\nShow 19 properties\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n404\\n\\nNot Found Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nPOST\\n\\n/articles.update\\n\\n[code]\\n\\n $| curl -X POST", + "title": "Update Article \u2014 DevRev | Docs" }, { - "id": "ART-2141_KNOWLEDGE_NODE-9", - "text": "Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/beta/api-reference/customization/custom-link-type-list)[#### Update Link Types Custom\\n\\nNext](/beta/api-reference/customization/custom-link-type-update)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "List Link Types Custom (POST) | DevRev | Docs" + "id": "ART-1822_KNOWLEDGE_NODE-40", + "text": "article\\'s ID.\\naccess_level enum Optional\\nAllowed values: external internal private public restricted\\napplies_to_parts object Optional\\nShow property\\nartifacts object Optional\\nShow property\\nauthored_by object Optional\\nShow property\\ncustom_fields map from strings to any Optional\\nApplication-defined custom fields.\\ncustom_schema_spec object Optional\\nRequested custom schemas described abstractly. Every provided schema\\'s custom field must be specified, otherwise a bad request error is", + "title": "Create \u2014 DevRev | Docs" } ] }, @@ -4148,28 +4148,18 @@ "query": "change Stage state in stage library", "retrievals": [ { - "id": "ART-3894_KNOWLEDGE_NODE-4", - "text": "14| \"transitions\": [ \\n 15| { \\n 16| \"target_stage\": { \\n 17| \"id\": \"foo\", \\n 18| \"display_id\": \"foo\", \\n 19| \"name\": \"foo\" \\n 20| } \\n 21| } \\n 22| ] \\n 23| } \\n 24| ], \\n 25| \"created_by\": { \\n 26| \"display_id\": \"foo\", \\n 27| \"id\": \"foo\", \\n 28| \"display_name\": \"foo\", \\n", - "title": "List Stage Diagrams (Beta) \u2014 DevRev | Docs" - }, - { - "id": "ART-15345_KNOWLEDGE_NODE-1", - "text": "\" |\\n```\\n\\n[Try it](/api-reference/customization/stage-diagrams-list?explorer=true)\\n\\n200Retrieved\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"result\": [ |\\n| 3 | { |\\n| 4 | \"id\": \"string\", |\\n| 5 | \"stages\": [ |\\n| 6 | { |\\n| 7 | \"is_deprecated\": true, |\\n| 8 | \"is_start\": true, |\\n| 9 | \"stage\": { |\\n| 10 | \"id\": \"string\", |\\n| 11 | \"display_id\": \"string\", |\\n| 12 | \"name\": \"string\" |\\n| 13 | }, |\\n| 14 | \"transitions\": [ |\\n| 15 | { |\\n| 16 | \"target_stage\": { |\\n| 17 | \"id\":", - "title": "List Stage Diagrams | DevRev | Docs" + "id": "ART-15344_KNOWLEDGE_NODE-1", + "text": "|\\n```\\n\\n[Try it](/api-reference/customization/stage-diagrams-get?explorer=true)\\n\\n200Retrieved\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"stage_diagram\": { |\\n| 3 | \"id\": \"string\", |\\n| 4 | \"stages\": [ |\\n| 5 | { |\\n| 6 | \"is_deprecated\": true, |\\n| 7 | \"is_start\": true, |\\n| 8 | \"stage\": { |\\n| 9 | \"id\": \"string\", |\\n| 10 | \"display_id\": \"string\", |\\n| 11 | \"name\": \"string\" |\\n| 12 | }, |\\n| 13 | \"transitions\": [ |\\n| 14 | { |\\n| 15 | \"target_stage\": { |\\n| 16 | \"id\": \"string\", |\\n|", + "title": "Get Stage Diagram | DevRev | Docs" }, { - "id": "ART-15354_KNOWLEDGE_NODE-2", - "text": "\"name\": \"string\" |\\n| 13 | }, |\\n| 14 | \"transitions\": [ |\\n| 15 | { |\\n| 16 | \"target_stage\": { |\\n| 17 | \"id\": \"string\", |\\n| 18 | \"display_id\": \"string\", |\\n| 19 | \"name\": \"string\" |\\n| 20 | } |\\n| 21 | } |\\n| 22 | ] |\\n| 23 | } |\\n| 24 | ], |\\n| 25 | \"created_by\": { |\\n| 26 | \"display_id\": \"string\", |\\n| 27 | \"id\": \"string\", |\\n| 28 | \"display_name\": \"string\", |\\n| 29 | \"display_picture\": { |\\n| 30 | \"display_id\": \"string\", |\\n| 31 | \"id\": \"string\", |\\n| 32 | \"file\": { |\\n| 33 | \"type\":", - "title": "List Stage Diagrams (POST) | DevRev | Docs" + "id": "ART-1456_KNOWLEDGE_NODE-13", + "text": "\"state\": \"active\" \\n 74| } \\n 75| ], \\n 76| \"stage\": { \\n 77| \"name\": \"foo\" \\n 78| }, \\n 79| \"tags\": [ \\n 80| { \\n 81| \"tag\": { \\n 82| \"display_id\": \"foo\", \\n 83| \"id\": \"foo\", \\n 84| \"name\": \"foo\" \\n 85| }, \\n 86| \"value\": \"foo\" \\n 87| } \\n 88| ], \\n 89| \"target_close_date\":", + "title": "List Works (POST) \u2014 DevRev | Docs" }, { - "id": "ART-3893_KNOWLEDGE_NODE-4", - "text": "\\n 5| { \\n 6| \"is_deprecated\": true, \\n 7| \"is_start\": true, \\n 8| \"stage\": { \\n 9| \"id\": \"foo\", \\n 10| \"display_id\": \"foo\", \\n 11| \"name\": \"foo\" \\n 12| }, \\n 13| \"transitions\": [ \\n 14| { \\n 15| \"target_stage\": { \\n 16| \"id\": \"foo\", \\n 17| \"display_id\": \"foo\", \\n 18| \"name\": \"foo\" \\n 19|", - "title": "Get Stage Diagram (Beta) \u2014 DevRev | Docs" - }, - { - "id": "ART-15350_KNOWLEDGE_NODE-2", - "text": "\"is_deprecated\": true, |\\n| 7 | \"is_start\": true, |\\n| 8 | \"stage\": { |\\n| 9 | \"id\": \"string\", |\\n| 10 | \"display_id\": \"string\", |\\n| 11 | \"name\": \"string\" |\\n| 12 | }, |\\n| 13 | \"transitions\": [ |\\n| 14 | { |\\n| 15 | \"target_stage\": { |\\n| 16 | \"id\": \"string\", |\\n| 17 | \"display_id\": \"string\", |\\n| 18 | \"name\": \"string\" |\\n| 19 | } |\\n| 20 | } |\\n| 21 | ] |\\n| 22 | } |\\n| 23 | ], |\\n| 24 | \"created_by\": { |\\n| 25 | \"display_id\": \"string\", |\\n| 26 | \"id\": \"string\", |\\n| 27 | \"display_name\":", + "id": "ART-15350_KNOWLEDGE_NODE-6", + "text": "defining\\nstage transitions.\\n\\nstageslist of objectsRequired\\n\\nList of stages in the diagram.\\n\\nShow 4 properties\\n\\nis\\\\_custom\\\\_leaf\\\\_typebooleanOptional\\n\\nWhether the leaf type corresponds to a custom object.\\n\\nis\\\\_defaultbooleanOptional\\n\\nWhether this is a default stage diagram.\\n\\n### Response\\n\\nSuccess.\\n\\nstage\\\\_diagramobject\\n\\nShow 11 properties\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n429\\n\\nToo Many Requests", "title": "Create Stage Diagram | DevRev | Docs" }, { @@ -4178,24 +4168,34 @@ "title": "Update Stages Custom | DevRev | Docs" }, { - "id": "ART-3895_KNOWLEDGE_NODE-3", - "text": "\"is_start\": true, \\n 8| \"stage\": { \\n 9| \"id\": \"foo\", \\n 10| \"display_id\": \"foo\", \\n 11| \"name\": \"foo\" \\n 12| }, \\n 13| \"transitions\": [ \\n 14| { \\n 15| \"target_stage\": { \\n 16| \"id\": \"foo\", \\n 17| \"display_id\": \"foo\", \\n 18| \"name\": \"foo\" \\n 19| } \\n 20| } \\n 21| ] \\n 22| } \\n", - "title": "Update Stage Diagram (Beta) \u2014 DevRev | Docs" + "id": "ART-15345_KNOWLEDGE_NODE-1", + "text": "\" |\\n```\\n\\n[Try it](/api-reference/customization/stage-diagrams-list?explorer=true)\\n\\n200Retrieved\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"result\": [ |\\n| 3 | { |\\n| 4 | \"id\": \"string\", |\\n| 5 | \"stages\": [ |\\n| 6 | { |\\n| 7 | \"is_deprecated\": true, |\\n| 8 | \"is_start\": true, |\\n| 9 | \"stage\": { |\\n| 10 | \"id\": \"string\", |\\n| 11 | \"display_id\": \"string\", |\\n| 12 | \"name\": \"string\" |\\n| 13 | }, |\\n| 14 | \"transitions\": [ |\\n| 15 | { |\\n| 16 | \"target_stage\": { |\\n| 17 | \"id\":", + "title": "List Stage Diagrams | DevRev | Docs" + }, + { + "id": "ART-1592_KNOWLEDGE_NODE-231", + "text": "Optional\\nThe state ID.\\nResponse.\\n\\nThis endpoint returns an object.\\ncustom_stage object\\nShow 9 properties\\nAPI Reference customization Custom States Create.\\n\\nPOST https:// api.devrev.ai / states.custom.create\\nCreates a custom state.\\nRequest.\\n\\nThis endpoint expects an object.\\nname string Required\\nThe name of the custom state.\\nordinal integer Required\\nOrdinal of the custom state used to identify system states.\\nis_final boolean Optional\\nWhether this is a final", + "title": "Update \u2014 DevRev | Docs" + }, + { + "id": "ART-1834_KNOWLEDGE_NODE-227", + "text": "object\\nShow 9 properties\\nAPI Reference customization Custom Stages List.\\n\\nGET https:// api.devrev.ai / stages.custom.list\\nLists custom stages.\\nQuery parameters.\\n\\ncursor string Optional\\nThe cursor to resume iteration from, otherwise if not provided, then iteration starts from the beginning.\\nlimit integer Optional\\nThe maximum number of items.\\nname string Optional\\nThe list of stage names.\\nordinal integer Optional\\nThe list of stage ordinals.\\nsort_by string Optional\\nThe list of", + "title": "Delete \u2014 DevRev | Docs" }, { - "id": "ART-3898_KNOWLEDGE_NODE-8", - "text": "}\\n[/code] \\n \\n[Update Stage DiagramUp Next](/beta/api-reference/customization/stage-diagrams-update)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n[Enterprise grade security to protect customer dataLearn more about it.](https://devrev.ai/blog/soc-compliance)\\n\\nProduct\\n\\n * [Build](https://devrev.ai/build)\\n * [Support](https://devrev.ai/support)\\n * [Search](https://devrev.ai/search)\\n * [PLuG - User", - "title": "List Stage Diagrams (POST) (Beta) \u2014 DevRev | Docs" + "id": "ART-1828_KNOWLEDGE_NODE-231", + "text": "Optional\\nThe state ID.\\nResponse.\\n\\nThis endpoint returns an object.\\ncustom_stage object\\nShow 9 properties\\nAPI Reference customization Custom States Create.\\n\\nPOST https:// api.devrev.ai / states.custom.create\\nCreates a custom state.\\nRequest.\\n\\nThis endpoint expects an object.\\nname string Required\\nThe name of the custom state.\\nordinal integer Required\\nOrdinal of the custom state used to identify system states.\\nis_final boolean Optional\\nWhether this is a final", + "title": "List Post \u2014 DevRev | Docs" }, { - "id": "ART-3894_KNOWLEDGE_NODE-14", - "text": "__\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources __\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n'", - "title": "List Stage Diagrams (Beta) \u2014 DevRev | Docs" + "id": "ART-1824_KNOWLEDGE_NODE-227", + "text": "object\\nShow 9 properties\\nAPI Reference customization Custom Stages List.\\n\\nGET https:// api.devrev.ai / stages.custom.list\\nLists custom stages.\\nQuery parameters.\\n\\ncursor string Optional\\nThe cursor to resume iteration from, otherwise if not provided, then iteration starts from the beginning.\\nlimit integer Optional\\nThe maximum number of items.\\nname string Optional\\nThe list of stage names.\\nordinal integer Optional\\nThe list of stage ordinals.\\nsort_by string Optional\\nThe list of", + "title": "Delete \u2014 DevRev | Docs" }, { - "id": "ART-3898_KNOWLEDGE_NODE-4", - "text": "11| \"display_id\": \"foo\", \\n 12| \"name\": \"foo\" \\n 13| }, \\n 14| \"transitions\": [ \\n 15| { \\n 16| \"target_stage\": { \\n 17| \"id\": \"foo\", \\n 18| \"display_id\": \"foo\", \\n 19| \"name\": \"foo\" \\n 20| } \\n 21| } \\n 22| ] \\n 23| } \\n 24| ], \\n 25| \"created_by\": { \\n 26|", - "title": "List Stage Diagrams (POST) (Beta) \u2014 DevRev | Docs" + "id": "ART-1832_KNOWLEDGE_NODE-231", + "text": "Optional\\nThe state ID.\\nResponse.\\n\\nThis endpoint returns an object.\\ncustom_stage object\\nShow 9 properties\\nAPI Reference customization Custom States Create.\\n\\nPOST https:// api.devrev.ai / states.custom.create\\nCreates a custom state.\\nRequest.\\n\\nThis endpoint expects an object.\\nname string Required\\nThe name of the custom state.\\nordinal integer Required\\nOrdinal of the custom state used to identify system states.\\nis_final boolean Optional\\nWhether this is a final", + "title": "Create \u2014 DevRev | Docs" } ] }, @@ -4204,54 +4204,54 @@ "query": "Google Calendar Snap-in connection setup authentication issue", "retrievals": [ { - "id": "ART-16804_KNOWLEDGE_NODE-27", - "text": "already exists, you can reuse it; otherwise, click **Add\\n Connection**. \\n In the connection modal, click **Sign in with snap-in** (with the Google\\n Calendar icon), enter a connection name, and proceed to **authorize via your\\n Google account using OAuth**. \\n Provide the necessary permissions and click **Continue** to complete the\\n setup.\\n5. Once the connection is established, select the calendars you want to import\\n and specify the DevRev part that should be used for any", - "title": "Google Calendar AirSync | Integrate | Snap-ins | DevRev" + "id": "ART-4054_KNOWLEDGE_NODE-2", + "text": "will not be enabled by default for the organization and the user will need to explicitly enable this. Only 5 authentication connections can be created by an organization.\\n\\n### Request\\n\\nThis endpoint expects an object.\\n\\ngoogle_apps\\n\\nObject encapsulating the configuration parameters for a Google Apps authentication connection.\\n\\nShow 6 properties\\n\\nOR\\n\\noidc\\n\\nObject encapsulating the configuration parameters for an OIDC authentication connection.\\n\\nShow 6", + "title": "Create Dev Orgs Auth Connection \u2014 DevRev | Docs" }, { - "id": "ART-16804_KNOWLEDGE_NODE-26", - "text": "Identities | \\xe2\\x9c\\x85 |\\n| Meetings | Meetings | \\xe2\\x9c\\x85 |\\n\\nImport Google Calendar\\n----------------------\\n\\nFollow the steps below to import from Google Calendar:\\n\\n1. Go to the **Marketplace** and search for **Google Calendar** in the\\n **Import** category, and install.\\n2. Go to the **Import** section in your settings left nav.\\n3. Click **+Import** and select the Google Calendar logo.\\n4. In the **Select Connection** dropdown, choose **Google Calendar**. \\n If a connection", + "id": "ART-16804_KNOWLEDGE_NODE-27", + "text": "already exists, you can reuse it; otherwise, click **Add\\n Connection**. \\n In the connection modal, click **Sign in with snap-in** (with the Google\\n Calendar icon), enter a connection name, and proceed to **authorize via your\\n Google account using OAuth**. \\n Provide the necessary permissions and click **Continue** to complete the\\n setup.\\n5. Once the connection is established, select the calendars you want to import\\n and specify the DevRev part that should be used for any", "title": "Google Calendar AirSync | Integrate | Snap-ins | DevRev" }, { - "id": "ART-3207_KNOWLEDGE_NODE-28", - "text": "In the top-right corner, select **+ Connection**, choose Google, and enter your connection name and domain name.\\n3. Toggle on **Make public** to make the connection public for your organization and click **Next**.\\n4. Click **Sign in with Google** and add your organization\\xe2\\x80\\x99s Gmail account. If you are already logged in using a different Gmail account select **Use another account** and continue.\\n\\n If you are using Google Groups then use the same Gmail account which has permission", - "title": "Email snap-in configuration | Email | Integrate | Snap-ins | DevRev" - }, - { - "id": "ART-2032_KNOWLEDGE_NODE-26", - "text": "section within your DevRev workspace settings.\\n2. Click **Explore Marketplace**.\\n3. Search for **Google Calendar** and click **Install** next to the Google Calendar snap-in.\\n4. In DevRev app, setup the connection in **Settings** > **Snap-ins** > **Connections** on top.\\n\\n * Search and choose an existing connection or create a new one by clicking **+ Connection**.\\n * Select **Google Calendar** from the dowpdown list.\\n * Give it a name and sign in with Google Calendar. Ensure to", + "id": "ART-2032_KNOWLEDGE_NODE-0", + "text": "b\"Google Calendar | Integrate | Snap-ins | DevRev\\n\\n* Product\\n* Platform\\n* Marketplace\\n* Company\\n* Resources\\n* Pricing\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nProduct\\n\\nPlatform\\n\\nMarketplace\\n\\nCompany\\n\\nResources\\n\\nPricing\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [AgentOS platform](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n +", "title": "Google Calendar | Integrate | Snap-ins | DevRev" }, { - "id": "ART-3207_KNOWLEDGE_NODE-27", - "text": "connection\\n--------------------------\\n\\nIf you are using Google as the mail provider, refer to **Gmail connection**; if you are using custom domains or other providers, refer to **Email connection**.\\n\\nGmail connection\\n\\nYou must be a part of the group and have permission to send emails to the Google Group. This approach doesn\\'t work with generic Google Groups ending with @googlegroups.com.\\n\\n1. In the DevRev app, go to **Settings > Integrations > Snap-ins** and click **Connections**.\\n2.", - "title": "Email snap-in configuration | Email | Integrate | Snap-ins | DevRev" + "id": "ART-1543_KNOWLEDGE_NODE-168", + "text": "for the organization and the user will need to explicitly enable this. Keep in mind that at a time, only one authentication connection can be enabled for a Dev organization. At present, only 5 enterprise connections can be created by an organization.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nGoogle Apps\\n\\nObject encapsulating the configuration parameters for a Google Apps authentication connection.\\n\\nShow 5 properties\\nOR\\nOidc\\n\\nObject encapsulating the configuration parameters for", + "title": "Metric Definitions List Post (Beta) \u2014 DevRev | Docs" }, { "id": "ART-2032_KNOWLEDGE_NODE-27", - "text": "toggle on **Make public** to make the connection public for your organization.\\n\\n#### Organization calendar sync\\n\\n1. Update the snap-in configurations as needed.\\n\\n * **Internal Domains**: List of internal domains to be considered as internal users.\\n * **Calendar ID**: ID of Google calendar to be synced to DevRev. The default is primary.\\n * **Exclude Matching Events**: Excludes event if their title starts or ends with the specified string. Default is -.\\n * **Skip Events With", + "text": "toggle on **Make public** to make the connection public for your organization.\\n\\n#### Organization calendar sync\\n\\n1. Update the snap-in configurations as needed.\\n\\n * **Internal Domains**: List of internal domains to be considered as internal users.\\n * **Calendar ID**: ID of Google calendar to be synced to DevRev. The default is primary.\\n * **Exclude Matching Events**: Excludes event if their title starts or ends with the specified string. Default is -.\\n * **Skip Events With", "title": "Google Calendar | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2032_KNOWLEDGE_NODE-29", - "text": "as customers.\\n\\n* **Track meetings from free email domains**: Enable this feature to capture meetings scheduled by non-work email addresses, such as those from gmail.com or yahoo.com.\\n* **Recurring days**: Number of days in advance for recurring events to be synced. Default is 7 days.\\n\\n The recurring events inside the specified advance days are created, that is, if 7 days is specified, then all recurring events in next 7 days are created.\\n\\n1. Install the snap-in.\\n\\n#### User calendar", - "title": "Google Calendar | Integrate | Snap-ins | DevRev" + "id": "ART-1545_KNOWLEDGE_NODE-168", + "text": "for the organization and the user will need to explicitly enable this. Keep in mind that at a time, only one authentication connection can be enabled for a Dev organization. At present, only 5 enterprise connections can be created by an organization.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nGoogle Apps\\n\\nObject encapsulating the configuration parameters for a Google Apps authentication connection.\\n\\nShow 5 properties\\nOR\\nOidc\\n\\nObject encapsulating the configuration parameters for", + "title": "Create (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-2025_KNOWLEDGE_NODE-26", - "text": "**Explore Marketplace**.\\n3. Search for **Calendly** and click **Install** next to the Calendly snap-in.\\n4. In DevRev app, setup the connection in **Settings** > **Snap-ins** > **Connections** on top.\\n\\n * Search and choose an existing connection or create a new one by clicking **+ Connection**.\\n * Select **Snap-In Secret** from the dowpdown list.\\n * Give it a name and paste your Calendly personal access token in the **Secret** field. Toggle on **Make public** if you want to make the", - "title": "Calendly | Integrate | Snap-ins | DevRev" + "id": "ART-2032_KNOWLEDGE_NODE-26", + "text": "section within your DevRev workspace settings.\\n2. Click **Explore Marketplace**.\\n3. Search for **Google Calendar** and click **Install** next to the Google Calendar snap-in.\\n4. In DevRev app, setup the connection in **Settings** > **Snap-ins** > **Connections** on top.\\n\\n * Search and choose an existing connection or create a new one by clicking **+ Connection**.\\n * Select **Google Calendar** from the dowpdown list.\\n * Give it a name and sign in with Google Calendar. Ensure to", + "title": "Google Calendar | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2032_KNOWLEDGE_NODE-16", - "text": "snap-in configuration](/docs/integrations/email-config)\\n - [Exotel](/docs/integrations/exotel)\\n - [Slack](/docs/integrations/slack)\\n - [WhatsApp](/docs/integrations/whatsapp)\\n - [GitHub](/docs/integrations/github)\\n - [GitLab](/docs/integrations/gitlab)\\n - [Harness](/docs/integrations/harness)\\n - [Marker.io](/docs/integrations/marker-io)\\n - [Instabug](/docs/integrations/instabug)\\n - [Qase](/docs/integrations/qase)\\n - [Tracxn", - "title": "Google Calendar | Integrate | Snap-ins | DevRev" + "id": "ART-1566_KNOWLEDGE_NODE-168", + "text": "for the organization and the user will need to explicitly enable this. Keep in mind that at a time, only one authentication connection can be enabled for a Dev organization. At present, only 5 enterprise connections can be created by an organization.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nGoogle Apps\\n\\nObject encapsulating the configuration parameters for a Google Apps authentication connection.\\n\\nShow 5 properties\\nOR\\nOidc\\n\\nObject encapsulating the configuration parameters for", + "title": "Transition (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-16804_KNOWLEDGE_NODE-33", - "text": "Sync](#set-up-periodic-sync)\\n* [Delete an import](#delete-an-import)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer works](/how-computer-works)\\n\\nApps\\n\\n* [For Support Teams](/for-support-teams)\\n* [For Builders](/for-builders)\\n* [For Customers](/for-customers)\\n* [For User Insights](/for-user-insights)\\n*", + "id": "ART-16804_KNOWLEDGE_NODE-0", + "text": "b'Google Calendar AirSync | Integrate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CMD`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", "title": "Google Calendar AirSync | Integrate | Snap-ins | DevRev" + }, + { + "id": "ART-1558_KNOWLEDGE_NODE-168", + "text": "for the organization and the user will need to explicitly enable this. Keep in mind that at a time, only one authentication connection can be enabled for a Dev organization. At present, only 5 enterprise connections can be created by an organization.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nGoogle Apps\\n\\nObject encapsulating the configuration parameters for a Google Apps authentication connection.\\n\\nShow 5 properties\\nOR\\nOidc\\n\\nObject encapsulating the configuration parameters for", + "title": "Metric Definitions List (Beta) \u2014 DevRev | Docs" } ] }, @@ -4260,54 +4260,54 @@ "query": "create custom link type using API between custom object Messaging and ticket", "retrievals": [ { - "id": "ART-15664_KNOWLEDGE_NODE-6", - "text": "you want to establish a parent-child relationship between tickets and a custom object\\ntype called \\xe2\\x80\\x9cCampaign\\xe2\\x80\\x9d. This relationship helps track which tickets are assigned to which campaigns.\\n\\nTo create this relationship, make an API call to create a link type:\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\'", + "id": "ART-15664_KNOWLEDGE_NODE-16", + "text": "\\'https://api.devrev.ai/link-types.custom.update\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"id\": \"don:core:dvrv-us-1:devo/demo:custom_link_type/1\", |\\n| > | \"is_deprecated\": true |\\n| > | }\\' |\\n```\\n\\nQuick reference: links from tickets, and issues\\n-----------------------------------------------\\n\\n##### \\n\\nThis section lists common links you can create from tickets and issues. It is not an", "title": "Links | DevRev | Docs" }, { - "id": "ART-15664_KNOWLEDGE_NODE-8", - "text": "created from (ticket)\\n* Target types that the link can be created to (campaign custom object)\\n* Forward name (\\xe2\\x80\\x9cis parent of\\xe2\\x80\\x9d) describing the relationship from ticket to campaign\\n* Backward name (\\xe2\\x80\\x9cis child of\\xe2\\x80\\x9d) describing the relationship from campaign to ticket\\n\\nCreate links between objects\\n----------------------------\\n\\nOnce you have defined a link type, you can create links between objects:\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl", + "id": "ART-15664_KNOWLEDGE_NODE-13", + "text": "\\n\\nYou may want to restrict links to specific subtypes of objects. For example, only allowing issues\\nof a particular subtype to be linked to tickets.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"name\": \"Link between social media issues and tickets\", |\\n| > | \"source_types\": [ |\\n| > | { |\\n|", "title": "Links | DevRev | Docs" }, { - "id": "ART-12390_KNOWLEDGE_NODE-39", - "text": "to update * subtype: (Optional) Ticket subtype * apps: (Optional) Related apps * app\\\\_custom\\\\_fields: (Optional) Custom fields * stage: (Optional) New stage | Updated ticket object |\\n\\nObject links\\n------------\\n\\n| Operation | Description | Input Parameters | Output |\\n| --- | --- | --- | --- |\\n| LinkConversationWithTicket | Creates a link between a conversation and a ticket. | * source: Conversation ID * link\\\\_type: Type of link (usually \"is\\\\_related\\\\_to\") * target: Ticket ID | Empty", - "title": "Workflow action library | Workflows | Computer by DevRev | DevRev" + "id": "ART-15664_KNOWLEDGE_NODE-8", + "text": "created from (ticket)\\n* Target types that the link can be created to (campaign custom object)\\n* Forward name (\\xe2\\x80\\x9cis parent of\\xe2\\x80\\x9d) describing the relationship from ticket to campaign\\n* Backward name (\\xe2\\x80\\x9cis child of\\xe2\\x80\\x9d) describing the relationship from campaign to ticket\\n\\nCreate links between objects\\n----------------------------\\n\\nOnce you have defined a link type, you can create links between objects:\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl", + "title": "Links | DevRev | Docs" }, { - "id": "ART-15664_KNOWLEDGE_NODE-5", - "text": "Supported object types\\n\\nLinks can be created between the following object types:\\n\\n* custom object\\n* work (issue, ticket, task, opportunity)\\n* account, user\\n* part (product, capability, feature, enhancement)\\n\\nFor more details on customization or custom object concepts, please refer to the documentation below:\\n\\n* [Customization](/beta/guides/object-customization)\\n* [Custom objects](/beta/guides/custom-objects)\\n\\nCreate link types\\n-----------------\\n\\n##### \\n\\nLet\\xe2\\x80\\x99s say", - "title": "Links | DevRev | Docs" + "id": "ART-1556_KNOWLEDGE_NODE-4", + "text": "object=object\\n[/code] \\n \\nTry it\\n\\n200Retrieved\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"links\": [ \\n 3| { \\n 4| \"id\": \"id\", \\n 5| \"link_type\": \"custom_link\", \\n 6| \"source\": { \\n 7| \"type\": \"ticket\", \\n 8| \"id\": \"source\", \\n 9| \"owned_by\": [ \\n 10| { \\n 11| \"type\": \"sys_user\", \\n 12| \"id\": \"source\" \\n 13| } \\n 14| ], \\n 15|", + "title": "List Links (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-15664_KNOWLEDGE_NODE-16", - "text": "\\'https://api.devrev.ai/link-types.custom.update\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"id\": \"don:core:dvrv-us-1:devo/demo:custom_link_type/1\", |\\n| > | \"is_deprecated\": true |\\n| > | }\\' |\\n```\\n\\nQuick reference: links from tickets, and issues\\n-----------------------------------------------\\n\\n##### \\n\\nThis section lists common links you can create from tickets and issues. It is not an", - "title": "Links | DevRev | Docs" + "id": "ART-1543_KNOWLEDGE_NODE-121", + "text": "object.\\n\\ntitle string Optional\\n\\nUpdates the title of the custom object.\\n\\nResponse.\\n\\nThis endpoint returns an object.\\ncustom_object object\\nShow 10 properties\\nAPI Reference customization Custom Link Type Create.\\n\\nPOST https://api.devrev.ai / link-types.custom.create\\n\\nCreates a custom link type.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nbackward_name string Required\\n\\nThe name of the link in the backward direction.\\n\\nforward_name string Required\\n\\nThe name of the link in", + "title": "Metric Definitions List Post (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-15664_KNOWLEDGE_NODE-13", - "text": "\\n\\nYou may want to restrict links to specific subtypes of objects. For example, only allowing issues\\nof a particular subtype to be linked to tickets.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"name\": \"Link between social media issues and tickets\", |\\n| > | \"source_types\": [ |\\n| > | { |\\n|", + "id": "ART-15664_KNOWLEDGE_NODE-6", + "text": "you want to establish a parent-child relationship between tickets and a custom object\\ntype called \\xe2\\x80\\x9cCampaign\\xe2\\x80\\x9d. This relationship helps track which tickets are assigned to which campaigns.\\n\\nTo create this relationship, make an API call to create a link type:\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\'", "title": "Links | DevRev | Docs" }, { - "id": "ART-15664_KNOWLEDGE_NODE-12", - "text": "application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"id\": \"don:core:dvrv-us-1:devo/demo:custom_link_type/1\", |\\n| > | \"name\": \"Link type between issue/ticket and campaign\", |\\n| > | \"source_types_v2\": [ |\\n| > | { |\\n| > | \"leaf_type\": \"issue\" |\\n| > | }, |\\n| > | { |\\n| > | \"leaf_type\": \"ticket\" |\\n| > | } |\\n| > | ] |\\n| > | }\\' |\\n```\\n\\nCreate links between objects with subtypes\\n------------------------------------------\\n\\n#####", - "title": "Links | DevRev | Docs" + "id": "ART-1545_KNOWLEDGE_NODE-121", + "text": "object.\\n\\ntitle string Optional\\n\\nUpdates the title of the custom object.\\n\\nResponse.\\n\\nThis endpoint returns an object.\\ncustom_object object\\nShow 10 properties\\nAPI Reference customization Custom Link Type Create.\\n\\nPOST https://api.devrev.ai / link-types.custom.create\\n\\nCreates a custom link type.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nbackward_name string Required\\n\\nThe name of the link in the backward direction.\\n\\nforward_name string Required\\n\\nThe name of the link in", + "title": "Create (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-2139_KNOWLEDGE_NODE-0", - "text": "b'Create Link Types Custom | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nBeta\\n\\nBeta\\n\\nBeta\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/beta/api-reference/accounts/create)[customization](/beta/api-reference/customization/custom-objects-count)\\n\\nCreate Link Types Custom\\n========================\\n\\nBeta\\n\\nCopy page\\n\\nPOST\\n\\nhttps://api.devrev.ai/link-types.custom.create\\n\\nPOST\\n\\n/link-types.custom.create\\n\\ncURL\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl -X POST", - "title": "Create Link Types Custom | DevRev | Docs" + "id": "ART-1979_KNOWLEDGE_NODE-50", + "text": "customization](./object-customization).\\n\\nViewing attachments on tickets\\n------------------------------\\n\\nYou can view all attachments sent via the ticket's description, internal discussion, or a customer message by going to the **Attachments** section on the ticket for easy access.\\n\\n![]()\\n\\nTuring suggests\\n---------------\\n\\nTuring suggests enables Computer to aid customer experience engineers in resolving current tickets more efficiently. Each time a ticket is viewed, Computer", + "title": "Tickets | Computer for Support Teams | DevRev" }, { - "id": "ART-2139_KNOWLEDGE_NODE-8", - "text": "helpful?\\n\\nYesNo\\n\\n[Previous](/beta/api-reference/customization/custom-objects-update)[#### Get Link Types Custom\\n\\nNext](/beta/api-reference/customization/custom-link-type-get)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Create Link Types Custom | DevRev | Docs" + "id": "ART-15664_KNOWLEDGE_NODE-5", + "text": "Supported object types\\n\\nLinks can be created between the following object types:\\n\\n* custom object\\n* work (issue, ticket, task, opportunity)\\n* account, user\\n* part (product, capability, feature, enhancement)\\n\\nFor more details on customization or custom object concepts, please refer to the documentation below:\\n\\n* [Customization](/beta/guides/object-customization)\\n* [Custom objects](/beta/guides/custom-objects)\\n\\nCreate link types\\n-----------------\\n\\n##### \\n\\nLet\\xe2\\x80\\x99s say", + "title": "Links | DevRev | Docs" }, { - "id": "ART-2139_KNOWLEDGE_NODE-1", - "text": "https://api.devrev.ai/link-types.custom.create \\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\ |\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{ |\\n| > | \"backward_name\": \"string\", |\\n| > | \"forward_name\": \"string\", |\\n| > | \"name\": \"string\", |\\n| > | \"source_types\": [ |\\n| > | {} |\\n| > | ], |\\n| > | \"target_types\": [ |\\n| > | {} |\\n| > | ] |\\n| > | }\\' |\\n```\\n\\n[Try it](/beta/api-reference/customization/custom-link-type-create?explorer=true)\\n\\n201Created\\n\\n```\\n| | |\\n|", - "title": "Create Link Types Custom | DevRev | Docs" + "id": "ART-1560_KNOWLEDGE_NODE-121", + "text": "object.\\n\\ntitle string Optional\\n\\nUpdates the title of the custom object.\\n\\nResponse.\\n\\nThis endpoint returns an object.\\ncustom_object object\\nShow 10 properties\\nAPI Reference customization Custom Link Type Create.\\n\\nPOST https://api.devrev.ai / link-types.custom.create\\n\\nCreates a custom link type.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nbackward_name string Required\\n\\nThe name of the link in the backward direction.\\n\\nforward_name string Required\\n\\nThe name of the link in", + "title": "Assign (Beta) \u2014 DevRev | Docs" } ] }, @@ -4316,54 +4316,54 @@ "query": "where can I view my articles in DevRev", "retrievals": [ { - "id": "ART-4065_KNOWLEDGE_NODE-4", - "text": "* [Blog](https://devrev.ai/blog)\\n * [Events](https://devrev.ai/events)\\n * [News](https://devrev.ai/blog?category=news)\\n * [Case Studies](https://devrev.ai/case-study)\\n * [Documentation](https://docs.devrev.ai/)\\n * [API Reference](https://docs.devrev.ai/api/)\\n * [The Book of DevRev](https://thebook.devrev.ai/)\\n * [Partner Program](https://devrev.ai/partners)\\n * [Startup Program](https://devrev.ai/startups)\\n\\nCompany\\n\\n * [About](https://devrev.ai/about)\\n *", - "title": "Delete Article \u2014 DevRev | Docs" + "id": "ART-16192_KNOWLEDGE_NODE-29", + "text": "permissions in DevRev's articles. Only can read and can contribute permissions are imported from the knowledge base and articles.\\n* **Content & Metadata**: Imports published articles, including content, titles, dates, authors, and source URLs.\\n* **Version History**: Keeps track of published article versions.\\n* **Attachments**: Transfers files attached to articles and links them correctly.\\n* **User Criteria**: Imports users and group rules from ServiceNow.\\n\\n### Limitations\\n\\n* **Access", + "title": "ServiceNow KB AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-4064_KNOWLEDGE_NODE-19", - "text": "[Documentation](https://docs.devrev.ai/)\\n * [API Reference](https://docs.devrev.ai/api/)\\n * [The Book of DevRev](https://thebook.devrev.ai/)\\n * [Partner Program](https://devrev.ai/partners)\\n * [Startup Program](https://devrev.ai/startups)\\n\\nCompany\\n\\n * [About](https://devrev.ai/about)\\n * [People](https://devrev.ai/people)\\n * [Careers](https://devrev.ai/careers)\\n * [Places](https://devrev.ai/places)\\n * [Invest](https://revd.devrev.ai/)\\n * [What Why", - "title": "Create Article \u2014 DevRev | Docs" + "id": "ART-1985_KNOWLEDGE_NODE-37", + "text": "Storage limits for articles\\n\\n* There is no limit to the number of articles that can be created in the DevRev knowledge base.\\n* Each article is stored as an artifact, with a maximum size of 250 MB per artifact.\\n\\n### Enable customer access for your knowledge base\\n\\nTo make your help center, including your knowledge base, accessible to the public, go to **[Settings > Plug & Portal > Portal Settings](https://app.devrev.ai/?setting=portal-settings%2Fconfiguration)** and enable **Help Center**", + "title": "Articles | Knowledge Base | Computer for Support Teams | DevRev" }, { - "id": "ART-4065_KNOWLEDGE_NODE-8", - "text": "Inc.\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources __\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a", - "title": "Delete Article \u2014 DevRev | Docs" + "id": "ART-1985_KNOWLEDGE_NODE-49", + "text": "click the **Create** drop-down.\\n2. Select **Create and submit for review**.\\n3. Add reviewers to the approval process, who receive notifications and are tagged in the **Discussions** tab.\\n\\nArticle approval is available only for articles created natively within DevRev.\\n\\n### Review an article\\n\\n1. Open the article and locate the **Review** icon at the top right.\\n2. Choose to either **Request Changes** or **Approve**.\\n3. If requesting changes, provide feedback in the placeholder.\\n\\nAn", + "title": "Articles | Knowledge Base | Computer for Support Teams | DevRev" }, { - "id": "ART-4070_KNOWLEDGE_NODE-21", - "text": "__\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources __\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n'", - "title": "Update Article \u2014 DevRev | Docs" + "id": "ART-2040_KNOWLEDGE_NODE-43", + "text": "to the relevant articles.\\n* Each synchronization will generate a new version of the article on DevRev if changes were made in Zendesk since the last sync, ensuring content is not overwritten. Users can edit articles within DevRev.\\n\\n### Limitations\\n\\n* While Zendesk's API provides article content in *HTML*, DevRev articles are in a custom *JSON* format. We've made a best-effort conversion between the two formats, which may result in errors. If any errors are detected, a Review Required tag", + "title": "Zendesk AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-4065_KNOWLEDGE_NODE-5", - "text": "[People](https://devrev.ai/people)\\n * [Careers](https://devrev.ai/careers)\\n * [Places](https://devrev.ai/places)\\n * [Invest](https://revd.devrev.ai/)\\n * [What Why How](https://devrev.ai/what-why-how)\\n\\nConnect\\n\\n * [Contact ](mailto:humansofdevrev@devrev.ai)\\n * [Instagram ](https://www.instagram.com/devrev)\\n * [Medium ](https://medium.com/devrev)\\n * [Linkedin ](https://www.linkedin.com/company/devrev)\\n * [X (formerly Twitter)](https://twitter.com/devrev)\\n *", - "title": "Delete Article \u2014 DevRev | Docs" + "id": "ART-16192_KNOWLEDGE_NODE-31", + "text": "articles default to English in DevRev, regardless of the original language.\\n If a user in ServiceNow belongs to two different criteria\\xe2\\x80\\x94one allowing read and contribute access, and the other denying it\\xe2\\x80\\x94they may still have access in DevRev. However, if the same criteria appear in both the allow and deny lists for read and contribute access, the user is restricted in DevRev.\\n\\nPost import options\\n-------------------\\n\\nAfter a successful import, you have the following", + "title": "ServiceNow KB AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-1985_KNOWLEDGE_NODE-51", - "text": "Submitted for review\\n + *Ready to Publish*: All reviewers have approved\\n\\nArticle analytics\\n-----------------\\n\\nArticle analytics in DevRev provides a customized prebuilt dashboard to assess whether customers can find relevant articles to address their queries.\\n\\nAccess analytics under **Settings** > **Support** > **Article analytics**.\\n\\nThe dashboard shows the effectiveness of your knowledge base for both customers and internal employees with these metrics:\\n\\n* Viewership: Total", - "title": "Articles | Knowledge Base | Computer for Support Teams | DevRev" + "id": "ART-15203_KNOWLEDGE_NODE-10", + "text": "Technical knowledge of web solutions including APIs and Webhooks. Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n* Outstanding communication (written and verbal), with fluency in English.\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who", + "title": "DevRev Careers | Senior Customer Success Manager" }, { - "id": "ART-1985_KNOWLEDGE_NODE-24", - "text": "[Product demos](/docs/DevRevU/demos)\\n\\nOn this page\\n\\n* [Article management](#article-management)\\n* [Create an article](#create-an-article)\\n* [Edit article content and settings](#edit-article-content-and-settings)\\n* [Delete articles](#delete-articles)\\n* [Bulk change options](#bulk-change-options)\\n* [Status settings](#status-settings)\\n* [Visibility settings](#visibility-settings)\\n* [Article visibility](#article-visibility)\\n* [Storage limits for", - "title": "Articles | Knowledge Base | Computer for Support Teams | DevRev" + "id": "ART-4066_KNOWLEDGE_NODE-1", + "text": "__\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[API Reference](/public/api-reference/getting-started)[Articles](/public/api-reference/articles/create-article)\\n\\n# Get Article\\n\\nGET\\n\\nhttps://api.devrev.ai/articles.get\\n\\nTry it\\n\\nGets an article.\\n\\n### Query parameters\\n\\nidstringRequired`format: \"id\"`\\n\\nThe ID of the required article.\\n\\ndev_orgstringOptional`format: \"id\"`\\n\\nOptional Dev Org ID for the", + "title": "Get Article \u2014 DevRev | Docs" }, { - "id": "ART-4065_KNOWLEDGE_NODE-9", - "text": "demo](https://devrev.ai/request-a-demo)\\n\\n'", - "title": "Delete Article \u2014 DevRev | Docs" + "id": "ART-4218_KNOWLEDGE_NODE-30", + "text": "a one-time sync to DevRev, follow these steps:\\n\\n1. Go to **Settings** > **Integrations** > **AirSyncs**.\\n2. Locate the previously imported project.\\n3. Select the **\\xe2\\x8b\\xae** > **Sync Azure DevOps Wikis to DevRev** option.\\n\\n![]()\\n\\nA one-time sync may overwrite fields in previously imported articles, even if they were modified in DevRev.\\n\\n### Historical AirSyncs\\n\\nTo view currently running and previous AirSyncs from various sources, do the following:\\n\\n1. Go to **Settings** >", + "title": "Azure DevOps Wikis AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-4066_KNOWLEDGE_NODE-0", - "text": "b'[](/public/api-reference/articles/get-article)\\n\\nPublic\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources", - "title": "Get Article \u2014 DevRev | Docs" + "id": "ART-4068_KNOWLEDGE_NODE-1", + "text": "__\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[API Reference](/public/api-reference/getting-started)[Articles](/public/api-reference/articles/create-article)\\n\\n# List Articles\\n\\nGET\\n\\nhttps://api.devrev.ai/articles.list\\n\\nTry it\\n\\nLists a collection of articles.\\n\\n### Query parameters\\n\\napplies_to_partslist of stringsOptional\\n\\nFilters for articles belonging to any of the provided", + "title": "List Articles \u2014 DevRev | Docs" }, { - "id": "ART-4068_KNOWLEDGE_NODE-19", - "text": "[About](https://devrev.ai/about)\\n * [People](https://devrev.ai/people)\\n * [Careers](https://devrev.ai/careers)\\n * [Places](https://devrev.ai/places)\\n * [Invest](https://revd.devrev.ai/)\\n * [What Why How](https://devrev.ai/what-why-how)\\n\\nConnect\\n\\n * [Contact ](mailto:humansofdevrev@devrev.ai)\\n * [Instagram ](https://www.instagram.com/devrev)\\n * [Medium ](https://medium.com/devrev)\\n * [Linkedin ](https://www.linkedin.com/company/devrev)\\n * [X (formerly", - "title": "List Articles \u2014 DevRev | Docs" + "id": "ART-15726_KNOWLEDGE_NODE-0", + "text": "b\"If you just imported a bunch of articles from your favorite external system, but can't see them in DevRev, the most important question to ask yourself is whether that article was shared with you in the external system. Airdrop is permission-aware for articles, so if an article (or document, or page, whatever gets imported as an Airdrop article) was not shared with you in the external system, then you won't have access to it in DevRev (even if you're an admin), assuming the default visibility", + "title": "Visibility of Airdrop-imported articles" } ] }, @@ -4372,54 +4372,54 @@ "query": "Next Best Action recommendations based on case context and history", "retrievals": [ { - "id": "ART-2133_KNOWLEDGE_NODE-56", - "text": "now.\\n\\n\\n\\nTime Travel (Context | Hisory) Hyper-Personalized Ontology | Fine-Tuning Predictive vs. Proactive Beyond SLAs Gustomer-Centric Lowest Latency Notifications Mobile-First User-over-Buyer Grassrocts Community | Word-of-Mouth Design-First | Consumer- Grade\\n\\n\\n\\nDeep Work | LLIs before Channels Cravi-n-index Everything Enterprise Shortcuts Discern Real Time Iterventions No Human-inthe-Loop Defloct L Deduplicate Text2SQL | Text2Visualization | TextdManagers Toxt2Logacy Voice for", - "title": "The Essential Methodology: Less but Better" + "id": "ART-2814_KNOWLEDGE_NODE-5", + "text": "13| surface: issue \\n 14| snap_kit_action_name: show_test_cases \\n 15| initializer: upgrade_test_function_1 \\n 16| snap_kit_body: \\n 17| { \\n 18| \"snaps\":[] \\n 19| }\\n[/code] \\n \\n## Format of context passed to snap-kit action\\n\\n[code]\\n\\n 1| // The payload contains details and values of the snap-kit from which the action was invoked. \\n ---|--- \\n 2| interface Payload { \\n 3| action: { \\n 4| block_id:", + "title": "Snap Components \u2014 DevRev | Docs" }, { - "id": "ART-2133_KNOWLEDGE_NODE-22", - "text": "suboptimal decisions. Only by going back in time can best decisions be taken.\\n\\n\\n\\nFine Tuning Customer ontologies \\xe2\\x80\\x93 {product, process, organization, skills} taxonomy, and people identities \\xe2\\x80\\x93 are extremely important in this day and age of AI to make models accurate and relevant within an enterprise. The Essential methodology embraces model \\xef\\xac\\x81ne-tuning as a necessary tenet of hyper-personalization.\\n\\nPredictive Servicing A large proportion of businesses are", - "title": "The Essential Methodology: Less but Better" + "id": "ART-1607_KNOWLEDGE_NODE-164", + "text": "customers impacted due to the incident.\\nmitigated_date datetime Optional\\nTimestamp when the incident was mitigated.\\nowned_by list of strings Optional\\nUser IDs of the users that own the incident.\\npia list of strings Optional\\nThe article ids of the Post-Incident Analysis(PIA) of the incident.\\nplaybooks list of strings Optional\\nThe article ids of the playbook(s) associated with the incident.\\nrelated_docs list of strings Optional\\nThe article ids of other documents associated with the", + "title": "Get Post \u2014 DevRev | Docs" }, { - "id": "ART-13178_KNOWLEDGE_NODE-44", - "text": "action demonstrates this approach.\\n * **Goal-based agents** evaluate actions based on how they contribute to achieving specific objectives. DevRev\\xe2\\x80\\x99s product development AI agents exemplify this approach by coordinating activities specifically designed to meet release deadlines and quality targets.\\n * **Utility-based agents** use sophisticated evaluation mechanisms to maximize overall benefit across multiple objectives. For instance, a marketing campaign optimizer might balance", - "title": "Understanding Agentic AI: Capabilities and Implications for the Future" + "id": "ART-1846_KNOWLEDGE_NODE-10", + "text": "|\\n| 42 | ], |\\n| 43 | \"submit_action\": { |\\n| 44 | \"action_id\": \"next\", |\\n| 45 | \"style\": \"primary\", |\\n| 46 | \"text\": { |\\n| 47 | \"text\": \"Next\", |\\n| 48 | \"type\": \"plain_text\" |\\n| 49 | }, |\\n| 50 | \"type\": \"button\", |\\n| 51 | \"value\": \"next\" |\\n| 52 | }, |\\n| 53 | \"type\": \"form\" |\\n| 54 | } |\\n| 55 | ], |\\n| 56 | \"type\": \"card\" |\\n| 57 | } |\\n| 58 | ] |\\n| 59 | } |\\n| 60 | } |\\n| 61 | } |\\n```\\n\\nIn this example, the snap-kit renders a dropdown select for choosing between `Ticket` and", + "title": "Customizing snap-in configuration | DevRev | Docs" }, { - "id": "ART-15621_KNOWLEDGE_NODE-17", - "text": "activity patterns for context-aware results\"\\n\\nBattle Tactic : Demonstrate comprehensive data access in head-to-head comparisons\\n\\n2. Conversational Analytics & Workflows\\n\\nPositioning : \"DevRev\\'s Search Agent combines search with deep object relationships, delivering conversational analytics and RCA through natural conversations while proactively surfacing business-critical patterns\"\\n\\nBattle Tactic : Show workflow automation and analytics capabilities that Glean cannot deliver\\n\\n3.", - "title": "Glean - Competitive - for the PLuG on website" + "id": "ART-1303_KNOWLEDGE_NODE-169", + "text": "customers impacted due to the incident.\\nmitigated_date datetime Optional\\nTimestamp when the incident was mitigated.\\nowned_by list of strings Optional\\nUser IDs of the users that own the incident.\\npia list of strings Optional\\nThe article ids of the Post-Incident Analysis(PIA) of the incident.\\nplaybooks list of strings Optional\\nThe article ids of the playbook(s) associated with the incident.\\nrelated_docs list of strings Optional\\nThe article ids of other documents associated with the", + "title": "Export Post \u2014 DevRev | Docs" }, { - "id": "ART-13178_KNOWLEDGE_NODE-43", - "text": "business scenarios:\\n\\n * **Simple reflex agents** operate on straightforward condition-action rules without considering past experiences. For example, a basic customer inquiry routing system that assigns tickets based on predefined keywords falls into this category.\\n * **Model-based reflex agents** incorporate an internal model of the world, tracking the environment\\xe2\\x80\\x99s current state. A sales automation tool that considers past customer interactions when determining the next best", - "title": "Understanding Agentic AI: Capabilities and Implications for the Future" + "id": "ART-1305_KNOWLEDGE_NODE-171", + "text": "customers impacted due to the incident.\\nmitigated_date datetime Optional\\nTimestamp when the incident was mitigated.\\nowned_by list of strings Optional\\nUser IDs of the users that own the incident.\\npia list of strings Optional\\nThe article ids of the Post-Incident Analysis(PIA) of the incident.\\nplaybooks list of strings Optional\\nThe article ids of the playbook(s) associated with the incident.\\nrelated_docs list of strings Optional\\nThe article ids of other documents associated with the", + "title": "Get Post \u2014 DevRev | Docs" }, { - "id": "ART-1954_KNOWLEDGE_NODE-35", - "text": "determined by the type of action, rather than solely by the actor performing the action.\\n\\nExamples:\\n\\n* If mentions are set to **Important** and a bot's notifications are set to **Others**, then bot mentions will only appear in the **Others** tab.\\n* If mentions are set to **Important** and a bot's notifications are also set to **Important**, then bot mentions will appear in the **Important** tab.\\n* If mentions are set to **Others** and a bot's notifications are set to **Important**, then", - "title": "Updates | Computer by DevRev | DevRev" + "id": "ART-1484_KNOWLEDGE_NODE-64", + "text": "3| \"action_id\": \"name\", \\n 4| \"min_length\": 10, \\n 5| \"placeholder\": { \\n 6| \"text\": \"Enter your name\", \\n 7| \"type\": \"plain_text\" \\n 8| }, \\n 9| \"type\": \"plain_text_input\" \\n 10| }, \\n 11| \"hint\": { \\n 12| \"text\": \"Please enter your name\", \\n 13| \"type\": \"plain_text\" \\n 14| }, \\n 15| \"label\": { \\n 16| \"text\": \"User name\", \\n 17| \"type\": \"plain_text\" \\n 18| }, \\n 19|", + "title": "Snapkit \u2014 DevRev | Docs" }, { - "id": "ART-1989_KNOWLEDGE_NODE-37", - "text": "follow a common structure for easy categorization and search. If you have common themes or categories, the exact convention is up to you to standardize for your teams.\\n\\n One possible convention is Category-Subcategory-Specific command subject. For example:\\n\\n + Rerouting-Reroute to payments-Refund\\n + Rerouting-Reroute to payments-Payment failure\\n + Rerouting-Reroute to Sales\\n\\n[PreviousBest practices for documentation that supports AI](/docs/product/writing-bp)[NextService-level", - "title": "Commands | Computer for Support Teams | DevRev" + "id": "ART-1290_KNOWLEDGE_NODE-82", + "text": "`initial_values` (optional): The initial values in the inputs when they are loaded. This is an array of strings. If `min_items` or `max_items` are set, the length of the array should be within the range.\\n\\n*Example*\\n\\n![]()\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"element\": { |\\n| 3 | \"action_id\": \"numbers\", |\\n| 4 | \"max_item_value\": 90, |\\n| 5 | \"min_item_value\": 0, |\\n| 6 | \"placeholder\": { |\\n| 7 | \"text\": \"Add warning value here (min 0, max 90)\", |\\n| 8 | \"type\": \"plain_text\"", + "title": "Snapkit | DevRev | Docs" }, { - "id": "ART-1995_KNOWLEDGE_NODE-30", - "text": "a continuous planning approach that allows you to prioritize work in a more intuitive way.\\n\\n When creating an issue, you can categorize it under the following buckets:\\n\\n + **Now:** What is currently being executed.\\n + **Next:** Estimate of what will be worked on within a specific timeframe.\\n + **Backlog/Later:** Prioritized issues expected to be committed to in a later timeframe.\\n + **Triage:** Triage is a process to prioritize work items (issues or tickets) based on severity, risk,", - "title": "Build best practices | Computer for Builders | DevRev" + "id": "ART-1649_KNOWLEDGE_NODE-164", + "text": "customers impacted due to the incident.\\nmitigated_date datetime Optional\\nTimestamp when the incident was mitigated.\\nowned_by list of strings Optional\\nUser IDs of the users that own the incident.\\npia list of strings Optional\\nThe article ids of the Post-Incident Analysis(PIA) of the incident.\\nplaybooks list of strings Optional\\nThe article ids of the playbook(s) associated with the incident.\\nrelated_docs list of strings Optional\\nThe article ids of other documents associated with the", + "title": "Create \u2014 DevRev | Docs" }, { - "id": "ART-1990_KNOWLEDGE_NODE-26", - "text": "worked on. This approach directly enables developers to pick up work that drives customer and business impact on a continuous basis. The power of continuous planning comes through deconstructing complex processes in favor of more intuitive and integrated workflows.\\n\\n\\xf0\\x9f\\x8e\\xa5 Video: Prioritize backlog by customer impact\\n\\nPrioritized work\\n----------------\\n\\nInstead of antiquated concepts requiring domain knowledge, prioritized work is defined by a state machine into *Now*, *Next*,", - "title": "Now, Next, Later | Computer for Builders | DevRev" + "id": "ART-1833_KNOWLEDGE_NODE-164", + "text": "customers impacted due to the incident.\\nmitigated_date datetime Optional\\nTimestamp when the incident was mitigated.\\nowned_by list of strings Optional\\nUser IDs of the users that own the incident.\\npia list of strings Optional\\nThe article ids of the Post-Incident Analysis(PIA) of the incident.\\nplaybooks list of strings Optional\\nThe article ids of the playbook(s) associated with the incident.\\nrelated_docs list of strings Optional\\nThe article ids of other documents associated with the", + "title": "Get \u2014 DevRev | Docs" }, { - "id": "ART-12390_KNOWLEDGE_NODE-6", - "text": "+ [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best practices for documentation that supports AI](/docs/product/writing-bp)\\n + [Commands](/docs/product/commands)\\n + [Service-level agreement](/docs/product/sla)\\n + [Operational-level agreement](/docs/product/ola)\\n + [Support snap-ins](/docs/product/snapins-support)\\n* [Computer for Builders](/docs/product/build)\\n\\n + [Issues](/docs/product/issues)\\n + [Now, Next, Later](/docs/product/nnl)\\n + [Sprint", - "title": "Workflow action library | Workflows | Computer by DevRev | DevRev" + "id": "ART-1272_KNOWLEDGE_NODE-3", + "text": "actions enriched by context.\\n\\nSnap-in\\n-------\\n\\nSnap-ins are collections of objects that extend DevRev\\xe2\\x80\\x99s core platform value. These objects include automation, event sources, keyrings, custom types, and vistas. With snap-ins, developers can develop at \\xe2\\x80\\x9carms-length\\xe2\\x80\\x9d and without making any changes to DevRev\\xe2\\x80\\x99s core platform.\\n\\nSnap-in developers interact with DevRev objects through APIs, get updates on DevRev objects through webhooks, and register", + "title": "Concepts | DevRev | Docs" } ] }, @@ -4429,13 +4429,18 @@ "retrievals": [ { "id": "ART-962_KNOWLEDGE_NODE-0", - "text": "b'1. Core Pricing Plans:\\n\\nStarter: Ideal for small teams (up to 15 users) navigating product-market fit.\\n\\nLimited Time Offer: $1,000 credits.\\n\\nPlatform License: $9.99 per monthly active user (MAU).\\n\\nSupport License: $9.99 per MAU.\\n\\nFeatures:\\n\\nUnlimited viewers at no extra charge.\\n\\nConverge Issue and Ticket Management.\\n\\nMap your product features with Parts and Trails\\n\\nCustomize your data and insights with Vistas.\\n\\nCustomer and user management.\\n\\nLive chat and deflection", + "text": "b'1. Core Pricing Plans:\\n\\nStarter: Ideal for small teams (up to 15 users) navigating product-market fit.\\n\\nLimited Time Offer: $1,000 credits.\\n\\nPlatform License: $9.99 per monthly active user (MAU).\\n\\nSupport License: $9.99 per MAU.\\n\\nFeatures:\\n\\nUnlimited viewers at no extra charge.\\n\\nConverge Issue and Ticket Management.\\n\\nMap your product features with Parts and Trails\\n\\nCustomize your data and insights with Vistas.\\n\\nCustomer and user management.\\n\\nLive chat and deflection", "title": "DevRev Pricing" }, { - "id": "ART-962_KNOWLEDGE_NODE-2", - "text": "offer).\\n\\n24/5 customer support.\\n\\nPricing: Platform license at $24.99 per MAU, support license at $34.99 per MAU.\\n\\nUltimate: Tailored for complex organizations with strict requirements.\\n\\nAll features from Pro, plus:\\n\\nAudit logging.\\n\\nEnhanced storage and retention.\\n\\nSLA-driven support response times.\\n\\nAdvanced object, subtype, and attribute customization.\\n\\nMulti-region high availability.\\n\\nLive read replica sandboxes.\\n\\nCustom pricing based on specific needs.\\n\\n2.", - "title": "DevRev Pricing" + "id": "ART-15627_KNOWLEDGE_NODE-9", + "text": "that time, DevRev starts charging your credit card for subscription and consumption costs. What is a Platform vs. Support User?\\n\\nPlatform users : Have full access to the Build App and gain visibility across an organization to understand the context between product and customer\\n\\nSupport Users : Users that create or update customer-related records. The per-seat pricing is in addition to the platform license cost and includes customer records (RevO or RevU), plus other related records like", + "title": "DevRev Pricing - for the PLuG on the website" + }, + { + "id": "ART-15258_KNOWLEDGE_NODE-5", + "text": "users per product. While the $10K credits typically cover around 14 pro-level licenses based on current pricing, you\\xe2\\x80\\x99re free to use as many licenses based on your business needs. Q:-How do my credits get consumed throughout the year?\\n\\nA:- Credits are consumed monthly, primarily based on the number of licenses you provision and any custom integrations you request for. To make the most of your credits, we recommend starting with just the minimum number of licenses you need and", + "title": "DevRev - Website - FAQs" }, { "id": "ART-15627_KNOWLEDGE_NODE-1", @@ -4443,34 +4448,29 @@ "title": "DevRev Pricing - for the PLuG on the website" }, { - "id": "ART-15627_KNOWLEDGE_NODE-13", - "text": "tier or contact sales for custom arrangements. Is there an enterprise discount for annual payments? Yes, for Pro Plans and above, DevRev can invoice annually and offers discounts. Contact\\xc2\\xa0 support@devrev.ai \\xc2\\xa0to discuss annual pricing options.'", - "title": "DevRev Pricing - for the PLuG on the website" + "id": "ART-3908_KNOWLEDGE_NODE-5", + "text": "users per product. While the $10K credits typically cover around 14 pro-level licenses based on current pricing, you\\xe2\\x80\\x99re free to use as many licenses based on your business needs. Q:-How do my credits get consumed throughout the year?\\n\\nA:- Credits are consumed monthly, primarily based on the number of licenses you provision and any custom integrations you request for. To make the most of your credits, we recommend starting with just the minimum number of licenses you need and", + "title": "DevRev for Startups" }, { - "id": "ART-962_KNOWLEDGE_NODE-3", - "text": "Usage-Based Costs:\\n\\nOn top of the core plans, DevRev charges for specific usage:\\n\\nUser and Customer Management: $0.20 per user, per month.\\n\\nConversations:\\n\\n$0.01 per anonymous user conversation, per month.\\n\\n$0.45 per verified user conversation, per month.\\n\\nStorage:\\n\\n$2.00 per extra GB of file storage, per month.\\n\\n$25.00 per extra GB of base storage, per month.\\n\\n3. Additional Considerations:\\n\\nAuthorization roles and profiles: $10.00 per MAU (optional add-on).\\n\\nFree tier:", + "id": "ART-962_KNOWLEDGE_NODE-2", + "text": "offer).\\n\\n24/5 customer support.\\n\\nPricing: Platform license at $24.99 per MAU, support license at $34.99 per MAU.\\n\\nUltimate: Tailored for complex organizations with strict requirements.\\n\\nAll features from Pro, plus:\\n\\nAudit logging.\\n\\nEnhanced storage and retention.\\n\\nSLA-driven support response times.\\n\\nAdvanced object, subtype, and attribute customization.\\n\\nMulti-region high availability.\\n\\nLive read replica sandboxes.\\n\\nCustom pricing based on specific needs.\\n\\n2.", "title": "DevRev Pricing" }, { - "id": "ART-15627_KNOWLEDGE_NODE-3", - "text": "migration and integrations\\n\\nReady-to-go reporting and analytics\\n\\n45-day free trial\\n\\nWhat\\'s included in Support Pro ($59.99/month)?\\n\\nEverything in Starter\\n\\nAdvanced reporting & analytics\\n\\nCustom SLA and routing policies\\n\\nCustomizable object and data types\\n\\n45-day free trial\\n\\nWhat\\'s included in Support Ultimate?\\n\\nEverything in Pro\\n\\nFull object model customization and unlimited integrations\\n\\nEnterprise-grade security, compliance, controls, and policies\\n\\nCustom pricing", - "title": "DevRev Pricing - for the PLuG on the website" - }, - { - "id": "ART-15627_KNOWLEDGE_NODE-5", - "text": "included in Build Pro ($24.99/month)?\\n\\nEverything in Starter\\n\\nCustomizable issue management\\n\\nAdvanced reporting & analytics\\n\\n45-day free trial\\n\\nWhat\\'s included in Build Ultimate?\\n\\nEverything in Pro\\n\\nFull object model customization and unlimited integrations\\n\\nEnterprise-grade security, compliance, controls, and policies\\n\\nDevRev PLuG Pricing For detailed pricing and to get started: \\xc2\\xa0 https://devrev.ai/pricing/plug What are the PLuG pricing options?\\n\\nFree : AI-powered", - "title": "DevRev Pricing - for the PLuG on the website" + "id": "ART-962_KNOWLEDGE_NODE-4", + "text": "Limited functionality for individual users and small teams.\\n\\n4. Summary:\\n\\nDevRev offers flexible pricing to cater to diverse needs.\\n\\nSmall teams can start with the Starter plan and scale up as needed.\\n\\nLarger organizations may benefit from Pro or Ultimate plans.\\n\\nUsage-based costs add transparency and control over spending.\\n\\nCarefully assess your team size, usage patterns, and desired features before choosing a plan.'", + "title": "DevRev Pricing" }, { - "id": "ART-15627_KNOWLEDGE_NODE-9", - "text": "that time, DevRev starts charging your credit card for subscription and consumption costs. What is a Platform vs. Support User?\\n\\nPlatform users : Have full access to the Build App and gain visibility across an organization to understand the context between product and customer\\n\\nSupport Users : Users that create or update customer-related records. The per-seat pricing is in addition to the platform license cost and includes customer records (RevO or RevU), plus other related records like", - "title": "DevRev Pricing - for the PLuG on the website" + "id": "ART-13178_KNOWLEDGE_NODE-42", + "text": "Subscription-based, transaction-based, and outcome-based models each align with different use cases. Match your pricing structure to anticipated usage patterns and expected value creation.\\n\\nEvaluate these factors systematically against your specific requirements. The right platform accelerates your success with agentic AI while minimizing implementation challenges and technical debt.\\n\\n## Types of AI agents\\n\\nAgentic AI platforms typically offer various agent types, each suited to different", + "title": "Understanding Agentic AI: Capabilities and Implications for the Future" }, { - "id": "ART-15627_KNOWLEDGE_NODE-2", - "text": "discount. Contact\\xc2\\xa0 support@devrev.ai \\xc2\\xa0to discuss annual pricing. DevRev Support Pricing For detailed pricing and to get started: \\xc2\\xa0 https://devrev.ai/pricing/support What are the Support pricing plans?\\n\\nStarter : $19.99 per user/month (up to 10 users)\\n\\nPro : $59.99 per user/month\\n\\nUltimate : Custom pricing (contact sales)\\n\\nWhat\\'s included in Support Starter ($19.99/month)?\\n\\nAI agents, assistants, and deflection\\n\\nModern omnichannel ticketing platform\\n\\nData", - "title": "DevRev Pricing - for the PLuG on the website" + "id": "ART-4169_KNOWLEDGE_NODE-2", + "text": "Credits\\n---------------------------------\\n\\nAvail Pro-level access: Get $6K in credits at sign-up, plus $4K by completing key onboarding milestones\\n-------------------------------------------------------------------------------------------------------\\n\\n50% Off on Follow-up Commit\\n---------------------------\\n\\nClaim discount on the follow-on one-year commitment within 6 months of credits", + "title": "DevRev For Startups" }, { "id": "ART-15627_KNOWLEDGE_NODE-7", @@ -4484,53 +4484,53 @@ "query": "count tickets with customer CSAT review", "retrievals": [ { - "id": "ART-2011_KNOWLEDGE_NODE-26", - "text": "**CSAT on ticket** > **Configure**.\\n2. Select the channel you want to send the survey on in **Survey channel**.\\n3. Write introductory text for the survey in **Survey introductory text**.\\n\\n ![]()\\n\\n To include the customer's name in the CSAT survey emails, add a key {{customer\\\\_name}} to the introductory text configuration of the CSAT.\\n4. Customize your survey response scale which is shown to the customers to select from in **Survey response scale**.\\n5. To collect additional feedback", - "title": "CSAT on ticket | Automate | Snap-ins | DevRev" + "id": "ART-1004_KNOWLEDGE_NODE-9", + "text": "tickets\\nWHERE EXTRACT(@period FROM created_at) = EXTRACT(@period FROM CURRENT_DATE)\\nGROUP BY engineer_id;\\n-- NOTE: Replace @period with 'DAY', 'WEEK', 'MONTH', or 'QUARTER'.\\n\\n\\nIndividual Customer Satisfaction (CSAT) Score\\n\\n\\n Definition\\n \\n A metric that gauges customer satisfaction with the support provided by a specific engineer, typically collected through surveys.\\n \\n \\n Calculation\\n \\n (Number of satisfied responses for the engineer) / (Total number of", + "title": "Understanding a Support Engineer's Pain Points and KPIs" }, { - "id": "ART-2011_KNOWLEDGE_NODE-24", - "text": "[Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[CSAT on ticket](/docs/automations/csat-tickets)\\n\\nCSAT on ticket\\n==============\\n\\n[CSAT on ticket](/marketplace/csat_on_ticket_dwx7b2bp) offers a simplified approach to measure customer satisfaction level for the ticket resolved with the help of surveys which can be utilized to enhance the overall customer experience.\\n\\nThis snap-in displays a customer satisfaction survey to customers after their ticket gets resolved. The questions can", - "title": "CSAT on ticket | Automate | Snap-ins | DevRev" + "id": "ART-1003_KNOWLEDGE_NODE-20", + "text": "AverageResolutionTime\\nFROM tickets t\\nWHERE t.status = 'resolved'\\nAND EXTRACT(@period FROM t.created_at) = EXTRACT(@period FROM CURRENT_DATE);\\n-- NOTE: Replace @period with 'DAY', 'WEEK', 'MONTH', or 'QUARTER'.\\n\\n\\nCustomer Satisfaction Score (CSAT)\\n\\n\\n Definition\\n \\n A metric that gauges customer satisfaction with the support provided, typically collected through surveys.\\n \\n \\n Calculation\\n \\n (Number of satisfied responses) / (Total number of responses) * 100\\n", + "title": "Understanding a Support Lead's Pain Points and KPIs" }, { - "id": "ART-2011_KNOWLEDGE_NODE-27", - "text": "from the customer along with the scale rating, ensure that the toggle for **Additional Feedback Request** configuration is enabled.\\n6. Write a query for the customers after the survey is populated in **Survey query**.\\n7. Write a message for the customers after the survey response is submitted in **Survey response message**.\\n8. Specify the time for the survey to expire (in minutes) in **Survey expires after**.\\n\\n ![]()\\n9. If you want to send the survey only once, enable the **Send survey", - "title": "CSAT on ticket | Automate | Snap-ins | DevRev" + "id": "ART-1977_KNOWLEDGE_NODE-25", + "text": "Average CSAT rating for ticket Owners.\\n* **SLA breaches by Customer tier**\\n\\n Number of Tickets with SLA breaches for ticket owners.\\n* **Active Tickets**\\n\\n A distribution of tickets in Open and In Progress states and the respective owners.\\n* **Closed Tickets**\\n\\n A distribution of tickets in Closed state and the respective owners.\\n* **SLA breaches**\\n\\n Number of Tickets with SLA breaches for ticket owners.\\n* **Tickets Escalated**\\n\\n Number of tickets that are escalated by", + "title": "Ticket-Team Performance | Support analytics | Computer for Support Teams | DevRev" }, { - "id": "ART-2013_KNOWLEDGE_NODE-27", - "text": "customer's name in the CSAT survey emails, add a key {{customer\\\\_name}} to the introductory text configuration of the CSAT.\\n4. Customize your survey response scale which is shown to the customers to select from in **Survey response scale**.\\n5. To collect additional feedback from the customer along with the scale rating, ensure that the toggle for **Additional Feedback Request** configuration is enabled.\\n6. Write a query for the customers after the survey is populated in **Survey", - "title": "CSAT on conversation | Automate | Snap-ins | DevRev" + "id": "ART-1004_KNOWLEDGE_NODE-8", + "text": "EXTRACT(@period FROM CURRENT_DATE)\\nGROUP BY engineer_id;\\n-- NOTE: Replace @period with 'DAY', 'WEEK', 'MONTH', or 'QUARTER'.\\n\\n\\nIndividual Ticket Volume\\n\\n\\n Definition\\n \\n The number of support tickets handled by a specific engineer, which can help identify workload distribution and skill set alignment.\\n \\n \\n Calculation\\n \\n Total number of tickets handled by the engineer during a specific period\\n \\n \\n\\n\\nSELECT engineer_id, COUNT(*) AS TicketVolume\\nFROM", + "title": "Understanding a Support Engineer's Pain Points and KPIs" }, { - "id": "ART-2011_KNOWLEDGE_NODE-25", - "text": "be customized to align with their requirements.\\n\\nTo manually request CSAT feedback without having to wait until the ticket is resolved, use the /survey command in **Tickets** > **Customer messages**.\\n\\nInstallation\\n------------\\n\\n1. Install the [CSAT on ticket](/marketplace/csat_on_ticket_dwx7b2bp) from the DevRev marketplace.\\n2. Select the workspace to install the snap-in, confirm installation, and click **Deploy snap-in**.\\n\\nConfiguration\\n-------------\\n\\n1. Go to **Snap-ins** >", - "title": "CSAT on ticket | Automate | Snap-ins | DevRev" + "id": "ART-15716_KNOWLEDGE_NODE-34", + "text": "DevRev provides dashboards for CSAT (Customer Satisfaction) scores:\\n\\nClick the Explore Section and search for the Ticket Insights or Ticket Team Performance Dashboard\\n\\nNavigate to find the CSAT widgets.\\n\\nYou can filter by time, team, or agent to get detailed insights.\\n\\nThis gives you a centralized view of customer feedback trends.3. Visualizing Data Using Dashboards and Widgets\\n\\nTo create dashboards:\\n\\nGo to the Vista you are interested in visualizing\\n\\nApply the necessary", + "title": "Support queries related playbook" }, { - "id": "ART-2011_KNOWLEDGE_NODE-28", - "text": "only once per ticket** toggle.\\n10. If you want to automatically send CSAT surveys when tickets reach the *Resolved* stage, keep the **Trigger the CSAT survey based on configured rules** toggle turned off.\\n11. If you want to send CSAT at a specific ticket stage, turn the **Trigger the CSAT survey based on configured rules** toggle on and set up a custom workflow with the following configuration:\\n\\n| **Component** | **Details** |\\n| --- | --- |\\n| Trigger | Update Ticket |\\n| Stage Control |", - "title": "CSAT on ticket | Automate | Snap-ins | DevRev" + "id": "ART-1003_KNOWLEDGE_NODE-24", + "text": "= EXTRACT(@period FROM CURRENT_DATE))) AS TicketBacklog\\nFROM tickets\\nWHERE status != 'closed'\\nAND EXTRACT(@period FROM created_at) = EXTRACT(@period FROM CURRENT_DATE);\\n-- NOTE: Replace @period with 'DAY', 'WEEK', 'MONTH', or 'QUARTER'.\\n\\n\\nEscalation Rate\\n\\n\\n Definition\\n \\n The percentage of support tickets that require escalation to higher-level support or other departments.\\n \\n \\n Calculation\\n \\n (Total number of escalated tickets) / (Total number of tickets)", + "title": "Understanding a Support Lead's Pain Points and KPIs" }, { - "id": "ART-2011_KNOWLEDGE_NODE-29", - "text": "If Else |\\n| Condition | When: Ticket Updated / Output > Stage > Name (Make sure that the stage name is in snake case.) |\\n| Action | Update Ticket |\\n| ID | Ticket Updated > Output > Id |\\n| List of Integrations | CSAT |\\n| Integrations | App CSAT Send Survey > Yes |\\n\\n1. Click **Save** > **Next** and deploy the snap-in.\\n\\n[PreviousCSAT on conversation](/docs/automations/csat-conv)[NextCSV work item uploader](/docs/automations/csv-work-item-uploader)\\n\\n#### On this page\\n\\n*", + "id": "ART-2011_KNOWLEDGE_NODE-26", + "text": "**CSAT on ticket** > **Configure**.\\n2. Select the channel you want to send the survey on in **Survey channel**.\\n3. Write introductory text for the survey in **Survey introductory text**.\\n\\n ![]()\\n\\n To include the customer's name in the CSAT survey emails, add a key {{customer\\\\_name}} to the introductory text configuration of the CSAT.\\n4. Customize your survey response scale which is shown to the customers to select from in **Survey response scale**.\\n5. To collect additional feedback", "title": "CSAT on ticket | Automate | Snap-ins | DevRev" }, { - "id": "ART-2011_KNOWLEDGE_NODE-5", - "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", - "title": "CSAT on ticket | Automate | Snap-ins | DevRev" + "id": "ART-1004_KNOWLEDGE_NODE-7", + "text": "time it takes for a specific support engineer to resolve a customer issue from the moment it\\xe2\\x80\\x99s reported.\\n \\n \\n Calculation\\n \\n (Sum of resolution times for all resolved tickets by the engineer) / (Total number of resolved tickets by the engineer)\\n \\n \\n\\n\\nSELECT engineer_id, AVG(TIMESTAMPDIFF(MINUTE, t.created_at, t.resolved_at)) AS IndividualAverageResolutionTime\\nFROM tickets t\\nWHERE t.status = 'resolved'\\nAND EXTRACT(@period FROM t.created_at) =", + "title": "Understanding a Support Engineer's Pain Points and KPIs" }, { - "id": "ART-1977_KNOWLEDGE_NODE-25", - "text": "Average CSAT rating for ticket Owners.\\n* **SLA breaches by Customer tier**\\n\\n Number of Tickets with SLA breaches for ticket owners.\\n* **Active Tickets**\\n\\n A distribution of tickets in Open and In Progress states and the respective owners.\\n* **Closed Tickets**\\n\\n A distribution of tickets in Closed state and the respective owners.\\n* **SLA breaches**\\n\\n Number of Tickets with SLA breaches for ticket owners.\\n* **Tickets Escalated**\\n\\n Number of tickets that are escalated by", - "title": "Ticket-Team Performance | Support analytics | Computer for Support Teams | DevRev" + "id": "ART-1004_KNOWLEDGE_NODE-12", + "text": "The percentage of support tickets resolved by a support engineer during the first interaction with the customer, which can indicate the engineer\\xe2\\x80\\x99s efficiency and problem-solving abilities.\\n \\n \\n Calculation\\n \\n (Total number of tickets resolved on first contact by the engineer) / (Total number of tickets handled by the engineer) * 100\\n \\n \\n\\n\\nTraining Hours per Employee\\n\\n\\n Definition\\n \\n The average number of training hours completed by a", + "title": "Understanding a Support Engineer's Pain Points and KPIs" }, { - "id": "ART-2011_KNOWLEDGE_NODE-4", - "text": "insights](/docs/dashboards/conversation-insights)\\n - [Conversation-SLA Analytics](/docs/dashboards/conversation-sla-analytics)\\n - [Conversation-Team Performance](/docs/dashboards/conversation-team-performance)\\n - [Ticket insights](/docs/dashboards/ticket-insights)\\n - [Ticket-SLA Analytics](/docs/dashboards/ticket-sla-analytics)\\n - [Ticket-Team Performance](/docs/dashboards/ticket-team-performance)\\n + [Conversations](/docs/product/conversation)\\n\\n - [Conversation to", + "id": "ART-2011_KNOWLEDGE_NODE-25", + "text": "be customized to align with their requirements.\\n\\nTo manually request CSAT feedback without having to wait until the ticket is resolved, use the /survey command in **Tickets** > **Customer messages**.\\n\\nInstallation\\n------------\\n\\n1. Install the [CSAT on ticket](/marketplace/csat_on_ticket_dwx7b2bp) from the DevRev marketplace.\\n2. Select the workspace to install the snap-in, confirm installation, and click **Deploy snap-in**.\\n\\nConfiguration\\n-------------\\n\\n1. Go to **Snap-ins** >", "title": "CSAT on ticket | Automate | Snap-ins | DevRev" } ] @@ -4540,54 +4540,54 @@ "query": "save filters in support portal", "retrievals": [ { - "id": "ART-1978_KNOWLEDGE_NODE-11", - "text": "[CSV comments uploader](/docs/automations/csv-comments-uploader)\\n - [CSV commands uploader](/docs/automations/csv-commands-uploader)\\n - [Descope identity validation](/docs/automations/descope-identity-validation)\\n - [Effort logger](/docs/automations/effort-logger)\\n - [HTTP archive file upload & sanitization](/docs/automations/har-sanitization)\\n - [Link preview](/docs/automations/link-preview)\\n - [Org tags sync](/docs/automations/org-tags-sync)\\n - [Search", + "id": "ART-1978_KNOWLEDGE_NODE-37", + "text": "portal\\n-----------------------------\\n\\nYou can customize the look of your support portal to match your branding goals.\\n\\n1. Go to **Settings** > **Plug & Portal** > **Portal Settings**.\\n2. Under **Configuration**, enter your site name and upload your company logo.\\n * (Optional) Enable the footer and add your social media and text links in their respective fields.\\n * (Optional) Enable **Search** to get answers in search results.\\n * (Optional) Enable Plug widget to facilitate", "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-15716_KNOWLEDGE_NODE-35", - "text": "filters\\n\\nYou can create a simple report by clicking on the Smart Icon at the top right corner and selecting \\'Create New report.\\' Create a dashboard and a widget by giving a name. Select the dimensions and measures and finalize the visualization of the widget and click on the preview widget to test it out.\\n\\nEach widget can be customized with filters, groupings, and visualizations (charts, tables, etc.)4. Create a dashboard for tracking ticket resolution time\\n\\nCreate a new dashboard in", - "title": "Support queries related playbook" + "id": "ART-1294_KNOWLEDGE_NODE-6", + "text": "your filters.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | devrev snap_in_package logs --after \"2023-06-06T00:00:00Z\" --filters \\'{}\\' | jq -r \\'[\"total\", .log_summary.total.value, \"next_cursor\", .next_cursor], (.logs[] | [.level,.timestamp,.msg]) | @tsv\\' | code - |\\n```\\n\\nTroubleshooting\\n---------------\\n\\n### Error \\xe2\\x80\\x9cYou are not authorized to perform this operation\\xe2\\x80\\x9d\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | devrev snap_in draft |\\n```\\n\\n```\\n| |\\n| --- |\\n| POST", + "title": "Debugging | DevRev | Docs" }, { - "id": "ART-1978_KNOWLEDGE_NODE-37", - "text": "portal\\n-----------------------------\\n\\nYou can customize the look of your support portal to match your branding goals.\\n\\n1. Go to **Settings** > **Plug & Portal** > **Portal Settings**.\\n2. Under **Configuration**, enter your site name and upload your company logo.\\n * (Optional) Enable the footer and add your social media and text links in their respective fields.\\n * (Optional) Enable **Search** to get answers in search results.\\n * (Optional) Enable Plug widget to facilitate", - "title": "Customer portal | Computer for Support Teams | DevRev" + "id": "ART-10697_KNOWLEDGE_NODE-31", + "text": "boosting engagement and reducing repetitive inquiries. To enable Plug, go to **Settings > Portal Settings**, activate Plug widget, and **Save** and **Publish**.\\n\\n![]()\\xc2\\xa0For more information about *Support App*, refer to the following articles: \\xe2\\x80\\xa3 [Support snap-ins | Support](/docs/product/snapins-support) \\xe2\\x80\\xa3 [Support best practices | Support](/docs/product/support-bp) \\xe2\\x80\\xa3 [Support](/docs/product/support) \\xe2\\x80\\xa3", + "title": "February 2025 | Changelog | DevRev" }, { - "id": "ART-10697_KNOWLEDGE_NODE-30", - "text": "New filtering options let agents view tickets tied to specific articles, while updated analytics reveal the most and least linked articles, improving knowledge sharing and support strategy.\\n* Plug is our live chat widget designed for real-time conversations in your customer portal. It reduces ticket volume by resolving common queries instantly, enhancing self-service and speeding up issue resolution. Use spotlight cards or banners to notify customers about incidents, updates, or promotions,", - "title": "February 2025 | Changelog | DevRev" + "id": "ART-1645_KNOWLEDGE_NODE-22", + "text": "`\"2020-10-20T00:00:00Z\"` (RFC3339) \\ndate| `\"2020-10-20\"` (YYYY-MM-DD) \\nid| `\"don:core:dvrv-us-1:devo/test:issue/1\"` \\n \\nThe list variants of all the supported custom field types are also supported. In the example above, the `impacted_environments` field is a list of enum values.\\n\\n## Filter DevRev objects\\n\\n#####\\n\\nTo demonstrate filtering capabilities, consider finding all bugs in the production environment that had a customer impact.\\n\\nThis translates to filtering _issue_ objects", + "title": "Object customization (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1452_KNOWLEDGE_NODE-4", - "text": "users.\\n\\nstageobjectOptional\\n\\nThe filter for stages.\\n\\nShow property\\n\\nstaged_infoobjectOptional\\n\\nShow property\\n\\nstatelist of stringsOptional\\n\\nFilters for work with any of the provided states.\\n\\nsync_metadataobjectOptional\\n\\nShow 4 properties\\n\\ntagslist of stringsOptional\\n\\nFilters for work with any of the provided tags.\\n\\ntarget_close_dateobjectOptional\\n\\nProvides ways to specify date ranges on objects.\\n\\nShow 2 variants\\n\\nticketobjectOptional\\n\\nShow 13 properties\\n\\n###", - "title": "Export Works (POST) \u2014 DevRev | Docs" + "id": "ART-15716_KNOWLEDGE_NODE-30", + "text": "further investigation.\\n\\nSetting up a custom domain for my support portal\\n\\nThis can be handled by our team. Kindly reach out to us, and we\\xe2\\x80\\x99ll be happy to assist you with setting up a custom domain. Would you like us to create a ticket for this?\\n\\nAdding custom job title in dev users\\n\\nThis can be handled by our team. Kindly reach out to us, and we\\xe2\\x80\\x99ll be happy to assist you with setting up a custom job title. Would you like us to create a ticket for this?\\n\\nApplying", + "title": "Support queries related playbook" }, { - "id": "ART-1952_KNOWLEDGE_NODE-34", - "text": "filters from your vista will be transferred to your widget definition. If any filters are not carried over, a message will indicate the reason, and you will have the option to add the missing vista filters to your widget filter definition.\\n* **Widget Filters**: These filters are for your widget definition and include all filters from the vista, as well as other objects.\\n\\n![]()\\n\\nThe filters and dimensions are interlinked. To have filterable values, you must select them in dimensions as", - "title": "Vista Reports | Vistas | Computer by DevRev | DevRev" + "id": "ART-1547_KNOWLEDGE_NODE-519", + "text": "Optional\\n\\nFilters for works with selected sync statuses.\\n\\nAllowed values: failed succeeded\\nsync_metadata.last_sync_out.sync_unit string Optional\\n\\nFilters for works modified with selected sync units.\\n\\nsync_metadata.origin_system string Optional\\n\\nFilters for issues synced from this specific origin system.\\n\\ntags string Optional\\n\\nFilters for work with any of the provided tags.\\n\\nticket.channels enum Optional\\n\\nFilters for tickets with any of the provided channels.\\n\\nAllowed", + "title": "Get Post (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-10697_KNOWLEDGE_NODE-31", - "text": "boosting engagement and reducing repetitive inquiries. To enable Plug, go to **Settings > Portal Settings**, activate Plug widget, and **Save** and **Publish**.\\n\\n![]()\\xc2\\xa0For more information about *Support App*, refer to the following articles: \\xe2\\x80\\xa3 [Support snap-ins | Support](/docs/product/snapins-support) \\xe2\\x80\\xa3 [Support best practices | Support](/docs/product/support-bp) \\xe2\\x80\\xa3 [Support](/docs/product/support) \\xe2\\x80\\xa3", - "title": "February 2025 | Changelog | DevRev" + "id": "ART-1562_KNOWLEDGE_NODE-519", + "text": "Optional\\n\\nFilters for works with selected sync statuses.\\n\\nAllowed values: failed succeeded\\nsync_metadata.last_sync_out.sync_unit string Optional\\n\\nFilters for works modified with selected sync units.\\n\\nsync_metadata.origin_system string Optional\\n\\nFilters for issues synced from this specific origin system.\\n\\ntags string Optional\\n\\nFilters for work with any of the provided tags.\\n\\nticket.channels enum Optional\\n\\nFilters for tickets with any of the provided channels.\\n\\nAllowed", + "title": "Get (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1978_KNOWLEDGE_NODE-10", - "text": "data](/docs/automations/bulk-delete)\\n - [Bulk work item uploader](/docs/automations/bulk-upload)\\n - [Commands surface expander](/docs/automations/commands-surface-expander)\\n - [Convergence](/docs/automations/converge)\\n - [Conversation reminder](/docs/automations/conversation-reminder)\\n - [CSAT on conversation](/docs/automations/csat-conv)\\n - [CSAT on ticket](/docs/automations/csat-tickets)\\n - [CSV work item uploader](/docs/automations/csv-work-item-uploader)\\n -", - "title": "Customer portal | Computer for Support Teams | DevRev" + "id": "ART-1036_KNOWLEDGE_NODE-4", + "text": "- Expanding support beyond email and customer portal to integrate directly with their product\\n2. **Gathering more user context** - Improving access to in-app user behavior to enable more effective issue resolution\\n3. **Connecting teams** - Bringing support and product teams closer together to accelerate response times and feature development\\n\\nThe solution: DevRev support and conversational product management through", + "title": "Shipsy elevates logistics support with AI-powered automation and cross team collaboration" }, { - "id": "ART-1978_KNOWLEDGE_NODE-27", - "text": "portal\\n-------------------------------------\\n\\n* **Enhanced customer experience**: Customers can access self-service options, track their tickets, and receive timely updates, leading to improved satisfaction.\\n* **Efficient ticket management**: The portal streamlines the ticket creation, assignment, and tracking process, ensuring faster resolution times.\\n* **Seamless, timely, and transparent communication**: Customers and support teams can engage in threaded conversations within the portal,", - "title": "Customer portal | Computer for Support Teams | DevRev" + "id": "ART-1564_KNOWLEDGE_NODE-518", + "text": "Optional\\n\\nFilters for works with selected sync statuses.\\n\\nAllowed values: failed succeeded\\nsync_metadata.last_sync_out.sync_unit string Optional\\n\\nFilters for works modified with selected sync units.\\n\\nsync_metadata.origin_system string Optional\\n\\nFilters for issues synced from this specific origin system.\\n\\ntags string Optional\\n\\nFilters for work with any of the provided tags.\\n\\nticket.channels enum Optional\\n\\nFilters for tickets with any of the provided channels.\\n\\nAllowed", + "title": "List (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1978_KNOWLEDGE_NODE-13", - "text": "group](/docs/automations/set-user-preference)\\n - [SLA status change Slack notifier](/docs/automations/sla-change-notifier)\\n - [Slash commands](/docs/automations/slash-commands)\\n - [Spam Shield](/docs/automations/spam-shield)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field migrator](/docs/automations/ticket-issue-field-migrator)\\n - [Ticket", - "title": "Customer portal | Computer for Support Teams | DevRev" + "id": "ART-4159_KNOWLEDGE_NODE-8", + "text": "with no human intervention.\\n\\n50%\\n\\nreduction in customer support costs.\\n\\n10\\n\\nhours saved per employee, every week.\\n\\n![]()\\n\\n![]()\\n\\n![]()\\n\\n![]()\\n\\n![]()\\n\\n![]()\\n\\n![]()\\n\\nBe the first to try Computer\\n\\nYou read all the way down here, so don\\xe2\\x80\\x99t try telling us you\\xe2\\x80\\x99re not interested. Sign up for the waitlist. Then never look back.\\n\\nSIGN UP\\n\\nNews\\n\\n[![]()\\n\\nBlog\\n\\nSep 09, 2025\\n\\nThe conversational computer: towards human", + "title": "Meet Computer, by DevRev. Your new AI teammate." } ] }, @@ -4596,54 +4596,54 @@ "query": "unable to convert conversation into ticket and can't fill customer information", "retrievals": [ { - "id": "ART-4271_KNOWLEDGE_NODE-26", - "text": "conversation metadata including: \\n * Source channel\\n * Customer account information\\n * External members added as **reported by** on the ticket\\n * An AI-generated ticket title and description based on customer messages.\\n\\n### How to convert Conversations to Tickets\\n\\n**Manual Conversion**\\n\\nTo manually convert a conversation to a ticket:\\n\\n 1. Open the conversation record pane view.\\n 2. Click **Convert to Ticket** to initiate the conversion.\\n\\n**Automated Conversion", + "id": "ART-4271_KNOWLEDGE_NODE-29", + "text": "end user.\\n\\n## Why you should convert a Conversation to a Ticket\\n\\nConsider converting a conversation to a ticket in these scenarios:\\n\\n * **Complex issues** : When a customer inquiry requires in-depth investigation that can't be resolved in a quick conversation.\\n * **Cross-team collaboration** : Issues requiring input from multiple departments or specialists.\\n * **Escalation needs** : When a conversation needs to be escalated to a higher support tier.\\n * **Feature requests** :", "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" }, { - "id": "ART-4271_KNOWLEDGE_NODE-31", - "text": "AI-handled conversation reaches its capability limits and needs human expertise.\\n * **Extended troubleshooting** : Issues requiring multiple steps or follow-ups over time.\\n\\n## Key information\\n\\n * **Channel support** : Currently, the conversion feature is only available for PLuG and Slack conversations. Other channels still use the traditional **Link Ticket** functionality.\\n\\n * **CSAT surveys** : CSAT surveys are not sent when a conversation is converted to a ticket. Surveys are only", + "id": "ART-4271_KNOWLEDGE_NODE-33", + "text": "remains archived.\\n\\n[PreviousConversations](/docs/product/conversation)[NextTickets](/docs/product/tickets)\\n\\n#### On this page\\n\\n * How Conversation conversion works\\n * How to convert Conversations to Tickets\\n * End user experience\\n * PLuG widget experience\\n * Slack experience\\n * Why you should convert a Conversation to a Ticket\\n * Key information\\n\\n[Enterprise grade security to protect customer dataLearn more about it.](/blog/soc-compliance?)\\n\\nProduct\\n\\n *", "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" }, { - "id": "ART-6174_KNOWLEDGE_NODE-28", - "text": "tickets\\n--------------------------------\\n\\n**Manual conversion**\\n\\nGo to the conversation record pane and select **Convert to Ticket** to create a new ticket from the conversation.\\n\\n![]()\\n\\n**Automated conversion via workflows**\\n\\nSet up automated [workflows](./workflow-engine) to convert conversations to tickets based on specific triggers:\\n\\n* When a conversation meets defined criteria\\n* When the AI agent identifies an issue requiring escalation\\n* According to custom business", - "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" + "id": "ART-2024_KNOWLEDGE_NODE-27", + "text": "help now... ask again in 5d\\n\\nSample response:\\n\\n> I am unable to assist you at the moment, however please reach out to me again in five days and I will be happy to help you.\\n\\n### Summarize\\n\\nUsing the summarize command, you can sum up the entire conversation. It applies to the following:\\n\\n* Conversation\\n* Tickets\\n* Issues\\n* Part\\n* Workspace\\n* Customer\\n* Account\\n\\nSample response:\\n\\n> **Summary:**\\n>\\n> * Rahul from DummyOrg is having difficulty installing the Plug Widget.\\n> *", + "title": "Slash commands | Automate | Snap-ins | DevRev" }, { - "id": "ART-6174_KNOWLEDGE_NODE-26", - "text": "functionality is replaced with a new **Convert to Ticket** feature. Currently, the conversion feature is available only for Plug and Slack conversations. Other channels still use the traditional **Link Ticket** functionality.\\n\\nConversion cannot be undone. Once a conversation is converted to a ticket, this action is permanent and the conversation remains archived.\\n\\nConversation conversion process\\n-------------------------------\\n\\nWhen you convert a conversation to a ticket, the following", - "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" + "id": "ART-4271_KNOWLEDGE_NODE-24", + "text": "[Support](/docs/product/support?)\\n 4. [Conversations](/docs/product/conversation?)\\n 5. [Convert Conversations to Tickets](/docs/product/Conversation-Tickets?)\\n\\n# Convert Conversations to Tickets\\n\\nYou can now convert conversations from PLuG and Slack directly into tickets. Previously, conversations were only linked to tickets. This update streamlines workflows and enhances the customer experience.\\n\\nFor conversations originating from PLuG or Slack, the **Link to Ticket** functionality", + "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" }, { - "id": "ART-4271_KNOWLEDGE_NODE-29", - "text": "end user.\\n\\n## Why you should convert a Conversation to a Ticket\\n\\nConsider converting a conversation to a ticket in these scenarios:\\n\\n * **Complex issues** : When a customer inquiry requires in-depth investigation that can't be resolved in a quick conversation.\\n * **Cross-team collaboration** : Issues requiring input from multiple departments or specialists.\\n * **Escalation needs** : When a conversation needs to be escalated to a higher support tier.\\n * **Feature requests** :", - "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" + "id": "ART-1508_KNOWLEDGE_NODE-27", + "text": "for tickets that are associated with any of the brands.\\n\\nchannelslist of stringsOptional\\n\\nFilters for conversations that are associated with any of the\\nchannels.\\n\\ncustom\\\\_fieldsobjectOptional\\n\\nFilters for custom fields.\\n\\nfirstintegerOptional\\n\\nThe number of conversation items to return. The default is \\'50\\', the\\nmaximum is \\'5000\\'.\\n\\ngrouplist of stringsOptional\\n\\nFilters for conversation that belong to the given groups.\\n\\nis\\\\_creator\\\\_verifiedbooleanOptional\\n\\nFilters for", + "title": "Export Conversations | DevRev | Docs" }, { - "id": "ART-6174_KNOWLEDGE_NODE-27", - "text": "happens automatically:\\n\\n* The original conversation moves to *Archived* stage and cannot be reopened.\\n* A new ticket is created with:\\n + All internal discussions and customer messages copied from the conversation\\n + Equivalent metadata as the conversation, including source channel, customer account information, and external members added as **reported by** on the ticket\\n + An AI-generated ticket title and description based on customer messages\\n\\nConvert conversations to", + "id": "ART-6174_KNOWLEDGE_NODE-28", + "text": "tickets\\n--------------------------------\\n\\n**Manual conversion**\\n\\nGo to the conversation record pane and select **Convert to Ticket** to create a new ticket from the conversation.\\n\\n![]()\\n\\n**Automated conversion via workflows**\\n\\nSet up automated [workflows](./workflow-engine) to convert conversations to tickets based on specific triggers:\\n\\n* When a conversation meets defined criteria\\n* When the AI agent identifies an issue requiring escalation\\n* According to custom business", "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" }, { - "id": "ART-6174_KNOWLEDGE_NODE-31", - "text": "Cross-team collaboration needs\\n* Escalation requirements\\n* Feature requests\\n* Bug reports\\n* SLA tracking requirements\\n* Documentation needs\\n* Resource allocation requirements\\n* AI capability limitations\\n* Extended troubleshooting needs\\n\\nSupport workflows\\n-----------------\\n\\n* **CSAT surveys**: CSAT surveys are not sent when a conversation is converted to a ticket. Surveys are only triggered when a conversation is resolved, not when it's archived through conversion.\\n* **SLA", + "id": "ART-6174_KNOWLEDGE_NODE-0", + "text": "b\"Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CMD`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n +", "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" }, { - "id": "ART-6174_KNOWLEDGE_NODE-32", - "text": "handling**: Conversation and ticket SLAs operate independently. When converting:\\n\\n + The new ticket starts with its own response and resolution SLA timers\\n + All active SLA metrics on the original conversation are marked as completed\\n\\n[PreviousConversations](/docs/product/conversation)[NextTickets](/docs/product/tickets)\\n\\n#### On this page\\n\\n* [Conversation conversion process](#conversation-conversion-process)\\n* [Convert conversations to tickets](#convert-conversations-to-tickets)\\n*", - "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" + "id": "ART-4271_KNOWLEDGE_NODE-23", + "text": "22 to May 22, 2023](/docs/changelog/_2023-05-22?)\\n\\n * [Developer](https://developer.devrev.ai/?)\\n * [DevRevU](/docs/DevRevU?)\\n\\n * [Product demos](/docs/DevRevU/demos?)\\n\\nOn this page\\n\\n * How Conversation conversion works\\n * How to convert Conversations to Tickets\\n * End user experience\\n * PLuG widget experience\\n * Slack experience\\n * Why you should convert a Conversation to a Ticket\\n * Key information\\n\\n 1. [Documentation](/docs?)\\n 2. 3.", + "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" }, { - "id": "ART-6174_KNOWLEDGE_NODE-30", - "text": "there.\\n\\n![]()\\n\\nSlack end-user experience\\n-------------------------\\n\\nWhen a conversation is converted to a ticket in Slack:\\n\\n* Ticket information appears within the same thread.\\n* All subsequent messages sync with the newly created ticket.\\n* The transition is seamless for the end user.\\n\\nConversation conversion scenarios\\n---------------------------------\\n\\nConsider converting a conversation to a ticket in these scenarios:\\n\\n* Complex issues requiring in-depth investigation\\n*", - "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" + "id": "ART-1981_KNOWLEDGE_NODE-26", + "text": "a small number of tags to help categorize tickets. For example, at DevRev we have the following: bug, feature-request, other-request, question, and incident.\\n* Designate one or more customer experience engineers to be on call. Add them to the **Support** group inside **Settings > Groups** and as default owner in the **Support Routing** snap-in. Default owners are notified through email and the DevRev app as soon as a new conversation is started.\\n\\nMonitor the inbox\\n-----------------\\n\\n*", + "title": "Support best practices | Computer for Support Teams | DevRev" }, { - "id": "ART-6174_KNOWLEDGE_NODE-24", - "text": "[Product demos](/docs/DevRevU/demos)\\n\\nOn this page\\n\\n* [Conversation conversion process](#conversation-conversion-process)\\n* [Convert conversations to tickets](#convert-conversations-to-tickets)\\n* [Plug widget end-user experience](#plug-widget-enduser-experience)\\n* [Slack end-user experience](#slack-enduser-experience)\\n* [Conversation conversion scenarios](#conversation-conversion-scenarios)\\n* [Support workflows](#support-workflows)\\n\\n1. [Documentation](/docs)\\n3. [Computer for Support", - "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" + "id": "ART-4271_KNOWLEDGE_NODE-26", + "text": "conversation metadata including: \\n * Source channel\\n * Customer account information\\n * External members added as **reported by** on the ticket\\n * An AI-generated ticket title and description based on customer messages.\\n\\n### How to convert Conversations to Tickets\\n\\n**Manual Conversion**\\n\\nTo manually convert a conversation to a ticket:\\n\\n 1. Open the conversation record pane view.\\n 2. Click **Convert to Ticket** to initiate the conversion.\\n\\n**Automated Conversion", + "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" } ] }, @@ -4652,8 +4652,8 @@ "query": "control email notifications for new conversation", "retrievals": [ { - "id": "ART-1953_KNOWLEDGE_NODE-30", - "text": "linked to a conversation\\n-------------------------------\\n\\n* **Trigger**: A ticket is linked to an existing conversation.\\n* **Action**: The system sends out a notification with the linked ticket number.\\n* **Sender**: {Company\\\\_Name} [support@yourdomain.com](mailto:support@yourdomain.com)\\n* **Subject**: \"\"\\n\\n![]()\\n\\nThis email is only sent to the organizations with [Convergence snap-in](https://docs.devrev.ai/automations/converge)\\n\\nChange of", + "id": "ART-1953_KNOWLEDGE_NODE-28", + "text": "**Configure** > **Notification Sender Email Address** and select the required option.\\n\\nReply to the customer on a conversation\\n---------------------------------------\\n\\n* **Trigger**: When a reply is made to a customer on a conversation and they are not online anymore.\\n* **Action**: The system sends out a notification to the customer with the recent messages while highlighting the latest message that triggered the email.\\n* **Sender**: {Sender\\\\_Name}", "title": "Customer email notifications | Computer by DevRev | DevRev" }, { @@ -4662,44 +4662,44 @@ "title": "Customer email notifications | Computer by DevRev | DevRev" }, { - "id": "ART-1953_KNOWLEDGE_NODE-32", - "text": "\\xe2\\x80\\x9cUpdate on your Conversation with {Company\\\\_Name}\"\\n\\n![]()\\n\\nThis email is only sent to organizations that have installed [Convergence snap-in](https://docs.devrev.ai/automations/converge).\\n\\nCSAT survey for conversation/ticket\\n-----------------------------------\\n\\n* **Trigger**: A CSAT survey is sent for a conversation or ticket.\\n* **Action**: The system sends out a notification with the ticket/conversation number and CSAT form.\\n* **Sender**: DevRev", - "title": "Customer email notifications | Computer by DevRev | DevRev" + "id": "ART-1983_KNOWLEDGE_NODE-30", + "text": "creation, go to **Settings** > **Turing** > **Q&As** > **Preferences** on the top right and enable **Auto generate Q&As** and click **Save**.\\n\\n![]()\\n\\nYou need to be an admin to set preferences.\\n\\n![]()\\n\\nWhen Computer creates a new Q&A, the conversation's owner receives a notification. It's their chance to ensure accuracy before deciding whether to *Publish* them if needed or *Archive* if not.\\n\\nOnce approved and published, these Q&As enter Computer's knowledge base, ready to tackle", + "title": "Questions & answers | Computer for Support Teams | DevRev" }, { - "id": "ART-1953_KNOWLEDGE_NODE-28", - "text": "**Configure** > **Notification Sender Email Address** and select the required option.\\n\\nReply to the customer on a conversation\\n---------------------------------------\\n\\n* **Trigger**: When a reply is made to a customer on a conversation and they are not online anymore.\\n* **Action**: The system sends out a notification to the customer with the recent messages while highlighting the latest message that triggered the email.\\n* **Sender**: {Sender\\\\_Name}", - "title": "Customer email notifications | Computer by DevRev | DevRev" + "id": "ART-1954_KNOWLEDGE_NODE-24", + "text": "triaging](#filters-and-tools-for-triaging)\\n* [Notification priorities and channels](#notification-priorities-and-channels)\\n* [Email and push notifications](#email-and-push-notifications)\\n* [Personalizing notifications](#personalizing-notifications)\\n* [Collision and prioritization](#collision-and-prioritization)\\n* [Follow conversations](#follow-conversations)\\n* [Daily email digest](#daily-email-digest)\\n\\n1. [Documentation](/docs)\\n3. [Computer by", + "title": "Updates | Computer by DevRev | DevRev" }, { - "id": "ART-1953_KNOWLEDGE_NODE-31", - "text": "stage of a ticket/conversation\\n----------------------------------------\\n\\n* **Trigger**: When there\\'s a change of stage in a ticket or conversation.\\n* **Action**: The system sends out a notification detailing the Ticket/Conversation number and stage change.\\n* **Sender**: {Company\\\\_Name} [support@yourdomain.com](mailto:support@yourdomain.com)\\n* **Subject**:\\n + For ticket: \"[{Company\\\\_Name}] Update on TKT-XXX - Ticket Title\"\"\"\\n + For conversations:", - "title": "Customer email notifications | Computer by DevRev | DevRev" + "id": "ART-1790_KNOWLEDGE_NODE-83", + "text": "object.\\nnotifications list of objects Required\\nThe list of notifications to send.\\nShow variant\\nResponse.\\n\\nThis endpoint returns a map from strings to any.\\nAPI Reference conversations Create.\\n\\nPOST https:// api.devrev.ai / conversations.create\\nCreates a conversation.\\nRequest.\\n\\nThis endpoint expects an object.\\ntype \"support\" Required\\ndescription string Optional\\nDescription for the conversation.\\ngroup string Optional\\nThe group that the conversation is associated with.\\nis_spam", + "title": "List Post \u2014 DevRev | Docs" }, { - "id": "ART-1953_KNOWLEDGE_NODE-36", - "text": "conversation](#ticket-linked-to-a-conversation)\\n* [Change of stage of a ticket/conversation](#change-of-stage-of-a-ticketconversation)\\n* [CSAT survey for conversation/ticket](#csat-survey-for-conversationticket)\\n* [Auto customer reply](#auto-customer-reply)\\n* [Auto reply on email](#auto-reply-on-email)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer", - "title": "Customer email notifications | Computer by DevRev | DevRev" + "id": "ART-1954_KNOWLEDGE_NODE-29", + "text": "notifications.\\n\\n* Unread vs All: Toggle between **Unread** and **All** updates, with **Unread** as the default to achieve inbox zero.\\n* Subscription management: Unsubscribe using the bell icon on hover if a specific record is no longer relevant.\\n* Mark as read: Use the check mark icon on hover to mark notifications as read.\\n* Filters: Filter notifications by record type (such as ticket or Issue), notification type (mentions, comments, assignments, etc.), or notified by (select from your", + "title": "Updates | Computer by DevRev | DevRev" }, { - "id": "ART-1953_KNOWLEDGE_NODE-4", - "text": "insights](/docs/dashboards/conversation-insights)\\n - [Conversation-SLA Analytics](/docs/dashboards/conversation-sla-analytics)\\n - [Conversation-Team Performance](/docs/dashboards/conversation-team-performance)\\n - [Ticket insights](/docs/dashboards/ticket-insights)\\n - [Ticket-SLA Analytics](/docs/dashboards/ticket-sla-analytics)\\n - [Ticket-Team Performance](/docs/dashboards/ticket-team-performance)\\n + [Conversations](/docs/product/conversation)\\n\\n - [Conversation to", - "title": "Customer email notifications | Computer by DevRev | DevRev" + "id": "ART-1301_KNOWLEDGE_NODE-88", + "text": "Required\\nThe list of notifications to send.\\nShow variant\\nResponse.\\n\\nThis endpoint returns a map from strings to any.\\nAPI Reference conversations Create.\\n\\nPOST https:// api.devrev.ai / conversations.create\\nCreates a conversation.\\nRequest.\\n\\nThis endpoint expects an object.\\ntype \"support\" Required\\ndescription string Optional\\nDescription for the conversation.\\ngroup string Optional\\nThe group that the conversation is associated with.\\nis_spam boolean Optional\\nWhether the", + "title": "Delete \u2014 DevRev | Docs" }, { - "id": "ART-1953_KNOWLEDGE_NODE-24", - "text": "conversation](#reply-to-the-customer-on-a-conversation)\\n* [Reply to the customer on a ticket](#reply-to-the-customer-on-a-ticket)\\n* [Ticket linked to a conversation](#ticket-linked-to-a-conversation)\\n* [Change of stage of a ticket/conversation](#change-of-stage-of-a-ticketconversation)\\n* [CSAT survey for conversation/ticket](#csat-survey-for-conversationticket)\\n* [Auto customer reply](#auto-customer-reply)\\n* [Auto reply on email](#auto-reply-on-email)\\n\\n1. [Documentation](/docs)\\n3.", - "title": "Customer email notifications | Computer by DevRev | DevRev" + "id": "ART-3068_KNOWLEDGE_NODE-24", + "text": "[Documentation](/docs)\\n3. [Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[Conversation reminder](/docs/automations/conversation-reminder)\\n\\nConversation reminder\\n=====================\\n\\nThe Conversation Reminder Snap-in is designed to automatically send a\\nnotification to the customer who initiated the conversation if it remains in\\n\"Waiting on User\" stage for an extended period, as defined in the configured\\ntime settings. The notification message sent to the customer can be", + "title": "Conversation reminder | Automate | Snap-ins | DevRev" }, { - "id": "ART-1820_KNOWLEDGE_NODE-3", - "text": "Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/beta/api-reference/notifications/content-template-list-post)[#### Create Conversation\\n\\nNext](/beta/api-reference/conversations/create)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Send Notifications | DevRev | Docs" + "id": "ART-1953_KNOWLEDGE_NODE-30", + "text": "linked to a conversation\\n-------------------------------\\n\\n* **Trigger**: A ticket is linked to an existing conversation.\\n* **Action**: The system sends out a notification with the linked ticket number.\\n* **Sender**: {Company\\\\_Name} [support@yourdomain.com](mailto:support@yourdomain.com)\\n* **Subject**: \"\"\\n\\n![]()\\n\\nThis email is only sent to the organizations with [Convergence snap-in](https://docs.devrev.ai/automations/converge)\\n\\nChange of", + "title": "Customer email notifications | Computer by DevRev | DevRev" }, { - "id": "ART-1953_KNOWLEDGE_NODE-35", - "text": "installed [Auto-reply snap-in](https://docs.devrev.ai/automations/auto-reply).\\n\\n[PreviousUpdates](/docs/product/updates)[NextRoles](/docs/product/roles)\\n\\n#### On this page\\n\\n* [White-label customer email notifications](#whitelabel-customer-email-notifications)\\n* [Reply to the customer on a conversation](#reply-to-the-customer-on-a-conversation)\\n* [Reply to the customer on a ticket](#reply-to-the-customer-on-a-ticket)\\n* [Ticket linked to a", - "title": "Customer email notifications | Computer by DevRev | DevRev" + "id": "ART-1302_KNOWLEDGE_NODE-88", + "text": "Required\\nThe list of notifications to send.\\nShow variant\\nResponse.\\n\\nThis endpoint returns a map from strings to any.\\nAPI Reference conversations Create.\\n\\nPOST https:// api.devrev.ai / conversations.create\\nCreates a conversation.\\nRequest.\\n\\nThis endpoint expects an object.\\ntype \"support\" Required\\ndescription string Optional\\nDescription for the conversation.\\ngroup string Optional\\nThe group that the conversation is associated with.\\nis_spam boolean Optional\\nWhether the", + "title": "Export \u2014 DevRev | Docs" } ] }, @@ -4708,54 +4708,54 @@ "query": "create mandatory field time log spent on a ticket", "retrievals": [ { - "id": "ART-15688_KNOWLEDGE_NODE-29", - "text": "system automatically validates:\\n\\n * Date format and range (within last 10 days to next 10 days)\\n * Hours and minutes values\\n * Prevents logging when both hours and minutes are zero\\n3. **Confirmation**: After successful validation, the effort is logged and a confirmation message appears in the timeline.\\n\\nSupported object types\\n----------------------\\n\\nThe Effort logger snap-in works with the following object types:\\n\\n* **Tickets**: Log effort against support tickets, bug reports,", - "title": "Effort logger | Automate | Snap-ins | DevRev" + "id": "ART-2028_KNOWLEDGE_NODE-24", + "text": "[Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[Work duration](/docs/automations/work-duration)\\n\\nWork duration\\n=============\\n\\n[Work duration](/marketplace/work-duration) offers the ability\\nto track how much work issues and tickets took to complete, measured by time\\nspent in work sessions.\\n\\nThe snap-in adds a new attribute to tickets and issues which automatically\\ncalculates the work duration for that item. Work duration is meassured in time\\nspent through work sessions. A work", + "title": "Work duration | Automate | Snap-ins | DevRev" }, { - "id": "ART-2021_KNOWLEDGE_NODE-24", - "text": "[Documentation](/docs)\\n3. [Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n\\nTicket age in engineering\\n=========================\\n\\n[Ticket age in engineering](/marketplace/ticket-age-in-engineering)\\noffers the ability to track how much time tickets spend on engineering, measured\\nby ticket time spent on engineering stages.\\n\\nThe snap-in adds a new attribute to tickets which automatically calculates the\\ntime", - "title": "Ticket age in engineering | Automate | Snap-ins | DevRev" + "id": "ART-2048_KNOWLEDGE_NODE-30", + "text": "as necessary.\\n\\n If you want ClickUp tasks to become tickets rather than issues, map the task object to Works.Issue.\\n\\n While DevRev attempts to automatically map fields, you may be prompted to manually map indicated fields.\\n\\nThe duration of the import depends on the size of the ClickUp workspace and the\\ndata being imported. It can take seconds for a workspace with only a few dozen\\ntasks to a few hours for a workspace with tens of thousands of\\nitems with many attachments. DevRev", + "title": "ClickUp AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-2021_KNOWLEDGE_NODE-25", - "text": "spent on engineering for that ticket. There can be multiple engineering\\nsessions. An engineering session starts when a ticket moves from a\\nnon-engineering stage to an engineering stage and it ends when it moves from an\\nengineering stage to a non-engineering stage. You should select which ticket\\nstages reflect engineering work and if the time spent should be shown in hours\\nor days.\\n\\nInstalling the Ticket age in engineering snap-in\\n------------------------------------------------\\n\\n1.", - "title": "Ticket age in engineering | Automate | Snap-ins | DevRev" + "id": "ART-15688_KNOWLEDGE_NODE-29", + "text": "system automatically validates:\\n\\n * Date format and range (within last 10 days to next 10 days)\\n * Hours and minutes values\\n * Prevents logging when both hours and minutes are zero\\n3. **Confirmation**: After successful validation, the effort is logged and a confirmation message appears in the timeline.\\n\\nSupported object types\\n----------------------\\n\\nThe Effort logger snap-in works with the following object types:\\n\\n* **Tickets**: Log effort against support tickets, bug reports,", + "title": "Effort logger | Automate | Snap-ins | DevRev" }, { - "id": "ART-1961_KNOWLEDGE_NODE-37", - "text": "\\n{{Ticket\\xc2\\xa0Created\\xc2\\xa0>\\xc2\\xa0Output\\xc2\\xa0>\\xc2\\xa0Reported\\xc2\\xa0By\\xc2\\xa0>\\xc2\\xa0Rev\\xc2\\xa0Org\\xc2\\xa0>\\xc2\\xa0Display\\xc2\\xa0Name}}.\\xe2\\x80\\x9d\\n\\n\\n\\nDelay\\n\\n\\n\\nDuration: 2 minutes\\n\\n\\n\\nIf-else\\n\\n\\n\\nAttribute:\\xc2\\xa0Ticket\\xc2\\xa0Created/Output\\xc2\\xa0>\\xc2\\xa0Applies\\xc2\\xa0to\\xc2\\xa0part\\xc2\\xa0>\\xc2\\xa0Display\\xc2\\xa0ID \\nOperator: Equals \\nOperand: CAPL-18\\n\\n\\n\\nTicket \\ncreated\\n\\n\\n\\nEnd\\n```\\n\\n[### Workflow action", - "title": "Workflows | Computer by DevRev | DevRev" + "id": "ART-1508_KNOWLEDGE_NODE-27", + "text": "for tickets that are associated with any of the brands.\\n\\nchannelslist of stringsOptional\\n\\nFilters for conversations that are associated with any of the\\nchannels.\\n\\ncustom\\\\_fieldsobjectOptional\\n\\nFilters for custom fields.\\n\\nfirstintegerOptional\\n\\nThe number of conversation items to return. The default is \\'50\\', the\\nmaximum is \\'5000\\'.\\n\\ngrouplist of stringsOptional\\n\\nFilters for conversation that belong to the given groups.\\n\\nis\\\\_creator\\\\_verifiedbooleanOptional\\n\\nFilters for", + "title": "Export Conversations | DevRev | Docs" }, { - "id": "ART-15688_KNOWLEDGE_NODE-28", - "text": "effort logs as custom objects with structured data\\n\\nHow to use\\n----------\\n\\n1. **Access the command**: In the timeline of any ticket or conversation, type the following command:\\n\\n```\\n```\\n1 /log_effort\\n```\\n```\\n\\n1. **Enter effort details**: The snap-in prompts you to enter:\\n\\n * **Date**: The date when the effort was performed (MM/DD/YYYY format)\\n * **Hours**: Number of hours worked (0 or positive number)\\n * **Minutes**: Number of minutes worked (0-59)\\n2. **Validation**: The", - "title": "Effort logger | Automate | Snap-ins | DevRev" + "id": "ART-2021_KNOWLEDGE_NODE-24", + "text": "[Documentation](/docs)\\n3. [Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n\\nTicket age in engineering\\n=========================\\n\\n[Ticket age in engineering](/marketplace/ticket-age-in-engineering)\\noffers the ability to track how much time tickets spend on engineering, measured\\nby ticket time spent on engineering stages.\\n\\nThe snap-in adds a new attribute to tickets which automatically calculates the\\ntime", + "title": "Ticket age in engineering | Automate | Snap-ins | DevRev" }, { - "id": "ART-2021_KNOWLEDGE_NODE-26", - "text": "Install the\\n [Ticket age in engineering](/marketplace/ticket-age-in-engineering)\\n from the DevRev marketplace.\\n2. Add all of the **stage names** that reflect that engineering work is planned\\n or is being done for that ticket. The stages you specify are the ones that\\n track time spent on engineering. The default values are the default DevRev\\n engineering stages for tickets.\\n3. Select whether time spent on engineering should be displayed in hours or\\n days.\\n4. Click **Install", - "title": "Ticket age in engineering | Automate | Snap-ins | DevRev" + "id": "ART-12391_KNOWLEDGE_NODE-27", + "text": "workflow.\\n\\nNow, your workflow runs whenever a conversation or a ticket gets created and it\\nassigns it to an AI agent, which handles the conversation. No brittle rules.\\n\\nFind below a detailed explanation of all the fields needed to configure in the\\n\"Talk to Agent\" Step\\n\\n| Parameter | Type | Description |\\n| --- | --- | --- |\\n| agent | String | ID of the AI agent to use. Use the dropdown to select one. |\\n| object | String | ID of the conversation or ticket where the agent operate.s |\\n|", + "title": "Conversational workflows | Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-2665_KNOWLEDGE_NODE-13", - "text": "creator](/docs/automations/smart-issue-creator)\\n - [Set user preference for group](/docs/automations/set-user-preference)\\n - [SLA status change Slack notifier](/docs/automations/sla-change-notifier)\\n - [Slash commands](/docs/automations/slash-commands)\\n - [Spam Shield](/docs/automations/spam-shield)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field", - "title": "Session recording options | Session analytics | Computer for Your Customers | DevRev" + "id": "ART-15664_KNOWLEDGE_NODE-13", + "text": "\\n\\nYou may want to restrict links to specific subtypes of objects. For example, only allowing issues\\nof a particular subtype to be linked to tickets.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"name\": \"Link between social media issues and tickets\", |\\n| > | \"source_types\": [ |\\n| > | { |\\n|", + "title": "Links | DevRev | Docs" }, { - "id": "ART-2028_KNOWLEDGE_NODE-24", - "text": "[Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[Work duration](/docs/automations/work-duration)\\n\\nWork duration\\n=============\\n\\n[Work duration](/marketplace/work-duration) offers the ability\\nto track how much work issues and tickets took to complete, measured by time\\nspent in work sessions.\\n\\nThe snap-in adds a new attribute to tickets and issues which automatically\\ncalculates the work duration for that item. Work duration is meassured in time\\nspent through work sessions. A work", - "title": "Work duration | Automate | Snap-ins | DevRev" + "id": "ART-6174_KNOWLEDGE_NODE-14", + "text": "migrator](/docs/automations/ticket-issue-field-migrator)\\n - [Ticket Immutability](/docs/automations/ticket-immutability)\\n - [Ticket email notifier](/docs/automations/ticket-email-notifier)\\n - [Task tracker](/docs/automations/task-tracker)\\n - [Ticket Tagger](/docs/automations/ticket-tagger)\\n - [Tracxn sync](/docs/automations/tracxn-sync)\\n - [User group validator](/docs/automations/user-group-validator)\\n - [Work duration](/docs/automations/work-duration)\\n -", + "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" }, { - "id": "ART-2665_KNOWLEDGE_NODE-14", - "text": "migrator](/docs/automations/ticket-issue-field-migrator)\\n - [Ticket Immutability](/docs/automations/ticket-immutability)\\n - [Ticket email notifier](/docs/automations/ticket-email-notifier)\\n - [Task tracker](/docs/automations/task-tracker)\\n - [Ticket Tagger](/docs/automations/ticket-tagger)\\n - [Tracxn sync](/docs/automations/tracxn-sync)\\n - [User group validator](/docs/automations/user-group-validator)\\n - [Work duration](/docs/automations/work-duration)\\n -", - "title": "Session recording options | Session analytics | Computer for Your Customers | DevRev" + "id": "ART-1968_KNOWLEDGE_NODE-14", + "text": "migrator](/docs/automations/ticket-issue-field-migrator)\\n - [Ticket Immutability](/docs/automations/ticket-immutability)\\n - [Ticket email notifier](/docs/automations/ticket-email-notifier)\\n - [Task tracker](/docs/automations/task-tracker)\\n - [Ticket Tagger](/docs/automations/ticket-tagger)\\n - [Tracxn sync](/docs/automations/tracxn-sync)\\n - [User group validator](/docs/automations/user-group-validator)\\n - [Work duration](/docs/automations/work-duration)\\n -", + "title": "Conversation insights | Support analytics | Computer for Support Teams | DevRev" }, { - "id": "ART-1003_KNOWLEDGE_NODE-26", - "text": "support tickets, which helps measure workload balance and resource allocation.\\n \\n \\n Calculation\\n \\n (Total hours spent on support tasks) / (Total working hours) * 100\\n \\n \\n\\n\\nSELECT (SUM(TIMESTAMPDIFF(MINUTE, t.start_time, t.end_time)) * 100) / (COUNT(DISTINCT t.engineer_id) * 8 * 60) AS AgentUtilizationRate\\nFROM ticket_work_times\\n\\n\"", - "title": "Understanding a Support Lead's Pain Points and KPIs" + "id": "ART-1275_KNOWLEDGE_NODE-7", + "text": "account\\xe2\\x80\\x99s display name to better reflect the\\nsnap-in\\xe2\\x80\\x99s behavior.\\n\\nmanifest.yaml\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | version: \"2\" |\\n| 2 | |\\n| 3 | name: \"Timely Ticketer\" |\\n| 4 | description: \"Snap-in to create ticket every 10 minutes\" |\\n| 5 | |\\n| 6 | service_account: |\\n| 7 | display_name: Automatic Ticket Creator Bot |\\n```\\n\\nNext, update the `event_sources` section to use the `timer-events` event source.\\nThe `timer-events` source type takes a `config` of", + "title": "Using a snap-in to perform a DevRev action | DevRev | Docs" } ] }, @@ -4768,50 +4768,50 @@ "text": "If no such contact is found, JIT provisioning automatically creates a user account, allowing immediate access to the portal. This means users can sign up and log in without manual contact creation within the app.\\n* **Existing contacts without mapped accounts**: If a user is already a contact within the app but does not have a mapped account, they can still log in and create a ticket. In this scenario, the login is performed under the default workspace assigned to the contact.\\n* **Account", "title": "Customer portal | Computer for Support Teams | DevRev" }, - { - "id": "ART-738_KNOWLEDGE_NODE-17", - "text": "level\\n Also, some vendors who didn\\xe2\\x80\\x99t grow up in the \\xe2\\x80\\x9cas a service\\xe2\\x80\\x9d era will need to change processes to embrace CI/CD (some may have)\\n A good ask here is how frequently changes are deployed\\n When something new comes out, we can react and enable rapidly; others may be slower to enable, leading to a gap between when something is \\xe2\\x80\\x9cavailable\\xe2\\x80\\x9d and \\xe2\\x80\\x9creally available\\xe2\\x80\\x9d\\n \\n \\n\\n\\nMost of the available", - "title": "DevRev | Built for AI (not by AI... yet)" - }, { "id": "ART-1978_KNOWLEDGE_NODE-40", "text": " portion is based on your company name.\\n\\nIf you want to host your customer portal on a custom domain, please contact our support team.\\n\\nJust-in-time access to the customer portal\\n------------------------------------------\\n\\nDevRev offers just-in-time (JIT) provisioning to streamline login processes by automatically handling user account management.\\n\\n* **Automatic account creation**: When a user logs in, the system verifies if the user exists as a contact within an account.", "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-1687_KNOWLEDGE_NODE-3", - "text": "Jira, simplifying the process.\\n2. **Provide credentials:** During development, you\\xe2\\x80\\x99ll provide your developer keyring of type `oauth-secret` which contains client ID and client secret for the chosen service within the keyring definition. These credentials are securely stored and not distributed with your published snap-in.\\n3. **OAuth 2.0 flow:** When your snap-in needs to access user data from the external service, it initiates the OAuth flow. This typically involves redirecting the", - "title": "OAuth 2.0 configuration: Securely storing access tokens | DevRev | Docs" + "id": "ART-17222_KNOWLEDGE_NODE-3", + "text": "external system and facilitate HTTP calls to the external system. Both loading functions must manage rate limiting for the external system and handle errors. The `create` and `update` functions should return an `id` of the record in the external system and optionally also `modifiedDate`. If a record cannot be created or updated, they indicate the rate-limiting offset or errors.\\n\\n##### \\n\\nThe snap-in must always emit a single message.\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 |", + "title": "Load data | DevRev | Docs" }, { - "id": "ART-992_KNOWLEDGE_NODE-13", - "text": "delivery model where we can offload the burden of requests from hitting origin and push more to the edge (more to come here!).\\n\\nIn our case we are using a mix of edge compute (C@E) which allows us to compile and execute RUST code on Fastly\\xe2\\x80\\x99s edge, which can also take advantage of their CDN which can cache content from origin.\\n\\nA quick note on WebAssembly (WASM)\\xe2\\x80\\xa6 this is one thing that is very interesting/exciting and will be one of the core enablers to making clients", - "title": "Perimeter security with Fastly edge and AWS \u2014 Part I" + "id": "ART-1786_KNOWLEDGE_NODE-53", + "text": "provisioned and/or issue a Rev session token.\\nShow 9 properties\\nscope string Optional\\nThe requested set of scopes associated with the issued token. A space-delimited list of values in which the order of values does not matter.\\nsubject_token string Optional\\nRepresents the entity that requests the token. Not required when requesting an application access token (AAT).\\nsubject_token_type enum Optional\\nThe type of the subject token.\\nShow 9 enum values\\ntoken_hint string Optional\\nA hint that", + "title": "Delete \u2014 DevRev | Docs" }, { - "id": "ART-992_KNOWLEDGE_NODE-12", - "text": "0 IN A 151.101.194.137\\n;; Query time: 50 msec\\n;; SERVER: 172.29.208.1#53(172.29.208.1)\\n;; WHEN: Thu Apr 14 09:29:47 CDT 2022\\n;; MSG SIZE rcvd: 168\\n\\n\\nRequest handling/caching\\n\\nTraditionally a lot of delivery models would rely on CDNs only for their static asset caching and DDoS mitigation, still relying on origin to handle the majority of requests.\\n\\nHowever, I do believe with edge compute and the ability to execute logic efficiently on the edge via WASM we will see an inverting of the", - "title": "Perimeter security with Fastly edge and AWS \u2014 Part I" + "id": "ART-4022_KNOWLEDGE_NODE-25", + "text": "efficiently handles any number of work items while providing dynamic error handling and detailed tracking. With comprehensive status reporting, users receive a clear breakdown of successful and failed operations, including row numbers, error reasons, and the display IDs of the created/updated work items.\\n\\nFeature\\n-------\\n\\n* **Access Control**: Ensures only authorized users from the group selected in the snap-in configuration can run the snap-in\\n\\nCommands\\n--------\\n\\n*", + "title": "CSV work item uploader | Automate | Snap-ins | DevRev" }, { - "id": "ART-738_KNOWLEDGE_NODE-13", - "text": "customization in from the start\\n \\n We knew extensibility would be key for any platform\\n Given the simplicity of customization, we can easily extend our object model with new annotations or context that can be used and fed into models\\n This means, that a customer or vendor, can easily extend our object model with new data on objects which can be used by models, new object types, or with the output of a model\\n \\n \\n We built multi-tenancy into the object\\n \\n", - "title": "DevRev | Built for AI (not by AI... yet)" + "id": "ART-1549_KNOWLEDGE_NODE-316", + "text": "evaluation_period \" : \" monthly \" , 14 \" modified_date \" : \" 2023-01-01T12:00:00Z \" , 15 \" policies \" : [ 16 { 17 \" key \" : \" value \" 18 } 19 ] , 20 \" sla_type \" : \" external \" 21 } 22 ] , 23 \" next_cursor \" : \" next_cursor \" , 24 \" prev_cursor \" : \" prev_cursor \" 25 }\\nAPI Reference slas Transition.\\n\\nPOST https://api.devrev.ai / slas.transition\\n\\nChanges the status of an SLA.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nid string Required\\n\\nThe updated SLA.\\n\\nstatus enum", + "title": "List Post (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-992_KNOWLEDGE_NODE-8", - "text": "any security groups with inbound rules allowing 0.0.0.0/0 with any/all port/protocols, or inbound SSH (yikes) you should consider evaluating things :)\\n\\nFastly CDN/C@E\\n\\n\\n\\nCDNs are not a new concept and have been around for years providing static asset caching and DDoS prevention.\\n\\nHowever, in the past few years, these have expanded to now include capabilities like web-application firewalls (WAFs) and edge compute (logic execution in the CDN) capabilities.\\n\\nIn this section,", - "title": "Perimeter security with Fastly edge and AWS \u2014 Part I" + "id": "ART-1827_KNOWLEDGE_NODE-53", + "text": "provisioned and/or issue a Rev session token.\\nShow 9 properties\\nscope string Optional\\nThe requested set of scopes associated with the issued token. A space-delimited list of values in which the order of values does not matter.\\nsubject_token string Optional\\nRepresents the entity that requests the token. Not required when requesting an application access token (AAT).\\nsubject_token_type enum Optional\\nThe type of the subject token.\\nShow 9 enum values\\ntoken_hint string Optional\\nA hint that", + "title": "Update \u2014 DevRev | Docs" }, { - "id": "ART-738_KNOWLEDGE_NODE-14", - "text": "Rather than physically segmenting tenant data, we built tenancy into the objects using specific attributes which act as partitions\\n This allows us to create macro partitions (e.g., customer) or extremely granular partitions (e.g., user level)\\n This gives us a ton of flexibility as all data is in one place and the granularity can range from macro to micro\\n \\n \\n We designed our services for the cloud\\n \\n Being built in the \\xe2\\x80\\x9cera of cloud\\xe2\\x80\\x9d we had a", - "title": "DevRev | Built for AI (not by AI... yet)" + "id": "ART-15419_KNOWLEDGE_NODE-2", + "text": "|\\n| 5 | \"definedness\": \"immutable\", |\\n| 6 | \"is_active\": true, |\\n| 7 | \"next_transition\": \"2023-01-01T12:00:00.000Z\" |\\n| 8 | } |\\n| 9 | ] |\\n| 10 | } |\\n```\\n\\nEvaluates an organization\\'s schedule at specified instants.\\n\\n### Headers\\n\\nAuthorizationstringRequired\\n\\nBearer authentication of the form `Bearer `, where token is your auth token.\\n\\n### Request\\n\\nThis endpoint expects an object.\\n\\nidstringRequired`format: \"id\"`\\n\\nOrganization schedule ID.\\n\\ninstantslist of", + "title": "Evaluate Org Schedules (POST) | DevRev | Docs" }, { - "id": "ART-970_KNOWLEDGE_NODE-102", - "text": "groundwork, ensuring we possessed the requisite keys to partition and segment data effectively. This profound understanding of the structure empowered us to fashion granular and precise authorization mechanisms. By dedicating upfront effort to this aspect, we\\xe2\\x80\\x99ve endowed our system with authorization capabilities that some mature companies can only envision, including support for role-based access control (RBAC), attribute-based access control (ABAC), policy-based access control", - "title": "The Story" + "id": "ART-1639_KNOWLEDGE_NODE-53", + "text": "provisioned and/or issue a Rev session token.\\nShow 9 properties\\nscope string Optional\\nThe requested set of scopes associated with the issued token. A space-delimited list of values in which the order of values does not matter.\\nsubject_token string Optional\\nRepresents the entity that requests the token. Not required when requesting an application access token (AAT).\\nsubject_token_type enum Optional\\nThe type of the subject token.\\nShow 9 enum values\\ntoken_hint string Optional\\nA hint that", + "title": "Export Post \u2014 DevRev | Docs" + }, + { + "id": "ART-2818_KNOWLEDGE_NODE-26", + "text": "snap-in**.\\n\\nOnce installation completes, the operational SLA metrics are available on ticket\\nand conversation SLA policies.\\n\\n[PreviousWork duration](/docs/automations/work-duration)[NextCustom field migration](/docs/automations/custom-field-migration)\\n\\n#### On this page\\n\\n* [Installation](#installation)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer", + "title": "Operational SLA Metrics | Automate | Snap-ins | DevRev" } ] }, @@ -4820,54 +4820,54 @@ "query": "Audit logging for all customer portal activities", "retrievals": [ { - "id": "ART-1978_KNOWLEDGE_NODE-32", - "text": "on the following URL: support.devrev.ai/.\\n* Your customers can log in on the portal by entering their registered email address and OTP sent to that email address.\\n\\n![]()\\n\\n### Customer roles and permissions\\n\\nThe customer portal has two levels of customer roles and permissions:\\n\\n* **Verified customers**: Customers who can log in on the portal and see the tickets that they have created.\\n* **Customer admins**: Customers who can log in on the portal and see not just their own", - "title": "Customer portal | Computer for Support Teams | DevRev" + "id": "ART-16789_KNOWLEDGE_NODE-34", + "text": "controls, activity logging, and dedicated customer success management for enterprise customers.'", + "title": "Computer General FAQs" }, { - "id": "ART-1978_KNOWLEDGE_NODE-46", - "text": "tracking, and team collaboration](#ticket-creation-tracking-and-team-collaboration)\\n* [Conversations and messaging](#conversations-and-messaging)\\n* [Article search](#article-search)\\n* [SEO compatibility](#seo-compatibility)\\n* [Get started](#get-started)\\n* [Customer roles and permissions](#customer-roles-and-permissions)\\n* [Set up customer admins](#set-up-customer-admins)\\n* [Customer portal login methods](#customer-portal-login-methods)\\n* [Integrating your knowledge base", - "title": "Customer portal | Computer for Support Teams | DevRev" + "id": "ART-4955_KNOWLEDGE_NODE-4", + "text": "these insights, you can quickly analyze user sessions over a period of up to 30 days.\\n\\nAdditionally, our drill-through capabilities allow you to go from high-level metrics directly to session replays, enabling a more granular data exploration and understanding of specific user interactions.\\n\\nRecent Sessions on Support Conversations and Tickets\\n\\nYou can access recent user sessions directly within support conversations and tickets. When a user raises a support request, their latest recorded", + "title": "Transitioning to the New PLuG Sessions Experience" }, { - "id": "ART-1978_KNOWLEDGE_NODE-34", - "text": "registered email address and go to **Settings** > **User management** > **Groups > Customer Admins**.\\n2. Select the **Add User** option in the top-right corner to search for the customer whom you want to designate as a customer admin.\\n\\n### Customer portal login methods\\n\\nThe customer portal supports three login methods:\\n\\n1. Email OTP (One-Time Password): User enters their email, receives a one-time code, and enters it to log in.\\n2. SSO: Users log in through organization\\xe2\\x80\\x99s", + "id": "ART-1978_KNOWLEDGE_NODE-31", + "text": "only.\\n\\nThe customer portal is SEO-compatible, enhancing its discoverability so end customers can find answers directly through search engines, even before contacting support.\\n\\nKey highlights:\\n\\n* Search engine indexing - Public articles are discoverable by search engines like Google.\\n* Meta tags - The article title is used as the title tag, and the article description serves as the meta description for the article.\\n\\nGet started\\n-----------\\n\\n* Your customer portal is by default hosted", "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-1978_KNOWLEDGE_NODE-24", - "text": "creation, tracking, and team collaboration](#ticket-creation-tracking-and-team-collaboration)\\n* [Conversations and messaging](#conversations-and-messaging)\\n* [Article search](#article-search)\\n* [SEO compatibility](#seo-compatibility)\\n* [Get started](#get-started)\\n* [Customer roles and permissions](#customer-roles-and-permissions)\\n* [Set up customer admins](#set-up-customer-admins)\\n* [Customer portal login methods](#customer-portal-login-methods)\\n* [Integrating your knowledge base", - "title": "Customer portal | Computer for Support Teams | DevRev" + "id": "ART-2012_KNOWLEDGE_NODE-4", + "text": "Analytics](/docs/dashboards/ticket-sla-analytics?)\\n * [Ticket-Team Performance](/docs/dashboards/ticket-team-performance?)\\n\\n * [Conversations](/docs/product/conversation?)\\n\\n * [Convert Conversations to Tickets](/docs/product/Conversation-Tickets?)\\n\\n * [Tickets](/docs/product/tickets?)\\n * [Routing](/docs/product/routing?)\\n * [Support best practices](/docs/product/support-bp?)\\n * [Customer portal](/docs/product/support-portal?)\\n * [Questions &", + "title": "Follow-up ticket | Automate | Snap-ins | DevRev" }, { - "id": "ART-16789_KNOWLEDGE_NODE-34", - "text": "controls, activity logging, and dedicated customer success management for enterprise customers.'", - "title": "Computer General FAQs" + "id": "ART-1978_KNOWLEDGE_NODE-32", + "text": "on the following URL: support.devrev.ai/.\\n* Your customers can log in on the portal by entering their registered email address and OTP sent to that email address.\\n\\n![]()\\n\\n### Customer roles and permissions\\n\\nThe customer portal has two levels of customer roles and permissions:\\n\\n* **Verified customers**: Customers who can log in on the portal and see the tickets that they have created.\\n* **Customer admins**: Customers who can log in on the portal and see not just their own", + "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-2664_KNOWLEDGE_NODE-27", - "text": "your\\n [website](https://developer.devrev.ai/sdks/web/installation) or\\n [mobile app](https://developer.devrev.ai/sdks/mobile).\\n2. For web applications, configure\\n [user identification](https://developer.devrev.ai/sdks/web/user-identity).\\n3. Enable session recording for your users, go to **Settings** > **PluG and Portal** >\\n **Session Replays** and enable recording for your desired platform.\\n\\n **Note**: Alternatively, you can enable session recording during Plug SDK\\n", - "title": "Session analytics | Computer for Your Customers | DevRev" + "id": "ART-15716_KNOWLEDGE_NODE-23", + "text": "steps, your customer portal will be accessible at the custom domain you\\'ve chosen.Account and Authentication\\n\\nTroubleshooting Sign-Up Issues\\n\\nIf a user can\\xe2\\x80\\x99t sign up:\\n\\nConfirm which signup method they\\xe2\\x80\\x99re using (email, SSO, etc.).\\n\\nCheck if they\\xe2\\x80\\x99re seeing an error message\\xe2\\x80\\x94if so, note the exact wording.\\n\\nCommon blockers include: email already in use, password policy issues, or incomplete form fields.\\n\\nIf the issue persists after retrying,", + "title": "Support queries related playbook" }, { - "id": "ART-2665_KNOWLEDGE_NODE-1", - "text": "[Apps](/docs/product/apps)\\n + [Groups](/docs/product/groups)\\n + [Parts & trails](/docs/product/parts)\\n + [Vistas](/docs/product/vistas)\\n\\n - [Vista Reports](/docs/product/vista-reports)\\n - [Board view](/docs/product/board-view)\\n + [Tasks](/docs/product/tasks)\\n + [Updates](/docs/product/updates)\\n + [Customer email notifications](/docs/product/customer-emails)\\n + [Roles](/docs/product/roles)\\n\\n - [Default privileges by group](/docs/product/privs)\\n + [Access", - "title": "Session recording options | Session analytics | Computer for Your Customers | DevRev" + "id": "ART-4966_KNOWLEDGE_NODE-4", + "text": "Analytics](/docs/dashboards/ticket-sla-analytics?)\\n * [Ticket-Team Performance](/docs/dashboards/ticket-team-performance?)\\n\\n * [Conversations](/docs/product/conversation?)\\n\\n * [Convert Conversations to Tickets](/docs/product/Conversation-Tickets?)\\n\\n * [Tickets](/docs/product/tickets?)\\n * [Routing](/docs/product/routing?)\\n * [Support best practices](/docs/product/support-bp?)\\n * [Customer portal](/docs/product/support-portal?)\\n * [Questions &", + "title": "Zoho Projects Airdrop | Airdrop | Snap-ins | DevRev" }, { - "id": "ART-1978_KNOWLEDGE_NODE-25", - "text": "articles](#integrating-your-knowledge-base-articles)\\n* [Customize the customer portal](#customize-the-customer-portal)\\n* [Customize portal URL](#customize-portal-url)\\n* [Just-in-time access to the customer portal](#justintime-access-to-the-customer-portal)\\n* [Troubleshooting](#troubleshooting)\\n\\n1. [Documentation](/docs)\\n3. [Computer for Support Teams](/docs/product/support)\\n[Customer portal](/docs/product/support-portal)\\n\\nCustomer portal\\n===============\\n\\nThe customer portal is an", - "title": "Customer portal | Computer for Support Teams | DevRev" + "id": "ART-1985_KNOWLEDGE_NODE-38", + "text": "and **Public Portal**.\\n\\n### Share an article\\n\\nOnce you've created an article, you have two options to share it:\\n\\n* Use **Copy external link** to share with your customers, allowing them to access the article directly.\\n* Use **Copy internal link** to share with your internal organizational team members.\\n\\nThe ability to view the article depends on the settings for **Visible to** and **Status** that have been configured.\\n\\n* If you are sharing an external link with non-signed-in", + "title": "Articles | Knowledge Base | Computer for Support Teams | DevRev" }, { - "id": "ART-2664_KNOWLEDGE_NODE-1", - "text": "[Groups](/docs/product/groups)\\n + [Parts & trails](/docs/product/parts)\\n + [Vistas](/docs/product/vistas)\\n\\n - [Vista Reports](/docs/product/vista-reports)\\n - [Board view](/docs/product/board-view)\\n + [Tasks](/docs/product/tasks)\\n + [Updates](/docs/product/updates)\\n + [Customer email notifications](/docs/product/customer-emails)\\n + [Roles](/docs/product/roles)\\n\\n - [Default privileges by group](/docs/product/privs)\\n + [Access control](/docs/product/access-control)\\n +", - "title": "Session analytics | Computer for Your Customers | DevRev" + "id": "ART-4271_KNOWLEDGE_NODE-4", + "text": "Analytics](/docs/dashboards/ticket-sla-analytics?)\\n * [Ticket-Team Performance](/docs/dashboards/ticket-team-performance?)\\n\\n * [Conversations](/docs/product/conversation?)\\n\\n * [Convert Conversations to Tickets](/docs/product/Conversation-Tickets?)\\n\\n * [Tickets](/docs/product/tickets?)\\n * [Routing](/docs/product/routing?)\\n * [Support best practices](/docs/product/support-bp?)\\n * [Customer portal](/docs/product/support-portal?)\\n * [Questions &", + "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" }, { - "id": "ART-1978_KNOWLEDGE_NODE-1", - "text": "[Groups](/docs/product/groups)\\n + [Parts & trails](/docs/product/parts)\\n + [Vistas](/docs/product/vistas)\\n\\n - [Vista Reports](/docs/product/vista-reports)\\n - [Board view](/docs/product/board-view)\\n + [Tasks](/docs/product/tasks)\\n + [Updates](/docs/product/updates)\\n + [Customer email notifications](/docs/product/customer-emails)\\n + [Roles](/docs/product/roles)\\n\\n - [Default privileges by group](/docs/product/privs)\\n + [Access control](/docs/product/access-control)\\n +", - "title": "Customer portal | Computer for Support Teams | DevRev" + "id": "ART-13178_KNOWLEDGE_NODE-65", + "text": "potentially perpetuating unfair treatment across customer groups.\\n\\n**Solution:** Develop comprehensive bias detection frameworks and conduct regular audits across agent functions to identify and correct problematic patterns.\\n\\n### Accountability questions\\n\\n**Challenge:** Autonomous decision-making creates uncertainty about responsibility when systems make problematic choices.\\n\\n**Solution:** Establish clear accountability structures defining human oversight responsibilities and explicit", + "title": "Understanding Agentic AI: Capabilities and Implications for the Future" } ] }, @@ -4881,49 +4881,49 @@ "title": "Plug widget customization | Computer for Your Customers | DevRev" }, { - "id": "ART-3109_KNOWLEDGE_NODE-28", - "text": "highlight something to your users.\\n\\n#### **Turing search**\\n\\nHere's how Turing search works in Plug.\\n\\n![]()\\n\\nSpotlight cards\\n---------------\\n\\nSpotlight cards are top-level cards on the Plug widget. You can use them for showcasing PR articles, product releases, blog posts, or any other marketing/product-related content that can educate your users about things happening in your company.\\n\\nHere is how a spotlight card looks.\\n\\n![]()\\n\\n### Add a spotlight card\\n\\n1. In the DevRev app,", - "title": "Plug widget customization | Computer for Your Customers | DevRev" + "id": "ART-1484_KNOWLEDGE_NODE-37", + "text": "\"card\" \\n 20| }\\n[/code] \\n \\n###### Plain text\\n\\nA plain text element is used to define unformatted text.\\n\\n_Properties_\\n\\n * `text` (required): The plain text content.\\n\\n_Inherited properties_\\n\\nInherited from [Snap](/public/snapin-development/references/snapkit#snap):\\n\\n * `type` (required): The type of the element, should be set to `\"plain_text\"`.\\n * `block_id` (optional): A unique identifier for the snap. If not provided, a random ID is generated.\\n\\n_Example_\\n\\n[code]\\n\\n", + "title": "Snapkit \u2014 DevRev | Docs" }, { - "id": "ART-3109_KNOWLEDGE_NODE-27", - "text": "shown at the top of your widget.\\n* Search: Enables users to search for articles through the widget.\\n* Search bar title: The text shown in the search bar.\\n\\n* [Turing search](#turing-search): Computer answers search queries of the users.\\n* Open articles in Plug: Open your linked articles within the Plug Widget.\\n* Recent conversations: Show recent conversations card on Plug Home.\\n* Recent tickets: Show recent tickets card on Plug Home.\\n* Add a Card: Create a Spotlight card to announce or", - "title": "Plug widget customization | Computer for Your Customers | DevRev" + "id": "ART-1846_KNOWLEDGE_NODE-12", + "text": "snap-in configuration.\\n\\n**Note: This endpoint is currently in beta and may be subject to change in the future. Reach out to us via Plug to subscribe to changes to beta endpoints.**\\n\\n### Request payload\\n\\nThe request payload should be a JSON object with the following properties:\\n\\n* `id` (string, required): The ID of the snap-in to update.\\n* `inputs_values` (object, required): An object containing the input values to update. The properties of this object should match the input names", + "title": "Customizing snap-in configuration | DevRev | Docs" }, { - "id": "ART-3109_KNOWLEDGE_NODE-24", - "text": "[Product demos](/docs/DevRevU/demos)\\n\\nOn this page\\n\\n* [Configuration](#configuration)\\n* [Styling](#styling)\\n* [Layout](#layout)\\n* [\\\\*\\\\*Turing search\\\\*\\\\*](#turing-search)\\n* [Spotlight cards](#spotlight-cards)\\n* [Add a spotlight card](#add-a-spotlight-card)\\n\\n1. [Documentation](/docs)\\n3. [Computer for Your Customers](/docs/plug)\\n[Plug widget customization](/docs/plug/customize)\\n\\nPlug widget customization\\n=========================\\n\\nYou can customize the look and feel of your", - "title": "Plug widget customization | Computer for Your Customers | DevRev" + "id": "ART-1847_KNOWLEDGE_NODE-15", + "text": "snap-in configuration.\\n\\n**Note: This endpoint is currently in beta and may be subject to change in the future. Reach out to us via PLuG to subscribe to changes to beta endpoints.**\\n\\n### Request payload\\n\\nThe request payload should be a JSON object with the following properties:\\n\\n * `id` (string, required): The ID of the snap-in to update.\\n * `inputs_values` (object, required): An object containing the input values to update. The properties of this object should match the input names", + "title": "Customizing snap-in configuration \u2014 DevRev | Docs" }, { - "id": "ART-10697_KNOWLEDGE_NODE-31", - "text": "boosting engagement and reducing repetitive inquiries. To enable Plug, go to **Settings > Portal Settings**, activate Plug widget, and **Save** and **Publish**.\\n\\n![]()\\xc2\\xa0For more information about *Support App*, refer to the following articles: \\xe2\\x80\\xa3 [Support snap-ins | Support](/docs/product/snapins-support) \\xe2\\x80\\xa3 [Support best practices | Support](/docs/product/support-bp) \\xe2\\x80\\xa3 [Support](/docs/product/support) \\xe2\\x80\\xa3", - "title": "February 2025 | Changelog | DevRev" + "id": "ART-1484_KNOWLEDGE_NODE-32", + "text": "\\n 81| \"type\": \"form\" \\n 82| } \\n 83| ], \\n 84| \"type\": \"card\" \\n 85| }\\n[/code] \\n \\n###### Image\\n\\nAn image block that displays an image. Works with [Content](/public/snapin-development/references/snapkit#content) blocks.\\n\\n_Properties_\\n\\n * `image_url` (required): The URL of the image.\\n * `alt_text` (required): The alt text to be displayed when the image can\\xe2\\x80\\x99t be displayed. This shouldn\\xe2\\x80\\x99t contain any markup.\\n * `fill_container`", + "title": "Snapkit \u2014 DevRev | Docs" }, { - "id": "ART-1360_KNOWLEDGE_NODE-1", - "text": "application/json\" \\\\ |\\n| > | -d \\'{}\\' |\\n```\\n\\n[Try it](/api-reference/parts/update?explorer=true)\\n\\n200Successful\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"part\": { |\\n| 3 | \"created_by\": { |\\n| 4 | \"display_id\": \"string\", |\\n| 5 | \"id\": \"string\", |\\n| 6 | \"display_name\": \"string\", |\\n| 7 | \"display_picture\": { |\\n| 8 | \"display_id\": \"string\", |\\n| 9 | \"id\": \"string\", |\\n| 10 | \"file\": { |\\n| 11 | \"type\": \"string\", |\\n| 12 | \"name\": \"string\", |\\n| 13 | \"size\": 1 |\\n| 14 | } |\\n| 15", - "title": "Update Part | DevRev | Docs" + "id": "ART-4063_KNOWLEDGE_NODE-2", + "text": "documented endpoint is for exposition and not provided by DevRev.\\n\\n### Request\\n\\nThis endpoint expects an object.\\n\\nidstringRequired`format: \"id\"`\\n\\nThe event\\xe2\\x80\\x99s ID.\\n\\nwebhook_idstringRequired`format: \"id\"`\\n\\nID of the webhook for the event.\\n\\ntypeenumOptional\\n\\nThe event types that the webhook will receive.\\n\\nShow 70 enum values\\n\\naccount_createdobjectOptional\\n\\nShow property\\n\\naccount_deletedobjectOptional\\n\\nShow 2 properties\\n\\naccount_updatedobjectOptional\\n\\nShow 2", + "title": "Event Webhooks \u2014 DevRev | Docs" }, { - "id": "ART-1290_KNOWLEDGE_NODE-17", - "text": "[Card](/snapin-development/references/snapkit#card) snap.\\n\\n![]()\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"elements\": [ |\\n| 3 | { |\\n| 4 | \"direction\": \"row\", |\\n| 5 | \"elements\": [ |\\n| 6 | { |\\n| 7 | \"action_id\": \"PRIMARY\", |\\n| 8 | \"action_type\": \"remote\", |\\n| 9 | \"style\": \"primary\", |\\n| 10 | \"text\": { |\\n| 11 | \"text\": \"PRIMARY\", |\\n| 12 | \"type\": \"plain_text\" |\\n| 13 | }, |\\n| 14 | \"type\": \"button\", |\\n| 15 | \"value\": \"PRIMARY\" |\\n| 16 | }, |\\n| 17 | { |\\n| 18 | \"action_id\":", - "title": "Snapkit | DevRev | Docs" + "id": "ART-1847_KNOWLEDGE_NODE-13", + "text": "\"text\": \"Next\", \\n 48| \"type\": \"plain_text\" \\n 49| }, \\n 50| \"type\": \"button\", \\n 51| \"value\": \"next\" \\n 52| }, \\n 53| \"type\": \"form\" \\n 54| } \\n 55| ], \\n 56| \"type\": \"card\" \\n 57| } \\n 58| ] \\n 59| } \\n 60| } \\n 61| }\\n[/code] \\n \\nIn this example, the snap-kit renders a dropdown select for", + "title": "Customizing snap-in configuration \u2014 DevRev | Docs" }, { - "id": "ART-2897_KNOWLEDGE_NODE-24", - "text": "\"Credit Card\", \\n 6| \"expiry_date\" : \"2024-12-12\" \\n 7| } \\n 8| window.plugSDK.trackEvent(\"signed_up\",properties)\\n[/code] \\n \\nTo learn more about tracking events, visit [Track events](/public/sdks/web/track-events).\\n\\n## Restart session recording\\n\\nThe `restartSessionRecording` method is used to restart session recording.\\n\\n[code]\\n\\n 1| window.plugSDK.restartSessionRecording(); \\n ---|---\\n[/code] \\n \\nWas this page helpful?YesNo\\n\\n[Custom implementationUp", - "title": "Methods \u2014 DevRev | Docs" + "id": "ART-1290_KNOWLEDGE_NODE-31", + "text": "\"https://docs.devrev.ai/_next/image?url=%2Fimg%2Fgroups.gif&w=750&q=75\", |\\n| 13 | \"type\": \"image\" |\\n| 14 | } |\\n| 15 | ], |\\n| 16 | \"type\": \"content\" |\\n| 17 | } |\\n| 18 | ], |\\n| 19 | \"type\": \"card\" |\\n| 20 | } |\\n```\\n\\n###### Plain text\\n\\nA plain text element is used to define unformatted text.\\n\\n*Properties*\\n\\n* `text` (required): The plain text content.\\n\\n*Inherited properties*\\n\\nInherited from [Snap](/snapin-development/references/snapkit#snap):\\n\\n* `type` (required): The type of", + "title": "Snapkit | DevRev | Docs" }, { - "id": "ART-15496_KNOWLEDGE_NODE-1", - "text": "SDK](/sdks/web/installation)\\n\\nCustom implementation\\n=====================\\n\\nCopy page\\n\\nPlug has a completely [no-code way](https://docs.devrev.ai/plug/customize#branding-style-and-layout) of changing the look and interaction of your widget. In case you wish to make your Plug widget more interactive and customized to how your app is structured, you can use these customization properties to set up your widget.\\n\\n##### \\n\\nIf you have customized these properties of the widget through the", - "title": "Custom implementation | DevRev | Docs" + "id": "ART-1466_KNOWLEDGE_NODE-5", + "text": "\\n+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------+--------+\\n| The unique identifier for your PLuG SDK. This parameter is required.", + "title": "Methods \u2014 DevRev | Docs" }, { - "id": "ART-15506_KNOWLEDGE_NODE-25", - "text": "8 | }) |\\n```\\n\\n##### \\n\\nNote that the `updateIdentity` method cannot be used to update the `user_ref` of the user. In order to change the identity of the user completely to a new one, you need to re-initialize Plug. See the [Changing the user identity](/sdks/web/user-identity#changing-the-user-identity) section for more details.\\n\\nChanging the user identity\\n--------------------------\\n\\nAs described in the above sections, to identify a user, you need to initialize the Plug SDK with the", - "title": "Identify your users with Plug | DevRev | Docs" + "id": "ART-1290_KNOWLEDGE_NODE-20", + "text": "\"DISABLED\", |\\n| 57 | \"type\": \"plain_text\" |\\n| 58 | }, |\\n| 59 | \"type\": \"button\", |\\n| 60 | \"value\": \"PRIMARY\" |\\n| 61 | } |\\n| 62 | ], |\\n| 63 | \"type\": \"actions\" |\\n| 64 | } |\\n| 65 | ], |\\n| 66 | \"type\": \"card\" |\\n| 67 | } |\\n```\\n\\n*Action payload*\\n\\nInherits `type`, `action_id`, `action_type` and `timestamp` from [Base payload](/snapin-development/references/snapkit#base-payload), `type` is set to `\"button\"`.\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"type\": \"button\", |\\n| 3 |", + "title": "Snapkit | DevRev | Docs" } ] }, @@ -4932,54 +4932,54 @@ "query": "ticket resolution time close to breach after ticket resolved", "retrievals": [ { - "id": "ART-1979_KNOWLEDGE_NODE-48", - "text": "engineer can directly close and cancel such tickets.\\n* *Accepted* (A)\\n\\n The ticket requires a new feature development on the platform for resolution. However, there is no active work on the ticket but the feature addition required to meet the ticket will be done in the future. This stage is added to ensure that feature requests do not linger in the APA queue and to ensure that the right features are prioritized during roadmap planning.\\n* *Resolved* (R)\\n\\n The goal target stage for", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1977_KNOWLEDGE_NODE-26", + "text": "owner.\\n* **Average Resolution Time**\\n\\n Average time taken to resolve tickets by ticket owners.\\n\\n[PreviousTicket-SLA Analytics](/docs/dashboards/ticket-sla-analytics)[NextConversations](/docs/product/conversation)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer works](/how-computer-works)\\n\\nApps\\n\\n* [For Support Teams](/for-support-teams)\\n* [For", + "title": "Ticket-Team Performance | Support analytics | Computer for Support Teams | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-47", - "text": "validate the fix with the user and then to *resolved*. If the user wants to cancel the ticket then the stage moves to *canceled*.\\n\\n**Closed**\\n\\n* *Canceled* (C)\\n\\n The ticket is determined to be invalid either by the user or the customer experience engineer. In certain scenarios, a ticket may have been created by accident and may be canceled by the creator. In other scenarios, garbage tickets may be created through automation or because of spam. Automation or the customer experience", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1004_KNOWLEDGE_NODE-7", + "text": "time it takes for a specific support engineer to resolve a customer issue from the moment it\\xe2\\x80\\x99s reported.\\n \\n \\n Calculation\\n \\n (Sum of resolution times for all resolved tickets by the engineer) / (Total number of resolved tickets by the engineer)\\n \\n \\n\\n\\nSELECT engineer_id, AVG(TIMESTAMPDIFF(MINUTE, t.created_at, t.resolved_at)) AS IndividualAverageResolutionTime\\nFROM tickets t\\nWHERE t.status = 'resolved'\\nAND EXTRACT(@period FROM t.created_at) =", + "title": "Understanding a Support Engineer's Pain Points and KPIs" }, { - "id": "ART-1986_KNOWLEDGE_NODE-43", - "text": "tickets that have been in breach for more than one hour.\\n + **Over a day**: Filters all tickets that have been in breach for more than one day.\\n + **Custom**: Filters all tickets that have been in breach from a given date.\\n* **Will breach in**:\\n\\n + **Any**: Filters all tickets that are currently not in breach.\\n + **Over an hour**: Filters all tickets that have less than 1 hour left for breach.\\n + **Over a day**: Filters all tickets that have less than 1 day left for breach.\\n +", - "title": "Service-level agreement | Computer for Support Teams | DevRev" + "id": "ART-1970_KNOWLEDGE_NODE-26", + "text": "Conversations with SLA breaches with breach type for ticket owners.\\n* **SLA breaches w.r.t. Customer Tier**\\n\\n Number of Conversations with SLA breaches per owner.\\n* **Average Resolution Time**\\n\\n Indicates the average time taken to resolve requests for each conversation owner.\\n\\n[PreviousConversation-SLA Analytics](/docs/dashboards/conversation-sla-analytics)[NextTicket insights](/docs/dashboards/ticket-insights)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about", + "title": "Conversation-Team Performance | Support analytics | Computer for Support Teams | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-41", - "text": "progress\\n\\n\\n\\nOpen\\n\\n\\n\\nEscalate\\n\\n\\n\\nValidate the fix\\n\\n\\n\\nAdditional detail needed\\n\\n\\n\\nCustomer responds\\n\\n\\n\\nStart\\n\\n\\n\\nFeature request accepted\\n\\n\\n\\nResolved\\n\\n\\n\\nNot valid\\n\\n\\n\\nQueued\\n\\n\\n\\nWork in progress\\n\\n\\n\\nAwaiting product assist\\n\\n\\n\\nAwaiting development\\n\\n\\n\\nAwating customer response\\n\\n\\n\\nIn development\\n\\n\\n\\nAccepted\\n\\n\\n\\nResolved\\n\\n\\n\\nCanceled\\n```\\n\\n**Open**\\n\\n* *Queued* (Q)\\n The initial stage for all tickets. When a new ticket is created,", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1986_KNOWLEDGE_NODE-43", + "text": "tickets that have been in breach for more than one hour.\\n + **Over a day**: Filters all tickets that have been in breach for more than one day.\\n + **Custom**: Filters all tickets that have been in breach from a given date.\\n* **Will breach in**:\\n\\n + **Any**: Filters all tickets that are currently not in breach.\\n + **Over an hour**: Filters all tickets that have less than 1 hour left for breach.\\n + **Over a day**: Filters all tickets that have less than 1 day left for breach.\\n +", + "title": "Service-level agreement | Computer for Support Teams | DevRev" }, { - "id": "ART-2012_KNOWLEDGE_NODE-24", - "text": "customer comments on permanently closed tickets. It allows you to configure the time after which a ticket stage should be marked as closed and creates a new follow-up ticket along with all the attachments and a custom message to let the customers know that the ticket is permanently closed automatically if required.\\n\\nFor more information, refer to the [Follow-up ticket snap-in](https://marketplace.devrev.ai/followup?) on the DevRev marketplace.\\n\\nLet\\xe2\\x80\\x99s say your ticket has the", - "title": "Follow-up ticket | Automate | Snap-ins | DevRev" + "id": "ART-2017_KNOWLEDGE_NODE-25", + "text": "ticket\\'s owner and subscribers, when a ticket\\'s resolution time SLA changes into the *Warning* or *Breached* stage.\\n\\n![]()\\n\\nFor more information, refer to the\\n[SLA status change Slack notifier snap-in](/marketplace/sla-status-change-slack-notifier) on the DevRev\\nmarketplace.\\n\\nInstallation\\n------------\\n\\n1. Create a Slack app for your workspace in .\\n2. In App features, generate bot token in **OAuth & Permissions**.\\n3. Grant the app bot the following", + "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" }, { - "id": "ART-1986_KNOWLEDGE_NODE-41", - "text": "resolution is due in one day, the vista displays five minutes. In the case where the first response isn't provided within five minutes, the timer displays negative values (such as -10m), which indicates that it's been 10 minutes since the first response was due. Conversations or tickets can also be grouped by SLA stages.\\n\\nIn the **Detailed View**, all metrics applied to the ticket or conversation can be viewed along with their current stage.\\n\\nFiltering tickets by Next SLA", - "title": "Service-level agreement | Computer for Support Teams | DevRev" + "id": "ART-1975_KNOWLEDGE_NODE-26", + "text": "resolve tickets.\\n* **Tickets awaiting response**\\n\\n The number of active tickets awaiting response to customer.\\n* **Unassigned tickets**\\n\\n The number of tickets not yet assigned to a support agent.\\n* **Active blocker tickets**\\n\\n The number of tickets with severity Blocker that are in the Open or In Progress state.\\n* **SLA compliance rate**\\n\\n The percentage of tickets where the SLA was met out of all tickets where the SLA was applied.\\n* **Average CSAT score**\\n\\n The average", + "title": "Ticket insights | Support analytics | Computer for Support Teams | DevRev" }, { - "id": "ART-1981_KNOWLEDGE_NODE-32", - "text": "assigned; tickets should be assigned only to revenue team members.\\n\\nManage tickets\\n--------------\\n\\n* Regularly follow up with the customer on any ticket in the *awaiting customer* stage. If no response is forthcoming in a reasonable amount of time as defined by your SLA, mark the ticket as *resolved*.\\n* Critically assess the severity of the ticket according to the impact on the customer\\xe2\\x80\\x99s business. Blockers are those tickets that are critical to customer adoption or operations.", - "title": "Support best practices | Computer for Support Teams | DevRev" + "id": "ART-4181_KNOWLEDGE_NODE-1", + "text": "context-aware, and customer-centric with SLAs that are connected to your customers, parts of your product, and issues - not just tickets.\\n\\nNever miss an SLA with DevRev\\n\\nReduction in SLA breaches\\n\\n40%\\n\\nImprovement in response time\\n\\n60%\\n\\nFaster ticket resolution\\n\\n4X\\n\\nEffortlessly create SLAs\\n========================\\n\\nSay goodbye to the hassle of creating SLAs using complex flowcharts\\n===================================================================\\n\\n[Read our", + "title": "Support like a lightning fast pit-crew" }, { - "id": "ART-1986_KNOWLEDGE_NODE-36", - "text": "conversations:\\n\\n**Tickets**\\n\\n| Metric | Default conditions | Start event | End event | Pause event | Resume event |\\n| --- | --- | --- | --- | --- | --- |\\n| First response time | * Ticket created by a customer * The ticket was created by a customer experience engineer but reported by a customer | Ticket created | * The agent added a comment to the customer chat * The ticket is moved to Awaiting Customer Response, or the ticket is closed | | |\\n| Next response time | * Ticket created by", - "title": "Service-level agreement | Computer for Support Teams | DevRev" + "id": "ART-4181_KNOWLEDGE_NODE-16", + "text": "breach\\n\\n![]()\\n\\nSLA timers on Conversation and Ticket panel\\n\\nEquip agents with the comprehensive context they need to prioritize based on service level commitments\\n\\n![]()\\n\\nSLA timers on Conversation and Ticket panel\\n\\nEquip agents with the comprehensive context they need to prioritize based on service level commitments\\n\\n![]()\\n\\nView SLA targets in Inbox view\\n\\nSee critical SLA information directly on your Omnichannel Inbox to prioritize and take action before breach", + "title": "Support like a lightning fast pit-crew" }, { - "id": "ART-1986_KNOWLEDGE_NODE-38", - "text": "ticket is moved to the Closed state | The ticket was moved to Awaiting Customer Response state | The ticket moves to any state except Closed |\\n\\n**Conversations**\\n\\n| Metric | Default conditions | Start event | End event | Pause event | Resume event |\\n| --- | --- | --- | --- | --- | --- |\\n| First response time | The first message sent by a customer | Conversation created | * The agent replied to the conversation * The conversation is moved to Waiting on User/Resolved * The conversation is", + "id": "ART-1986_KNOWLEDGE_NODE-37", + "text": "a customer * The ticket was created by a customer experience engineer but reported by a customer | A new comment on the ticket by the customer after the customer experience engineer replied | * The agent added a comment to the customer chat * The ticket is moved to Awaiting Customer Response, or the ticket is closed | | |\\n| Full resolution time | * Ticket created by a customer * The ticket was created by a customer experience engineer but reported by a customer | Ticket created | The", "title": "Service-level agreement | Computer for Support Teams | DevRev" }, { - "id": "ART-1975_KNOWLEDGE_NODE-25", - "text": "insights\\n===============\\n\\n* **Tickets created**\\n\\n The number of tickets created within the date range that meet the other filtering criteria.\\n* **Active tickets**\\n\\n The number of tickets that are in the Open or In Progress state.\\n* **Closed tickets**\\n\\n The number of tickets closed within the date range that meet the other filtering criteria.\\n* **Average resolution time**\\n\\n The average time taken to resolve tickets.\\n* **Median resolution time**\\n\\n The median time taken to", - "title": "Ticket insights | Support analytics | Computer for Support Teams | DevRev" + "id": "ART-4181_KNOWLEDGE_NODE-18", + "text": "breach\\n\\n![]()\\n\\nSLA timers on Conversation and Ticket panel\\n\\nEquip agents with the comprehensive context they need to prioritize based on service level commitments\\n\\n![]()\\n\\nSLA timers on Conversation and Ticket panel\\n\\nEquip agents with the comprehensive context they need to prioritize based on service level commitments\\n\\n![]()\\n\\nView SLA targets in Inbox view\\n\\nSee critical SLA information directly on your Omnichannel Inbox to prioritize and take action before breach", + "title": "Support like a lightning fast pit-crew" } ] }, @@ -4987,54 +4987,54 @@ "query_id": "b580c85d-067a-47f0-951d-58b0360254a1", "query": "link single contact to multiple accounts using csv import", "retrievals": [ - { - "id": "ART-2575_KNOWLEDGE_NODE-26", - "text": "the sample CSV.\\n\\n ![]()\\n\\n Columns with headers that do not conform to the predefined schema will not be imported.\\n4. In the dialog box, upload the populated CSV file.\\n5. (Optional) Configure import settings.\\n\\n * **Add tags to identify new imports**: Attach any existing tags to new imports for easy identification post-import.\\n * **Update existing accounts**: Select to update existing accounts by appending new values, rather than creating new objects.\\n6. Click **Import** to", - "title": "Account and contact import | Computer for Growth Teams | DevRev" - }, { "id": "ART-2575_KNOWLEDGE_NODE-25", "text": "contact import\\n==========================\\n\\nYou can upload and manage accounts and contacts by importing data from CSV files.\\n\\n![]()\\n\\nImport data\\n-----------\\n\\n1. Go to the top-right corner of the **Accounts and Contacts** vista and click the \\xe2\\x9a\\xa1 button.\\n2. Click **Download sample CSV**. The sample CSV file includes all the necessary headers and sample values supported by DevRev.\\n3. Open the downloaded sample CSV file. Fill in the required headers and values as specified in", "title": "Account and contact import | Computer for Growth Teams | DevRev" }, { - "id": "ART-2575_KNOWLEDGE_NODE-30", - "text": "CSV import feature currently supports a maximum of 500 rows per request. For larger datasets, split the CSV into smaller files containing up to 500 rows each.\\n\\nTroubleshooting\\n---------------\\n\\nThe following table describes the errors you may encounter during import and how to troubleshoot them:\\n\\n| Error | Resolution |\\n| --- | --- |\\n| Invalid format for phone numbers | Validate the phone number is in E164 Format. For example, +12014631690. |\\n| Tags not found in organization |", + "id": "ART-2575_KNOWLEDGE_NODE-31", + "text": "Pre-create the tag in the app before importing. |\\n| Account with external reference \\'non-existing-account\\' not found | Ensure the parent account exists in the app before importing. |\\n| Mandatory field \\'external\\\\_refs\\' is empty | Fill all mandatory fields in the CSV. |\\n| Found non utf-8 character | Export the CSV with UTF-8 encoding. |\\n| Input CSV has no rows | Ensure the CSV contains data rows. |\\n| No user found with email | Ensure the email is correct and not a name. |\\n| Missing", "title": "Account and contact import | Computer for Growth Teams | DevRev" }, { - "id": "ART-2575_KNOWLEDGE_NODE-28", - "text": "a database identifier or an email address.)\\n* account\\\\_external\\\\_reference (the external reference of the contact\\'s parent account)\\n\\n### Array fields\\n\\nFor fields that accept multiple values, such as **owners** and **industry**, values should be separated by commas (,). For example, Agriculture and Forestry should be written as Agriculture,Forestry.\\n\\n![]()\\n\\nIf a value contains a comma, enclose it in backticks. For example, enter \"Rail, Bus & Taxi\" as `Rail, Bus & Taxi`.\\n\\n###", + "id": "ART-2575_KNOWLEDGE_NODE-26", + "text": "the sample CSV.\\n\\n ![]()\\n\\n Columns with headers that do not conform to the predefined schema will not be imported.\\n4. In the dialog box, upload the populated CSV file.\\n5. (Optional) Configure import settings.\\n\\n * **Add tags to identify new imports**: Attach any existing tags to new imports for easy identification post-import.\\n * **Update existing accounts**: Select to update existing accounts by appending new values, rather than creating new objects.\\n6. Click **Import** to", "title": "Account and contact import | Computer for Growth Teams | DevRev" }, { - "id": "ART-2575_KNOWLEDGE_NODE-27", - "text": "initiate the process. Notifications about successful imports and any errors will appear in the form of toasts at the bottom left.\\n\\nCSV file requirements\\n---------------------\\n\\n### Mandatory fields\\n\\nTo ensure a successful import, certain fields are required.\\n\\n**Accounts**:\\n\\n* display\\\\_name\\n* external\\\\_refs (a unique identifier for the account, such as the company\\'s website domain.)\\n\\n**Contacts:**\\n\\n* display\\\\_name\\n* external\\\\_ref (a unique identifier for the contact, such as", + "id": "ART-2575_KNOWLEDGE_NODE-29", + "text": "Tags\\n\\nEnsure all tags listed in the CSV file already exist within the application. Tags are not created automatically during the import process to prevent errors and maintain control. For example, if your CSV contains a tag in the tags.name column such as Q3FY25\\\\_CSS\\\\_Forum\\\\_Bay\\\\_Area, ensure to create the tag in the system first.\\n\\n### Owner fields\\n\\nFor accounts, owner information must be provided in email format. Avoid using names or display names.\\n\\nLimitations\\n-----------\\n\\nThe", "title": "Account and contact import | Computer for Growth Teams | DevRev" }, { - "id": "ART-2575_KNOWLEDGE_NODE-32", - "text": "required headers | Include headers for the required fields in the CSV. |\\n\\n[PreviousContacts](/docs/product/customers)[NextGrow snap-ins](/docs/product/snapins-grow)\\n\\n#### On this page\\n\\n* [Import data](#import-data)\\n* [CSV file requirements](#csv-file-requirements)\\n* [Mandatory fields](#mandatory-fields)\\n* [Array fields](#array-fields)\\n* [Tags](#tags)\\n* [Owner fields](#owner-fields)\\n* [Limitations](#limitations)\\n* [Troubleshooting](#troubleshooting)\\n\\n[Enterprise grade security to", - "title": "Account and contact import | Computer for Growth Teams | DevRev" + "id": "ART-6175_KNOWLEDGE_NODE-26", + "text": "contacts.\\n* **Link Account and Contact:**\\n Enable this option to link the account and contact to the custom object.\\n* **Account Description Fields:**\\n Enable this option to generate a rich description for accounts using values from multiple Airtable columns.\\n* **Contact Description Fields:**\\n Enable this option to generate a rich description for contacts using values from multiple Airtable columns.\\n* **Airtable Email Columns:**\\n Comma-separated list of names of the columns in", + "title": "Airtable | Automate | Snap-ins | DevRev" }, { - "id": "ART-2575_KNOWLEDGE_NODE-31", - "text": "Pre-create the tag in the app before importing. |\\n| Account with external reference \\'non-existing-account\\' not found | Ensure the parent account exists in the app before importing. |\\n| Mandatory field \\'external\\\\_refs\\' is empty | Fill all mandatory fields in the CSV. |\\n| Found non utf-8 character | Export the CSV with UTF-8 encoding. |\\n| Input CSV has no rows | Ensure the CSV contains data rows. |\\n| No user found with email | Ensure the email is correct and not a name. |\\n| Missing", + "id": "ART-2575_KNOWLEDGE_NODE-30", + "text": "CSV import feature currently supports a maximum of 500 rows per request. For larger datasets, split the CSV into smaller files containing up to 500 rows each.\\n\\nTroubleshooting\\n---------------\\n\\nThe following table describes the errors you may encounter during import and how to troubleshoot them:\\n\\n| Error | Resolution |\\n| --- | --- |\\n| Invalid format for phone numbers | Validate the phone number is in E164 Format. For example, +12014631690. |\\n| Tags not found in organization |", "title": "Account and contact import | Computer for Growth Teams | DevRev" }, { - "id": "ART-2575_KNOWLEDGE_NODE-11", - "text": "uploader](/docs/automations/csv-work-item-uploader)\\n - [CSV comments uploader](/docs/automations/csv-comments-uploader)\\n - [CSV commands uploader](/docs/automations/csv-commands-uploader)\\n - [Descope identity validation](/docs/automations/descope-identity-validation)\\n - [Effort logger](/docs/automations/effort-logger)\\n - [HTTP archive file upload & sanitization](/docs/automations/har-sanitization)\\n - [Link preview](/docs/automations/link-preview)\\n - [Org tags", - "title": "Account and contact import | Computer for Growth Teams | DevRev" + "id": "ART-16355_KNOWLEDGE_NODE-26", + "text": "**Reported\\\\_by,** and **Contact** columns, provide the email of the person to be assigned as the owner or reporter of the work item. If the CSV lists multiple owners, only the first will be set as the owner.\\n* For the **Applies to Part**, **Stage**, **Account**, **Developed with Parts**, and **Tags** columns, provide the part name, stage name, account name, part name, and tag name respectively as it is present in the UI, ensuring case sensitivity.\\n* For **Date** and **Timestamp** related", + "title": "CSV commands uploader | Automate | Snap-ins | DevRev" }, { - "id": "ART-2575_KNOWLEDGE_NODE-29", - "text": "Tags\\n\\nEnsure all tags listed in the CSV file already exist within the application. Tags are not created automatically during the import process to prevent errors and maintain control. For example, if your CSV contains a tag in the tags.name column such as Q3FY25\\\\_CSS\\\\_Forum\\\\_Bay\\\\_Area, ensure to create the tag in the system first.\\n\\n### Owner fields\\n\\nFor accounts, owner information must be provided in email format. Avoid using names or display names.\\n\\nLimitations\\n-----------\\n\\nThe", - "title": "Account and contact import | Computer for Growth Teams | DevRev" + "id": "ART-6175_KNOWLEDGE_NODE-34", + "text": "contact are linked. Use tnt values only.\\n **Format:**\\n\\n ```\\n ```\\n 1 { \"Account\": \"tnt__customer\", \"Contact\": \"tnt__contact\" }\\n ```\\n ```\\n\\n **Example:**\\n\\n ```\\n ```\\n 1 { \"Account\": \"tnt__customer\", \"Contact\": \"tnt__user\" }\\n ```\\n ```\\n* **Other Information Mapping:**\\n Define the field name where unmapped Airtable fields should be collected into a single field.\\n\\n[PreviousAccount deduplication](/docs/automations/account-deduplication)[NextAuto-link DevRev GitHub", + "title": "Airtable | Automate | Snap-ins | DevRev" + }, + { + "id": "ART-12395_KNOWLEDGE_NODE-27", + "text": "update**: Link multiple accounts using /slack\\\\_broadcaster\\\\_upload external or /slack\\\\_broadcaster\\\\_upload internal and upload a CSV with account display names and Slack channel IDs.\\n* **Internal release notes**: Share internal updates by uploading a CSV with channel names and IDs using /slack\\\\_broadcaster\\\\_upload internal.\\n* **Configuration management**: Only authorized users in specific groups can post to Slack channels.\\n\\nSlash Commands\\n--------------\\n\\nThe Slack Broadcaster", + "title": "Slack Broadcaster | Automate | Snap-ins | DevRev" }, { - "id": "ART-2575_KNOWLEDGE_NODE-24", - "text": "[Product demos](/docs/DevRevU/demos)\\n\\nOn this page\\n\\n* [Import data](#import-data)\\n* [CSV file requirements](#csv-file-requirements)\\n* [Mandatory fields](#mandatory-fields)\\n* [Array fields](#array-fields)\\n* [Tags](#tags)\\n* [Owner fields](#owner-fields)\\n* [Limitations](#limitations)\\n* [Troubleshooting](#troubleshooting)\\n\\n1. [Documentation](/docs)\\n3. [Computer for Growth Teams](/docs/product/grow)\\n[Account and contact import](/docs/product/account-contact-import)\\n\\nAccount and", + "id": "ART-2575_KNOWLEDGE_NODE-27", + "text": "initiate the process. Notifications about successful imports and any errors will appear in the form of toasts at the bottom left.\\n\\nCSV file requirements\\n---------------------\\n\\n### Mandatory fields\\n\\nTo ensure a successful import, certain fields are required.\\n\\n**Accounts**:\\n\\n* display\\\\_name\\n* external\\\\_refs (a unique identifier for the account, such as the company\\'s website domain.)\\n\\n**Contacts:**\\n\\n* display\\\\_name\\n* external\\\\_ref (a unique identifier for the contact, such as", "title": "Account and contact import | Computer for Growth Teams | DevRev" } ] @@ -5044,53 +5044,53 @@ "query": "how to build an agent", "retrievals": [ { - "id": "ART-15618_KNOWLEDGE_NODE-9", - "text": "reduced barriers to entry\\n\\nAgentExchange Marketplace : Largest marketplace of ready-made agents, actions, and topics for faster deployment\\n\\nEnterprise Security : Field-based data masking, RBAC, Einstein Trust Layer battle-tested at Fortune 100 scale\\n\\nMultilingual Support : Supports AI prompts and agent behavior across 25+ languages natively\\n\\nNative Integrations : Extensive integration ecosystem due to market dominance and longevity\\n\\nAdvanced Tooling : Deep debugging tools, bulk", - "title": "SF Agentforce - Competitive - for the PLuG on website" + "id": "ART-4167_KNOWLEDGE_NODE-3", + "text": "agents summarize critical context and escalate to the right person.\\n\\n![]()\\n\\nSet up is simple. Maintenance is simpler.\\n\\nSet up Computer in minutes and build agents using plain English. No PhD in AI required.\\n\\n### A few lines of code\\n\\nA few lines of code\\n\\nGet Computer's CX agent running with just a few lines of code and automatically track real performance metrics to measure progress against your goals.\\n\\n![]()\\n\\n### Built-in integrations\\n\\n### Agent", + "title": "Computer for Your Customers: AI Self-Service Support | DevRev" }, { - "id": "ART-13178_KNOWLEDGE_NODE-69", - "text": "data.\\n\\n * Define your agent\\xe2\\x80\\x99s specific goal and purpose.\\n * Write clear instructions for its operation.\\n * Connect your business knowledge and existing workflows.\\n\\nEvery team gains powerful capabilities without technical skills. It\\xe2\\x80\\x99s like having expert analysts and operators working 24/7.\\n\\nNeed to route customer requests? Create sales materials? Recommend support actions? All possible without writing a single line of code, including the generation of original", - "title": "Understanding Agentic AI: Capabilities and Implications for the Future" + "id": "ART-15799_KNOWLEDGE_NODE-3", + "text": "agents summarize critical context and escalate to the right person.\\n\\n![]()\\n\\nSet up is simple. Maintenance is simpler.\\n\\nSet up Computer in minutes and build agents using plain English. No PhD in AI required.\\n\\n### A few lines of code\\n\\nA few lines of code\\n\\nGet Computer's CX agent running with just a few lines of code and automatically track real performance metrics to measure progress against your goals.\\n\\n![]()\\n\\n### Built-in integrations\\n\\n### Agent", + "title": "Computer for Your Customers: AI Self-Service Support | DevRev" }, { - "id": "ART-15618_KNOWLEDGE_NODE-15", - "text": "behavior\\n\\nDevRev : AI-native architecture offering outcome-driven workflows and intuitive, conversational agents User Experience\\n\\nAgentforce : Multiple tabs, nested screens, fragmented multi-stage agent creation process\\n\\nDevRev : Consolidated actions, modern agent-first UX, single cohesive screen for agent building Learning Capabilities\\n\\nAgentforce : Manual improvements, no learning from real usage or customer interactions\\n\\nDevRev : Auto-learning by identifying knowledge gaps", - "title": "SF Agentforce - Competitive - for the PLuG on website" + "id": "ART-16079_KNOWLEDGE_NODE-7", + "text": "agent systems is highly valued.\\n* Proven experience building high-scale systems and driving technical leadership across teams.\\n* Passion for deeply technical work that bridges infra, ML, and product innovation\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the earth\\xe2\\x80\\x99s most customer-centric companies. Our mission is to leverage design, data engineering, and", + "title": "DevRev Careers | Member of Technical Staff \u2013 Search & AI" }, { - "id": "ART-13178_KNOWLEDGE_NODE-19", - "text": "interact with the agentic AI system using natural language. Unlike traditional systems requiring precise commands, you communicate conversationally. The autonomous agents interpret your intent and may ask clarifying questions.\\n 2. **Agent system plans, allocates, and executes work:** The system transforms your request into [structured workflows](/blog/native-workflow-engine), dividing it into tasks and subtasks. A managing component assigns these to specialized subagents.\\n 3. **Agent system", - "title": "Understanding Agentic AI: Capabilities and Implications for the Future" + "id": "ART-17219_KNOWLEDGE_NODE-27", + "text": "`collection`.\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"name\": \"Assignees\", |\\n| 3 | \"is_required\": true, |\\n| 4 | \"type\": \"reference\", |\\n| 5 | \"reference\": { |\\n| 6 | \"refers_to\": { |\\n| 7 | \"#category:agents\": {} |\\n| 8 | } |\\n| 9 | }, |\\n| 10 | \"collection\": { |\\n| 11 | \"max_length\": 5 |\\n| 12 | } |\\n| 13 | } |\\n```\\n\\nSome references have the role of parent or child.\\nThis means that the child record doesn\\xe2\\x80\\x99t make sense without its parent, for example a comment\\nattached", + "title": "Metadata extraction | DevRev | Docs" }, { - "id": "ART-15618_KNOWLEDGE_NODE-10", - "text": "testing via CSV uploads, auto-generation of test cases\\n\\nOutbound Capabilities : Supports automated outreach campaigns and lead nurturing sequences\\n\\nRich UI Elements : Agents can display buttons, forms, and visuals across different platforms\\n\\nMuleSoft Integration : Can turn existing APIs into agent actions using plain language Agentforce Weaknesses\\n\\nForced Migration : With Live Agent being deprecated, customers are pushed toward Agentforce with a \"take it or leave it\"", - "title": "SF Agentforce - Competitive - for the PLuG on website" + "id": "ART-12585_KNOWLEDGE_NODE-7", + "text": "prompts, logic, and agent configurations for accuracy, reliability, and scalability.\\n* **Own Requirements**: Partner with customers to deeply understand their needs and translate them into technical agent specifications.\\n* **Prototype & Iterate**: Lead live demos, build rapid proof-of-concepts, and refine solutions through customer feedback.\\n* **Lead Execution**: Define project plans, align internal teams, and ensure timely delivery of deployments.\\n* **Advise Customers**: Act as a trusted", + "title": "DevRev Careers | Forward Deployed Engineer" }, { - "id": "ART-13178_KNOWLEDGE_NODE-39", - "text": "agents incorporate medical knowledge and compliance requirements, while financial agents understand regulatory frameworks and transaction patterns.\\n\\n### 3\\\\. Orchestration frameworks\\n\\nOrchestration components coordinate multiple AI agents working together. They manage workflows, handle exceptions, and maintain performance standards. This capability is crucial when deploying complex multi-agent systems across departments.\\n\\n### 4\\\\. Integration capabilities\\n\\nYour platform must connect", - "title": "Understanding Agentic AI: Capabilities and Implications for the Future" + "id": "ART-3880_KNOWLEDGE_NODE-5", + "text": "Agent (formerly PLuG) setup remarkably simple:\\n\\nThe initial setup was very straightforward. It didn't take long to get it running in my local development environment, and I didn't even need to reach out for support - that was great.\\n\\n![]()\\n\\nBrian MullinSr. Software Engineer, Orum\\n\\nThe process began with adding the script tag and initializing the SDK on the frontend, followed by obtaining an access token via the backend. This smooth onboarding experience enabled Brian to focus on", + "title": "How Orum built a collaborative, AI-ready support engine" }, { - "id": "ART-15618_KNOWLEDGE_NODE-8", - "text": "doesn\\'t inherit legacy tech debt.\\n\\nShield 2: AgentExchange Offers the Largest Marketplace\\n\\nSalesforce buyers can customize and use prebuilt agents across industries, making it easy to go live quickly. DevRev offers a growing set of templates, but the depth and breadth of AgentExchange are currently unmatched. Detailed Strengths and Weaknesses Analysis Agentforce Strengths\\n\\nMarket Position : Service Cloud is one of the most common systems of record, making Agentforce an easy upsell with", - "title": "SF Agentforce - Competitive - for the PLuG on website" + "id": "ART-13178_KNOWLEDGE_NODE-44", + "text": "action demonstrates this approach.\\n * **Goal-based agents** evaluate actions based on how they contribute to achieving specific objectives. DevRev\\xe2\\x80\\x99s product development AI agents exemplify this approach by coordinating activities specifically designed to meet release deadlines and quality targets.\\n * **Utility-based agents** use sophisticated evaluation mechanisms to maximize overall benefit across multiple objectives. For instance, a marketing campaign optimizer might balance", + "title": "Understanding Agentic AI: Capabilities and Implications for the Future" }, { - "id": "ART-15618_KNOWLEDGE_NODE-11", - "text": "approach\\n\\nPlatform Dependency : Cannot run without Salesforce as system of record, incompatible with modern tools like Zendesk and Intercom\\n\\nComplex Setup : Overwhelms users with dozens of setup steps and dependencies, steep learning curve even for skilled users\\n\\nLegacy Architecture : Built on traditional CRM architecture with rigid underlying schema resulting in slower, more brittle agents\\n\\nPartner Dependency : 70% of implementations require partners, demanding heavy admin", - "title": "SF Agentforce - Competitive - for the PLuG on website" + "id": "ART-13178_KNOWLEDGE_NODE-21", + "text": "**Prompt:** This defines the system\\xe2\\x80\\x99s operation blueprint, outlining specific goals and constraints. Think of it as the master plan guiding each agent. For complex systems, responsibilities are distributed across multiple AI agents to maintain simplicity and effectiveness.\\n * **Knowledge:** This serves as the agent\\xe2\\x80\\x99s knowledge repository, storing experiences and context. Like humans rely on past experiences, LLM agents use memory to understand situations and make", + "title": "Understanding Agentic AI: Capabilities and Implications for the Future" }, { - "id": "ART-13178_KNOWLEDGE_NODE-41", - "text": "reasons.\\n\\n### 6\\\\. Development tools\\n\\nThe platform\\xe2\\x80\\x99s development environment significantly impacts customization capabilities. Low-code interfaces enable business users to modify agent behavior without technical expertise. Developer-focused systems offer greater flexibility but require coding skills. DevRev provides both options, supporting different organizational capabilities.\\n\\n### 7\\\\. Pricing structures\\n\\nPricing models vary significantly between vendors.", - "title": "Understanding Agentic AI: Capabilities and Implications for the Future" + "id": "ART-1959_KNOWLEDGE_NODE-36", + "text": "subtype:book AI agents\\n```\\n```\\n\\nSearch for book custom objects related to AI agents with tenant field author:\\n\\n```\\n```\\n1 subtype:book author:\"Chip Huyen\" AI agents\\n```\\n```\\n\\nFor detailed information on creating custom objects, see the [Custom objects guide](https://developer.devrev.ai/beta/guides/custom-objects).\\n\\n[PreviousGlossary \\xe2\\x86\\x97\\xef\\xb8\\x8f](/docshttps://support.devrev.ai/devrev/article/ART-16784-glossary)[NextWorkflows](/docs/product/workflow-engine)\\n\\n#### On", + "title": "Search | Computer by DevRev | DevRev" }, { - "id": "ART-4206_KNOWLEDGE_NODE-4", - "text": "create a webhook to receive agent execution events:\\n\\nBashJavaScript\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/internal/webhooks.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"url\": \"https://your-application.com/webhook-endpoint\", |\\n| > | \"event_types\": [\"ai_agent_response\"], |\\n| > | \"headers\": [ |\\n| > | { |\\n| > | \"name\": \"x-api-key\", |\\n| >", + "id": "ART-4206_KNOWLEDGE_NODE-0", + "text": "b'Agents async API | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nBeta\\n\\nBeta\\n\\nBeta\\n\\nSearch\\n\\n`/`\\n\\nOn this page\\n\\n* [Set up webhook](/beta/guides/agents-async-api#set-up-webhook)\\n* [Make async API calls](/beta/guides/agents-async-api#make-async-api-calls)\\n* [Handle webhook events](/beta/guides/agents-async-api#handle-webhook-events)\\n* [Progress messages](/beta/guides/agents-async-api#progress-messages)\\n* [Final", "title": "Agents async API | DevRev | Docs" } ] @@ -5100,54 +5100,54 @@ "query": "multiple messages sent quickly AI interpretation delay", "retrievals": [ { - "id": "ART-990_KNOWLEDGE_NODE-1", - "text": "and is a good thing; it alerts us that a fundamental shift is happening, just like the internet had done previously. And, no, this isn\\xe2\\x80\\x99t the beginning of SkyNet.\\n\\n\\n\\nLet\\xe2\\x80\\x99s face it; support is moving to a more asynchronous communication model (a-la chat). With the ability for ChatGPT to \\xe2\\x80\\x9cstream\\xe2\\x80\\x9d messages similar to how a user would, backed by the knowledge of the internet, the result can be a very powerful one-two punch. Plus, it can eliminate a lot", - "title": "To AI, or Not to AI for Support, It's Not a Question" + "id": "ART-2027_KNOWLEDGE_NODE-41", + "text": "AI to improve tone, grammar, or length of your message. |\\n| Preview & Expand View | Expand icon (top-right of editor) | Open full-screen view to preview and edit the outgoing message as it would appear to the customer. |\\n| Include Conversation History | Three-dot menu (bottom-right) | Shows previous non-editable email exchanges. Default inclusion can be set in snap-in settings. |\\n| Use Slash Commands | Lightning icon (bottom-left) | Insert templated responses or quick actions using slash", + "title": "Email | Integrate | Snap-ins | DevRev" }, { - "id": "ART-990_KNOWLEDGE_NODE-5", - "text": "assistance whenever they need it, irrespective of geographical and time zone differences.\\n For a follow-the-sun model this may be less important, however, if you don\\xe2\\x80\\x99t have this coverage in place, an AI-assist can be extremely valuable to provide coverage between gaps\\n\\n\\nPersonalization\\n\\n\\n By leveraging natural language processing and machine learning, ChatGPT and similar tools can understand customers\\xe2\\x80\\x99 needs and preferences, providing personalized and contextually", - "title": "To AI, or Not to AI for Support, It's Not a Question" + "id": "ART-15327_KNOWLEDGE_NODE-21", + "text": "\"text\"`\\n\\nThe updated status of the conversation.\\n\\ntagsobjectOptional\\n\\nShow 3 properties\\n\\ntitlestringOptional`format: \"text\"`\\n\\nThe updated title of the conversation.\\n\\n### Response\\n\\nThe response for updating a conversation.\\n\\nconversationobject\\n\\nShow 20 properties\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n404\\n\\nNot Found Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable", + "title": "Update Conversation | DevRev | Docs" }, { - "id": "ART-990_KNOWLEDGE_NODE-3", - "text": "multiple customer queries simultaneously, significantly reducing response times and providing instant support, resulting in higher customer satisfaction levels.\\n By offloading the initial responses to an intelligent system, you can buffer the amount of time a traditional agent has to respond\\n This may also help ensure you meet you SLA requirements\\n\\n\\nCost-Effectiveness\\n\\n\\n AI-driven customer support tools can minimize the need for large customer service teams, reducing operational", - "title": "To AI, or Not to AI for Support, It's Not a Question" + "id": "ART-1986_KNOWLEDGE_NODE-39", + "text": "marked as spam | | |\\n| Next response time | | A new message on the conversation with the customer after the customer experience engineer replied | * The agent replied to the conversation * The conversation is moved to Waiting on User/Resolved * The conversation is marked as spam | | |\\n| Full resolution time | | Conversation created | * The conversation has moved to the Resolved/Archived * The conversation is marked as spam | The conversation is moved to Waiting on User | The", + "title": "Service-level agreement | Computer for Support Teams | DevRev" }, { - "id": "ART-990_KNOWLEDGE_NODE-9", - "text": "While this is likely a edge case, you can easily account for this with logic in the system than can allow the user or system to automatically switch the interaction to a support engineer.\\n\\n\\nLack of empathy\\n\\n\\n Chatbots may struggle to replicate the empathy and human touch that customer service representatives provide. In sensitive or emotionally charged situations, an AI-driven response may appear impersonal or unsympathetic, negatively impacting customer relations.\\n This is both a good", - "title": "To AI, or Not to AI for Support, It's Not a Question" + "id": "ART-1640_KNOWLEDGE_NODE-20", + "text": "260| \"namespace\": \"ai_assistant_message\", \\n 261| \"raw_email_artifact\": { \\n 262| \"id\": \"id\", \\n 263| \"display_id\": \"display_id\", \\n 264| \"file\": { \\n 265| \"type\": \"type\", \\n 266| \"name\": \"name\", \\n 267| \"size\": 1 \\n 268| } \\n 269| }, \\n 270| \"sent_timestamp\": \"sent_timestamp\", \\n 271| \"subject\": \"subject\", \\n 272| \"text_body\": \"text_body\" \\n 273| } \\n 274|", + "title": "Create Snap Widget (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-4206_KNOWLEDGE_NODE-19", - "text": "const conversationId = |\\n| 38 | event.payload.ai_agent_response.client_metadata.conversation_id; |\\n| 39 | |\\n| 40 | if (event.payload.ai_agent_response.agent_response === \"message\") { |\\n| 41 | // Final message |\\n| 42 | const message = event.payload.ai_agent_response.message; |\\n| 43 | sendToClient(conversationId, { |\\n| 44 | type: \"agent_response\", |\\n| 45 | message: message, |\\n| 46 | }); |\\n| 47 | } else if (event.payload.ai_agent_response.agent_response === \"error\") { |\\n| 48 | // Error", - "title": "Agents async API | DevRev | Docs" + "id": "ART-15617_KNOWLEDGE_NODE-21", + "text": "Continue to strengthen messaging platform integrations\\n\\nCustomer Support Quality : Maintain high service standards as competitive advantage Market Positioning Strategy\\n\\nTarget Mid-Market Growth : Focus on companies outgrowing Pylon\\'s basic capabilities\\n\\nEmphasize AI Sophistication : Highlight advanced AI features that Pylon cannot match\\n\\nDemonstrate ROI : Show value of unified data and proactive capabilities\\n\\nLeverage Technical Superiority : Use superior architecture as competitive", + "title": "Pylon - Competitive - for the PLuG on website" }, { - "id": "ART-4109_KNOWLEDGE_NODE-5", - "text": "Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/beta/api-reference/accounts/update)[#### Get Airdrop Sync Unit\\n\\nNext](/beta/api-reference/airdrop/sync-units-get)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Execute-Async Ai Agents Events | DevRev | Docs" + "id": "ART-4206_KNOWLEDGE_NODE-13", + "text": "2 | \"payload\": { |\\n| 3 | \"ai_agent_response\": { |\\n| 4 | \"agent\": \"don:core:dvrv-us-1:devo/xyz:ai_agent/123\", |\\n| 5 | \"agent_response\": \"message\", |\\n| 6 | \"client_metadata\": { |\\n| 7 | /* your original metadata */ |\\n| 8 | }, |\\n| 9 | \"message\": \"The agent\\'s final response message\", |\\n| 10 | \"session\": \"don:core:dvrv-us-1:devo/xyz:ai_agent_session/3810\", |\\n| 11 | \"session_object\": \"unique_conversation_identifier\" |\\n| 12 | }, |\\n| 13 | \"type\": \"ai_agent_response\" |\\n| 14 | } |\\n| 15 | }", + "title": "Agents async API | DevRev | Docs" }, { - "id": "ART-990_KNOWLEDGE_NODE-0", - "text": "b'\\n\\n\\n \\xe2\\x80\\x9cThe greatest danger in times of turbulence is not the turbulence; it is to act with yesterday\\xe2\\x80\\x99s logic.\\xe2\\x80\\x9d - Peter Drucker\\n\\n\\n\\n\\n\\xe2\\x80\\xa6\\n\\nAt this point, you\\xe2\\x80\\x99ve likely been inundated with with the news of AI, LLM, GPT, or ChatGPT. Hint: GPT stands for \"Generative Pre-trained Transformer\". And it likely begs a few questions\\xe2\\x80\\xa6 Is this the start of SkyNet? Will I become irrelevant? And a multitude of others. This anxiety is OK", - "title": "To AI, or Not to AI for Support, It's Not a Question" + "id": "ART-1786_KNOWLEDGE_NODE-83", + "text": "send.\\nShow variant\\nResponse.\\n\\nThis endpoint returns a map from strings to any.\\nAPI Reference conversations Create.\\n\\nPOST https:// api.devrev.ai / conversations.create\\nCreates a conversation.\\nRequest.\\n\\nThis endpoint expects an object.\\ntype \"support\" Required\\ndescription string Optional\\nDescription for the conversation.\\ngroup string Optional\\nThe group that the conversation is associated with.\\nis_spam boolean Optional\\nWhether the conversation is spam.\\nmembers list of strings", + "title": "Delete \u2014 DevRev | Docs" }, { - "id": "ART-4206_KNOWLEDGE_NODE-20", - "text": "occurred |\\n| 49 | sendToClient(conversationId, { |\\n| 50 | type: \"agent_error\", |\\n| 51 | error: event.payload.ai_agent_response.error.error, |\\n| 52 | }); |\\n| 53 | } |\\n| 54 | |\\n| 55 | res.status(200).send(\"OK\"); |\\n| 56 | }); |\\n```\\n\\n##### \\n\\nUsing WebSockets or Server-Sent Events can provide real-time updates to your\\nUI as events are received.\\n\\n### Talk to agent node in workflows\\n\\n##### \\n\\nThis is in early access, please contact support to have it enabled for you.\\n\\nIf", - "title": "Agents async API | DevRev | Docs" + "id": "ART-4271_KNOWLEDGE_NODE-31", + "text": "AI-handled conversation reaches its capability limits and needs human expertise.\\n * **Extended troubleshooting** : Issues requiring multiple steps or follow-ups over time.\\n\\n## Key information\\n\\n * **Channel support** : Currently, the conversion feature is only available for PLuG and Slack conversations. Other channels still use the traditional **Link Ticket** functionality.\\n\\n * **CSAT surveys** : CSAT surveys are not sent when a conversation is converted to a ticket. Surveys are only", + "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" }, { - "id": "ART-990_KNOWLEDGE_NODE-2", - "text": "of the \\xe2\\x80\\x9cgrunt work\\xe2\\x80\\x9d (aka work \\xe2\\x80\\x9csuck\\xe2\\x80\\x9d) that support engineers commonly deal with, allowing them to focus on the real problems at hand.\\n\\nAlso, with this evolution to a semi-sentient system, the experience for end-users is far superior, sometimes to the point where you may not even know you\\xe2\\x80\\x99re conversing with a computer.\\n\\nBenefits\\n\\nHere are some of the potential benefits:\\n\\nEfficient Response Times\\n\\n\\n AI-powered chatbots can handle", - "title": "To AI, or Not to AI for Support, It's Not a Question" + "id": "ART-1792_KNOWLEDGE_NODE-86", + "text": "send.\\nShow variant\\nResponse.\\n\\nThis endpoint returns a map from strings to any.\\nAPI Reference conversations Create.\\n\\nPOST https:// api.devrev.ai / conversations.create\\nCreates a conversation.\\nRequest.\\n\\nThis endpoint expects an object.\\ntype \"support\" Required\\ndescription string Optional\\nDescription for the conversation.\\ngroup string Optional\\nThe group that the conversation is associated with.\\nis_spam boolean Optional\\nWhether the conversation is spam.\\nmembers list of strings", + "title": "Update \u2014 DevRev | Docs" }, { - "id": "ART-990_KNOWLEDGE_NODE-8", - "text": "natively\\n\\n\\n\\n\\nPotential Risks\\n\\n\\n\\nWhile the use of artificial intelligence and tools like ChatGPT offers numerous benefits in the realm of customer support, it is crucial to consider potential risks that may arise.\\n\\nSome of these risks include:\\n\\nMisunderstandings\\n\\n\\n AI-driven chatbots might misunderstand complex customer queries or interpret context inaccurately, leading to incorrect or irrelevant responses. This can result in customer frustration and diminished satisfaction.\\n", - "title": "To AI, or Not to AI for Support, It's Not a Question" + "id": "ART-15618_KNOWLEDGE_NODE-23", + "text": "better customer outcomes Key Messaging Frameworks\\n\\n\"AI-Native vs CRM-Constrained\" : Position DevRev as purpose-built for AI while Agentforce is constrained by legacy architecture\\n\\n\"Predictable vs Unpredictable\" : Emphasize transparent pricing against Salesforce\\'s complex cost structure\\n\\n\"Modern vs Legacy\" : Contrast clean, fast user experience with Salesforce\\'s acknowledged UI problems\\n\\n\"Simple vs Complex\" : Highlight streamlined implementation against partner-dependent", + "title": "SF Agentforce - Competitive - for the PLuG on website" } ] } diff --git a/test_queries_results.parquet b/test_queries_results.parquet new file mode 100644 index 0000000000000000000000000000000000000000..8beb6f550532d7ee1962d9f9f7e11146e2887726 GIT binary patch literal 179918 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 O{~;Zi?j>|t{Qm-M%y9Mq literal 0 HcmV?d00001 From dbc0124d54a84fe3e717105a58c7e6552a530697 Mon Sep 17 00:00:00 2001 From: Sriniketh J Date: Mon, 16 Mar 2026 12:18:41 +0530 Subject: [PATCH 2/4] cleanup comments --- search.py | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/search.py b/search.py index b3e580d..cb13f62 100644 --- a/search.py +++ b/search.py @@ -46,6 +46,7 @@ # ------------------------------------------- # Configuration +# ------------------------------------------- BATCH_SIZE = 256 EMBEDDING_DIM = 1024 @@ -69,8 +70,9 @@ OUTPUT_JSON = "test_queries_results.json" OUTPUT_PARQUET = "test_queries_results.parquet" - -# Dataset helper +# ------------------------------------------- +# Dataset helpers +# ------------------------------------------- class DatasetType(Enum): ANNOTATED_QUERIES = "annotated_queries" TEST_QUERIES = "test_queries" @@ -102,7 +104,9 @@ def get_dataset(dataset_type: DatasetType) -> pd.DataFrame: raise ValueError(f"Unknown dataset type: {dataset_type}") +# ------------------------------------------- # Document store +# ------------------------------------------- def get_document_store(recreate: bool = False) -> QdrantDocumentStore: """ Get or create a QdrantDocumentStore configured for hybrid search. @@ -140,7 +144,9 @@ def get_document_store(recreate: bool = False) -> QdrantDocumentStore: ) +# ------------------------------------------- # Indexing pipeline +# ------------------------------------------- def build_indexing_pipeline(document_store: QdrantDocumentStore) -> Pipeline: """ Build the document indexing pipeline @@ -211,8 +217,9 @@ def index_knowledge_base(document_store: QdrantDocumentStore) -> None: print(f"✓ Indexed {len(documents):,} documents into Qdrant.") - +# ------------------------------------------- # Retrieval pipeline +# ------------------------------------------- def build_retrieval_pipeline(document_store: QdrantDocumentStore) -> Pipeline: """ Build the hybrid query retrieval pipeline @@ -272,7 +279,9 @@ def search(query: str, retrieval_pipeline: Pipeline) -> list[dict]: return retrievals -# Evaluation on test queries +# ------------------------------------------- +# Evaluation +# ------------------------------------------- def run_evaluation( retrieval_pipeline: Pipeline, output_json: str = OUTPUT_JSON, @@ -326,7 +335,9 @@ def run_evaluation( return test_results -# Main driver +# ------------------------------------------- +# Main function +# ------------------------------------------- def main() -> None: """ Run the complete search pipeline: index and retrieve @@ -342,5 +353,8 @@ def main() -> None: run_evaluation(retrieval_pipeline) +# ------------------------------------------- +# Driver code +# ------------------------------------------- if __name__ == "__main__": main() From 6f9cc4c1943a711dc1a3b21b7b6d6b3248a33edd Mon Sep 17 00:00:00 2001 From: Sriniketh J Date: Mon, 16 Mar 2026 12:22:36 +0530 Subject: [PATCH 3/4] fix: update requirements --- requirements.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 6140e12..9905b44 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,6 +7,7 @@ numpy tqdm pyarrow haystack-ai>=2.0.0 -qdrant-client>=2.8.0 +qdrant-client==1.7.1 fastembed-haystack fastembed>=0.3.0 +sentence-transformers>=5.0.0 From 6545d46325b1001426b7a56e6ecb5b243938ec24 Mon Sep 17 00:00:00 2001 From: Sriniketh J Date: Mon, 16 Mar 2026 12:50:27 +0530 Subject: [PATCH 4/4] fix: add reranker as well --- requirements.txt | 1 + search.py | 115 +- test_queries_results.json | 4468 +++++++++++++++++----------------- test_queries_results.parquet | Bin 179918 -> 175809 bytes 4 files changed, 2318 insertions(+), 2266 deletions(-) diff --git a/requirements.txt b/requirements.txt index 9905b44..4105394 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,6 +8,7 @@ tqdm pyarrow haystack-ai>=2.0.0 qdrant-client==1.7.1 +qdrant-haystack fastembed-haystack fastembed>=0.3.0 sentence-transformers>=5.0.0 diff --git a/search.py b/search.py index cb13f62..cf948d8 100644 --- a/search.py +++ b/search.py @@ -12,11 +12,13 @@ Retrieval Pipeline: FastembedSparseTextEmbedder (BM42) + SentenceTransformersTextEmbedder → QdrantHybridRetriever (RRF fusion) + → SentenceTransformersSimilarityRanker (bge-reranker-v2-m3, cross-encoder) """ from __future__ import annotations import json +import logging from enum import Enum import pandas as pd @@ -24,33 +26,59 @@ from tqdm import tqdm from qdrant_client import QdrantClient -# Haystack core imports +# Haystack from haystack import Document, Pipeline from haystack.components.preprocessors import DocumentCleaner from haystack.components.writers import DocumentWriter from haystack.document_stores.types import DuplicatePolicy -# Qdrant document store and retriever +# Qdrant document store (pip install qdrant-haystack) from haystack_integrations.document_stores.qdrant import QdrantDocumentStore from haystack_integrations.components.retrievers.qdrant import QdrantHybridRetriever -# Embedders (pip install fastembed-haystack) +# HF Embedders (pip install sentence-transformers) from haystack.components.embedders import ( SentenceTransformersDocumentEmbedder, SentenceTransformersTextEmbedder, ) + +# FastEmbed Embedders (pip install fastembed-haystack) from haystack_integrations.components.embedders.fastembed import ( FastembedSparseDocumentEmbedder, FastembedSparseTextEmbedder, ) +from haystack.components.rankers import SentenceTransformersSimilarityRanker + +# ------------------------------------------- +# Logging configuration +# ------------------------------------------- +logger = logging.getLogger(__name__) + + +def configure_logging(level: int = logging.INFO) -> None: + """Configure logging with a consistent format. + + Args: + level: Logging level (default: INFO) + """ + handler = logging.StreamHandler() + formatter = logging.Formatter( + "[%(asctime)s] %(levelname)-8s %(name)s: %(message)s", + datefmt="%Y-%m-%d %H:%M:%S", + ) + handler.setFormatter(formatter) + logger.addHandler(handler) + logger.setLevel(level) + + # ------------------------------------------- # Configuration # ------------------------------------------- BATCH_SIZE = 256 EMBEDDING_DIM = 1024 -# Dense model — 1024-dim +# Dense model DENSE_MODEL = "mixedbread-ai/mxbai-embed-large-v1" # BGE query prefix recommended by the model authors @@ -59,11 +87,15 @@ # Sparse model — BM42 SPARSE_MODEL = "Qdrant/bm42-all-minilm-l6-v2-attentions" +# Ranker Model +RERANKER_MODEL = "BAAI/bge-reranker-v2-m3" + # Qdrant connection QDRANT_HOST = "localhost" QDRANT_PORT = 6333 # Number of documents to retrieve per query +RETRIEVER_TOP_K = 30 TOP_K = 10 # Output files @@ -129,7 +161,7 @@ def get_document_store(recreate: bool = False) -> QdrantDocumentStore: existing = {c.name for c in raw_client.get_collections().collections} if collection_name in existing: raw_client.delete_collection(collection_name) - print(f"✓ Dropped existing Qdrant collection '{collection_name}'.") + logger.info(f"Dropped existing Qdrant collection '{collection_name}'.") raw_client.close() return QdrantDocumentStore( @@ -196,7 +228,7 @@ def index_knowledge_base(document_store: QdrantDocumentStore) -> None: kb_df = kb_df[kb_df["text"].notna() & (kb_df["text"].str.strip() != "")] dropped = original_count - len(kb_df) if dropped: - print(f"⚠ Dropped {dropped} row(s) with null/empty 'text' before indexing.") + logger.warning(f"Dropped {dropped} row(s) with null/empty 'text' before indexing.") documents: list[Document] = [] for _, row in kb_df.iterrows(): @@ -210,12 +242,12 @@ def index_knowledge_base(document_store: QdrantDocumentStore) -> None: ) documents.append(doc) - print(f"Indexing {len(documents):,} documents …") + logger.info(f"Indexing {len(documents):,} documents …") indexing_pipeline = build_indexing_pipeline(document_store) indexing_pipeline.run({"cleaner": {"documents": documents}}) - print(f"✓ Indexed {len(documents):,} documents into Qdrant.") + logger.info(f"Indexed {len(documents):,} documents into Qdrant.") # ------------------------------------------- # Retrieval pipeline @@ -235,6 +267,11 @@ def build_retrieval_pipeline(document_store: QdrantDocumentStore) -> Pipeline: retriever = QdrantHybridRetriever( document_store=document_store, + top_k=RETRIEVER_TOP_K, + ) + + reranker = SentenceTransformersSimilarityRanker( + model=RERANKER_MODEL, top_k=TOP_K, ) @@ -242,6 +279,7 @@ def build_retrieval_pipeline(document_store: QdrantDocumentStore) -> Pipeline: retrieval.add_component("sparse_text_embedder", sparse_text_embedder) retrieval.add_component("dense_text_embedder", dense_text_embedder) retrieval.add_component("retriever", retriever) + retrieval.add_component("reranker", reranker) retrieval.connect( "sparse_text_embedder.sparse_embedding", @@ -251,6 +289,7 @@ def build_retrieval_pipeline(document_store: QdrantDocumentStore) -> Pipeline: "dense_text_embedder.embedding", "retriever.query_embedding", ) + retrieval.connect("retriever.documents", "reranker.documents") return retrieval @@ -263,11 +302,12 @@ def search(query: str, retrieval_pipeline: Pipeline) -> list[dict]: { "sparse_text_embedder": {"text": query}, "dense_text_embedder": {"text": query}, + "reranker": {"query": query}, } ) retrievals = [] - for doc in result["retriever"]["documents"]: + for doc in result["reranker"]["documents"]: retrievals.append( { "id": doc.meta.get("doc_id", ""), @@ -312,25 +352,25 @@ def run_evaluation( with open(output_json, "w") as f: json.dump(test_results, f, indent=2) - print(f"✓ Results saved to {output_json}") + logger.info(f"Results saved to {output_json}") results_df = pd.DataFrame(test_results) results_df.to_parquet(output_parquet, index=False) - print(f"✓ Results also saved to {output_parquet}") + logger.info(f"Results also saved to {output_parquet}") # Display summary - print("=" * 60) - print("Test Queries Results Summary") - print("=" * 60) - print(f"Total queries : {len(test_results)}") - print(f"Retrievals/query : {TOP_K}") - print(f"\nOutput files:") - print(f" - {output_json}") - print(f" - {output_parquet}") - print("\nFormat matches annotated_queries structure:") - print(" - query_id : string") - print(" - query : string") - print(" - retrievals: list of {id, text, title}") + logger.info("=" * 60) + logger.info("Test Queries Results Summary") + logger.info("=" * 60) + logger.info(f"Total queries : {len(test_results)}") + logger.info(f"Retrievals/query : {TOP_K}") + logger.info(f"\nOutput files:") + logger.info(f" - {output_json}") + logger.info(f" - {output_parquet}") + logger.info("\nFormat matches annotated_queries structure:") + logger.info(" - query_id : string") + logger.info(" - query : string") + logger.info(" - retrievals: list of {id, text, title}") return test_results @@ -342,15 +382,26 @@ def main() -> None: """ Run the complete search pipeline: index and retrieve """ - # Index knowledge base - document_store = get_document_store(recreate=True) - index_knowledge_base(document_store) - - # Build retrieval pipeline - retrieval_pipeline = build_retrieval_pipeline(document_store) - - # Evaluate on test queries - run_evaluation(retrieval_pipeline) + configure_logging(level=logging.INFO) + logger.info("Starting DevRev Search benchmark...") + + try: + # Index knowledge base + logger.info("Initializing document store...") + document_store = get_document_store(recreate=False) + index_knowledge_base(document_store) + + # Build retrieval pipeline + logger.info("Building retrieval pipeline...") + retrieval_pipeline = build_retrieval_pipeline(document_store) + + # Evaluate on test queries + logger.info("Running evaluation on test queries...") + run_evaluation(retrieval_pipeline) + logger.info("Evaluation completed successfully.") + except Exception as e: + logger.error(f"Error during pipeline execution: {e}", exc_info=True) + raise # ------------------------------------------- diff --git a/test_queries_results.json b/test_queries_results.json index 2bb9d51..ead5835 100644 --- a/test_queries_results.json +++ b/test_queries_results.json @@ -9,14 +9,9 @@ "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-17650_KNOWLEDGE_NODE-8", - "text": "correct team with preserved context\\n* Minimize handoff loss and shorten time-to-resolution\\n\\n**Controlling support entry points**\\n\\nThe company deployed a custom Snap-in that restricts ticket creation to verified email domains. This has:\\n\\n* Cut down on ticket noise\\n* Prevented duplication\\n* Ensured high-quality, accountable issue tracking\\n\\n#### The email Snap-in changed our entire intake game. It's security-conscious by design, and that's crucial for us.\\xe2\\x80\\x9d\\n\\n**Improving", - "title": "American cybersecurity leader unifies security & support with DevRev" - }, - { - "id": "ART-4271_KNOWLEDGE_NODE-29", - "text": "end user.\\n\\n## Why you should convert a Conversation to a Ticket\\n\\nConsider converting a conversation to a ticket in these scenarios:\\n\\n * **Complex issues** : When a customer inquiry requires in-depth investigation that can't be resolved in a quick conversation.\\n * **Cross-team collaboration** : Issues requiring input from multiple departments or specialists.\\n * **Escalation needs** : When a conversation needs to be escalated to a higher support tier.\\n * **Feature requests** :", - "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" + "id": "ART-1986_KNOWLEDGE_NODE-45", + "text": "selected on the ticket is not assigned any SLA.\\n\\n\\xc2\\xa0\\xc2\\xa0 \\xc2\\xa0 - Action: Check your SLA assignment rules or add the customer as an exception to any of your SLAs.\\n\\n![]()\\n\\nThe **SLA Name** is never empty if your organization has a default SLA.\\n\\n1. Verify policy conditions:\\n\\n\\xc2\\xa0\\xc2\\xa0 - If the **SLA Name** is populated but you still see no SLA metrics running on the ticket, the ticket does not satisfy the conditions of any policy within the SLA.\\n\\n\\xc2\\xa0\\xc2\\xa0", + "title": "Service-level agreement | Computer for Support Teams | DevRev" }, { "id": "ART-2002_KNOWLEDGE_NODE-25", @@ -29,14 +24,24 @@ "title": "July 2025 | Changelog | DevRev" }, { - "id": "ART-1986_KNOWLEDGE_NODE-45", - "text": "selected on the ticket is not assigned any SLA.\\n\\n\\xc2\\xa0\\xc2\\xa0 \\xc2\\xa0 - Action: Check your SLA assignment rules or add the customer as an exception to any of your SLAs.\\n\\n![]()\\n\\nThe **SLA Name** is never empty if your organization has a default SLA.\\n\\n1. Verify policy conditions:\\n\\n\\xc2\\xa0\\xc2\\xa0 - If the **SLA Name** is populated but you still see no SLA metrics running on the ticket, the ticket does not satisfy the conditions of any policy within the SLA.\\n\\n\\xc2\\xa0\\xc2\\xa0", - "title": "Service-level agreement | Computer for Support Teams | DevRev" + "id": "ART-2024_KNOWLEDGE_NODE-27", + "text": "help now... ask again in 5d\\n\\nSample response:\\n\\n> I am unable to assist you at the moment, however please reach out to me again in five days and I will be happy to help you.\\n\\n### Summarize\\n\\nUsing the summarize command, you can sum up the entire conversation. It applies to the following:\\n\\n* Conversation\\n* Tickets\\n* Issues\\n* Part\\n* Workspace\\n* Customer\\n* Account\\n\\nSample response:\\n\\n> **Summary:**\\n>\\n> * Rahul from DummyOrg is having difficulty installing the Plug Widget.\\n> *", + "title": "Slash commands | Automate | Snap-ins | DevRev" }, { - "id": "ART-2012_KNOWLEDGE_NODE-26", - "text": "customer knows why a new ticket was created. The following fields are automatically set on the follow-up ticket based on the archived ticket:\\n\\n * **Title**\\n * **Customer**\\n * **Reported By**\\n * **Tag** is_followup In addition, the tag has_followup is added to the archived ticket.\\n\\nIf the customer responds to a ticket in the terminal stage for the second time, their message will be added to that ticket and the **Needs response** toggle will be enabled. However, no follow-up tickets", - "title": "Follow-up ticket | Automate | Snap-ins | DevRev" + "id": "ART-1978_KNOWLEDGE_NODE-33", + "text": "tickets but also all the tickets raised by the other users from their organization. You can add multiple customer admins from the same customer organization.\\n\\nOnly verified users can login into the portal.\\n\\nTo create a verified user:\\n\\n1. Go to **Accounts** in the DevRev app and create an account.\\n2. Create a contact under **Contacts** and link it to the account.\\n\\n### Set up customer admins\\n\\nTo set up customer admins, follow these steps:\\n\\n1. Log in on your DevRev app with your", + "title": "Customer portal | Computer for Support Teams | DevRev" + }, + { + "id": "ART-4271_KNOWLEDGE_NODE-24", + "text": "[Support](/docs/product/support?)\\n 4. [Conversations](/docs/product/conversation?)\\n 5. [Convert Conversations to Tickets](/docs/product/Conversation-Tickets?)\\n\\n# Convert Conversations to Tickets\\n\\nYou can now convert conversations from PLuG and Slack directly into tickets. Previously, conversations were only linked to tickets. This update streamlines workflows and enhances the customer experience.\\n\\nFor conversations originating from PLuG or Slack, the **Link to Ticket** functionality", + "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" + }, + { + "id": "ART-1645_KNOWLEDGE_NODE-5", + "text": "organization\\xe2\\x80\\x99s unique workflows and reporting needs. By using the customization framework, you can extend these objects with custom fields that reflect your processes.\\n\\nThis section provides an overview of the customization framework and walks you through the process of tracking bugs in your organization. By the end of this section, you\\xe2\\x80\\x99ll be able to:\\n\\n 1. Customize DevRev objects such as _issue_ and _ticket_ by adding custom fields.\\n 2. Override default field", + "title": "Object customization (Beta) \u2014 DevRev | Docs" }, { "id": "ART-3208_KNOWLEDGE_NODE-25", @@ -44,14 +49,9 @@ "title": "DevRev AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-4271_KNOWLEDGE_NODE-24", - "text": "[Support](/docs/product/support?)\\n 4. [Conversations](/docs/product/conversation?)\\n 5. [Convert Conversations to Tickets](/docs/product/Conversation-Tickets?)\\n\\n# Convert Conversations to Tickets\\n\\nYou can now convert conversations from PLuG and Slack directly into tickets. Previously, conversations were only linked to tickets. This update streamlines workflows and enhances the customer experience.\\n\\nFor conversations originating from PLuG or Slack, the **Link to Ticket** functionality", + "id": "ART-4271_KNOWLEDGE_NODE-29", + "text": "end user.\\n\\n## Why you should convert a Conversation to a Ticket\\n\\nConsider converting a conversation to a ticket in these scenarios:\\n\\n * **Complex issues** : When a customer inquiry requires in-depth investigation that can't be resolved in a quick conversation.\\n * **Cross-team collaboration** : Issues requiring input from multiple departments or specialists.\\n * **Escalation needs** : When a conversation needs to be escalated to a higher support tier.\\n * **Feature requests** :", "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" - }, - { - "id": "ART-2024_KNOWLEDGE_NODE-27", - "text": "help now... ask again in 5d\\n\\nSample response:\\n\\n> I am unable to assist you at the moment, however please reach out to me again in five days and I will be happy to help you.\\n\\n### Summarize\\n\\nUsing the summarize command, you can sum up the entire conversation. It applies to the following:\\n\\n* Conversation\\n* Tickets\\n* Issues\\n* Part\\n* Workspace\\n* Customer\\n* Account\\n\\nSample response:\\n\\n> **Summary:**\\n>\\n> * Rahul from DummyOrg is having difficulty installing the Plug Widget.\\n> *", - "title": "Slash commands | Automate | Snap-ins | DevRev" } ] }, @@ -60,9 +60,9 @@ "query": "Android SDK session generated with Unknown user", "retrievals": [ { - "id": "ART-15792_KNOWLEDGE_NODE-13", - "text": "on data\\n\\nLight-weight SDK: Collect session recordings without affecting speed\\n\\nSource: [DevRev User Observability](https://devrev.ai/plug-observability)'", - "title": "DevRev Products and Agents" + "id": "ART-15513_KNOWLEDGE_NODE-0", + "text": "b'Features | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\nOn this page\\n\\n* [Identification](/sdks/android/features#identification)\\n* [Identify an anonymous user](/sdks/android/features#identify-an-anonymous-user)\\n* [Identify an unverified user](/sdks/android/features#identify-an-unverified-user)\\n* [Identify a verified user](/sdks/android/features#identify-a-verified-user)\\n* [Generate an AAT](/sdks/android/features#generate-an-aat)\\n*", + "title": "Features | DevRev | Docs" }, { "id": "ART-2898_KNOWLEDGE_NODE-1", @@ -75,14 +75,14 @@ "title": "React Native integration \u2014 DevRev | Docs" }, { - "id": "ART-12476_KNOWLEDGE_NODE-3", - "text": "faster load times of the SDK, reduced latency, and higher availability for end-users across regions\\n\\nSystem status transparency: Stay informed about system performance with proactive notifications through our status page at [https://status.devrev.ai/](https://status.devrev.ai/)\\n\\nSupercharged performance & scale\\n\\nA platform that grows with you without any hiccups\\n\\nRobust session ingestion: Our battle-tested system handles global peaks of 1.5 million requests/minute and regularly manages", - "title": "The Future of Sessions - Powered By DevRev" + "id": "ART-12475_KNOWLEDGE_NODE-1", + "text": ".\\n\\nProceed to integrate the DevRev PLuG SDK. For specific platform migration guides, refer to the following resources:\\n\\nAndroid SDK migration guide: Android Migration Guide\\n\\niOS SDK migration guide: iOS Migration Guide\\n\\nReact Native & Expo SDK migration guide: React Native Migration Guide\\n\\nCordova SDK migration guide: Cordova Migration Guide\\n\\nWeb SDK migration guide: Web Migration Guide\\n\\nOnce the integration is complete, you will be able to view sessions on the Session", + "title": "Migrating from UserExperior to DevRev" }, { - "id": "ART-2898_KNOWLEDGE_NODE-8", - "text": "earlier.\\n\\n 2. Ensure that the custom application is specified in the `AndroidManifest.xml`, as shown below:\\n[code] 1| \\n 3| \\n[/code] \\n \\n\\n## Identification\\n\\nTo use certain features of the DevRev SDK, user identification is required. You can select from the following methods to identify users within your application:\\n\\n#####\\n\\nThe identification function should be placed appropriately", - "title": "Android integration \u2014 DevRev | Docs" + "id": "ART-15513_KNOWLEDGE_NODE-1", + "text": "[Exchange your AAT for a session token](/sdks/android/features#exchange-your-aat-for-a-session-token)\\n* [Identify the verified user](/sdks/android/features#identify-the-verified-user)\\n* [Updating the user](/sdks/android/features#updating-the-user)\\n* [Logout](/sdks/android/features#logout)\\n* [Identity model](/sdks/android/features#identity-model)\\n* [Properties](/sdks/android/features#properties)\\n* [User traits](/sdks/android/features#user-traits)\\n* [Organization", + "title": "Features | DevRev | Docs" }, { "id": "ART-15515_KNOWLEDGE_NODE-5", @@ -90,24 +90,24 @@ "title": "Features | DevRev | Docs" }, { - "id": "ART-12475_KNOWLEDGE_NODE-1", - "text": ".\\n\\nProceed to integrate the DevRev PLuG SDK. For specific platform migration guides, refer to the following resources:\\n\\nAndroid SDK migration guide: Android Migration Guide\\n\\niOS SDK migration guide: iOS Migration Guide\\n\\nReact Native & Expo SDK migration guide: React Native Migration Guide\\n\\nCordova SDK migration guide: Cordova Migration Guide\\n\\nWeb SDK migration guide: Web Migration Guide\\n\\nOnce the integration is complete, you will be able to view sessions on the Session", - "title": "Migrating from UserExperior to DevRev" + "id": "ART-12449_KNOWLEDGE_NODE-2", + "text": "identification](/public/sdks/android/features#verified-identification)\\n * [Updating the user](/public/sdks/android/features#updating-the-user)\\n * [Logout](/public/sdks/android/features#logout)\\n * [PLuG support chat](/public/sdks/android/features#plug-support-chat)\\n * [Creating a new conversation](/public/sdks/android/features#creating-a-new-conversation)\\n * [In-app link handling](/public/sdks/android/features#in-app-link-handling)\\n *", + "title": "Features \u2014 DevRev | Docs" }, { - "id": "ART-15513_KNOWLEDGE_NODE-0", - "text": "b'Features | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\nOn this page\\n\\n* [Identification](/sdks/android/features#identification)\\n* [Identify an anonymous user](/sdks/android/features#identify-an-anonymous-user)\\n* [Identify an unverified user](/sdks/android/features#identify-an-unverified-user)\\n* [Identify a verified user](/sdks/android/features#identify-a-verified-user)\\n* [Generate an AAT](/sdks/android/features#generate-an-aat)\\n*", - "title": "Features | DevRev | Docs" + "id": "ART-2665_KNOWLEDGE_NODE-25", + "text": "specified, the default options are used.\\n\\nPlug SDK offers the ability to hide sensitive user information by masking it in session recordings. During session replays, masking replaces user-visible or typed content in specific elements with asterisks (\"\\\\*\"). This ensures that sensitive information is not displayed in the recordings, protecting user privacy.\\n\\nDuring Plug initialization, you have several options to manually configure which elements should be masked. Masking is applied based on", + "title": "Session recording options | Session analytics | Computer for Your Customers | DevRev" }, { - "id": "ART-12449_KNOWLEDGE_NODE-2", - "text": "identification](/public/sdks/android/features#verified-identification)\\n * [Updating the user](/public/sdks/android/features#updating-the-user)\\n * [Logout](/public/sdks/android/features#logout)\\n * [PLuG support chat](/public/sdks/android/features#plug-support-chat)\\n * [Creating a new conversation](/public/sdks/android/features#creating-a-new-conversation)\\n * [In-app link handling](/public/sdks/android/features#in-app-link-handling)\\n *", - "title": "Features \u2014 DevRev | Docs" + "id": "ART-15510_KNOWLEDGE_NODE-4", + "text": "features of the DevRev SDK, user identification is required.\\n\\nThe identification function should be placed appropriately in your app after the user logs in. If you have the user information available at app launch, call the function after the `DevRev.configure(appID)` method.\\n\\n##### \\n\\nOn iOS, if you haven\\xe2\\x80\\x99t previously identified the user, the DevRev SDK will automatically create an anonymous user for you immediately after the SDK is configured.\\n\\n##### \\n\\nThe `Identity`", + "title": "Features | DevRev | Docs" }, { - "id": "ART-2898_KNOWLEDGE_NODE-21", - "text": "session properties in scenarios such as user logout or when the session ends, use the following method:\\n\\n###### Kotlin\\n\\n###### Java\\n\\n[code]\\n\\n 1| DevRev.clearSessionProperties() \\n ---|---\\n[/code] \\n \\n### Timers\\n\\nThe DevRev SDK offers a timer mechanism to measure the time spent on specific tasks, allowing you to track events such as response time, loading time, or any other duration-based metrics.\\n\\nThe mechanism utilizes balanced start and stop methods, both of which", - "title": "Android integration \u2014 DevRev | Docs" + "id": "ART-15792_KNOWLEDGE_NODE-13", + "text": "on data\\n\\nLight-weight SDK: Collect session recordings without affecting speed\\n\\nSource: [DevRev User Observability](https://devrev.ai/plug-observability)'", + "title": "DevRev Products and Agents" } ] }, @@ -115,15 +115,20 @@ "query_id": "4bc92187-cdaa-4c20-b189-abd1672e5a71", "query": "email reply received on wrong ticket", "retrievals": [ + { + "id": "ART-1953_KNOWLEDGE_NODE-29", + "text": "[support@yourdomain.com](mailto:support@yourdomain.com)\\n* **Subject**: \"You are missing messages from \"\\n\\nReply to the customer on a ticket\\n---------------------------------\\n\\n* **Trigger**: When a reply is made to a customer on a ticket.\\n* **Action**: The system sends out a notification to the customer with the reply message.\\n* **Sender**: {Company\\\\_Name} [support@yourdomain.com](mailto:support@yourdomain.com)\\n* **Subject**: \"[{Company\\\\_Name}] Update on TKT-XXX\"\\n\\nTicket", + "title": "Customer email notifications | Computer by DevRev | DevRev" + }, { "id": "ART-1978_KNOWLEDGE_NODE-43", "text": "with that email or not.\\n + This could also be because your customer hasn't logged in.\\n* Customer isn't able to view the tickets they have created.\\n\\n + Check if there are any reported tickets by that customer. You can do so by logging into your DevRev app and then going into the tickets section. Here you can filter based on **reported by** and see if any tickets have been reported by the customer who isn't able to view the tickets.\\n + Check if the customer has logged in on the correct", "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-3207_KNOWLEDGE_NODE-38", - "text": "Step 2: Define the Primary Use Case\\n\\nChoose how DevRev should interpret emails sent to the primary address:\\n\\n* Choose between generating a **Ticket or a Conversation** from the incoming email.\\n\\nToggle on **Set email as the default channel for tickets** to ensure that:\\n\\n* Customer chat replies are sent via email as well as to the original source of the channel.\\n\\n### Step 3: Add Additional Support Emails\\n\\nYou can add more addresses to handle support requests.\\n\\n* **Tickets**: Emails", - "title": "Email snap-in configuration | Email | Integrate | Snap-ins | DevRev" + "id": "ART-2027_KNOWLEDGE_NODE-36", + "text": "Receives Replies From | Thread is visible in portal |\\n| --- | --- | --- | --- |\\n| Email to support | [support@yourcompany.com](mailto:support@yourcompany.com) | [support@yourcompany.com](mailto:support@yourcompany.com) | Yes |\\n| Ticket via Customer Portal or Plug widget (Channel on ticket = Plug or Portal) | Ticket form on Customer Portal or conversation converted to ticket from Plug widget | - If Channel is set as email in the config, replies are sent via the configured email address. -", + "title": "Email | Integrate | Snap-ins | DevRev" }, { "id": "ART-2027_KNOWLEDGE_NODE-43", @@ -131,39 +136,34 @@ "title": "Email | Integrate | Snap-ins | DevRev" }, { - "id": "ART-1953_KNOWLEDGE_NODE-29", - "text": "[support@yourdomain.com](mailto:support@yourdomain.com)\\n* **Subject**: \"You are missing messages from \"\\n\\nReply to the customer on a ticket\\n---------------------------------\\n\\n* **Trigger**: When a reply is made to a customer on a ticket.\\n* **Action**: The system sends out a notification to the customer with the reply message.\\n* **Sender**: {Company\\\\_Name} [support@yourdomain.com](mailto:support@yourdomain.com)\\n* **Subject**: \"[{Company\\\\_Name}] Update on TKT-XXX\"\\n\\nTicket", - "title": "Customer email notifications | Computer by DevRev | DevRev" + "id": "ART-2027_KNOWLEDGE_NODE-37", + "text": "If Channel is not email, it is sent from the email address configured in the snap-in under **Notification sender email address**. - If no email snap-in is installed, the reply is sent from [notifications@devrev.ai](mailto:notifications@devrev.ai). | Yes |\\n| Replies to notification emails | Email reply | Response added to ticket thread | Yes |\\n\\n![]()\\n\\nEven when a reply comes via email, it\\xe2\\x80\\x99s always synced into the customer\\xe2\\x80\\x99s portal view.\\n\\nEmail experience from an", + "title": "Email | Integrate | Snap-ins | DevRev" + }, + { + "id": "ART-3207_KNOWLEDGE_NODE-38", + "text": "Step 2: Define the Primary Use Case\\n\\nChoose how DevRev should interpret emails sent to the primary address:\\n\\n* Choose between generating a **Ticket or a Conversation** from the incoming email.\\n\\nToggle on **Set email as the default channel for tickets** to ensure that:\\n\\n* Customer chat replies are sent via email as well as to the original source of the channel.\\n\\n### Step 3: Add Additional Support Emails\\n\\nYou can add more addresses to handle support requests.\\n\\n* **Tickets**: Emails", + "title": "Email snap-in configuration | Email | Integrate | Snap-ins | DevRev" }, { "id": "ART-2027_KNOWLEDGE_NODE-29", "text": "your communication requirements.\\n\\nThe visibility and interaction capabilities with a ticket in DevRev are determined by the user's role and how they were added to the email thread.\\n\\nEnd users\\n\\n* Original sender\\n\\n *Added to:* **Reported by** or **Email members** field.\\n\\n *Is able to:* View the ticket on the portal and reply via email.\\n* An end user in the same organization\\n\\n *Added to:* **To** or **CC** fields in the email thread; **Reported by** field, **Email members** field,", "title": "Email | Integrate | Snap-ins | DevRev" }, - { - "id": "ART-1978_KNOWLEDGE_NODE-28", - "text": "eliminating the need for scattered email chains.\\n* **Improved collaboration**: Customer admins can access and manage tickets from their team, enabling seamless collaboration and knowledge sharing.\\n\\nFeatures\\n--------\\n\\n### Ticket creation, tracking, and team collaboration\\n\\n* Customers can create tickets with relevant details, such as issue description, priority, and category.\\n + To create a ticket, go to **+ Ticket**. Enter a title and description for the ticket and click **Submit**.\\n*", - "title": "Customer portal | Computer for Support Teams | DevRev" - }, { "id": "ART-1953_KNOWLEDGE_NODE-30", "text": "linked to a conversation\\n-------------------------------\\n\\n* **Trigger**: A ticket is linked to an existing conversation.\\n* **Action**: The system sends out a notification with the linked ticket number.\\n* **Sender**: {Company\\\\_Name} [support@yourdomain.com](mailto:support@yourdomain.com)\\n* **Subject**: \"\"\\n\\n![]()\\n\\nThis email is only sent to the organizations with [Convergence snap-in](https://docs.devrev.ai/automations/converge)\\n\\nChange of", "title": "Customer email notifications | Computer by DevRev | DevRev" }, { - "id": "ART-1981_KNOWLEDGE_NODE-26", - "text": "a small number of tags to help categorize tickets. For example, at DevRev we have the following: bug, feature-request, other-request, question, and incident.\\n* Designate one or more customer experience engineers to be on call. Add them to the **Support** group inside **Settings > Groups** and as default owner in the **Support Routing** snap-in. Default owners are notified through email and the DevRev app as soon as a new conversation is started.\\n\\nMonitor the inbox\\n-----------------\\n\\n*", - "title": "Support best practices | Computer for Support Teams | DevRev" - }, - { - "id": "ART-2012_KNOWLEDGE_NODE-26", - "text": "customer knows why a new ticket was created. The following fields are automatically set on the follow-up ticket based on the archived ticket:\\n\\n * **Title**\\n * **Customer**\\n * **Reported By**\\n * **Tag** is_followup In addition, the tag has_followup is added to the archived ticket.\\n\\nIf the customer responds to a ticket in the terminal stage for the second time, their message will be added to that ticket and the **Needs response** toggle will be enabled. However, no follow-up tickets", - "title": "Follow-up ticket | Automate | Snap-ins | DevRev" + "id": "ART-2027_KNOWLEDGE_NODE-28", + "text": "email address that messages to it create either a conversation or a ticket, but not both simultaneously. Whether to create a conversation or a ticket depends on the nature of the emails received at a specific email address.\\n\\nRead more about [conversations](../product/conversation) and [tickets](../product/tickets) to decide which is more suitable for your use case.\\n\\nWhen needed, you can link a conversation to a ticket. This is particularly useful if you decide to use conversations for all", + "title": "Email | Integrate | Snap-ins | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-61", - "text": "following scenarios can lead to the creation of follow up ticket:\\n\\n* Customers communicated on an archived/immutable ticket from any channel such as email.\\n* Customer communicated on a merged ticket and the primary ticket is also archived.\\n\\nAfter creation of a follow up ticket the customer messages will reflect only on the new followup ticket and the customer will continue to see response on the same thread in channels like email & slack. The user can continue responding on the new follow", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-3235_KNOWLEDGE_NODE-24", + "text": "[Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[Reported by enricher](/docs/automations/ticket-reported-by)\\n\\nReported by enricher\\n====================\\n\\nThe [Reported by Enricher](https://marketplace.devrev.ai/ticket-reported-by) snap-in automatically updates the **Reported By** field on tickets created with an email entered in a custom field. It verifies if the email belongs to an existing customer of the configured account and either links to that customer or creates a new", + "title": "Reported by enricher | Automate | Snap-ins | DevRev" } ] }, @@ -172,9 +172,14 @@ "query": "manage access and privileges in DevRev", "retrievals": [ { - "id": "ART-12584_KNOWLEDGE_NODE-13", - "text": "analytical and time management skills.\\n * Self-motivated, goal-oriented, and able to work independently in a fast-paced environment. \\n \\n\\n**Benefits**\\n\\n * Immense personal and professional development, and career growth opportunities.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the earth\\xe2\\x80\\x99s most customer-centric companies. Our mission is to leverage", - "title": "DevRev Careers | Demand Generation Manager" + "id": "ART-1948_KNOWLEDGE_NODE-31", + "text": "can configure what access a certain group has, by assigning and revoking roles for a group.\\n\\n1. To assign/revoke roles for a group, go to [**User Management > Groups**](https://app.devrev.ai/devrev/settings/groups), and click the group in which you want to make changes.\\n2. Click the **Privileges** tab and select your target object or category (Support, Build, Grow, Analytics).\\n\\n**Currently, available targets are:**\\n\\n* Ticket\\n* Issue\\n* Opportunity\\n* Account\\n* Workspaces\\n*", + "title": "Groups | Computer by DevRev | DevRev" + }, + { + "id": "ART-1966_KNOWLEDGE_NODE-31", + "text": "\"DevRev\" that you created earlier under Enterprise applications. Within the application, go to **Users and Groups** and assign the users who can access the app.\\n\\nConfigure DevRev to use your identity provider\\n----------------------------------------------\\n\\nAfter registering DevRev as an application in your identity provider, you need to create an authentication connection in DevRev that links to your identity provider. This connection enables DevRev to authenticate users through your", + "title": "External identity provider setup | Computer by DevRev | DevRev" }, { "id": "ART-1955_KNOWLEDGE_NODE-0", @@ -182,44 +187,39 @@ "title": "Default privileges by group | Roles | Computer by DevRev | DevRev" }, { - "id": "ART-16570_KNOWLEDGE_NODE-8", - "text": "access\\n--------------------------------------------------------------\\n\\n**The Transformation Journey**\\n\\nThe shift from FAME\\'s previous fragmented information landscape to DevRev\\'s unified memory represented a fundamental change in how teams work. What once required navigating multiple platforms, piecing together incomplete information, and spending hours searching for answers became as simple as having a conversation.\\n\\nDevRev\\'s AirSync technology seamlessly ingested FAME\\'s existing", - "title": "FAME transforms information access with AI-powered enterprise search" - }, - { - "id": "ART-17233_KNOWLEDGE_NODE-13", - "text": "and groups.\\n\\n##### \\n\\nOnly 1-way sync (from the external system to DevRev) is supported for authorization policy.\\n\\n### Object fields\\n\\nThe Authorization policy object supports the following fields:\\n\\n* `groups` (optional): A list of group identifiers from the external system to which this policy applies.\\n* `users` (optional): A list of user identifiers from the external system to which this policy applies.\\n* `targets`: Defines the DevRev record types the permissions apply to. It uses", + "id": "ART-17233_KNOWLEDGE_NODE-8", + "text": "entry in the `shared_with` collection contains two key components:\\n\\n* `member_id`: Identifies which user or group is being granted access.\\n* `role`: Specifies the permission level (for example, \\xe2\\x80\\x9cviewer\\xe2\\x80\\x9d, \\xe2\\x80\\x9ceditor\\xe2\\x80\\x9d, \\xe2\\x80\\x9cowner\\xe2\\x80\\x9d). DevRev offers a set of predefined roles.\\n\\n### Member types\\n\\nThe `member_id` field can reference three different types of objects:\\n\\n* Individual users (`#record:users`)\\n* Standard groups", "title": "Permissions | DevRev | Docs" }, { - "id": "ART-15203_KNOWLEDGE_NODE-10", - "text": "Technical knowledge of web solutions including APIs and Webhooks. Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n* Outstanding communication (written and verbal), with fluency in English.\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who", - "title": "DevRev Careers | Senior Customer Success Manager" - }, - { - "id": "ART-1955_KNOWLEDGE_NODE-66", - "text": "Privileges: devu object ['CREATE', 'READ', 'UPDATE', 'DELETE']\\n* *revu Admin:* Contains privileges for admins on revus.\\n\\n Privileges: revu object ['CREATE', 'READ', 'UPDATE', 'DELETE']\\n* *devo Admin:* Contains privileges for admins on devos.\\n\\n Privileges: devo object ['CREATE', 'READ', 'UPDATE', 'DELETE']\\n* *flow Admin:* Contains privileges for admins on flows.\\n\\n Privileges: flow object ['CREATE', 'READ', 'UPDATE', 'DELETE']\\n* *webhook Admin:* Contains privileges for admins on", - "title": "Default privileges by group | Roles | Computer by DevRev | DevRev" + "id": "ART-1472_KNOWLEDGE_NODE-29", + "text": "documentation](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens).\\n\\n#### Step 2: Add PAT to DevRev connections\\n\\nAdd the generated PAT as a snap-in secret in DevRev. This secret is used during the installation of the snap-in. Ensure that the secret is shared within the organization to allow the snap-in to access it.\\n\\n#### Step 3: Install the snap-in\\n\\nDuring the installation of the snap-in, utilize the shared secret to", + "title": "Using a snap-in to perform an external action \u2014 DevRev | Docs" }, { - "id": "ART-1966_KNOWLEDGE_NODE-31", - "text": "\"DevRev\" that you created earlier under Enterprise applications. Within the application, go to **Users and Groups** and assign the users who can access the app.\\n\\nConfigure DevRev to use your identity provider\\n----------------------------------------------\\n\\nAfter registering DevRev as an application in your identity provider, you need to create an authentication connection in DevRev that links to your identity provider. This connection enables DevRev to authenticate users through your", + "id": "ART-1966_KNOWLEDGE_NODE-42", + "text": "process from your identity provider\\'s portal. The latter is not supported on DevRev.\\n\\nA workaround for supporting IDP-initiated SSO is to bookmark your DevRev workspace URL (that is https://app.devrev.ai/) in your IDP. With only SSO Auth connection enabled, the experience would be as seamless as SP-initiated SSO.\\n\\n### Parameter reference\\n\\n* : Your Personal Access Token with admin permissions\\n* : Your DevRev organization ID (from the initial API", "title": "External identity provider setup | Computer by DevRev | DevRev" }, { - "id": "ART-16798_KNOWLEDGE_NODE-9", - "text": "skills are also valued.\\n\\n* Outstanding communication (written and verbal), with fluency in English.\\n\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the earth\\xe2\\x80\\x99s most customer-centric companies. Our mission is", - "title": "DevRev Careers | Partner Success Manager" - }, - { - "id": "ART-15962_KNOWLEDGE_NODE-9", - "text": "areas.\\n\\n**Preferred Qualifications** \\nList additional skills, experience, or attributes that are advantageous but not required.\\n\\n* MBA or related advanced degree.\\n* 10+ years of experience in software product marketing, with direct experience in AI, large language models, machine learning, or related fields preferred.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the", - "title": "DevRev Careers | Senior Product Marketing Manager" + "id": "ART-15511_KNOWLEDGE_NODE-10", + "text": "global user object. DevRev utilizes the `RevUser` object and `addSessionProperties()` for enhanced functionality.\\n\\nFor setting user properties, refer to the [User Identification](https://developer.devrev.ai/sdks/web/user-identity).\\n\\n###### UserExperior implementation\\n\\n###### Replace with Plug\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | ue.setUserProperties({ |\\n| 2 | key1: value1, |\\n| 3 | key2: value2, |\\n| 4 | ... |\\n| 5 | }) |\\n```\\n\\nRestart a session\\n-----------------\\n\\nTerminate the", + "title": "UserExperior migration | DevRev | Docs" }, { "id": "ART-1170_KNOWLEDGE_NODE-5", "text": "DevRev APIs on behalf of the corresponding dev user. The lifetime of a PAT is usually in days. The subject of the PAT is set to the corresponding dev users DON (for example, `don:identity:dvrv-us-1:devo/0:devu/30`).\\n\\nPersonal access token usage\\n---------------------------\\n\\nAuthentication to DevRev APIs requires a personal access token (PAT). A PAT is used to uniquely identify a dev user in context of a dev org and can be used by external third-party applications to access DevRev APIs on", "title": "Authentication | DevRev | Docs" + }, + { + "id": "ART-1955_KNOWLEDGE_NODE-66", + "text": "Privileges: devu object ['CREATE', 'READ', 'UPDATE', 'DELETE']\\n* *revu Admin:* Contains privileges for admins on revus.\\n\\n Privileges: revu object ['CREATE', 'READ', 'UPDATE', 'DELETE']\\n* *devo Admin:* Contains privileges for admins on devos.\\n\\n Privileges: devo object ['CREATE', 'READ', 'UPDATE', 'DELETE']\\n* *flow Admin:* Contains privileges for admins on flows.\\n\\n Privileges: flow object ['CREATE', 'READ', 'UPDATE', 'DELETE']\\n* *webhook Admin:* Contains privileges for admins on", + "title": "Default privileges by group | Roles | Computer by DevRev | DevRev" + }, + { + "id": "ART-17233_KNOWLEDGE_NODE-13", + "text": "and groups.\\n\\n##### \\n\\nOnly 1-way sync (from the external system to DevRev) is supported for authorization policy.\\n\\n### Object fields\\n\\nThe Authorization policy object supports the following fields:\\n\\n* `groups` (optional): A list of group identifiers from the external system to which this policy applies.\\n* `users` (optional): A list of user identifiers from the external system to which this policy applies.\\n* `targets`: Defines the DevRev record types the permissions apply to. It uses", + "title": "Permissions | DevRev | Docs" } ] }, @@ -227,15 +227,20 @@ "query_id": "483151ec-aff4-4569-b3df-651f578b61d8", "query": "SSO setup SAML IDP metadata connection string Google Workspace", "retrievals": [ + { + "id": "ART-16086_KNOWLEDGE_NODE-6", + "text": "bases\\n\\n8. Conclusion\\n\\nThe SSO Setup Agent offers a fully guided, interactive setup for configuring SSO, with support for both SAML and OIDC. It includes validation, previews, and uses workflow-based skills to automate the process with minimal user intervention.'", + "title": "Single Sign On Configuration 3P Node" + }, { "id": "ART-15701_KNOWLEDGE_NODE-16", "text": "created\\n\\nEnter the SSO URL in case you have configured SAML login as identity management in amazon connect instance.\\n\\nEnter the complete S3 Bucket names and path for call recording and transcript. The complete bucket names and path can be found here. Copy the complete path directly.\\n\\nSelect Invite All checkbox if you would like to invite all the support agents to DevRev workspace if not present.\\n\\nClick on install snap-in.\\n\\nAfter the snap-in status shows Active, go to the configured", "title": "Amazon Connect Telephony Integration Guide" }, { - "id": "ART-1545_KNOWLEDGE_NODE-168", - "text": "for the organization and the user will need to explicitly enable this. Keep in mind that at a time, only one authentication connection can be enabled for a Dev organization. At present, only 5 enterprise connections can be created by an organization.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nGoogle Apps\\n\\nObject encapsulating the configuration parameters for a Google Apps authentication connection.\\n\\nShow 5 properties\\nOR\\nOidc\\n\\nObject encapsulating the configuration parameters for", - "title": "Create (Beta) \u2014 DevRev | Docs" + "id": "ART-16086_KNOWLEDGE_NODE-2", + "text": "and back-and-forth coordination The absence of a guided experience adds unnecessary friction to an otherwise smooth onboarding process. The proposed agentic skill aims to eliminate these barriers with a step-by-step SSO setup flow embedded directly within DevRev.\\n\\n3.System Specifications\\n\\nSupports both SAML and OIDC connection types.\\n\\nInteractive, step-by-step setup via agent conversation.\\n\\nCollects essential inputs from the user based on the selected connection type:-For SAML: sign-in", + "title": "Single Sign On Configuration 3P Node" }, { "id": "ART-1966_KNOWLEDGE_NODE-26", @@ -243,19 +248,19 @@ "title": "External identity provider setup | Computer by DevRev | DevRev" }, { - "id": "ART-1564_KNOWLEDGE_NODE-168", - "text": "for the organization and the user will need to explicitly enable this. Keep in mind that at a time, only one authentication connection can be enabled for a Dev organization. At present, only 5 enterprise connections can be created by an organization.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nGoogle Apps\\n\\nObject encapsulating the configuration parameters for a Google Apps authentication connection.\\n\\nShow 5 properties\\nOR\\nOidc\\n\\nObject encapsulating the configuration parameters for", - "title": "List (Beta) \u2014 DevRev | Docs" + "id": "ART-16616_KNOWLEDGE_NODE-31", + "text": "provider setup](/docs/product/sso-saml)[NextComputer for Support Teams](/docs/product/support)\\n\\n#### On this page\\n\\n* [Prerequisites](#prerequisites)\\n* [Authenticate with PAT](#authenticate-with-pat)\\n* [Configure for Claude desktop](#configure-for-claude-desktop)\\n* [Configure for Cursor](#configure-for-cursor)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer", + "title": "Remote MCP server | Computer by DevRev | DevRev" }, { - "id": "ART-4052_KNOWLEDGE_NODE-1", - "text": "authentication connections, refer to [External identity provider setup](https://docs.devrev.ai/product/sso-saml).\\n\\nWas this page helpful?YesNo\\n\\n[Security tokensUp Next](/public/api-reference/auth-tokens/security-tokens)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n[Enterprise grade security to protect customer dataLearn more about it.](https://devrev.ai/blog/soc-compliance)\\n\\nProduct\\n\\n *", - "title": "Identity provider \u2014 DevRev | Docs" + "id": "ART-1966_KNOWLEDGE_NODE-25", + "text": "connection](#step-2-enable-the-authentication-connection)\\n* [Step 3: Test and verify the setup](#step-3-test-and-verify-the-setup)\\n* [Step 4: Manage authentication methods (Optional)](#step-4-manage-authentication-methods-optional)\\n* [IDP initiated SSO (Optional)](#idp-initiated-sso-optional)\\n* [Parameter reference](#parameter-reference)\\n* [Troubleshooting](#troubleshooting)\\n\\n1. [Documentation](/docs)\\n3. [Computer by DevRev](/docs/intro)\\n[External identity provider", + "title": "External identity provider setup | Computer by DevRev | DevRev" }, { - "id": "ART-1543_KNOWLEDGE_NODE-168", - "text": "for the organization and the user will need to explicitly enable this. Keep in mind that at a time, only one authentication connection can be enabled for a Dev organization. At present, only 5 enterprise connections can be created by an organization.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nGoogle Apps\\n\\nObject encapsulating the configuration parameters for a Google Apps authentication connection.\\n\\nShow 5 properties\\nOR\\nOidc\\n\\nObject encapsulating the configuration parameters for", - "title": "Metric Definitions List Post (Beta) \u2014 DevRev | Docs" + "id": "ART-1966_KNOWLEDGE_NODE-42", + "text": "process from your identity provider\\'s portal. The latter is not supported on DevRev.\\n\\nA workaround for supporting IDP-initiated SSO is to bookmark your DevRev workspace URL (that is https://app.devrev.ai/) in your IDP. With only SSO Auth connection enabled, the experience would be as seamless as SP-initiated SSO.\\n\\n### Parameter reference\\n\\n* : Your Personal Access Token with admin permissions\\n* : Your DevRev organization ID (from the initial API", + "title": "External identity provider setup | Computer by DevRev | DevRev" }, { "id": "ART-12476_KNOWLEDGE_NODE-1", @@ -263,19 +268,14 @@ "title": "The Future of Sessions - Powered By DevRev" }, { - "id": "ART-1562_KNOWLEDGE_NODE-168", - "text": "for the organization and the user will need to explicitly enable this. Keep in mind that at a time, only one authentication connection can be enabled for a Dev organization. At present, only 5 enterprise connections can be created by an organization.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nGoogle Apps\\n\\nObject encapsulating the configuration parameters for a Google Apps authentication connection.\\n\\nShow 5 properties\\nOR\\nOidc\\n\\nObject encapsulating the configuration parameters for", - "title": "Get (Beta) \u2014 DevRev | Docs" - }, - { - "id": "ART-1966_KNOWLEDGE_NODE-42", - "text": "process from your identity provider\\'s portal. The latter is not supported on DevRev.\\n\\nA workaround for supporting IDP-initiated SSO is to bookmark your DevRev workspace URL (that is https://app.devrev.ai/) in your IDP. With only SSO Auth connection enabled, the experience would be as seamless as SP-initiated SSO.\\n\\n### Parameter reference\\n\\n* : Your Personal Access Token with admin permissions\\n* : Your DevRev organization ID (from the initial API", - "title": "External identity provider setup | Computer by DevRev | DevRev" + "id": "ART-4052_KNOWLEDGE_NODE-1", + "text": "authentication connections, refer to [External identity provider setup](https://docs.devrev.ai/product/sso-saml).\\n\\nWas this page helpful?YesNo\\n\\n[Security tokensUp Next](/public/api-reference/auth-tokens/security-tokens)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n[Enterprise grade security to protect customer dataLearn more about it.](https://devrev.ai/blog/soc-compliance)\\n\\nProduct\\n\\n *", + "title": "Identity provider \u2014 DevRev | Docs" }, { - "id": "ART-1566_KNOWLEDGE_NODE-168", - "text": "for the organization and the user will need to explicitly enable this. Keep in mind that at a time, only one authentication connection can be enabled for a Dev organization. At present, only 5 enterprise connections can be created by an organization.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nGoogle Apps\\n\\nObject encapsulating the configuration parameters for a Google Apps authentication connection.\\n\\nShow 5 properties\\nOR\\nOidc\\n\\nObject encapsulating the configuration parameters for", - "title": "Transition (Beta) \u2014 DevRev | Docs" + "id": "ART-15701_KNOWLEDGE_NODE-25", + "text": "session expired, contact your administrator to check with the SAML login setup with AWS and IdP.\\n\\nCheck if [https://app.devrev.ai](https://app.devrev.ai) is added approved domain in Approved Origins tab. Check Point 2 of Setup DevRev Integration with Amazon Connect for more information on this.\\n\\nConfirm your credentials with the administrator and try again.\\n\\nQ: How to port existing phone number to Amazon Connect?\\n\\nIf you already have a phone number and want to port it to Amazon Connect", + "title": "Amazon Connect Telephony Integration Guide" } ] }, @@ -283,55 +283,55 @@ "query_id": "0f148fcd-ec0b-43d6-b172-32b843a8dbd2", "query": "restrict users from linking opportunities and meetings", "retrievals": [ - { - "id": "ART-12471_KNOWLEDGE_NODE-8", - "text": "endpoints that reference meetings\\n\\n### Link Summary\\n\\nModified link summary schema to support custom link types across multiple endpoints\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/beta/changelog/2025/6/2)[#### April 24, 2025\\n\\nNext](/beta/changelog/2025/4/24)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "May 19, 2025 | DevRev | Docs" - }, - { - "id": "ART-15422_KNOWLEDGE_NODE-5", - "text": "return.\\n\\nlinks.link\\\\_typestringOptional`format: \"text\"`\\n\\nFilters for link type in links associated with the meeting.\\n\\nlinks.targetstringOptional`format: \"id\"`\\n\\nFilters for target id in links associated with the meeting.\\n\\nlinks.target\\\\_object\\\\_typestringOptional`format: \"text\"`\\n\\nFilters for target object type in links associated with the meeting.\\n\\nmemberslist of stringsOptional\\n\\nFilter for meeting on specified Member Ids.\\n\\nmodeenumOptional\\n\\nThe iteration mode to use,", - "title": "List Meetings | DevRev | Docs" - }, - { - "id": "ART-3002_KNOWLEDGE_NODE-1", - "text": "https://api.devrev.ai/meetings.delete \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -H \"Content-Type: application/json\" \\\\ \\n >| -d \\'{ \\n >| \"id\": \"id\" \\n >| }\\'\\n[/code] \\n \\nTry it\\n\\n200Successful\\n\\n[code]\\n\\n 1| {} \\n ---|---\\n[/code] \\n \\n[Get MeetingUp Next](/beta/api-reference/meetings/get)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n'", - "title": "Delete Meeting (Beta) \u2014 DevRev | Docs" - }, { "id": "ART-13005_KNOWLEDGE_NODE-2", "text": "stringsOptional\\n\\nFilters for meetings created by the specified user(s).\\n\\nexternal_reflist of stringsOptional\\n\\nFilters for meetings with the provided external_ref(s).\\n\\nlinks.link_typestringOptional`format: \"text\"`\\n\\nFilters for link type in links associated with the meeting.\\n\\nlinks.targetstringOptional`format: \"id\"`\\n\\nFilters for target id in links associated with the meeting.\\n\\nlinks.target_object_typestringOptional`format: \"text\"`\\n\\nFilters for target object type in links", "title": "Count Meetings \u2014 DevRev | Docs" }, - { - "id": "ART-3197_KNOWLEDGE_NODE-14", - "text": "endpoints that reference meetings\\n\\n### Link Summary\\n\\nModified link summary schema to support custom link types across multiple endpoints\\n\\n---\\n\\n[April 24, 2025](/beta/changelog/2025/4/24)\\n\\n[April 24, 2025](/beta/changelog/2025/4/24)\\n\\nNew Endpoints\\n-------------\\n\\n### Service Accounts\\n\\n* Added [`POST /service-accounts.create`](/beta/api-reference/service-accounts/create) for creating service accounts\\n\\n### Widgets\\n\\n* Added [`GET /widgets.get`](/beta/api-reference/widgets/get)", - "title": "Changelog | DevRev | Docs" - }, { "id": "ART-3003_KNOWLEDGE_NODE-1", "text": "user(s).\\n\\ncustom_fieldsobjectOptional\\n\\nFilters for meeting on custom fields.\\n\\nexternal_reflist of stringsOptional\\n\\nFilters for meetings with the provided external_ref(s).\\n\\nlinks.link_typestringOptional`format: \"text\"`\\n\\nFilters for link type in links associated with the meeting.\\n\\nlinks.targetstringOptional`format: \"id\"`\\n\\nFilters for target id in links associated with the meeting.\\n\\nlinks.target_object_typestringOptional`format: \"text\"`\\n\\nFilters for target object type in links", "title": "Count Meetings (Beta) \u2014 DevRev | Docs" }, + { + "id": "ART-13009_KNOWLEDGE_NODE-2", + "text": "stringsOptional\\n\\nFilters for meetings created by the specified user(s).\\n\\ncursorstringOptional`format: \"text\"`\\n\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\n\\nexternal_reflist of stringsOptional\\n\\nFilters for meetings with the provided external_ref(s).\\n\\nlimitintegerOptional\\n\\nThe maximum number of meetings to return.\\n\\nlinks.link_typestringOptional`format: \"text\"`\\n\\nFilters for link type in links associated with the", + "title": "List Meetings \u2014 DevRev | Docs" + }, { "id": "ART-15416_KNOWLEDGE_NODE-2", "text": "created by the specified user(s).\\n\\nexternal\\\\_reflist of stringsOptional\\n\\nFilters for meetings with the provided external\\\\_ref(s).\\n\\nlinks.link\\\\_typestringOptional`format: \"text\"`\\n\\nFilters for link type in links associated with the meeting.\\n\\nlinks.targetstringOptional`format: \"id\"`\\n\\nFilters for target id in links associated with the meeting.\\n\\nlinks.target\\\\_object\\\\_typestringOptional`format: \"text\"`\\n\\nFilters for target object type in links associated with the", "title": "Count Meetings | DevRev | Docs" }, + { + "id": "ART-3008_KNOWLEDGE_NODE-1", + "text": "user(s).\\n\\ncursorstringOptional`format: \"text\"`\\n\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\n\\ncustom_fieldsobjectOptional\\n\\nFilters for meeting on custom fields.\\n\\nexternal_reflist of stringsOptional\\n\\nFilters for meetings with the provided external_ref(s).\\n\\nlimitintegerOptional\\n\\nThe maximum number of meetings to return.\\n\\nlinks.link_typestringOptional`format: \"text\"`\\n\\nFilters for link type in links associated with the", + "title": "List Meetings (Beta) \u2014 DevRev | Docs" + }, + { + "id": "ART-15422_KNOWLEDGE_NODE-5", + "text": "return.\\n\\nlinks.link\\\\_typestringOptional`format: \"text\"`\\n\\nFilters for link type in links associated with the meeting.\\n\\nlinks.targetstringOptional`format: \"id\"`\\n\\nFilters for target id in links associated with the meeting.\\n\\nlinks.target\\\\_object\\\\_typestringOptional`format: \"text\"`\\n\\nFilters for target object type in links associated with the meeting.\\n\\nmemberslist of stringsOptional\\n\\nFilter for meeting on specified Member Ids.\\n\\nmodeenumOptional\\n\\nThe iteration mode to use,", + "title": "List Meetings | DevRev | Docs" + }, + { + "id": "ART-3002_KNOWLEDGE_NODE-1", + "text": "https://api.devrev.ai/meetings.delete \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -H \"Content-Type: application/json\" \\\\ \\n >| -d \\'{ \\n >| \"id\": \"id\" \\n >| }\\'\\n[/code] \\n \\nTry it\\n\\n200Successful\\n\\n[code]\\n\\n 1| {} \\n ---|---\\n[/code] \\n \\n[Get MeetingUp Next](/beta/api-reference/meetings/get)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n'", + "title": "Delete Meeting (Beta) \u2014 DevRev | Docs" + }, { "id": "ART-3004_KNOWLEDGE_NODE-1", "text": "curl -X POST https://api.devrev.ai/meetings.get \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -H \"Content-Type: application/json\" \\\\ \\n >| -d \\'{ \\n >| \"id\": \"id\" \\n >| }\\'\\n[/code] \\n \\nTry it\\n\\n200Successful\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"meeting\": { \\n 3| \"id\": \"id\", \\n 4| \"members\": [ \\n 5| { \\n 6| \"type\": \"dev_user\", \\n 7| \"id\": \"id\", \\n 8|", "title": "Get Meeting (POST) (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-3008_KNOWLEDGE_NODE-2", - "text": "meeting.\\n\\nlinks.targetstringOptional`format: \"id\"`\\n\\nFilters for target id in links associated with the meeting.\\n\\nlinks.target_object_typestringOptional`format: \"text\"`\\n\\nFilters for target object type in links associated with the meeting.\\n\\nmemberslist of stringsOptional\\n\\nFilter for meeting on specified Member Ids.\\n\\nmodeenumOptional\\n\\nThe iteration mode to use, otherwise if not set, then \\xe2\\x80\\x9cafter\\xe2\\x80\\x9d is used.\\n\\nAllowed values: afterbefore\\n\\norganizerlist of", - "title": "List Meetings (Beta) \u2014 DevRev | Docs" + "id": "ART-16803_KNOWLEDGE_NODE-26", + "text": "Tickets\\n* Meetings\\n* Objects linked to issues\\n* Users\\n\\nTo configure a workspace object loop:\\n\\n1. On the **workflow canvas**, add an action step named **Loop for [Object]**, where [Object] is the entity you want to iterate over.\\n2. Apply **filter conditions** to refine the set of objects included in the loop and perform operations on them.\\n\\nAll **actions** inside the loop execute once per object that satisfies the filter conditions.\\n\\n### For Each\\n\\nThe **For Each** loop iterates", + "title": "Workflow nodes | Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-15409_KNOWLEDGE_NODE-4", - "text": "object.\\n\\nidstringRequired`format: \"id\"`\\n\\nThe meeting\\'s ID.\\n\\n### Response\\n\\nSuccess.\\n\\nmeetingobject\\n\\nShow 6 properties\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n404\\n\\nNot Found Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/meetings/get)[#### List Meetings\\n\\nNext](/api-reference/meetings/list)[Built", - "title": "Get Meeting (POST) | DevRev | Docs" + "id": "ART-3008_KNOWLEDGE_NODE-5", + "text": "\"Authorization: Bearer \"\\n[/code] \\n \\nTry it\\n\\n200Retrieved\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"meetings\": [ \\n 3| { \\n 4| \"id\": \"id\", \\n 5| \"members\": [ \\n 6| { \\n 7| \"type\": \"dev_user\", \\n 8| \"id\": \"id\", \\n 9| \"display_id\": \"display_id\", \\n 10| \"display_name\": \"display_name\", \\n 11| \"display_picture\": { \\n 12| \"id\": \"id\", \\n 13|", + "title": "List Meetings (Beta) \u2014 DevRev | Docs" } ] }, @@ -344,6 +344,11 @@ "text": "for you to manage all your customer conversations in one place. By adding WhatsApp to DevRev, you can streamline your support and offer a smoother experience to your customers.\\n\\nFor detailed information about WhatsApp for Business, refer to [WhatsApp Business Platform - Documentation](https://developers.facebook.com/docs/whatsapp/overview)\\n\\nPrerequisites\\n-------------\\n\\n1. **Create a business account:** Ensure you have a [Business Account](https://business.facebook.com/overview) in Meta", "title": "WhatsApp | Integrate | Snap-ins | DevRev" }, + { + "id": "ART-2029_KNOWLEDGE_NODE-28", + "text": "snap-in, confirm installation, and click **Deploy snap-in**.\\n\\nLimitations\\n-----------\\n\\n* Group Conversations are not supported by WhatsApp for Business API.\\n* If you do not respond to the customer\\xe2\\x80\\x99s message within 24 hours, you can only respond to the conversation using Meta-approved template messages.\\n\\nSet up the snap-in\\n------------------\\n\\nFollow these steps to ensure WhatsApp messages sent to your business are synced with the DevRev Inbox.\\n\\n1. **Install the snap-in:**", + "title": "WhatsApp | Integrate | Snap-ins | DevRev" + }, { "id": "ART-2029_KNOWLEDGE_NODE-24", "text": "[Limitations](#limitations)\\n* [Set up the snap-in](#set-up-the-snapin)\\n\\n1. [Documentation](/docs)\\n3. [Snap-ins](/docs/snapins)\\n[Integrate](/docs/integrate)\\n[WhatsApp](/docs/integrations/whatsapp)\\n\\nWhatsApp\\n========\\n\\nUsing DevRev, you can connect with your customers through WhatsApp. This new communication channel allows your customers to reach out with their questions and concerns directly on WhatsApp. The messages from WhatsApp seamlessly appear in your DevRev Inbox, making it easy", @@ -354,40 +359,35 @@ "text": "phone number to sync WhatsApp messages sent to the business with DevRev Inbox.\\n4. **Register for WhatsApp webhook:** In the **Discussion** tab, enter **/whatsapp** to register to the WhatsApp webhook URL to receive WhatsApp messages in the DevRev Inbox.\\n5. **Use template messages:** As per WhatsApp policies, template messages are required to communicate with customers once 24 hours have passed since their last message. To ensure continuity in customer conversations, the following template", "title": "WhatsApp | Integrate | Snap-ins | DevRev" }, - { - "id": "ART-15716_KNOWLEDGE_NODE-20", - "text": "them, reach out to DevRev support with details (article titles, migration date, etc.) for assistance.\\n\\nSupport for Incoming Text Messages (SMS and WhatsApp)\\n\\nYes, DevRev does allow for incoming text messages\\xe2\\x80\\x94if you use a supported SMS integration.\\n\\nThe main provider currently supported is Exotel. When you connect your Exotel account to DevRev, customers can send SMS to your Exotel number, and those messages will show up as conversations in your DevRev inbox.\\n\\nWhatsApp is also", - "title": "Support queries related playbook" - }, - { - "id": "ART-2029_KNOWLEDGE_NODE-0", - "text": "b'WhatsApp | Integrate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", - "title": "WhatsApp | Integrate | Snap-ins | DevRev" - }, { "id": "ART-2029_KNOWLEDGE_NODE-29", "text": "Install the WhatsApp snap-in from the marketplace as mentioned above.\\n2. **Create a connection:** In the **Connections** tab, add your existing connection or create a new connection.\\n * Give your connection a name, and ensure that you completed the required steps in the prerequisites.\\n * Click **Connect**.\\n * Open the dialog and follow the process to finish creating a connection.\\n\\n ![]()\\n3. **Configure business phone number:** In the **Configuration** tab, enter the business", "title": "WhatsApp | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2029_KNOWLEDGE_NODE-28", - "text": "snap-in, confirm installation, and click **Deploy snap-in**.\\n\\nLimitations\\n-----------\\n\\n* Group Conversations are not supported by WhatsApp for Business API.\\n* If you do not respond to the customer\\xe2\\x80\\x99s message within 24 hours, you can only respond to the conversation using Meta-approved template messages.\\n\\nSet up the snap-in\\n------------------\\n\\nFollow these steps to ensure WhatsApp messages sent to your business are synced with the DevRev Inbox.\\n\\n1. **Install the snap-in:**", - "title": "WhatsApp | Integrate | Snap-ins | DevRev" + "id": "ART-2002_KNOWLEDGE_NODE-35", + "text": "integrations like [Slack](/marketplace/slack), [Email for conversations](https://marketplace.devrev.ai/marketplace/devrev-plug-with-email), [WhatsApp](/marketplace/whatsapp) are additional channels available with DevRev's omnichannel support offering.\\nIntegrating these channels automatically brings customer identity to DevRev.\\n\\n[PreviousOpportunities](/docs/product/opportunity)[NextAccount and contact import](/docs/product/account-contact-import)\\n\\n#### On this page\\n\\n*", + "title": "Contacts | Computer for Growth Teams | DevRev" }, { - "id": "ART-10697_KNOWLEDGE_NODE-27", - "text": "bidirectional synchronization between DevRev objects and Slack channels.\\n* A workflow node has been added to create a Slack channel and automatically invite specified users.\\n* A random wait time (1-20 seconds) has been added before creating a conversation to prevent duplicate conversations on WhatsApp when messages are sent rapidly.\\n* Customer identification in Slack has been enhanced by resolving users via their Slack ID when their email is hidden.\\n* An optional field has been added to the", - "title": "February 2025 | Changelog | DevRev" + "id": "ART-15716_KNOWLEDGE_NODE-20", + "text": "them, reach out to DevRev support with details (article titles, migration date, etc.) for assistance.\\n\\nSupport for Incoming Text Messages (SMS and WhatsApp)\\n\\nYes, DevRev does allow for incoming text messages\\xe2\\x80\\x94if you use a supported SMS integration.\\n\\nThe main provider currently supported is Exotel. When you connect your Exotel account to DevRev, customers can send SMS to your Exotel number, and those messages will show up as conversations in your DevRev inbox.\\n\\nWhatsApp is also", + "title": "Support queries related playbook" }, { - "id": "ART-10697_KNOWLEDGE_NODE-28", - "text": "'Send Slack Message' workflow node to include a DevRev object.\\n* Dependent field support in slack\\n\\n![]()\\xc2\\xa0For more information about *Channels*, refer to the following articles: \\xe2\\x80\\xa3 [WhatsApp | Integrate | Snap-ins](/docs/integrations/whatsapp) \\xe2\\x80\\xa3 [Slack | Integrate | Snap-ins](/docs/integrations/slack) \\xe2\\x80\\xa3 [SLA status change Slack notifier | Automate | Snap-ins](/docs/automations/sla-change-notifier)\\n\\n![]()\\n\\n### Slack App\\n\\nMulti-region Slack support", - "title": "February 2025 | Changelog | DevRev" + "id": "ART-2029_KNOWLEDGE_NODE-0", + "text": "b'WhatsApp | Integrate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", + "title": "WhatsApp | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2002_KNOWLEDGE_NODE-35", - "text": "integrations like [Slack](/marketplace/slack), [Email for conversations](https://marketplace.devrev.ai/marketplace/devrev-plug-with-email), [WhatsApp](/marketplace/whatsapp) are additional channels available with DevRev's omnichannel support offering.\\nIntegrating these channels automatically brings customer identity to DevRev.\\n\\n[PreviousOpportunities](/docs/product/opportunity)[NextAccount and contact import](/docs/product/account-contact-import)\\n\\n#### On this page\\n\\n*", + "id": "ART-2002_KNOWLEDGE_NODE-27", + "text": "Plug, email, and WhatsApp) can be matched to the right customer record.\\n\\n![]()\\n\\nYou can create a contact using DevRev's rev-users.create API. Follow the [Create accounts and contacts in DevRev](https://developer.devrev.ai/beta/guides/create-accounts-and-contacts-in-dev-rev) tutorial.\\n\\n### Bulk import customer records\\n\\nTo bulk import customer records, see [Account and contact import](/docs/product/account-contact-import).\\n\\nYou can also use [AirSync](https://docs.devrev.ai/import) to", "title": "Contacts | Computer for Growth Teams | DevRev" + }, + { + "id": "ART-2035_KNOWLEDGE_NODE-61", + "text": "them.\\n* As of the latest update, in case of unavailability of email, the snap-in creates new DevRev contact and attaches Slack user id for future reference. For legacy users, run the /AddSlackUserId command in DevRev on the Contacts to manually add their Slack user ID.\\n\\n[PreviousExotel](/docs/integrations/exotel)[NextWhatsApp](/docs/integrations/whatsapp)\\n\\n#### On this page\\n\\n* [Installation](#installation)\\n* [List of available commands](#list-of-available-commands)\\n* [Create DevRev", + "title": "Slack | Integrate | Snap-ins | DevRev" } ] }, @@ -396,54 +396,54 @@ "query": "API for Incident Ticket creation", "retrievals": [ { - "id": "ART-1307_KNOWLEDGE_NODE-167", - "text": "Create.\\n\\nPOST https:// api.devrev.ai / incidents.create\\nCreates an incident.\\nRequest.\\n\\nThis endpoint expects an object.\\ntitle string Required\\nTitle of the incident.\\nacknowledged_date datetime Optional\\nTimestamp when the incident was acknowledged.\\napplies_to_parts list of strings Optional\\nParts to which the incident is applicable to.\\nartifacts list of strings Optional\\nArtifacts attached to the incident.\\nbody string Optional\\nBody of the incident.\\ncustom_fields map from strings to", - "title": "List Post \u2014 DevRev | Docs" + "id": "ART-4127_KNOWLEDGE_NODE-1", + "text": "\" \\\\ |\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{ |\\n| > | \"title\": \"string\" |\\n| > | }\\' |\\n```\\n\\n[Try it](/beta/api-reference/incidents/create?explorer=true)\\n\\n201Created\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"incident\": { |\\n| 3 | \"id\": \"string\", |\\n| 4 | \"title\": \"string\", |\\n| 5 | \"acknowledged_date\": \"2023-01-01T12:00:00.000Z\", |\\n| 6 | \"actual_close_date\": \"2023-01-01T12:00:00.000Z\", |\\n| 7 | \"applies_to_parts\": [ |\\n| 8 | { |\\n| 9 | \"display_id\":", + "title": "Create Incident | DevRev | Docs" }, { - "id": "ART-15664_KNOWLEDGE_NODE-13", - "text": "\\n\\nYou may want to restrict links to specific subtypes of objects. For example, only allowing issues\\nof a particular subtype to be linked to tickets.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"name\": \"Link between social media issues and tickets\", |\\n| > | \"source_types\": [ |\\n| > | { |\\n|", - "title": "Links | DevRev | Docs" + "id": "ART-1564_KNOWLEDGE_NODE-244", + "text": "owner.\\n\\nResponse.\\n\\nThis endpoint returns an object.\\ngroup object\\nShow 11 properties\\nAPI Reference operate Incidents Create.\\n\\nPOST https://api.devrev.ai / incidents.create\\n\\nCreates an incident.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\ntitle string Required\\n\\nTitle of the incident.\\n\\nacknowledged_date datetime Optional\\n\\nTimestamp when the incident was acknowledged.\\n\\napplies_to_parts list of strings Optional\\n\\nParts to which the incident is applicable to.\\n\\nartifacts", + "title": "List (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-2749_KNOWLEDGE_NODE-8", - "text": "Agents, reducing the number of tickets per support agent, while proactive incident prediction minimized business impact.\\n\\n### Enhanced team collaboration\\n\\nThe platform eliminated communication bottlenecks between customers, support, and engineering. Teams now collaborate in a unified environment, with two-way AirSync between Computer and Jira keeping product development aligned with customer needs.\\n\\nThe Ticket Insights Dashboard is a huge contribution towards driving the operational rigor", - "title": "Phenom transforms talent experience with streamlined support and development workflows" + "id": "ART-1791_KNOWLEDGE_NODE-165", + "text": "Create.\\n\\nPOST https:// api.devrev.ai / incidents.create\\nCreates an incident.\\nRequest.\\n\\nThis endpoint expects an object.\\ntitle string Required\\nTitle of the incident.\\nacknowledged_date datetime Optional\\nTimestamp when the incident was acknowledged.\\napplies_to_parts list of strings Optional\\nParts to which the incident is applicable to.\\nartifacts list of strings Optional\\nArtifacts attached to the incident.\\nbody string Optional\\nBody of the incident.\\ncustom_fields map from strings to", + "title": "Self Delete \u2014 DevRev | Docs" }, { - "id": "ART-1803_KNOWLEDGE_NODE-167", + "id": "ART-1781_KNOWLEDGE_NODE-164", "text": "Create.\\n\\nPOST https:// api.devrev.ai / incidents.create\\nCreates an incident.\\nRequest.\\n\\nThis endpoint expects an object.\\ntitle string Required\\nTitle of the incident.\\nacknowledged_date datetime Optional\\nTimestamp when the incident was acknowledged.\\napplies_to_parts list of strings Optional\\nParts to which the incident is applicable to.\\nartifacts list of strings Optional\\nArtifacts attached to the incident.\\nbody string Optional\\nBody of the incident.\\ncustom_fields map from strings to", "title": "List \u2014 DevRev | Docs" }, { - "id": "ART-17231_KNOWLEDGE_NODE-69", - "text": "#record:incident #record:issue #record:opportunity #record:product #record:project #record:revu #record:task #record:ticket] | \\xe2\\x9c\\x94\\xef\\xb8\\x8e | Target object ID |\\n\\n#### Enum values\\n\\n**link\\\\_type\\\\_id**\\n\\n| Value | Name | Description |\\n| --- | --- | --- |\\n| `is_dependent_on` | Is Dependent On | - |\\n| `is_duplicate_of` | Is Duplicate Of | - |\\n| `is_parent_of` | Is Parent Of | - |\\n| `is_related_to` | Is Related To | - |\\n\\n[\\xe2\\x96\\xb2", - "title": "Supported DevRev object types | DevRev | Docs" - }, - { - "id": "ART-1789_KNOWLEDGE_NODE-166", + "id": "ART-1803_KNOWLEDGE_NODE-167", "text": "Create.\\n\\nPOST https:// api.devrev.ai / incidents.create\\nCreates an incident.\\nRequest.\\n\\nThis endpoint expects an object.\\ntitle string Required\\nTitle of the incident.\\nacknowledged_date datetime Optional\\nTimestamp when the incident was acknowledged.\\napplies_to_parts list of strings Optional\\nParts to which the incident is applicable to.\\nartifacts list of strings Optional\\nArtifacts attached to the incident.\\nbody string Optional\\nBody of the incident.\\ncustom_fields map from strings to", "title": "List \u2014 DevRev | Docs" }, { - "id": "ART-1422_KNOWLEDGE_NODE-0", - "text": "b'[](/public/api-reference/tags/concepts)\\n\\nPublic\\n\\n[API Reference](/public/api-reference/getting-started)[Tags](/public/api-reference/tags/concepts)\\n\\n#\\n\\nConcepts\\n\\n`tags` endpoint\\n\\n\\xe2\\x84\\xb9\\xef\\xb8\\x8f Tags are words that you can use as a label to give more context to tickets, issues, users, and every other object in DevRev. Tags create associations between objects and a logical concept. This concept is denoted by a tag\\xe2\\x80\\x99s name and description. You can have filters on", - "title": "Concepts \u2014 DevRev | Docs" + "id": "ART-1788_KNOWLEDGE_NODE-166", + "text": "Create.\\n\\nPOST https:// api.devrev.ai / incidents.create\\nCreates an incident.\\nRequest.\\n\\nThis endpoint expects an object.\\ntitle string Required\\nTitle of the incident.\\nacknowledged_date datetime Optional\\nTimestamp when the incident was acknowledged.\\napplies_to_parts list of strings Optional\\nParts to which the incident is applicable to.\\nartifacts list of strings Optional\\nArtifacts attached to the incident.\\nbody string Optional\\nBody of the incident.\\ncustom_fields map from strings to", + "title": "Get Post \u2014 DevRev | Docs" }, { - "id": "ART-1781_KNOWLEDGE_NODE-164", + "id": "ART-1805_KNOWLEDGE_NODE-167", "text": "Create.\\n\\nPOST https:// api.devrev.ai / incidents.create\\nCreates an incident.\\nRequest.\\n\\nThis endpoint expects an object.\\ntitle string Required\\nTitle of the incident.\\nacknowledged_date datetime Optional\\nTimestamp when the incident was acknowledged.\\napplies_to_parts list of strings Optional\\nParts to which the incident is applicable to.\\nartifacts list of strings Optional\\nArtifacts attached to the incident.\\nbody string Optional\\nBody of the incident.\\ncustom_fields map from strings to", - "title": "List \u2014 DevRev | Docs" + "title": "List Post \u2014 DevRev | Docs" }, { - "id": "ART-1981_KNOWLEDGE_NODE-26", - "text": "a small number of tags to help categorize tickets. For example, at DevRev we have the following: bug, feature-request, other-request, question, and incident.\\n* Designate one or more customer experience engineers to be on call. Add them to the **Support** group inside **Settings > Groups** and as default owner in the **Support Routing** snap-in. Default owners are notified through email and the DevRev app as soon as a new conversation is started.\\n\\nMonitor the inbox\\n-----------------\\n\\n*", - "title": "Support best practices | Computer for Support Teams | DevRev" + "id": "ART-1307_KNOWLEDGE_NODE-167", + "text": "Create.\\n\\nPOST https:// api.devrev.ai / incidents.create\\nCreates an incident.\\nRequest.\\n\\nThis endpoint expects an object.\\ntitle string Required\\nTitle of the incident.\\nacknowledged_date datetime Optional\\nTimestamp when the incident was acknowledged.\\napplies_to_parts list of strings Optional\\nParts to which the incident is applicable to.\\nartifacts list of strings Optional\\nArtifacts attached to the incident.\\nbody string Optional\\nBody of the incident.\\ncustom_fields map from strings to", + "title": "List Post \u2014 DevRev | Docs" }, { - "id": "ART-1805_KNOWLEDGE_NODE-167", + "id": "ART-1789_KNOWLEDGE_NODE-166", "text": "Create.\\n\\nPOST https:// api.devrev.ai / incidents.create\\nCreates an incident.\\nRequest.\\n\\nThis endpoint expects an object.\\ntitle string Required\\nTitle of the incident.\\nacknowledged_date datetime Optional\\nTimestamp when the incident was acknowledged.\\napplies_to_parts list of strings Optional\\nParts to which the incident is applicable to.\\nartifacts list of strings Optional\\nArtifacts attached to the incident.\\nbody string Optional\\nBody of the incident.\\ncustom_fields map from strings to", - "title": "List Post \u2014 DevRev | Docs" + "title": "List \u2014 DevRev | Docs" + }, + { + "id": "ART-1300_KNOWLEDGE_NODE-166", + "text": "Create.\\n\\nPOST https:// api.devrev.ai / incidents.create\\nCreates an incident.\\nRequest.\\n\\nThis endpoint expects an object.\\ntitle string Required\\nTitle of the incident.\\nacknowledged_date datetime Optional\\nTimestamp when the incident was acknowledged.\\napplies_to_parts list of strings Optional\\nParts to which the incident is applicable to.\\nartifacts list of strings Optional\\nArtifacts attached to the incident.\\nbody string Optional\\nBody of the incident.\\ncustom_fields map from strings to", + "title": "Create \u2014 DevRev | Docs" } ] }, @@ -456,25 +456,30 @@ "text": "`is_filterable` to be true.\\n\\n * `is_groupable`: Whether the field is groupable. Requires `is_filterable` to be true.\\n\\n * `order`: The order in which the field appears in the side panel.\\n\\n * `is_read_only`: Whether the field is read-only in the UI. Once the object is created, this field cannot be updated in the UI.\\n\\n * `group_name`: The group title under which field(s) appear in the side panel. In the example below, the fields are grouped under groups titled **Group 1** and **Group", "title": "Object customization (Beta) \u2014 DevRev | Docs" }, - { - "id": "ART-1654_KNOWLEDGE_NODE-470", - "text": "fields.\\nissue object Optional\\nShow 9 properties\\nlimit integer Optional\\nThe maximum number of works to return. The default is \\'50\\'.\\nmode \"after\" or \"before\" Optional\\nAllowed values: after before\\nThe iteration mode to use. If \"after\", then entries after the provided cursor will be returned, or if no cursor is provided, then from the beginning. If \"before\", then entries before the provided cursor will be returned, or if no cursor is provided, then from the end. Entries will always be", - "title": "List \u2014 DevRev | Docs" - }, { "id": "ART-996_KNOWLEDGE_NODE-15", "text": "field1\\n ...\\n gateway:\\n api_visibility: public\\n is_filterable: true\\n summary: true # NOTE: all fields marked as `summary: true`\\n...\\n - name: field2\\n ...\\n gateway:\\n api_visibility: public\\n is_filterable: true\\n summary: true # NOTE: all fields marked as `summary: true`\\n...\\n - name: field3\\n ...\\n gateway:\\n api_visibility:", "title": "An Example Object Model Style Guide (our actual style guide)" }, { - "id": "ART-16046_KNOWLEDGE_NODE-3", - "text": "supports custom fields, and has no limit on the number of rows in the CSV'", - "title": "CSV Comments Uploader" + "id": "ART-17228_KNOWLEDGE_NODE-8", + "text": "inside a given field.\\nThey represent data that consists of multiple elements belonging together (like a phone number or address) but doesn\\xe2\\x80\\x99t form its own record with identity.\\n\\nThese are helpful when the whole struct is optional/nullable, but some of its fields are required, providing a cleaner representation than flattening it.\\nExample:\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"address\": { |\\n| 3 | \"country\": \"US\", |\\n| 4 | \"state\": \"TX\", |\\n| 5 | \"city\": \"Austin\", |\\n|", + "title": "Common issues | DevRev | Docs" }, { - "id": "ART-1952_KNOWLEDGE_NODE-37", - "text": "for the actual field you are looking for, and the join paths are identified for you.\\n\\n![]()\\n\\n### Edit\\n\\nYou can enter *Edit* mode by clicking the \\xe2\\x9a\\xa1\\xc2\\xa0button on your dashboard main page and edit the following:\\n\\n* Dashboard layout: Move your widgets around through a drag-and-drop UI, utilize the canvas-like interface to arrange your widgets. You can also resize widgets.\\n* Add section: You can add a section and move widgets into the section.\\n* Widgets: Edit a widget from", - "title": "Vista Reports | Vistas | Computer by DevRev | DevRev" + "id": "ART-15487_KNOWLEDGE_NODE-35", + "text": "groupable. Requires `is_filterable` to be true.\\n* `order`: The order in which the field appears in the side panel.\\n* `is_read_only`: Whether the field is read-only in the UI. Once the object is created, this\\n field cannot be updated in the UI.\\n* `group_name`: The group title under which field(s) appear in the side panel. In the\\n example below, the fields are grouped under groups titled **Group 1** and **Group 2**.\\n\\n ![]()\\n* `unit`: The unit for the field. For example, days, kg. The", + "title": "Object customization | DevRev | Docs" + }, + { + "id": "ART-3235_KNOWLEDGE_NODE-25", + "text": "one.\\n\\nInstallation\\n------------\\n\\nInstall the [Reported by Enricher](https://marketplace.devrev.ai/ticket-reported-by) from DevRev marketplace.\\n\\nConfiguration\\n-------------\\n\\nIn the **Configuration** tab, the following settings are available:\\n\\n* **Custom Email Field**: Specify the backend name of the custom field where the email is entered when creating a ticket.\\n* **Default Account**: Select the account to which new customers should be linked if they do not already exist in the", + "title": "Reported by enricher | Automate | Snap-ins | DevRev" + }, + { + "id": "ART-1508_KNOWLEDGE_NODE-11", + "text": "\"updated\": { |\\n| 180 | \"field_deltas\": [ |\\n| 181 | { |\\n| 182 | \"field_descriptor\": { |\\n| 183 | \"description\": {}, |\\n| 184 | \"is_filterable\": {}, |\\n| 185 | \"is_immutable\": {}, |\\n| 186 | \"is_pii\": {}, |\\n| 187 | \"is_required\": {}, |\\n| 188 | \"mfz\": {}, |\\n| 189 | \"name\": {}, |\\n| 190 | \"oasis\": {}, |\\n| 191 | \"origin\": {}, |\\n| 192 | \"ui\": {}, |\\n| 193 | \"default_value\": {} |\\n| 194 | }, |\\n| 195 | \"name\": \"string\", |\\n| 196 | \"new_value\": { |\\n| 197 | \"fields\": {} |\\n| 198 | }, |\\n| 199 |", + "title": "Export Conversations | DevRev | Docs" }, { "id": "ART-996_KNOWLEDGE_NODE-14", @@ -482,14 +487,9 @@ "title": "An Example Object Model Style Guide (our actual style guide)" }, { - "id": "ART-3108_KNOWLEDGE_NODE-28", - "text": "fields.\\n\\nThe duration of the import depends on the size of the Paligo workspace and the\\namount of data being imported. For a workspace with only a few dozen items, it\\ncan take seconds, while a workspace with tens of thousands of items may take a\\nfew hours.\\n\\nPost-import options\\n-------------------\\n\\nAfter a successful import, you have the following options available for the\\nimported workspace:\\n\\n* [Sync to DevRev](#sync-to-devrev)\\n + Synchronize any modifications made in your Paligo", - "title": "Paligo AirSync | AirSync | Snap-ins | DevRev" - }, - { - "id": "ART-15487_KNOWLEDGE_NODE-35", - "text": "groupable. Requires `is_filterable` to be true.\\n* `order`: The order in which the field appears in the side panel.\\n* `is_read_only`: Whether the field is read-only in the UI. Once the object is created, this\\n field cannot be updated in the UI.\\n* `group_name`: The group title under which field(s) appear in the side panel. In the\\n example below, the fields are grouped under groups titled **Group 1** and **Group 2**.\\n\\n ![]()\\n* `unit`: The unit for the field. For example, days, kg. The", - "title": "Object customization | DevRev | Docs" + "id": "ART-15297_KNOWLEDGE_NODE-11", + "text": "and\\nvalidate\\\\_required\\\\_fields: true.\\n\\nShow 4 properties\\n\\ndata\\\\_sourcesobjectOptional\\n\\nShow 1 properties\\n\\ndescriptionstringOptional`format: \"text\"`\\n\\nUpdated description of the article object, or unchanged if not\\nprovided.\\n\\nextracted\\\\_contentobjectOptional\\n\\nShow 1 properties\\n\\nlanguagestringOptional`format: \"text\"`\\n\\nUpdates the language of the article.\\n\\nnotifybooleanOptional\\n\\nWhether to notify the users when the article is published.\\n\\nowned\\\\_byobjectOptional\\n\\nShow", + "title": "Update Article | DevRev | Docs" }, { "id": "ART-1655_KNOWLEDGE_NODE-470", @@ -497,9 +497,9 @@ "title": "Update \u2014 DevRev | Docs" }, { - "id": "ART-1508_KNOWLEDGE_NODE-11", - "text": "\"updated\": { |\\n| 180 | \"field_deltas\": [ |\\n| 181 | { |\\n| 182 | \"field_descriptor\": { |\\n| 183 | \"description\": {}, |\\n| 184 | \"is_filterable\": {}, |\\n| 185 | \"is_immutable\": {}, |\\n| 186 | \"is_pii\": {}, |\\n| 187 | \"is_required\": {}, |\\n| 188 | \"mfz\": {}, |\\n| 189 | \"name\": {}, |\\n| 190 | \"oasis\": {}, |\\n| 191 | \"origin\": {}, |\\n| 192 | \"ui\": {}, |\\n| 193 | \"default_value\": {} |\\n| 194 | }, |\\n| 195 | \"name\": \"string\", |\\n| 196 | \"new_value\": { |\\n| 197 | \"fields\": {} |\\n| 198 | }, |\\n| 199 |", - "title": "Export Conversations | DevRev | Docs" + "id": "ART-1952_KNOWLEDGE_NODE-37", + "text": "for the actual field you are looking for, and the join paths are identified for you.\\n\\n![]()\\n\\n### Edit\\n\\nYou can enter *Edit* mode by clicking the \\xe2\\x9a\\xa1\\xc2\\xa0button on your dashboard main page and edit the following:\\n\\n* Dashboard layout: Move your widgets around through a drag-and-drop UI, utilize the canvas-like interface to arrange your widgets. You can also resize widgets.\\n* Add section: You can add a section and move widgets into the section.\\n* Widgets: Edit a widget from", + "title": "Vista Reports | Vistas | Computer by DevRev | DevRev" } ] }, @@ -507,6 +507,11 @@ "query_id": "30eafcd8-2a68-4e61-85f7-63af6da417a8", "query": "enable or configure Turing AI agent", "retrievals": [ + { + "id": "ART-1987_KNOWLEDGE_NODE-26", + "text": "[articles](./articles) for more information.\\n\\nOnce you have added your knowledge base, Turing can be switched on in two modes: suggestion or auto-response. You can configure Turing in **Settings > Turing Answers** and turn on the **Turing Answers** toggle.\\n\\nSuggest-only mode\\n-----------------\\n\\nComputer only suggests an answer to the user query. A support agent can accept or make edits to the answer, then send it to the user.\\n\\nContent-powered mode\\n--------------------\\n\\nComputer", + "title": "Turing AI agent | Computer for Support Teams | DevRev" + }, { "id": "ART-1987_KNOWLEDGE_NODE-0", "text": "b\"Turing AI agent | Computer for Support Teams | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CMD`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", @@ -518,44 +523,39 @@ "title": "Turing AI agent | Computer for Support Teams | DevRev" }, { - "id": "ART-12965_KNOWLEDGE_NODE-4", - "text": "AI](https://devrev.ai/turing-ai)\\n\\nResources\\n\\n * [Pricing](https://devrev.ai/pricing/support)\\n * [Blog](https://devrev.ai/blog)\\n * [Events](https://devrev.ai/events)\\n * [News](https://devrev.ai/blog?category=news)\\n * [Case Studies](https://devrev.ai/case-study)\\n * [Documentation](https://docs.devrev.ai/)\\n * [API Reference](https://docs.devrev.ai/api/)\\n * [The Book of DevRev](https://thebook.devrev.ai/)\\n * [Partner Program](https://devrev.ai/partners)\\n * [Startup", - "title": "Delete Metric Definition \u2014 DevRev | Docs" + "id": "ART-2032_KNOWLEDGE_NODE-6", + "text": "+ [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best practices for documentation that supports AI](/docs/product/writing-bp)\\n + [Commands](/docs/product/commands)\\n + [Service-level agreement](/docs/product/sla)\\n + [Operational-level agreement](/docs/product/ola)\\n + [Support snap-ins](/docs/product/snapins-support)\\n* [Build](/docs/product/build)\\n\\n + [Issues](/docs/product/issues)\\n + [Now, Next, Later](/docs/product/nnl)\\n + [Sprint mode](/docs/product/sprint)\\n +", + "title": "Google Calendar | Integrate | Snap-ins | DevRev" }, { - "id": "ART-1411_KNOWLEDGE_NODE-12", - "text": "AI](https://devrev.ai/turing-ai)\\n\\nResources\\n\\n * [Pricing](https://devrev.ai/pricing/support)\\n * [Blog](https://devrev.ai/blog)\\n * [Events](https://devrev.ai/events)\\n * [News](https://devrev.ai/blog?category=news)\\n * [Case Studies](https://devrev.ai/case-study)\\n * [Documentation](https://docs.devrev.ai/)\\n * [API Reference](https://docs.devrev.ai/api/)\\n * [The Book of DevRev](https://thebook.devrev.ai/)\\n * [Partner Program](https://devrev.ai/partners)\\n * [Startup", - "title": "List Rev Orgs \u2014 DevRev | Docs" + "id": "ART-17515_KNOWLEDGE_NODE-6", + "text": "+ [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best practices for documentation that supports AI](/docs/product/writing-bp)\\n + [Commands](/docs/product/commands)\\n + [Service-level agreement](/docs/product/sla)\\n + [Operational-level agreement](/docs/product/ola)\\n + [Support snap-ins](/docs/product/snapins-support)\\n* [Computer for Builders](/docs/product/build)\\n\\n + [Issues](/docs/product/issues)\\n + [Now, Next, Later](/docs/product/nnl)\\n + [Sprint", + "title": "AI use cases in DevRev | Computer by DevRev | DevRev" }, { - "id": "ART-1987_KNOWLEDGE_NODE-26", - "text": "[articles](./articles) for more information.\\n\\nOnce you have added your knowledge base, Turing can be switched on in two modes: suggestion or auto-response. You can configure Turing in **Settings > Turing Answers** and turn on the **Turing Answers** toggle.\\n\\nSuggest-only mode\\n-----------------\\n\\nComputer only suggests an answer to the user query. A support agent can accept or make edits to the answer, then send it to the user.\\n\\nContent-powered mode\\n--------------------\\n\\nComputer", - "title": "Turing AI agent | Computer for Support Teams | DevRev" + "id": "ART-12394_KNOWLEDGE_NODE-6", + "text": "+ [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best practices for documentation that supports AI](/docs/product/writing-bp)\\n + [Commands](/docs/product/commands)\\n + [Service-level agreement](/docs/product/sla)\\n + [Operational-level agreement](/docs/product/ola)\\n + [Support snap-ins](/docs/product/snapins-support)\\n* [Computer for Builders](/docs/product/build)\\n\\n + [Issues](/docs/product/issues)\\n + [Now, Next, Later](/docs/product/nnl)\\n + [Sprint", + "title": "Workflow management | Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-12449_KNOWLEDGE_NODE-48", - "text": "AI](https://devrev.ai/turing-ai)\\n\\nResources\\n\\n * [Pricing](https://devrev.ai/pricing/support)\\n * [Blog](https://devrev.ai/blog)\\n * [Events](https://devrev.ai/events)\\n * [News](https://devrev.ai/blog?category=news)\\n * [Case Studies](https://devrev.ai/case-study)\\n * [Documentation](https://docs.devrev.ai/)\\n * [API Reference](https://docs.devrev.ai/api/)\\n * [The Book of DevRev](https://thebook.devrev.ai/)\\n * [Partner Program](https://devrev.ai/partners)\\n * [Startup", - "title": "Features \u2014 DevRev | Docs" + "id": "ART-12397_KNOWLEDGE_NODE-6", + "text": "+ [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best practices for documentation that supports AI](/docs/product/writing-bp)\\n + [Commands](/docs/product/commands)\\n + [Service-level agreement](/docs/product/sla)\\n + [Operational-level agreement](/docs/product/ola)\\n + [Support snap-ins](/docs/product/snapins-support)\\n* [Computer for Builders](/docs/product/build)\\n\\n + [Issues](/docs/product/issues)\\n + [Now, Next, Later](/docs/product/nnl)\\n + [Sprint", + "title": "Coralogix security integration | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2032_KNOWLEDGE_NODE-6", - "text": "+ [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best practices for documentation that supports AI](/docs/product/writing-bp)\\n + [Commands](/docs/product/commands)\\n + [Service-level agreement](/docs/product/sla)\\n + [Operational-level agreement](/docs/product/ola)\\n + [Support snap-ins](/docs/product/snapins-support)\\n* [Build](/docs/product/build)\\n\\n + [Issues](/docs/product/issues)\\n + [Now, Next, Later](/docs/product/nnl)\\n + [Sprint mode](/docs/product/sprint)\\n +", - "title": "Google Calendar | Integrate | Snap-ins | DevRev" + "id": "ART-2046_KNOWLEDGE_NODE-6", + "text": "+ [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best practices for documentation that supports AI](/docs/product/writing-bp)\\n + [Commands](/docs/product/commands)\\n + [Service-level agreement](/docs/product/sla)\\n + [Operational-level agreement](/docs/product/ola)\\n + [Support snap-ins](/docs/product/snapins-support)\\n* [Computer for Builders](/docs/product/build)\\n\\n + [Issues](/docs/product/issues)\\n + [Now, Next, Later](/docs/product/nnl)\\n + [Sprint", + "title": "DevRev for Jira app | Jira Software AirSync | AirSync | Snap-ins | DevRev" + }, + { + "id": "ART-2017_KNOWLEDGE_NODE-6", + "text": "+ [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best practices for documentation that supports AI](/docs/product/writing-bp)\\n + [Commands](/docs/product/commands)\\n + [Service-level agreement](/docs/product/sla)\\n + [Operational-level agreement](/docs/product/ola)\\n + [Support snap-ins](/docs/product/snapins-support)\\n* [Computer for Builders](/docs/product/build)\\n\\n + [Issues](/docs/product/issues)\\n + [Now, Next, Later](/docs/product/nnl)\\n + [Sprint", + "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" }, { "id": "ART-15716_KNOWLEDGE_NODE-14", "text": "AI Bot \\xe2\\x80\\x93 Turing\\n\\nYes! DevRev offers an AI-powered assistant called Turing , which can answer questions, suggest articles, summarize conversations, and more. You can read more about it in the documentation: [https://docs.devrev.ai/product/conversational-bot](https://docs.devrev.ai/product/conversational-bot)\\n\\n4.\\xe2\\x80\\x82Difference Between Runnables and Features\\n\\nA feature is a unit of configuration or capability in the product, often representing a user-facing function or", "title": "Support queries related playbook" - }, - { - "id": "ART-1432_KNOWLEDGE_NODE-8", - "text": "AI](https://devrev.ai/turing-ai)\\n\\nResources\\n\\n * [Pricing](https://devrev.ai/pricing/support)\\n * [Blog](https://devrev.ai/blog)\\n * [Events](https://devrev.ai/events)\\n * [News](https://devrev.ai/blog?category=news)\\n * [Case Studies](https://devrev.ai/case-study)\\n * [Documentation](https://docs.devrev.ai/)\\n * [API Reference](https://docs.devrev.ai/api/)\\n * [The Book of DevRev](https://thebook.devrev.ai/)\\n * [Partner Program](https://devrev.ai/partners)\\n * [Startup", - "title": "Get Webhook \u2014 DevRev | Docs" - }, - { - "id": "ART-12390_KNOWLEDGE_NODE-6", - "text": "+ [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best practices for documentation that supports AI](/docs/product/writing-bp)\\n + [Commands](/docs/product/commands)\\n + [Service-level agreement](/docs/product/sla)\\n + [Operational-level agreement](/docs/product/ola)\\n + [Support snap-ins](/docs/product/snapins-support)\\n* [Computer for Builders](/docs/product/build)\\n\\n + [Issues](/docs/product/issues)\\n + [Now, Next, Later](/docs/product/nnl)\\n + [Sprint", - "title": "Workflow action library | Workflows | Computer by DevRev | DevRev" } ] }, @@ -564,19 +564,9 @@ "query": "how to make MIS report with available data on DevRev", "retrievals": [ { - "id": "ART-12601_KNOWLEDGE_NODE-9", - "text": "development.\\n * Strong understanding of test reporting tools and technologies.\\n\\nJoin us in innovating our testing processes and ensuring the delivery of high-quality software products through advanced automation techniques.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the earth\\xe2\\x80\\x99s most customer-centric companies. Our mission is to leverage design, data", - "title": "DevRev Careers | QA Automation Lead" - }, - { - "id": "ART-2002_KNOWLEDGE_NODE-31", - "text": "**Group** conditions across various vistas in DevRev to track specific work, capacity, and more.\\n\\nYou can add custom attributes to opportunities to track additional information. For more information on custom attributes, see [object customization](./object-customization).\\n\\n### External reference\\n\\nWhile ingesting customer identity into DevRev, customer information coming across channels must be matched to the same record. \\nFor example, a customer record created by you using APIs should", - "title": "Contacts | Computer for Growth Teams | DevRev" - }, - { - "id": "ART-15201_KNOWLEDGE_NODE-10", - "text": "Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n * Outstanding communication (written and verbal), with fluency in English.\\n * Comfort operating in a fast-paced, high-demand, global environment.\\n * Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the", - "title": "DevRev Careers | Senior Customer Success Manager" + "id": "ART-16262_KNOWLEDGE_NODE-34", + "text": "sources, do the following:\\n\\n1. Go to **Settings > Integrations > Imports**.\\n2. Select the import you want to view.\\n3. Click on the context menu (\\xe2\\x8b\\xae) and select View Report.\\n\\n### Periodic sync\\n\\nAfter successfully importing to DevRev, you have the option to enable a periodic sync. This allows for automatic synchronization with DevRev on a regular basis. By default, the sync occurs once an hour.\\n\\nTo configure periodic sync, follow these steps:\\n\\n1. Go to **Settings >", + "title": "Dropbox AirSync | AirSync | Snap-ins | DevRev" }, { "id": "ART-2045_KNOWLEDGE_NODE-31", @@ -584,9 +574,9 @@ "title": "AirSync | Snap-ins | DevRev" }, { - "id": "ART-15203_KNOWLEDGE_NODE-10", - "text": "Technical knowledge of web solutions including APIs and Webhooks. Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n* Outstanding communication (written and verbal), with fluency in English.\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who", - "title": "DevRev Careers | Senior Customer Success Manager" + "id": "ART-2055_KNOWLEDGE_NODE-30", + "text": "modifications made in Linear to the corresponding work item in\\n DevRev.\\n + Create new work items in DevRev for any new issues created in Linear after\\n the last sync or import.\\n* [Sync DevRev to Snap-ins](#sync-to-linear)\\n + Write any modifications made in DevRev to the corresponding work item in\\n Linear.\\n + Create new work items in Linear for any new issues created in DevRev after the last sync or import.\\n* View report\\n + View details of the initial import and any syncs", + "title": "Linear AirSync | AirSync | Snap-ins | DevRev" }, { "id": "ART-16805_KNOWLEDGE_NODE-34", @@ -594,24 +584,34 @@ "title": "Articulate Reach 360 AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-2055_KNOWLEDGE_NODE-30", - "text": "modifications made in Linear to the corresponding work item in\\n DevRev.\\n + Create new work items in DevRev for any new issues created in Linear after\\n the last sync or import.\\n* [Sync DevRev to Snap-ins](#sync-to-linear)\\n + Write any modifications made in DevRev to the corresponding work item in\\n Linear.\\n + Create new work items in Linear for any new issues created in DevRev after the last sync or import.\\n* View report\\n + View details of the initial import and any syncs", - "title": "Linear AirSync | AirSync | Snap-ins | DevRev" + "id": "ART-15506_KNOWLEDGE_NODE-16", + "text": "request details and timestamp. |\\n\\n### How resolution works\\n\\nWhen you send object information to DevRev, the system automatically creates or finds existing contacts, accounts, and workspaces.\\n\\nDevRev offers three ways to structure your customer\\xe2\\x80\\x99s data:\\n\\n| Hierarchy Type | Documents Created | What to Include | Use Case |\\n| --- | --- | --- | --- |\\n| **Single-level** | Contacts only | Only user information | Recommended for most B2C cases |\\n| **Two-level** | Accounts and", + "title": "Identify your users with Plug | DevRev | Docs" }, { - "id": "ART-15202_KNOWLEDGE_NODE-10", - "text": "including APIs and Webhooks. Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n* Outstanding communication (written and verbal), with fluency in English.\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to", - "title": "DevRev Careers | Senior Customer Success Manager" + "id": "ART-2002_KNOWLEDGE_NODE-31", + "text": "**Group** conditions across various vistas in DevRev to track specific work, capacity, and more.\\n\\nYou can add custom attributes to opportunities to track additional information. For more information on custom attributes, see [object customization](./object-customization).\\n\\n### External reference\\n\\nWhile ingesting customer identity into DevRev, customer information coming across channels must be matched to the same record. \\nFor example, a customer record created by you using APIs should", + "title": "Contacts | Computer for Growth Teams | DevRev" }, { - "id": "ART-16185_KNOWLEDGE_NODE-9", - "text": "proficiency in Excel/Google Sheets and financial systems (e.g., **NetSuite, Anaplan, Adaptive Insights, or similar**). \\n \\n\\n * Experience working with **SQL** or data analysis tools is a plus. \\n \\n\\n * A collaborative mindset and commitment to accuracy, integrity, and continuous improvement. \\n \\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the earth\\xe2\\x80\\x99s", - "title": "DevRev Careers | Payroll Analyst" + "id": "ART-1566_KNOWLEDGE_NODE-321", + "text": "11 \" display_id \" : \" display_id \" , 12 \" evaluation_period \" : \" monthly \" , 13 \" modified_date \" : \" 2023-01-01T12:00:00Z \" , 14 \" policies \" : [ 15 { 16 \" key \" : \" value \" 17 } 18 ] , 19 \" sla_type \" : \" external \" 20 } 21 }\\nAPI Reference product-usage Metrics Devrev Ingest.\\n\\nPOST https://api.devrev.ai / metrics.devrev.ingest\\n\\nIngest endpoint for DevRev metrics data from clients.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nmetrics list of objects Required\\n\\nMetrics data received", + "title": "Transition (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-15506_KNOWLEDGE_NODE-16", - "text": "request details and timestamp. |\\n\\n### How resolution works\\n\\nWhen you send object information to DevRev, the system automatically creates or finds existing contacts, accounts, and workspaces.\\n\\nDevRev offers three ways to structure your customer\\xe2\\x80\\x99s data:\\n\\n| Hierarchy Type | Documents Created | What to Include | Use Case |\\n| --- | --- | --- | --- |\\n| **Single-level** | Contacts only | Only user information | Recommended for most B2C cases |\\n| **Two-level** | Accounts and", - "title": "Identify your users with Plug | DevRev | Docs" + "id": "ART-1305_KNOWLEDGE_NODE-276", + "text": "endpoint for DevRev metrics data from clients.\\nRequest.\\n\\nThis endpoint expects an object.\\nmetrics list of objects Required\\nMetrics data received from Dev orgs.\\nShow 5 properties\\nAPI Reference product-usage Uoms Count.\\n\\nGET https:// api.devrev.ai / uoms.count\\nCounts the number of Unit of Measurements based on the given filters.\\nQuery parameters.\\n\\naggregation_types enum Optional\\nList of aggregation types for filtering list of UOMs.\\nShow 8 enum values\\nids string Optional\\nList of", + "title": "Get Post \u2014 DevRev | Docs" + }, + { + "id": "ART-1834_KNOWLEDGE_NODE-269", + "text": "endpoint for DevRev metrics data from clients.\\nRequest.\\n\\nThis endpoint expects an object.\\nmetrics list of objects Required\\nMetrics data received from Dev orgs.\\nShow 5 properties\\nAPI Reference product-usage Uoms Count.\\n\\nGET https:// api.devrev.ai / uoms.count\\nCounts the number of Unit of Measurements based on the given filters.\\nQuery parameters.\\n\\naggregation_types enum Optional\\nList of aggregation types for filtering list of UOMs.\\nShow 8 enum values\\nids string Optional\\nList of", + "title": "Delete \u2014 DevRev | Docs" + }, + { + "id": "ART-1824_KNOWLEDGE_NODE-269", + "text": "endpoint for DevRev metrics data from clients.\\nRequest.\\n\\nThis endpoint expects an object.\\nmetrics list of objects Required\\nMetrics data received from Dev orgs.\\nShow 5 properties\\nAPI Reference product-usage Uoms Count.\\n\\nGET https:// api.devrev.ai / uoms.count\\nCounts the number of Unit of Measurements based on the given filters.\\nQuery parameters.\\n\\naggregation_types enum Optional\\nList of aggregation types for filtering list of UOMs.\\nShow 8 enum values\\nids string Optional\\nList of", + "title": "Delete \u2014 DevRev | Docs" } ] }, @@ -619,55 +619,55 @@ "query_id": "ed5940c0-01b1-45bc-8489-dccca3575588", "query": "populate Timeline Comment Created trigger for a ticket object", "retrievals": [ + { + "id": "ART-1485_KNOWLEDGE_NODE-10", + "text": "invoke the snap-in, two distinct triggers are implemented:\\n\\n 1. **Creation of work item** : This trigger is activated when new objects of type **Issue** or **Ticket** are created in DevRev.\\n\\n 2. **Text command** : This manual trigger is achieved by utilizing a slash command in the **Discussions** tab of the objects that support this feature.\\n\\n#### Action\\n\\nTo implement the desired action of adding a comment to the object timeline, it is essential to identify the appropriate [API] for", + "title": "Snap-in triggered by a DevRev event \u2014 DevRev | Docs" + }, { "id": "ART-1277_KNOWLEDGE_NODE-6", "text": "objects of type\\n **Issue** or **Ticket** are created in DevRev.\\n2. **Text command**: This manual trigger is achieved by utilizing a slash\\n command in the **Discussions** tab of the objects that support this feature.\\n\\n#### Action\\n\\nTo implement the desired action of adding a comment to the object timeline, it\\nis essential to identify the appropriate [API]\\nfor this task. In this scenario, the `/timeline-entries.create` API is the\\ndesignated choice for executing the action of adding a", "title": "Snap-in triggered by a DevRev event | DevRev | Docs" }, { - "id": "ART-1485_KNOWLEDGE_NODE-10", - "text": "invoke the snap-in, two distinct triggers are implemented:\\n\\n 1. **Creation of work item** : This trigger is activated when new objects of type **Issue** or **Ticket** are created in DevRev.\\n\\n 2. **Text command** : This manual trigger is achieved by utilizing a slash command in the **Discussions** tab of the objects that support this feature.\\n\\n#### Action\\n\\nTo implement the desired action of adding a comment to the object timeline, it is essential to identify the appropriate [API] for", - "title": "Snap-in triggered by a DevRev event \u2014 DevRev | Docs" + "id": "ART-1435_KNOWLEDGE_NODE-2", + "text": "\"Content-Type: application/json\" \\\\ \\n >| -d \\'{ \\n >| \"id\": \"don:core:dvrv-us-1:devo/example:ticket/123:comment/comment-id\" \\n >| }\\'\\n[/code] \\n \\nTry it\\n\\n200timelineEntriesGetPostExample\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"timeline_entry\": { \\n 3| \"created_by\": { \\n 4| \"display_id\": \"foo\", \\n 5| \"id\": \"foo\", \\n 6| \"display_name\": \"foo\", \\n 7| \"display_picture\": { \\n 8| \"display_id\": \"foo\", \\n", + "title": "Get Timeline Entry (POST) \u2014 DevRev | Docs" + }, + { + "id": "ART-1425_KNOWLEDGE_NODE-2", + "text": "id=don:core:dvrv-us-1:devo/example:ticket/123:comment/comment-id\\n[/code] \\n \\nTry it\\n\\n200getExample\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"timeline_entry\": { \\n 3| \"created_by\": { \\n 4| \"display_id\": \"foo\", \\n 5| \"id\": \"foo\", \\n 6| \"display_name\": \"foo\", \\n 7| \"display_picture\": { \\n 8| \"display_id\": \"foo\", \\n 9| \"id\": \"foo\", \\n 10| \"file\": { \\n 11| \"type\": \"foo\", \\n 12|", + "title": "Get Timeline Entry \u2014 DevRev | Docs" + }, + { + "id": "ART-1471_KNOWLEDGE_NODE-9", + "text": "}\\n[/code] \\n \\nYou can check the object to which you sent a message in the UI. It\\xe2\\x80\\x99s visible to the creator and the users you added in `private_to`.\\n\\n## Summary\\n\\nIn this tutorial, you learned how to post a comment on the timeline of an issue/ticket using the `timeline-entries.create` API with different visibilities. You can now use this to create comments on timeline using automation or manually based on your use case.\\n\\nWas this page helpful?YesNo\\n\\n[SDKsUp", + "title": "Restricted messages on a timeline \u2014 DevRev | Docs" }, { "id": "ART-1265_KNOWLEDGE_NODE-9", "text": "timeline of an issue/ticket using the `timeline-entries.create` API with different visibilities. You can now use this to create comments on timeline using automation or manually based on your use case.\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/guides/webhooks)[#### Object customization\\n\\nNext](/guides/object-customization)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n![]()'", "title": "Restricted messages on a timeline | DevRev | Docs" }, + { + "id": "ART-1229_KNOWLEDGE_NODE-1", + "text": "\"Authorization: Bearer \" \\\\ |\\n| > | --data-urlencode id=don:core:dvrv-us-1:devo/example:ticket/123:comment/comment-id |\\n```\\n\\n[Try it](/api-reference/timeline-entries/get?explorer=true)\\n\\n200Retrieved\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"timeline_entry\": { |\\n| 3 | \"created_by\": { |\\n| 4 | \"display_id\": \"string\", |\\n| 5 | \"id\": \"string\", |\\n| 6 | \"display_name\": \"string\", |\\n| 7 | \"display_picture\": { |\\n| 8 | \"display_id\": \"string\", |\\n| 9 | \"id\": \"string\", |\\n| 10 |", + "title": "Get Timeline Entry | DevRev | Docs" + }, { "id": "ART-1230_KNOWLEDGE_NODE-1", "text": "https://api.devrev.ai/timeline-entries.get \\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\ |\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{ |\\n| > | \"id\": \"don:core:dvrv-us-1:devo/example:ticket/123:comment/comment-id\" |\\n| > | }\\' |\\n```\\n\\n[Try it](/api-reference/timeline-entries/get-post?explorer=true)\\n\\n200Successful\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"timeline_entry\": { |\\n| 3 | \"created_by\": { |\\n| 4 | \"display_id\": \"string\", |\\n| 5 | \"id\": \"string\", |\\n| 6", "title": "Get Timeline Entry (POST) | DevRev | Docs" }, - { - "id": "ART-1425_KNOWLEDGE_NODE-2", - "text": "id=don:core:dvrv-us-1:devo/example:ticket/123:comment/comment-id\\n[/code] \\n \\nTry it\\n\\n200getExample\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"timeline_entry\": { \\n 3| \"created_by\": { \\n 4| \"display_id\": \"foo\", \\n 5| \"id\": \"foo\", \\n 6| \"display_name\": \"foo\", \\n 7| \"display_picture\": { \\n 8| \"display_id\": \"foo\", \\n 9| \"id\": \"foo\", \\n 10| \"file\": { \\n 11| \"type\": \"foo\", \\n 12|", - "title": "Get Timeline Entry \u2014 DevRev | Docs" - }, { "id": "ART-1490_KNOWLEDGE_NODE-42", "text": "\"don:core::devo/:ticket/123:timeline_event/\" \\n 356| }, \\n 357| \"timeline_entry_updated\": { \\n 358| \"entry\": { \\n 359| \"created_by\": {}, \\n 360| \"created_date\": \"2023-01-01T12:00:00.000Z\", \\n 361| \"display_id\": \"string\", \\n 362| \"id\": \"string\", \\n 363| \"modified_by\": {}, \\n 364| \"modified_date\": \"2023-01-01T12:00:00.000Z\", \\n 365| \"object\": \"string\", \\n 366|", "title": "Snap-in manifest \u2014 DevRev | Docs" }, - { - "id": "ART-1435_KNOWLEDGE_NODE-2", - "text": "\"Content-Type: application/json\" \\\\ \\n >| -d \\'{ \\n >| \"id\": \"don:core:dvrv-us-1:devo/example:ticket/123:comment/comment-id\" \\n >| }\\'\\n[/code] \\n \\nTry it\\n\\n200timelineEntriesGetPostExample\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"timeline_entry\": { \\n 3| \"created_by\": { \\n 4| \"display_id\": \"foo\", \\n 5| \"id\": \"foo\", \\n 6| \"display_name\": \"foo\", \\n 7| \"display_picture\": { \\n 8| \"display_id\": \"foo\", \\n", - "title": "Get Timeline Entry (POST) \u2014 DevRev | Docs" - }, - { - "id": "ART-1641_KNOWLEDGE_NODE-425", - "text": "Post.\\n\\nPOST https:// api.devrev.ai / timeline-entries.list\\nLists the timeline entries for an object.\\nRequest.\\n\\nThis endpoint expects an object.\\nobject string Required\\nThe ID of the object to list timeline entries for.\\ncollections list of \"discussions\" or \"events\" Optional\\nAllowed values: discussions events\\nThe collection(s) to list entries from, otherwise if not provided, all entries are returned.\\ncursor string Optional\\nThe cursor to resume iteration from. If not provided, then", - "title": "Get Post \u2014 DevRev | Docs" - }, { "id": "ART-15435_KNOWLEDGE_NODE-1", "text": "\"Authorization: Bearer \" \\\\ |\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{ |\\n| > | \"emoji\": \"string\", |\\n| > | \"object\": \"don:core:dvrv-us-1:devo/example:ticket/123:comment/comment-id\" |\\n| > | }\\' |\\n```\\n\\n[Try it](/api-reference/timeline-entries/reactions-list-post?explorer=true)\\n\\n200Successful\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"reactors\": [ |\\n| 3 | { |\\n| 4 | \"display_id\": \"string\", |\\n| 5 | \"id\": \"string\", |\\n| 6 | \"display_name\": \"string\", |\\n| 7", "title": "List Reactions (POST) | DevRev | Docs" - }, - { - "id": "ART-1653_KNOWLEDGE_NODE-425", - "text": "Post.\\n\\nPOST https:// api.devrev.ai / timeline-entries.list\\nLists the timeline entries for an object.\\nRequest.\\n\\nThis endpoint expects an object.\\nobject string Required\\nThe ID of the object to list timeline entries for.\\ncollections list of \"discussions\" or \"events\" Optional\\nAllowed values: discussions events\\nThe collection(s) to list entries from, otherwise if not provided, all entries are returned.\\ncursor string Optional\\nThe cursor to resume iteration from. If not provided, then", - "title": "Get \u2014 DevRev | Docs" } ] }, @@ -676,9 +676,14 @@ "query": "DevRev Bot groups created from airdrops", "retrievals": [ { - "id": "ART-1543_KNOWLEDGE_NODE-233", + "id": "ART-1545_KNOWLEDGE_NODE-233", "text": "https://api.devrev.ai / groups.list\\n\\nLists the available groups.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\ncursor string Optional\\n\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\n\\ngroup_type list of \"dynamic\" or \"static\" Optional\\nAllowed values: dynamic static\\n\\nFilters the groups based on the group type.\\n\\ningestion_source list of \"airdrop\" or \"scim\" Optional\\nAllowed values: airdrop scim\\n\\nFilter groups by ingestion", - "title": "Metric Definitions List Post (Beta) \u2014 DevRev | Docs" + "title": "Create (Beta) \u2014 DevRev | Docs" + }, + { + "id": "ART-1560_KNOWLEDGE_NODE-233", + "text": "https://api.devrev.ai / groups.list\\n\\nLists the available groups.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\ncursor string Optional\\n\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\n\\ngroup_type list of \"dynamic\" or \"static\" Optional\\nAllowed values: dynamic static\\n\\nFilters the groups based on the group type.\\n\\ningestion_source list of \"airdrop\" or \"scim\" Optional\\nAllowed values: airdrop scim\\n\\nFilter groups by ingestion", + "title": "Assign (Beta) \u2014 DevRev | Docs" }, { "id": "ART-1566_KNOWLEDGE_NODE-233", @@ -691,39 +696,34 @@ "title": "Get (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1564_KNOWLEDGE_NODE-233", + "id": "ART-1549_KNOWLEDGE_NODE-233", "text": "https://api.devrev.ai / groups.list\\n\\nLists the available groups.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\ncursor string Optional\\n\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\n\\ngroup_type list of \"dynamic\" or \"static\" Optional\\nAllowed values: dynamic static\\n\\nFilters the groups based on the group type.\\n\\ningestion_source list of \"airdrop\" or \"scim\" Optional\\nAllowed values: airdrop scim\\n\\nFilter groups by ingestion", - "title": "List (Beta) \u2014 DevRev | Docs" + "title": "List Post (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1545_KNOWLEDGE_NODE-233", + "id": "ART-1543_KNOWLEDGE_NODE-233", "text": "https://api.devrev.ai / groups.list\\n\\nLists the available groups.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\ncursor string Optional\\n\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\n\\ngroup_type list of \"dynamic\" or \"static\" Optional\\nAllowed values: dynamic static\\n\\nFilters the groups based on the group type.\\n\\ningestion_source list of \"airdrop\" or \"scim\" Optional\\nAllowed values: airdrop scim\\n\\nFilter groups by ingestion", - "title": "Create (Beta) \u2014 DevRev | Docs" + "title": "Metric Definitions List Post (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1558_KNOWLEDGE_NODE-233", + "id": "ART-1564_KNOWLEDGE_NODE-233", "text": "https://api.devrev.ai / groups.list\\n\\nLists the available groups.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\ncursor string Optional\\n\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\n\\ngroup_type list of \"dynamic\" or \"static\" Optional\\nAllowed values: dynamic static\\n\\nFilters the groups based on the group type.\\n\\ningestion_source list of \"airdrop\" or \"scim\" Optional\\nAllowed values: airdrop scim\\n\\nFilter groups by ingestion", - "title": "Metric Definitions List (Beta) \u2014 DevRev | Docs" + "title": "List (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1549_KNOWLEDGE_NODE-233", + "id": "ART-1547_KNOWLEDGE_NODE-233", "text": "https://api.devrev.ai / groups.list\\n\\nLists the available groups.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\ncursor string Optional\\n\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\n\\ngroup_type list of \"dynamic\" or \"static\" Optional\\nAllowed values: dynamic static\\n\\nFilters the groups based on the group type.\\n\\ningestion_source list of \"airdrop\" or \"scim\" Optional\\nAllowed values: airdrop scim\\n\\nFilter groups by ingestion", - "title": "List Post (Beta) \u2014 DevRev | Docs" - }, - { - "id": "ART-1562_KNOWLEDGE_NODE-230", - "text": "https://api.devrev.ai / groups.list\\n\\nLists the available groups.\\n\\nQuery parameters.\\n\\ncursor string Optional\\n\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\n\\ngroup_type \"dynamic\" or \"static\" Optional\\n\\nFilters the groups based on the group type.\\n\\nAllowed values: dynamic static\\ningestion_source \"airdrop\" or \"scim\" Optional\\n\\nFilter groups by ingestion source(s).\\n\\nAllowed values: airdrop scim\\nis_default boolean Optional\\n\\nWhether", - "title": "Get (Beta) \u2014 DevRev | Docs" + "title": "Get Post (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1560_KNOWLEDGE_NODE-233", + "id": "ART-1558_KNOWLEDGE_NODE-233", "text": "https://api.devrev.ai / groups.list\\n\\nLists the available groups.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\ncursor string Optional\\n\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\n\\ngroup_type list of \"dynamic\" or \"static\" Optional\\nAllowed values: dynamic static\\n\\nFilters the groups based on the group type.\\n\\ningestion_source list of \"airdrop\" or \"scim\" Optional\\nAllowed values: airdrop scim\\n\\nFilter groups by ingestion", - "title": "Assign (Beta) \u2014 DevRev | Docs" + "title": "Metric Definitions List (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1566_KNOWLEDGE_NODE-230", - "text": "https://api.devrev.ai / groups.list\\n\\nLists the available groups.\\n\\nQuery parameters.\\n\\ncursor string Optional\\n\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\n\\ngroup_type \"dynamic\" or \"static\" Optional\\n\\nFilters the groups based on the group type.\\n\\nAllowed values: dynamic static\\ningestion_source \"airdrop\" or \"scim\" Optional\\n\\nFilter groups by ingestion source(s).\\n\\nAllowed values: airdrop scim\\nis_default boolean Optional\\n\\nWhether", - "title": "Transition (Beta) \u2014 DevRev | Docs" + "id": "ART-1551_KNOWLEDGE_NODE-233", + "text": "https://api.devrev.ai / groups.list\\n\\nLists the available groups.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\ncursor string Optional\\n\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\n\\ngroup_type list of \"dynamic\" or \"static\" Optional\\nAllowed values: dynamic static\\n\\nFilters the groups based on the group type.\\n\\ningestion_source list of \"airdrop\" or \"scim\" Optional\\nAllowed values: airdrop scim\\n\\nFilter groups by ingestion", + "title": "Update (Beta) \u2014 DevRev | Docs" } ] }, @@ -737,20 +737,30 @@ "title": "Tickets | Computer for Support Teams | DevRev" }, { - "id": "ART-17231_KNOWLEDGE_NODE-155", - "text": "|\\n\\n**severity**\\n\\n| Value | Name | Description |\\n| --- | --- | --- |\\n| `blocker` | Blocker | - |\\n| `high` | High | - |\\n| `low` | Low | - |\\n| `medium` | Medium | - |\\n\\n**stage**\\n\\n| Value | Name | Description |\\n| --- | --- | --- |\\n| `awaiting_customer_response` | Awaiting Customer Response | - |\\n| `awaiting_development` | Awaiting Development | - |\\n| `awaiting_product_assist` | Awaiting Product Assist | - |\\n| `canceled` | Canceled | - |\\n| `in_development` | In Development | -", - "title": "Supported DevRev object types | DevRev | Docs" + "id": "ART-1979_KNOWLEDGE_NODE-45", + "text": "a user. In certain cases where the ticket depends on some fix (issues) the stage may go from *in development* to *awaiting customer response* when the corresponding issues have been resolved and the fix needs to be validated with the user.\\n\\n In certain cases, the customer experience engineer may be able to solve directly (without any required issues) which may change the stage from *work in progress* to *awaiting customer response* to validate they have solved the problem. If either has", + "title": "Tickets | Computer for Support Teams | DevRev" }, { "id": "ART-1979_KNOWLEDGE_NODE-46", "text": "resolved the customer's concern the stage can move to *resolved*.\\n* Awaiting development (AD)\\n\\n The issues on which the user's concern relies for resolution are planned but not active, when development on the issue begins the stage transitions to *In development*.\\n* In development (ID)\\n\\n The issues on which the user's concern relies for resolution are actively being worked on. Once the development process begins, the stage may go from *in development* to *awaiting customer response* to", "title": "Tickets | Computer for Support Teams | DevRev" }, + { + "id": "ART-1981_KNOWLEDGE_NODE-32", + "text": "assigned; tickets should be assigned only to revenue team members.\\n\\nManage tickets\\n--------------\\n\\n* Regularly follow up with the customer on any ticket in the *awaiting customer* stage. If no response is forthcoming in a reasonable amount of time as defined by your SLA, mark the ticket as *resolved*.\\n* Critically assess the severity of the ticket according to the impact on the customer\\xe2\\x80\\x99s business. Blockers are those tickets that are critical to customer adoption or operations.", + "title": "Support best practices | Computer for Support Teams | DevRev" + }, { "id": "ART-1986_KNOWLEDGE_NODE-38", "text": "ticket is moved to the Closed state | The ticket was moved to Awaiting Customer Response state | The ticket moves to any state except Closed |\\n\\n**Conversations**\\n\\n| Metric | Default conditions | Start event | End event | Pause event | Resume event |\\n| --- | --- | --- | --- | --- | --- |\\n| First response time | The first message sent by a customer | Conversation created | * The agent replied to the conversation * The conversation is moved to Waiting on User/Resolved * The conversation is", "title": "Service-level agreement | Computer for Support Teams | DevRev" }, + { + "id": "ART-17231_KNOWLEDGE_NODE-155", + "text": "|\\n\\n**severity**\\n\\n| Value | Name | Description |\\n| --- | --- | --- |\\n| `blocker` | Blocker | - |\\n| `high` | High | - |\\n| `low` | Low | - |\\n| `medium` | Medium | - |\\n\\n**stage**\\n\\n| Value | Name | Description |\\n| --- | --- | --- |\\n| `awaiting_customer_response` | Awaiting Customer Response | - |\\n| `awaiting_development` | Awaiting Development | - |\\n| `awaiting_product_assist` | Awaiting Product Assist | - |\\n| `canceled` | Canceled | - |\\n| `in_development` | In Development | -", + "title": "Supported DevRev object types | DevRev | Docs" + }, { "id": "ART-1986_KNOWLEDGE_NODE-41", "text": "resolution is due in one day, the vista displays five minutes. In the case where the first response isn't provided within five minutes, the timer displays negative values (such as -10m), which indicates that it's been 10 minutes since the first response was due. Conversations or tickets can also be grouped by SLA stages.\\n\\nIn the **Detailed View**, all metrics applied to the ticket or conversation can be viewed along with their current stage.\\n\\nFiltering tickets by Next SLA", @@ -761,25 +771,15 @@ "text": "\"stage\": \"foo\", \\n 83| \"status\": \"foo\" \\n 84| } \\n 85| }\\n[/code] \\n \\n[Get SLA Tracker (POST)Up Next](/public/api-reference/slas/sla-trackers-get-post)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n[Enterprise grade security to protect customer dataLearn more about it.](https://devrev.ai/blog/soc-compliance)\\n\\nProduct\\n\\n * [Build](https://devrev.ai/build)\\n * [Support](https://devrev.ai/support)\\n *", "title": "Get SLA Tracker \u2014 DevRev | Docs" }, - { - "id": "ART-1593_KNOWLEDGE_NODE-466", - "text": "SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the provided types.\\nAllowed values: issue opportunity task ticket\\nResponse.\\n\\nThis endpoint returns an object.\\nworks list of objects\\nThe list of works.\\nShow 4 variants\\nnext_cursor string", - "title": "Get \u2014 DevRev | Docs" - }, - { - "id": "ART-1975_KNOWLEDGE_NODE-29", - "text": "stage\\n--------------------\\n\\n* **Average time spent per stage**\\n\\n The average time tickets spent in each stage.\\n\\n[PreviousConversation-Team Performance](/docs/dashboards/conversation-team-performance)[NextTicket-SLA Analytics](/docs/dashboards/ticket-sla-analytics)\\n\\n#### On this page\\n\\n* [Customer & product impact](#customer-product-impact)\\n* [Ticket distribution](#ticket-distribution)\\n* [Customer satisfaction (CSAT)](#customer-satisfaction-csat)\\n* [Time spent per", - "title": "Ticket insights | Support analytics | Computer for Support Teams | DevRev" - }, { "id": "ART-1827_KNOWLEDGE_NODE-469", "text": "SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the provided types.\\nAllowed values: issue opportunity task ticket\\nResponse.\\n\\nThis endpoint returns an object.\\nworks list of objects\\nThe list of works.\\nShow 4 variants\\nnext_cursor string", "title": "Update \u2014 DevRev | Docs" }, { - "id": "ART-15281_KNOWLEDGE_NODE-6", - "text": "\"sla_policy_id\": \"string\", |\\n| 83 | \"stage\": \"string\", |\\n| 84 | \"status\": \"string\" |\\n| 85 | } |\\n| 86 | ], |\\n| 87 | \"next_cursor\": \"string\", |\\n| 88 | \"prev_cursor\": \"string\" |\\n| 89 | } |\\n```\\n\\nLists SLA trackers matching a filter.\\n\\n### Headers\\n\\nAuthorizationstringRequired\\n\\nBearer authentication of the form `Bearer `, where token is your auth token.\\n\\n### Query parameters\\n\\ncreated\\\\_date.afterstringOptional`format: \"date-time\"`\\n\\nFilters for objects created after the", - "title": "List SLA Trackers | DevRev | Docs" + "id": "ART-1593_KNOWLEDGE_NODE-466", + "text": "SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the provided types.\\nAllowed values: issue opportunity task ticket\\nResponse.\\n\\nThis endpoint returns an object.\\nworks list of objects\\nThe list of works.\\nShow 4 variants\\nnext_cursor string", + "title": "Get \u2014 DevRev | Docs" } ] }, @@ -787,6 +787,11 @@ "query_id": "3cb75fc1-7ba2-447f-be4a-5bc6c5a58198", "query": "workflow send message on Slack operation execution failed Something went wrong", "retrievals": [ + { + "id": "ART-2035_KNOWLEDGE_NODE-51", + "text": "Slack.\\n\\nFor example:\\n\\n* /devrev view TKT-#\\n* /devrev view ISS-#\\n\\nThese commands open the specific object mentioned in the command.\\n\\nCreating custom workflows\\n-------------------------\\n\\nThe users can configure their own workflows around Slack using DevRev's workflow engine.\\n\\n| Workflow Action | Description | Inputs | Outputs |\\n| --- | --- | --- | --- |\\n| Send message on Slack | - Use this workflow node to send a message to any Slack channel as long as the DevRev app has access to", + "title": "Slack | Integrate | Snap-ins | DevRev" + }, { "id": "ART-10697_KNOWLEDGE_NODE-28", "text": "'Send Slack Message' workflow node to include a DevRev object.\\n* Dependent field support in slack\\n\\n![]()\\xc2\\xa0For more information about *Channels*, refer to the following articles: \\xe2\\x80\\xa3 [WhatsApp | Integrate | Snap-ins](/docs/integrations/whatsapp) \\xe2\\x80\\xa3 [Slack | Integrate | Snap-ins](/docs/integrations/slack) \\xe2\\x80\\xa3 [SLA status change Slack notifier | Automate | Snap-ins](/docs/automations/sla-change-notifier)\\n\\n![]()\\n\\n### Slack App\\n\\nMulti-region Slack support", @@ -798,14 +803,14 @@ "title": "Workflow management | Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-4206_KNOWLEDGE_NODE-20", - "text": "occurred |\\n| 49 | sendToClient(conversationId, { |\\n| 50 | type: \"agent_error\", |\\n| 51 | error: event.payload.ai_agent_response.error.error, |\\n| 52 | }); |\\n| 53 | } |\\n| 54 | |\\n| 55 | res.status(200).send(\"OK\"); |\\n| 56 | }); |\\n```\\n\\n##### \\n\\nUsing WebSockets or Server-Sent Events can provide real-time updates to your\\nUI as events are received.\\n\\n### Talk to agent node in workflows\\n\\n##### \\n\\nThis is in early access, please contact support to have it enabled for you.\\n\\nIf", + "id": "ART-4206_KNOWLEDGE_NODE-3", + "text": "it.\\n* Complete execution tracking via progress events.\\n* Ability to handle long-running agent tasks.\\n\\n##### \\n\\nIn any unlikely and unforeseen circumstances, if an individual operation of the workflow times out, you do not receive an error event right now to notify that you should not wait for any more messages. It is better to have a client side timeout for now while the issue is brainstormed and fixed for you.\\n\\nSet up webhook\\n--------------\\n\\nBefore using the async API, you need to", "title": "Agents async API | DevRev | Docs" }, { - "id": "ART-1484_KNOWLEDGE_NODE-86", - "text": "keywords in a Slack message, they are prompted to send the message to your DevRev inbox.\", \\n 16| \"type\": \"plain_text\" \\n 17| }, \\n 18| \"label\": { \\n 19| \"text\": \"List of strings\", \\n 20| \"type\": \"plain_text\" \\n 21| }, \\n 22| \"type\": \"input_layout\" \\n 23| }\\n[/code] \\n \\nMultiline string list input with a minimum of 1 item and a maximum of 2 items.\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"element\": { \\n 3| \"action_id\":", - "title": "Snapkit \u2014 DevRev | Docs" + "id": "ART-2004_KNOWLEDGE_NODE-29", + "text": "approval workflow](/docs/automations/ticket-approval-workflow) | | |\\n| [Slack message agent](/docs/automations/slack-message-agent) | | |\\n| [Tracxn sync](/docs/automations/tracxn-sync) | | |\\n| [Airtable](/docs/automations/airtable) | | |\\n\\nBuild\\n-----\\n\\n| Automate | Integrate | AirSync |\\n| --- | --- | --- |\\n| [Convergence](/docs/automations/converge) | [GitHub](/docs/integrations/github) | [Jira](/docs/integrations/jira) |\\n| [Work duration](/docs/automations/work-duration) |", + "title": "Snap-ins | DevRev" }, { "id": "ART-2035_KNOWLEDGE_NODE-54", @@ -818,24 +823,19 @@ "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-4199_KNOWLEDGE_NODE-0", - "text": "b\"Slack message agent | Automate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CMD`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", - "title": "Slack message agent | Automate | Snap-ins | DevRev" - }, - { - "id": "ART-2035_KNOWLEDGE_NODE-51", - "text": "Slack.\\n\\nFor example:\\n\\n* /devrev view TKT-#\\n* /devrev view ISS-#\\n\\nThese commands open the specific object mentioned in the command.\\n\\nCreating custom workflows\\n-------------------------\\n\\nThe users can configure their own workflows around Slack using DevRev's workflow engine.\\n\\n| Workflow Action | Description | Inputs | Outputs |\\n| --- | --- | --- | --- |\\n| Send message on Slack | - Use this workflow node to send a message to any Slack channel as long as the DevRev app has access to", - "title": "Slack | Integrate | Snap-ins | DevRev" - }, - { - "id": "ART-4206_KNOWLEDGE_NODE-3", - "text": "it.\\n* Complete execution tracking via progress events.\\n* Ability to handle long-running agent tasks.\\n\\n##### \\n\\nIn any unlikely and unforeseen circumstances, if an individual operation of the workflow times out, you do not receive an error event right now to notify that you should not wait for any more messages. It is better to have a client side timeout for now while the issue is brainstormed and fixed for you.\\n\\nSet up webhook\\n--------------\\n\\nBefore using the async API, you need to", + "id": "ART-4206_KNOWLEDGE_NODE-20", + "text": "occurred |\\n| 49 | sendToClient(conversationId, { |\\n| 50 | type: \"agent_error\", |\\n| 51 | error: event.payload.ai_agent_response.error.error, |\\n| 52 | }); |\\n| 53 | } |\\n| 54 | |\\n| 55 | res.status(200).send(\"OK\"); |\\n| 56 | }); |\\n```\\n\\n##### \\n\\nUsing WebSockets or Server-Sent Events can provide real-time updates to your\\nUI as events are received.\\n\\n### Talk to agent node in workflows\\n\\n##### \\n\\nThis is in early access, please contact support to have it enabled for you.\\n\\nIf", "title": "Agents async API | DevRev | Docs" }, { "id": "ART-2035_KNOWLEDGE_NODE-52", "text": "the channel. - Private channels are supported only if the DevRev app is a member of the channel. | - Slack connection - Slack channel id - Text message to send - Objects to mention with message - If any object is added here, a summary card of that object is sent with the message. | Slack message ID |\\n| Create new Slack channel | Use this workflow node to create a new Slack channel. | - Slack connection - Channel name Make sure this is unique. It is recommended to create this name", "title": "Slack | Integrate | Snap-ins | DevRev" + }, + { + "id": "ART-8442_KNOWLEDGE_NODE-15", + "text": "uploader](/docs/automations/csv-work-item-uploader)\\n * [CSV comments uploader](/docs/automations/csv-comments-uploader)\\n * [Ticket approval workflow](/docs/automations/ticket-approval-workflow)\\n * [Ticket linked issues comment sync](/docs/automations/ticket-linked-issues-comment-sync)\\n * [Slack message agent](/docs/automations/slack-message-agent)\\n\\n * [Integrate](/docs/integrate)\\n\\n * [Bitbucket](/docs/integrations/bitbucket)\\n *", + "title": "January 2025 | Changelog | DevRev" } ] }, @@ -844,29 +844,24 @@ "query": "change and customize chat design", "retrievals": [ { - "id": "ART-2059_KNOWLEDGE_NODE-6", - "text": "to the Customize documentation.\\n\\nAlternatively, for the most comprehensive customizations, refer to our SDK functions here.\\n\\nIntegration code.\\n\\nTo get the PLuG chat widget to appear on your website and web app, copy and paste the snippet below on every page where you want the widget to appear for website visitors.\\n\\nUnique app ID.\\n\\nMake sure to replace the app ID with your app ID which identifies your PLuG chat widget. You can access your app ID from your DevRev account by following", - "title": "Install PLuG chat on your website" - }, - { - "id": "ART-4113_KNOWLEDGE_NODE-8", - "text": "\"surface\": \"customer_chat\" \\n 96| } \\n 97| ], \\n 98| \"usage_hint\": \"usage_hint\" \\n 99| } \\n 100| }\\n[/code] \\n \\n[Get Command (POST)Up Next](/beta/api-reference/commands/get-post)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n'", - "title": "Get Command (Beta) \u2014 DevRev | Docs" + "id": "ART-2898_KNOWLEDGE_NODE-15", + "text": "to tailor its appearance to your application\\xe2\\x80\\x99s design.\\n\\n[code]\\n\\n 1| android:src=\"@your_drawable_here\" \\n ---|---\\n[/code] \\n \\nand\\n\\n[code]\\n\\n 1| android:backgroundTint=\"@your_background_color\" \\n ---|---\\n[/code] \\n \\nAt this stage, your app is fully configured to utilize all functionalities of the DevRev PLuG SDK. Pressing the support button directs the user to the chat interface, enabling effective interaction and support.\\n\\n## Analytics\\n\\nThe DevRev SDK", + "title": "Android integration \u2014 DevRev | Docs" }, { - "id": "ART-15504_KNOWLEDGE_NODE-4", - "text": "[identify your customers](/sdks/web/user-identity) and update their information.\\n\\n##### \\n\\nOnce the SDK is installed, the chat widget appears by default. If you are not using the Plug SDK for support or chat-related flows, you can disable the chat widget by setting the `disable_plug_chat_window` input to `true`.\\n\\n```\\n| |\\n| --- |\\n| |\\n```\\n\\nTo ensure", - "title": "Install the Web SDK | DevRev | Docs" + "id": "ART-3109_KNOWLEDGE_NODE-25", + "text": "Plug widget to reflect your unique identity truly.\\n\\nTo configure the appearance of your Plug widget, open your DevRev app and navigate to **Settings > Support > Plug Chat > Configuration, Styling, and Layout**.\\n\\n### Configuration\\n\\n* Hide Plug widget: Hide the Plug Widget on specific URLs by clicking **+ Rule** and adding the URLs you want to configure.\\n\\n### Styling\\n\\n* Launcher logo: The image that's visible as your widget icon. A 20-pixel square image is recommended.\\n* Alignment: The", + "title": "Plug widget customization | Computer for Your Customers | DevRev" }, { - "id": "ART-4110_KNOWLEDGE_NODE-10", - "text": "], \\n 95| \"surface\": \"customer_chat\" \\n 96| } \\n 97| ], \\n 98| \"usage_hint\": \"usage_hint\" \\n 99| } \\n 100| }\\n[/code] \\n \\n[Get CommandUp Next](/beta/api-reference/commands/get)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n'", - "title": "Create Command (Beta) \u2014 DevRev | Docs" + "id": "ART-4230_KNOWLEDGE_NODE-1", + "text": "https://api.devrev.ai/chats.create \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -H \"Content-Type: application/json\" \\\\ \\n >| -d \\'{ \\n >| \"type\": \"dm\", \\n >| \"users\": [ \\n >| \"users\", \\n >| \"users\" \\n >| ] \\n >| }\\'\\n[/code] \\n \\nTry it\\n\\n201Created\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"chat\": { \\n 3| \"type\": \"dm\", \\n 4| \"id\": \"id\", \\n 5| \"users\": [ \\n 6| {", + "title": "Create Chat (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-3109_KNOWLEDGE_NODE-25", - "text": "Plug widget to reflect your unique identity truly.\\n\\nTo configure the appearance of your Plug widget, open your DevRev app and navigate to **Settings > Support > Plug Chat > Configuration, Styling, and Layout**.\\n\\n### Configuration\\n\\n* Hide Plug widget: Hide the Plug Widget on specific URLs by clicking **+ Rule** and adding the URLs you want to configure.\\n\\n### Styling\\n\\n* Launcher logo: The image that's visible as your widget icon. A 20-pixel square image is recommended.\\n* Alignment: The", - "title": "Plug widget customization | Computer for Your Customers | DevRev" + "id": "ART-2059_KNOWLEDGE_NODE-6", + "text": "to the Customize documentation.\\n\\nAlternatively, for the most comprehensive customizations, refer to our SDK functions here.\\n\\nIntegration code.\\n\\nTo get the PLuG chat widget to appear on your website and web app, copy and paste the snippet below on every page where you want the widget to appear for website visitors.\\n\\nUnique app ID.\\n\\nMake sure to replace the app ID with your app ID which identifies your PLuG chat widget. You can access your app ID from your DevRev account by following", + "title": "Install PLuG chat on your website" }, { "id": "ART-4115_KNOWLEDGE_NODE-10", @@ -874,14 +869,9 @@ "title": "Update Command (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-2898_KNOWLEDGE_NODE-15", - "text": "to tailor its appearance to your application\\xe2\\x80\\x99s design.\\n\\n[code]\\n\\n 1| android:src=\"@your_drawable_here\" \\n ---|---\\n[/code] \\n \\nand\\n\\n[code]\\n\\n 1| android:backgroundTint=\"@your_background_color\" \\n ---|---\\n[/code] \\n \\nAt this stage, your app is fully configured to utilize all functionalities of the DevRev PLuG SDK. Pressing the support button directs the user to the chat interface, enabling effective interaction and support.\\n\\n## Analytics\\n\\nThe DevRev SDK", - "title": "Android integration \u2014 DevRev | Docs" - }, - { - "id": "ART-15504_KNOWLEDGE_NODE-1", - "text": "is installed, the chat widget appears by default.\\n\\nGetting your unique app ID\\n--------------------------\\n\\nYou can access your app ID from your DevRev account by following these steps:\\n\\n1. In DevRev, go to **Settings > Support > Plug Settings** via the settings icon in the top-left corner.\\n2. If the Plug feature is not already enabled, click **Enable Plug**.\\n3. Under the **Configuration** tab, copy the **Unique App ID**.\\n\\n###### Setup\\n\\n###### Setup for React\\n\\nPlace the following", - "title": "Install the Web SDK | DevRev | Docs" + "id": "ART-3231_KNOWLEDGE_NODE-25", + "text": "**Configure**.\\n2. Fill in the configuration settings.\\n\\n * **Command Names**: List command names that exist in the organization. Enter\\n one per text box (to add more text boxes, click \\'**+**\\').\\n * **Customer Chat Surfaces**: Select surfaces where the commands should be\\n available in the \"Customer messages\".\\n * **Discussions Surfaces**: Select surfaces where the commands should be\\n available in internal chats.\\n3. Click **Save**.\\n4. Click **Install** to activate the", + "title": "Commands surface expander | Automate | Snap-ins | DevRev" }, { "id": "ART-15311_KNOWLEDGE_NODE-5", @@ -889,10 +879,20 @@ "title": "Get Command | DevRev | Docs" }, { - "id": "ART-16582_KNOWLEDGE_NODE-4", - "text": "TextField(decoration: InputDecoration(labelText: \"foo-bar\"),),)` `DevRevUnmask(child: TextField(decoration: InputDecoration(labelText: \"foo-bar\"),),)` |\\n| Timers | `userExperior.startTimer(timerName, properties)` `userExperior.endTimer(timerName, properties)` | `DevRev.startTimer(name, properties)` `DevRev.endTimer(name, properties)` |\\n| Plug support chat | Not supported. | `DevRev.showSupport()` `DevRev.createSupportConversation()` |\\n| Push notifications | Not supported. |", - "title": "Migration guide | DevRev | Docs" - } + "id": "ART-15312_KNOWLEDGE_NODE-5", + "text": "|\\n| 75 | \"account\" |\\n| 76 | ], |\\n| 77 | \"surface\": \"customer_chat\" |\\n| 78 | } |\\n| 79 | ], |\\n| 80 | \"usage_hint\": \"string\" |\\n| 81 | } |\\n| 82 | ], |\\n| 83 | \"next_cursor\": \"string\", |\\n| 84 | \"prev_cursor\": \"string\" |\\n| 85 | } |\\n```\\n\\nLists commands for a Dev organization.\\n\\n### Headers\\n\\nAuthorizationstringRequired\\n\\nBearer authentication of the form `Bearer `, where token is your auth token.\\n\\n### Query parameters\\n\\ncursorstringOptional`format: \"text\"`\\n\\nThe cursor to", + "title": "List Commands | DevRev | Docs" + }, + { + "id": "ART-12986_KNOWLEDGE_NODE-11", + "text": "\\n 71| \"account\" \\n 72| ], \\n 73| \"surface\": \"customer_chat\" \\n 74| } \\n 75| ], \\n 76| \"usage_hint\": \"foo\" \\n 77| } \\n 78| ], \\n 79| \"next_cursor\": \"foo\", \\n 80| \"prev_cursor\": \"foo\" \\n 81| }\\n[/code] \\n \\n[Update CommandUp Next](/public/api-reference/commands/update)\\n\\n[Built", + "title": "List Commands (POST) \u2014 DevRev | Docs" + }, + { + "id": "ART-4110_KNOWLEDGE_NODE-10", + "text": "], \\n 95| \"surface\": \"customer_chat\" \\n 96| } \\n 97| ], \\n 98| \"usage_hint\": \"usage_hint\" \\n 99| } \\n 100| }\\n[/code] \\n \\n[Get CommandUp Next](/beta/api-reference/commands/get)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n'", + "title": "Create Command (Beta) \u2014 DevRev | Docs" + } ] }, { @@ -900,18 +900,18 @@ "query": "Vista export as CSV error invalid_field sort_groups_by", "retrievals": [ { - "id": "ART-15481_KNOWLEDGE_NODE-5", - "text": "stringsOptional\\n\\nComma-separated fields to sort the objects by.\\n\\nstatelist of enumsOptional\\n\\nDenotes the state of the vista group item.\\n\\nAllowed values:activecompletedplanned\\n\\ntypelist of enumsOptional\\n\\nFilters for vista group items of the specific type.\\n\\nAllowed values:curateddynamic\\n\\n### Response\\n\\nThe response to listing the vistas group items.\\n\\nnext\\\\_cursorstring or null`format: \"text\"`\\n\\nThe cursor used to iterate subsequent results in accordance to the\\nsort order. If", - "title": "List Vistas Groups | DevRev | Docs" + "id": "ART-2065_KNOWLEDGE_NODE-30", + "text": "items into visual cards, organized in columns and rows. It enhances workflow visualization, limits work in progress, and allows drag-and-drop management through different stages. Ideal for moving tickets, tracking issues, and managing sales opportunities.\\n* When exporting a view as CSV, you can now choose to export either all columns of the record or only the columns currently displayed in your view.\\n* In list views, when grouping issues or tickets, you can now sort group labels by their", + "title": "August 2025 | Changelog | DevRev" }, { - "id": "ART-15461_KNOWLEDGE_NODE-2", - "text": "\"id\"`\\n\\nID of the vista group item to be deleted.\\n\\n### Response\\n\\nSuccess.\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n404\\n\\nNot Found Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/vistas/get-post)[#### Get Vistas Group\\n\\nNext](/api-reference/vistas/groups-get)[Built", - "title": "Delete Vistas Group | DevRev | Docs" + "id": "ART-15483_KNOWLEDGE_NODE-10", + "text": "\"text\"`\\n\\nThe cursor used to iterate preceding results in accordance to the\\nsort order. If not set, then no prior elements exist.\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/vistas/groups-list-post)[#### List Vistas (POST)\\n\\nNext](/api-reference/vistas/list-post)[Built", + "title": "List Vistas | DevRev | Docs" }, { - "id": "ART-15465_KNOWLEDGE_NODE-7", - "text": "values:activecompletedplanned\\n\\n### Response\\n\\nThe response to listing the vistas group items.\\n\\nnext\\\\_cursorstring or null`format: \"text\"`\\n\\nThe cursor used to iterate subsequent results in accordance to the\\nsort order. If not set, then no later elements exist.\\n\\nprev\\\\_cursorstring or null`format: \"text\"`\\n\\nThe cursor used to iterate preceding results in accordance to the\\nsort order. If not set, then no prior elements exist.\\n\\nvista\\\\_grouplist of objects or null\\n\\nList of vista", + "id": "ART-15465_KNOWLEDGE_NODE-6", + "text": "values:afterbefore\\n\\nmodified\\\\_dateobjectOptional\\n\\nProvides ways to specify date ranges on objects.\\n\\nShow 2 variants\\n\\nparent\\\\_idlist of stringsOptional\\n\\nParent ID of the vista group item.\\n\\nsort\\\\_bylist of stringsOptional\\n\\nComma-separated fields to sort the objects by.\\n\\nstart\\\\_dateobjectOptional\\n\\nProvides ways to specify date ranges on objects.\\n\\nShow 2 variants\\n\\nstatelist of enumsOptional\\n\\nDenotes the state of the vista group item.\\n\\nAllowed", "title": "List Vistas Groups (POST) | DevRev | Docs" }, { @@ -920,13 +920,13 @@ "title": "List Vistas Groups (POST) | DevRev | Docs" }, { - "id": "ART-15483_KNOWLEDGE_NODE-10", - "text": "\"text\"`\\n\\nThe cursor used to iterate preceding results in accordance to the\\nsort order. If not set, then no prior elements exist.\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/vistas/groups-list-post)[#### List Vistas (POST)\\n\\nNext](/api-reference/vistas/list-post)[Built", - "title": "List Vistas | DevRev | Docs" + "id": "ART-15481_KNOWLEDGE_NODE-5", + "text": "stringsOptional\\n\\nComma-separated fields to sort the objects by.\\n\\nstatelist of enumsOptional\\n\\nDenotes the state of the vista group item.\\n\\nAllowed values:activecompletedplanned\\n\\ntypelist of enumsOptional\\n\\nFilters for vista group items of the specific type.\\n\\nAllowed values:curateddynamic\\n\\n### Response\\n\\nThe response to listing the vistas group items.\\n\\nnext\\\\_cursorstring or null`format: \"text\"`\\n\\nThe cursor used to iterate subsequent results in accordance to the\\nsort order. If", + "title": "List Vistas Groups | DevRev | Docs" }, { - "id": "ART-15465_KNOWLEDGE_NODE-6", - "text": "values:afterbefore\\n\\nmodified\\\\_dateobjectOptional\\n\\nProvides ways to specify date ranges on objects.\\n\\nShow 2 variants\\n\\nparent\\\\_idlist of stringsOptional\\n\\nParent ID of the vista group item.\\n\\nsort\\\\_bylist of stringsOptional\\n\\nComma-separated fields to sort the objects by.\\n\\nstart\\\\_dateobjectOptional\\n\\nProvides ways to specify date ranges on objects.\\n\\nShow 2 variants\\n\\nstatelist of enumsOptional\\n\\nDenotes the state of the vista group item.\\n\\nAllowed", + "id": "ART-15465_KNOWLEDGE_NODE-7", + "text": "values:activecompletedplanned\\n\\n### Response\\n\\nThe response to listing the vistas group items.\\n\\nnext\\\\_cursorstring or null`format: \"text\"`\\n\\nThe cursor used to iterate subsequent results in accordance to the\\nsort order. If not set, then no later elements exist.\\n\\nprev\\\\_cursorstring or null`format: \"text\"`\\n\\nThe cursor used to iterate preceding results in accordance to the\\nsort order. If not set, then no prior elements exist.\\n\\nvista\\\\_grouplist of objects or null\\n\\nList of vista", "title": "List Vistas Groups (POST) | DevRev | Docs" }, { @@ -935,19 +935,19 @@ "title": "List Groups (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-15479_KNOWLEDGE_NODE-2", - "text": "\"active\", |\\n| 15 | \"type\": \"curated\" |\\n| 16 | } |\\n| 17 | } |\\n```\\n\\nGets the requested vista group item\\'s information.\\n\\n### Headers\\n\\nAuthorizationstringRequired\\n\\nBearer authentication of the form `Bearer `, where token is your auth token.\\n\\n### Query parameters\\n\\nidstringRequired`format: \"id\"`\\n\\nThe vista group item\\'s ID.\\n\\n### Response\\n\\nThe response to getting a vista group item\\'s information.\\n\\nvista\\\\_groupobject\\n\\nRepresents a vista group item.\\n\\nShow 3", - "title": "Get Vistas Group | DevRev | Docs" + "id": "ART-1801_KNOWLEDGE_NODE-156", + "text": "groups on basis of member type.\\nAllowed values: dev_user rev_user\\nmode \"after\" or \"before\" Optional\\nThe iteration mode to use, otherwise if not set, then \"after\" is used.\\nAllowed values: after before\\nsort_by string Optional\\nComma-separated fields to sort the groups by.\\nResponse.\\n\\nThis endpoint returns an object.\\ngroups list of objects\\nThe list of groups.\\nShow 11 properties\\nnext_cursor string Optional\\nThe cursor used to iterate subsequent results in accordance to the sort order. If", + "title": "Get \u2014 DevRev | Docs" }, { - "id": "ART-15390_KNOWLEDGE_NODE-6", - "text": "provided, then from the\\nbeginning. If \\xe2\\x80\\x9cbefore\\xe2\\x80\\x9d, then entries before the provided cursor will be\\nreturned, or if no cursor is provided, then from the end. Entries will\\nalways be returned in the specified sort-by order.\\n\\nAllowed values:afterbefore\\n\\nnamelist of stringsOptional\\n\\nFilters the groups on the basis of group name.\\n\\nsort\\\\_bylist of stringsOptional\\n\\nComma-separated fields to sort the groups by.\\n\\nsync\\\\_metadataobjectOptional\\n\\nShow 4 properties\\n\\n###", - "title": "List Groups (POST) | DevRev | Docs" + "id": "ART-1791_KNOWLEDGE_NODE-153", + "text": "groups on basis of member type.\\nAllowed values: dev_user rev_user\\nmode \"after\" or \"before\" Optional\\nThe iteration mode to use, otherwise if not set, then \"after\" is used.\\nAllowed values: after before\\nsort_by string Optional\\nComma-separated fields to sort the groups by.\\nResponse.\\n\\nThis endpoint returns an object.\\ngroups list of objects\\nThe list of groups.\\nShow 11 properties\\nnext_cursor string Optional\\nThe cursor used to iterate subsequent results in accordance to the sort order. If", + "title": "Self Delete \u2014 DevRev | Docs" }, { - "id": "ART-4082_KNOWLEDGE_NODE-4", - "text": "or if no cursor is provided, then from the end. Entries will always be returned in the specified sort-by order.\\n\\nnamelist of stringsOptional\\n\\nFilters the groups on the basis of group name.\\n\\nsort_bylist of stringsOptional\\n\\nComma-separated fields to sort the groups by.\\n\\nsync_metadataobjectOptional\\n\\nShow 4 properties\\n\\n### Response\\n\\nThe response to listing the groups.\\n\\ngroupslist of objects\\n\\nThe list of groups.\\n\\nShow 6 properties\\n\\nnext_cursorstringOptional`format:", - "title": "List Groups (POST) \u2014 DevRev | Docs" + "id": "ART-1300_KNOWLEDGE_NODE-154", + "text": "groups on basis of member type.\\nAllowed values: dev_user rev_user\\nmode \"after\" or \"before\" Optional\\nThe iteration mode to use, otherwise if not set, then \"after\" is used.\\nAllowed values: after before\\nsort_by string Optional\\nComma-separated fields to sort the groups by.\\nResponse.\\n\\nThis endpoint returns an object.\\ngroups list of objects\\nThe list of groups.\\nShow 11 properties\\nnext_cursor string Optional\\nThe cursor used to iterate subsequent results in accordance to the sort order. If", + "title": "Create \u2014 DevRev | Docs" } ] }, @@ -956,9 +956,9 @@ "query": "accounts.export API filter by created date after", "retrievals": [ { - "id": "ART-1449_KNOWLEDGE_NODE-0", - "text": "b'[](/public/api-reference/accounts/export)\\n\\nPublic\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources", - "title": "Export Accounts \u2014 DevRev | Docs" + "id": "ART-1302_KNOWLEDGE_NODE-8", + "text": "\" : \" value \" 3 }\\nAPI Reference accounts Export.\\n\\nGET https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nQuery parameters.\\n\\ncreated_by string Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date.after datetime Optional\\nFilters for objects created after the provided timestamp (inclusive).\\ncreated_date.before datetime Optional\\nFilters for objects created before the provided timestamp (inclusive).\\ncustom_fields map from strings to any", + "title": "Export \u2014 DevRev | Docs" }, { "id": "ART-1301_KNOWLEDGE_NODE-8", @@ -966,44 +966,44 @@ "title": "Delete \u2014 DevRev | Docs" }, { - "id": "ART-1302_KNOWLEDGE_NODE-8", - "text": "\" : \" value \" 3 }\\nAPI Reference accounts Export.\\n\\nGET https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nQuery parameters.\\n\\ncreated_by string Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date.after datetime Optional\\nFilters for objects created after the provided timestamp (inclusive).\\ncreated_date.before datetime Optional\\nFilters for objects created before the provided timestamp (inclusive).\\ncustom_fields map from strings to any", - "title": "Export \u2014 DevRev | Docs" + "id": "ART-1650_KNOWLEDGE_NODE-3", + "text": "delete.\\nResponse.\\n\\nThis endpoint returns a map from strings to any.\\nAPI Reference accounts Export.\\n\\nGET https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nQuery parameters.\\n\\ncreated_by string Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date.after datetime Optional\\nFilters for objects created after the provided timestamp (inclusive).\\ncreated_date.before datetime Optional\\nFilters for objects created before the provided timestamp", + "title": "List Post \u2014 DevRev | Docs" }, { - "id": "ART-1831_KNOWLEDGE_NODE-6", - "text": "exported accounts.\\nShow 18 properties\\nAPI Reference accounts Export Post.\\n\\nPOST https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nRequest.\\n\\nThis endpoint expects an object.\\ncreated_by list of strings Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date object Optional\\nShow 2 properties\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name list of strings Optional\\nArray of display names of accounts", - "title": "Get \u2014 DevRev | Docs" + "id": "ART-1509_KNOWLEDGE_NODE-3", + "text": "delete.\\nResponse.\\n\\nThis endpoint returns a map from strings to any.\\nAPI Reference accounts Export.\\n\\nGET https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nQuery parameters.\\n\\ncreated_by string Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date.after datetime Optional\\nFilters for objects created after the provided timestamp (inclusive).\\ncreated_date.before datetime Optional\\nFilters for objects created before the provided timestamp", + "title": "Prepare \u2014 DevRev | Docs" }, { - "id": "ART-1655_KNOWLEDGE_NODE-6", - "text": "exported accounts.\\nShow 18 properties\\nAPI Reference accounts Export Post.\\n\\nPOST https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nRequest.\\n\\nThis endpoint expects an object.\\ncreated_by list of strings Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date object Optional\\nShow 2 properties\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name list of strings Optional\\nArray of display names of accounts", - "title": "Update \u2014 DevRev | Docs" + "id": "ART-1607_KNOWLEDGE_NODE-3", + "text": "delete.\\nResponse.\\n\\nThis endpoint returns a map from strings to any.\\nAPI Reference accounts Export.\\n\\nGET https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nQuery parameters.\\n\\ncreated_by string Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date.after datetime Optional\\nFilters for objects created after the provided timestamp (inclusive).\\ncreated_date.before datetime Optional\\nFilters for objects created before the provided timestamp", + "title": "Get Post \u2014 DevRev | Docs" }, { - "id": "ART-1652_KNOWLEDGE_NODE-3", + "id": "ART-1643_KNOWLEDGE_NODE-3", "text": "delete.\\nResponse.\\n\\nThis endpoint returns a map from strings to any.\\nAPI Reference accounts Export.\\n\\nGET https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nQuery parameters.\\n\\ncreated_by string Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date.after datetime Optional\\nFilters for objects created after the provided timestamp (inclusive).\\ncreated_date.before datetime Optional\\nFilters for objects created before the provided timestamp", - "title": "Export \u2014 DevRev | Docs" + "title": "List Post \u2014 DevRev | Docs" }, { - "id": "ART-1829_KNOWLEDGE_NODE-6", - "text": "exported accounts.\\nShow 18 properties\\nAPI Reference accounts Export Post.\\n\\nPOST https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nRequest.\\n\\nThis endpoint expects an object.\\ncreated_by list of strings Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date object Optional\\nShow 2 properties\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name list of strings Optional\\nArray of display names of accounts", - "title": "Delete \u2014 DevRev | Docs" + "id": "ART-1825_KNOWLEDGE_NODE-3", + "text": "delete.\\nResponse.\\n\\nThis endpoint returns a map from strings to any.\\nAPI Reference accounts Export.\\n\\nGET https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nQuery parameters.\\n\\ncreated_by string Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date.after datetime Optional\\nFilters for objects created after the provided timestamp (inclusive).\\ncreated_date.before datetime Optional\\nFilters for objects created before the provided timestamp", + "title": "List \u2014 DevRev | Docs" }, { - "id": "ART-1579_KNOWLEDGE_NODE-3", + "id": "ART-1837_KNOWLEDGE_NODE-3", "text": "delete.\\nResponse.\\n\\nThis endpoint returns a map from strings to any.\\nAPI Reference accounts Export.\\n\\nGET https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nQuery parameters.\\n\\ncreated_by string Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date.after datetime Optional\\nFilters for objects created after the provided timestamp (inclusive).\\ncreated_date.before datetime Optional\\nFilters for objects created before the provided timestamp", - "title": "List Post \u2014 DevRev | Docs" + "title": "Update \u2014 DevRev | Docs" }, { - "id": "ART-1787_KNOWLEDGE_NODE-6", - "text": "exported accounts.\\nShow 18 properties\\nAPI Reference accounts Export Post.\\n\\nPOST https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nRequest.\\n\\nThis endpoint expects an object.\\ncreated_by list of strings Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date object Optional\\nShow 2 properties\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name list of strings Optional\\nArray of display names of accounts", - "title": "Get \u2014 DevRev | Docs" + "id": "ART-1597_KNOWLEDGE_NODE-3", + "text": "delete.\\nResponse.\\n\\nThis endpoint returns a map from strings to any.\\nAPI Reference accounts Export.\\n\\nGET https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nQuery parameters.\\n\\ncreated_by string Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date.after datetime Optional\\nFilters for objects created after the provided timestamp (inclusive).\\ncreated_date.before datetime Optional\\nFilters for objects created before the provided timestamp", + "title": "Update \u2014 DevRev | Docs" }, { - "id": "ART-1838_KNOWLEDGE_NODE-3", + "id": "ART-1651_KNOWLEDGE_NODE-3", "text": "delete.\\nResponse.\\n\\nThis endpoint returns a map from strings to any.\\nAPI Reference accounts Export.\\n\\nGET https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nQuery parameters.\\n\\ncreated_by string Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date.after datetime Optional\\nFilters for objects created after the provided timestamp (inclusive).\\ncreated_date.before datetime Optional\\nFilters for objects created before the provided timestamp", - "title": "List Post \u2014 DevRev | Docs" + "title": "Create \u2014 DevRev | Docs" } ] }, @@ -1017,19 +1017,19 @@ "title": "DevRev SDK for Android \u2014 DevRev | Docs" }, { - "id": "ART-984_KNOWLEDGE_NODE-25", - "text": "for sales visibility (or at least notifications).\\n\\nThe key is that some level of integration is necessary between systems to provide visibility without requiring people to\\nlook in different places unless you have a platform that handles these in a converged manner.\\n\\nWhy change\\n\\nThis will help facilitate the following:\\n\\n\\n Interactions are coordinated and consistent\\n Hand-offs are handled correctly\\n Customers won\\xe2\\x80\\x99t get tossed around or told different things by different", - "title": "Why you Should be Looking at Support Differently" + "id": "ART-2982_KNOWLEDGE_NODE-6", + "text": "method.\\n\\n[code]\\n\\n 1| DevRev.configure(appID: string) \\n ---|---\\n[/code] \\n \\n## Identification\\n\\nTo access certain features of the DevRev SDK, user identification is required.\\n\\nThe identification function should be placed appropriately in your app after the user logs in. If you have the user information available at app launch, call the function after the `DevRev.configure(appID:)` method.\\n\\n#####\\n\\nOn iOS, if you haven\\xe2\\x80\\x99t previously identified the user, the DevRev", + "title": "React Native integration \u2014 DevRev | Docs" }, { - "id": "ART-12604_KNOWLEDGE_NODE-0", - "text": "b\"DevRev Careers | Sales Development Representative \\n\\n* Product\\n* Platform\\n* Marketplace\\n* Company\\n* Resources\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nProduct\\n\\nPlatform\\n\\nMarketplace\\n\\nCompany\\n\\nResources\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\ncareers\\n\\nSales Development Representative\\n================================\\n\\nBengaluru, Karnataka,", - "title": "DevRev Careers | Sales Development Representative" + "id": "ART-1031_KNOWLEDGE_NODE-6", + "text": "times, causing significant delays\\n\\nThe solution\\n------------\\n\\n### Visual playback of issues\\n\\nComputer, powered by agentic AI, provides product teams with a video of how users interact with the app\\xe2\\x80\\x99s login and splash screens. This visual playback aids in pinpointing where users encounter issues and identifying confusing elements. These insights are then shared with the development team, allowing for quick issue resolution and minimizing drop-offs during the onboarding", + "title": "AR Digital Wealth cuts support TAT by 60% with faster issue solving" }, { - "id": "ART-17569_KNOWLEDGE_NODE-1", - "text": "message in the UI if they try to access an uninstalled app: \\xe2\\x80\\x9cWe can\\xe2\\x80\\x99t authorize you because of an OAuth error. For more information, contact your Salesforce administrator.\\xe2\\x80\\x9d and the OAUTH_APPROVAL_ERROR_GENERIC message.\"\\n\\nDue to this, customers may experience issues when trying to create a new Salesforce connection and install the DevRev app on their Salesforce instance.\\n\\nRead more about this on the shared article above. Follow the next steps to enable the", - "title": "Issues with Salesforce OAuth connection" + "id": "ART-2047_KNOWLEDGE_NODE-0", + "text": "b'Salesforce AirSync | AirSync | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", + "title": "Salesforce AirSync | AirSync | Snap-ins | DevRev" }, { "id": "ART-17569_KNOWLEDGE_NODE-0", @@ -1037,9 +1037,9 @@ "title": "Issues with Salesforce OAuth connection" }, { - "id": "ART-12606_KNOWLEDGE_NODE-0", - "text": "b\"DevRev Careers | Revenue: Sales Development Representative\\n\\n* Product\\n* Platform\\n* Marketplace\\n* Company\\n* Resources\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nProduct\\n\\nPlatform\\n\\nMarketplace\\n\\nCompany\\n\\nResources\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\ncareers\\n\\nRevenue: Sales Development Representative\\n=========================================\\n\\nBuenos Aires,", - "title": "DevRev Careers | Revenue: Sales Development Representative" + "id": "ART-984_KNOWLEDGE_NODE-25", + "text": "for sales visibility (or at least notifications).\\n\\nThe key is that some level of integration is necessary between systems to provide visibility without requiring people to\\nlook in different places unless you have a platform that handles these in a converged manner.\\n\\nWhy change\\n\\nThis will help facilitate the following:\\n\\n\\n Interactions are coordinated and consistent\\n Hand-offs are handled correctly\\n Customers won\\xe2\\x80\\x99t get tossed around or told different things by different", + "title": "Why you Should be Looking at Support Differently" }, { "id": "ART-15507_KNOWLEDGE_NODE-6", @@ -1047,19 +1047,19 @@ "title": "Features | DevRev | Docs" }, { - "id": "ART-1707_KNOWLEDGE_NODE-3", - "text": "overseeing the entire customer lifecycle. However, the app encountered technical issues that were affecting sales performance.\\n\\nAdditionally, the support team needed help grasping the issues reported by sales representatives. When they needed more information, the sales reps were often occupied with calls or unavailable to elaborate, leading to further delays in resolving these issues.\\n\\n### Blindspots in troubleshooting issues\\n\\nThe issue of limited ticket details extended from the support", - "title": "ICICI Prudential Life Insurance uses DevRev to slash resolution time by 95%" + "id": "ART-12456_KNOWLEDGE_NODE-6", + "text": "Expo](/public/sdks/react-native/quickstart)\\n\\n#\\n\\nFeatures\\n\\n## Identification\\n\\nTo access certain features of the DevRev SDK, user identification is required.\\n\\nThe identification function should be placed appropriately in your app after the user logs in. If you have the user information available at app launch, call the function after the `DevRev.configure(appID:)` method.\\n\\n#####\\n\\nOn iOS, if you haven\\xe2\\x80\\x99t previously identified the user, the DevRev SDK will automatically", + "title": "Features \u2014 DevRev | Docs" }, { - "id": "ART-1707_KNOWLEDGE_NODE-5", - "text": "need for a more effective solution.\\n\\nThe solution\\n------------\\n\\n### Real-time insights into app complaints\\n\\nBy using Computer for user insights, the support team gained the ability to view app issues independently, avoiding disruptions in the sales process. They could now record and replay user interactions in real-time, which helped them accurately identify and categorize issues as either knowledge gaps or technical glitches.\\n\\nComplete with detailed information, tickets were then", - "title": "ICICI Prudential Life Insurance uses DevRev to slash resolution time by 95%" + "id": "ART-1947_KNOWLEDGE_NODE-0", + "text": "b'Apps | Computer by DevRev | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", + "title": "Apps | Computer by DevRev | DevRev" }, { - "id": "ART-12456_KNOWLEDGE_NODE-6", - "text": "Expo](/public/sdks/react-native/quickstart)\\n\\n#\\n\\nFeatures\\n\\n## Identification\\n\\nTo access certain features of the DevRev SDK, user identification is required.\\n\\nThe identification function should be placed appropriately in your app after the user logs in. If you have the user information available at app launch, call the function after the `DevRev.configure(appID:)` method.\\n\\n#####\\n\\nOn iOS, if you haven\\xe2\\x80\\x99t previously identified the user, the DevRev SDK will automatically", - "title": "Features \u2014 DevRev | Docs" + "id": "ART-17569_KNOWLEDGE_NODE-1", + "text": "message in the UI if they try to access an uninstalled app: \\xe2\\x80\\x9cWe can\\xe2\\x80\\x99t authorize you because of an OAuth error. For more information, contact your Salesforce administrator.\\xe2\\x80\\x9d and the OAUTH_APPROVAL_ERROR_GENERIC message.\"\\n\\nDue to this, customers may experience issues when trying to create a new Salesforce connection and install the DevRev app on their Salesforce instance.\\n\\nRead more about this on the shared article above. Follow the next steps to enable the", + "title": "Issues with Salesforce OAuth connection" } ] }, @@ -1068,9 +1068,14 @@ "query": "linking tickets and issues for analytics", "retrievals": [ { - "id": "ART-1840_KNOWLEDGE_NODE-13", - "text": "analytics**, helping the team track trends, understand recurring issues, and continuously improve response strategies\\n* **Unified customer view**, enabled by integrating Jira, Salesforce, and the license server, allowing agents to work with full context\\n\\nThis reflects both the effectiveness of AI-powered assistance in deflecting tickets and the increased efficiency of Binah.ai's support workflows.\\n\\nTop Features\\n------------\\n\\n* Ticket management system\\n* Team inbox for customer", - "title": "Revolutionising health tech support: how Binah.ai cut response times by 50% with DevRev" + "id": "ART-15664_KNOWLEDGE_NODE-13", + "text": "\\n\\nYou may want to restrict links to specific subtypes of objects. For example, only allowing issues\\nof a particular subtype to be linked to tickets.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"name\": \"Link between social media issues and tickets\", |\\n| > | \"source_types\": [ |\\n| > | { |\\n|", + "title": "Links | DevRev | Docs" + }, + { + "id": "ART-15716_KNOWLEDGE_NODE-8", + "text": "for TicketsWe have a summarize option (it would resemble sparkle symbol) in the top right corner of the ticket view, which uses the ticket content to summarize the ticket\\n\\n7. Difference between Issues and Tickets\\n\\nTickets\\xc2\\xa0are for customer support\\xe2\\x80\\x94tracking requests, problems, or questions from customers or prospects.\\n\\nIssues\\xc2\\xa0are internal work items for developers\\xe2\\x80\\x94used to improve the product, fix bugs, or implement features. Issues can be linked to", + "title": "Support queries related playbook" }, { "id": "ART-1979_KNOWLEDGE_NODE-60", @@ -1078,14 +1083,19 @@ "title": "Tickets | Computer for Support Teams | DevRev" }, { - "id": "ART-1977_KNOWLEDGE_NODE-26", - "text": "owner.\\n* **Average Resolution Time**\\n\\n Average time taken to resolve tickets by ticket owners.\\n\\n[PreviousTicket-SLA Analytics](/docs/dashboards/ticket-sla-analytics)[NextConversations](/docs/product/conversation)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer works](/how-computer-works)\\n\\nApps\\n\\n* [For Support Teams](/for-support-teams)\\n* [For", - "title": "Ticket-Team Performance | Support analytics | Computer for Support Teams | DevRev" + "id": "ART-10697_KNOWLEDGE_NODE-30", + "text": "New filtering options let agents view tickets tied to specific articles, while updated analytics reveal the most and least linked articles, improving knowledge sharing and support strategy.\\n* Plug is our live chat widget designed for real-time conversations in your customer portal. It reduces ticket volume by resolving common queries instantly, enhancing self-service and speeding up issue resolution. Use spotlight cards or banners to notify customers about incidents, updates, or promotions,", + "title": "February 2025 | Changelog | DevRev" }, { - "id": "ART-15664_KNOWLEDGE_NODE-13", - "text": "\\n\\nYou may want to restrict links to specific subtypes of objects. For example, only allowing issues\\nof a particular subtype to be linked to tickets.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"name\": \"Link between social media issues and tickets\", |\\n| > | \"source_types\": [ |\\n| > | { |\\n|", - "title": "Links | DevRev | Docs" + "id": "ART-2009_KNOWLEDGE_NODE-26", + "text": "*Prioritized* but no issues are linked.\\n* Post to ticket's timeline mentioning its owners when it is moved to *Product Assist* stage.\\n* Post to linked ticket's timelines when enhancement changes stage.\\n* Notify target close date to ticket, issue, tasks, opportunity and enhancement owners.\\n* Notify enhancement owners for linking PRD and design docs.\\n* Post a message on part timeline tagging part owners when a new ticket is linked to that part.\\n* Post in the linked conversation when a", + "title": "Convergence | Automate | Snap-ins | DevRev" + }, + { + "id": "ART-15617_KNOWLEDGE_NODE-5", + "text": "prompts\\n\\nKnowledge Management : Tracks gaps in knowledge base to improve training data\\n\\nLimitation : Analytics solely tied to tickets, lacking product and customer insights Competitive Positioning Analysis Key Differentiators (Swords)\\n\\nSword 1: Incomplete Context for Support Teams\\n\\nPylon\\'s ticketing system operates in isolation, lacking crucial context from product, customer, and engineering data, which leaves teams unable to solve problems quickly or identify and prevent recurring", + "title": "Pylon - Competitive - for the PLuG on website" }, { "id": "ART-16803_KNOWLEDGE_NODE-26", @@ -1093,29 +1103,19 @@ "title": "Workflow nodes | Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-15716_KNOWLEDGE_NODE-8", - "text": "for TicketsWe have a summarize option (it would resemble sparkle symbol) in the top right corner of the ticket view, which uses the ticket content to summarize the ticket\\n\\n7. Difference between Issues and Tickets\\n\\nTickets\\xc2\\xa0are for customer support\\xe2\\x80\\x94tracking requests, problems, or questions from customers or prospects.\\n\\nIssues\\xc2\\xa0are internal work items for developers\\xe2\\x80\\x94used to improve the product, fix bugs, or implement features. Issues can be linked to", - "title": "Support queries related playbook" - }, - { - "id": "ART-1975_KNOWLEDGE_NODE-25", - "text": "insights\\n===============\\n\\n* **Tickets created**\\n\\n The number of tickets created within the date range that meet the other filtering criteria.\\n* **Active tickets**\\n\\n The number of tickets that are in the Open or In Progress state.\\n* **Closed tickets**\\n\\n The number of tickets closed within the date range that meet the other filtering criteria.\\n* **Average resolution time**\\n\\n The average time taken to resolve tickets.\\n* **Median resolution time**\\n\\n The median time taken to", - "title": "Ticket insights | Support analytics | Computer for Support Teams | DevRev" - }, - { - "id": "ART-15701_KNOWLEDGE_NODE-9", - "text": "information.\\n\\nDevRev recommends to switch on both agent and customer recording and realtime and post call analytics.\\n\\nCapturing user input in IVR: If you are taking inputs from user in the IVR and you want that information to be visible to the agent/ captured in the call, use set contact attributes block. Store the keys in the User Defined Namespace and add the key which needs to be displayed/ captured. For eg: previous_ticket_id is being captured by the user input.\\n\\nAdd users: Navigate", - "title": "Amazon Connect Telephony Integration Guide" + "id": "ART-2048_KNOWLEDGE_NODE-27", + "text": "allows you to create parent/child relationships between issues, you cannot do the same with tickets. If your workflow requires manual creation of parent/child relationships in DevRev work items, you should use issues. If that is not a requirement and tickets are preferred for another reason, you can specify tickets as the target for ClickUp tasks.\\n\\nImport from ClickUp\\n-------------------\\n\\nFollow the steps below to import from ClickUp:\\n\\n1. In **Marketplace**, search for **ClickUp** and", + "title": "ClickUp AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-4271_KNOWLEDGE_NODE-4", - "text": "Analytics](/docs/dashboards/ticket-sla-analytics?)\\n * [Ticket-Team Performance](/docs/dashboards/ticket-team-performance?)\\n\\n * [Conversations](/docs/product/conversation?)\\n\\n * [Convert Conversations to Tickets](/docs/product/Conversation-Tickets?)\\n\\n * [Tickets](/docs/product/tickets?)\\n * [Routing](/docs/product/routing?)\\n * [Support best practices](/docs/product/support-bp?)\\n * [Customer portal](/docs/product/support-portal?)\\n * [Questions &", - "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" + "id": "ART-15617_KNOWLEDGE_NODE-14", + "text": "Analytics\\n\\nDevRev : Analytics on custom objects with comprehensive product and customer insights\\n\\nDevRev : Built-in incident management and proactive issue prevention\\n\\nPylon : Strong dashboard creation but analytics limited to ticket data only Feature Comparison Matrix\\n\\nFeature\\n\\nDevRev\\n\\nPylon\\n\\nAI agents with reasoning\\n\\n\\xe2\\x9c\\x85\\n\\n\\xe2\\x9d\\x8c\\n\\nAI search on external data\\n\\n\\xe2\\x9c\\x85\\n\\n\\xe2\\x9d\\x8c\\n\\nAI-powered clustering\\n\\n\\xe2\\x9c\\x85\\n\\n\\xe2\\x9d\\x8c\\n\\nAI", + "title": "Pylon - Competitive - for the PLuG on website" }, { - "id": "ART-10697_KNOWLEDGE_NODE-30", - "text": "New filtering options let agents view tickets tied to specific articles, while updated analytics reveal the most and least linked articles, improving knowledge sharing and support strategy.\\n* Plug is our live chat widget designed for real-time conversations in your customer portal. It reduces ticket volume by resolving common queries instantly, enhancing self-service and speeding up issue resolution. Use spotlight cards or banners to notify customers about incidents, updates, or promotions,", - "title": "February 2025 | Changelog | DevRev" + "id": "ART-15664_KNOWLEDGE_NODE-6", + "text": "you want to establish a parent-child relationship between tickets and a custom object\\ntype called \\xe2\\x80\\x9cCampaign\\xe2\\x80\\x9d. This relationship helps track which tickets are assigned to which campaigns.\\n\\nTo create this relationship, make an API call to create a link type:\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\'", + "title": "Links | DevRev | Docs" } ] }, @@ -1129,49 +1129,49 @@ "title": "The Future of Sessions - Powered By DevRev" }, { - "id": "ART-4021_KNOWLEDGE_NODE-28", - "text": "customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer works](/how-computer-works)\\n\\nApps\\n\\n* [For Support Teams](/for-support-teams)\\n* [For Builders](/for-builders)\\n* [For Customers](/for-customers)\\n* [For User Insights](/for-user-insights)\\n* [Marketplace](https://marketplace.devrev.ai/)\\n\\nResources\\n\\n* [Blog](/blog)\\n* [Our Customers](/case-study)\\n* [Snap-In", - "title": "Slack scraper | Automate | Snap-ins | DevRev" + "id": "ART-1771_KNOWLEDGE_NODE-14", + "text": "95%](/case-study/icici-prudential-life)\\n\\nChoose another country or region to see content specific to your location.\\n\\n\\xf0\\x9f\\x8c\\x8e English\\xf0\\x9f\\x87\\xaf\\xf0\\x9f\\x87\\xb5 Japanese\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer works](/how-computer-works)\\n\\nApps\\n\\n* [For Support Teams](/for-support-teams)\\n* [For Builders](/for-builders)\\n* [For", + "title": "ToughTrucksForKids.com achieves dramatic efficiency gains and customer satisfaction through AI-powered support automation" }, { - "id": "ART-4174_KNOWLEDGE_NODE-9", - "text": "behalf, as well as explanations on how such parties safeguard your data.\\n* **Standard Contractual clauses and other country specific clauses:** Our DPA also includes the EU Commission's Standard Contractual clausesand other country specific clauses for transferring and processing data outside of the EEA, UK and USA.\\n\\n### How does DevRev handle International Data transfers?\\n\\nAt DevRev, we understand the importance of securely managing international data transfers in compliance with global", - "title": "Data Processing Agreement | DevRev" + "id": "ART-1772_KNOWLEDGE_NODE-15", + "text": "95%](/case-study/icici-prudential-life)\\n\\nChoose another country or region to see content specific to your location.\\n\\n\\xf0\\x9f\\x8c\\x8e English\\xf0\\x9f\\x87\\xaf\\xf0\\x9f\\x87\\xb5 Japanese\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer works](/how-computer-works)\\n\\nApps\\n\\n* [For Support Teams](/for-support-teams)\\n* [For Builders](/for-builders)\\n* [For", + "title": "Rocketium brings agility to product development through a unified platform" }, { - "id": "ART-1996_KNOWLEDGE_NODE-30", - "text": "customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer works](/how-computer-works)\\n\\nApps\\n\\n* [For Support Teams](/for-support-teams)\\n* [For Builders](/for-builders)\\n* [For Customers](/for-customers)\\n* [For User Insights](/for-user-insights)\\n* [Marketplace](https://marketplace.devrev.ai/)\\n\\nResources\\n\\n* [Blog](/blog)\\n* [Our Customers](/case-study)\\n* [Snap-In", - "title": "Roadmap | Computer for Builders | DevRev" + "id": "ART-15682_KNOWLEDGE_NODE-13", + "text": "experiences through session intelligence](/case-study/bajaj-finserv)\\n\\nChoose another country or region to see content specific to your location.\\n\\n\\xf0\\x9f\\x8c\\x8e English\\xf0\\x9f\\x87\\xaf\\xf0\\x9f\\x87\\xb5 Japanese\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer works](/how-computer-works)\\n\\nApps\\n\\n* [For Support Teams](/for-support-teams)\\n* [For", + "title": "L&T financial services advances digital banking with enhanced observability" }, { - "id": "ART-4174_KNOWLEDGE_NODE-12", - "text": "Commissioner\\xe2\\x80\\x99s Office (ICO).\\n\\n### United States Data Transfer Mechanisms\\n\\nFor personal data transfers to the United States, DevRev employs recognized contractual frameworks and implements additional measures, as necessary, to safeguard your information in accordance with evolving U.S. data protection guidelines. We work to align with relevant standards and best practices to address regulatory considerations around cross-border data transfers.\\n\\n### What about Personal Data use", + "id": "ART-4174_KNOWLEDGE_NODE-9", + "text": "behalf, as well as explanations on how such parties safeguard your data.\\n* **Standard Contractual clauses and other country specific clauses:** Our DPA also includes the EU Commission's Standard Contractual clausesand other country specific clauses for transferring and processing data outside of the EEA, UK and USA.\\n\\n### How does DevRev handle International Data transfers?\\n\\nAt DevRev, we understand the importance of securely managing international data transfers in compliance with global", "title": "Data Processing Agreement | DevRev" }, { - "id": "ART-15594_KNOWLEDGE_NODE-13", - "text": "customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nProduct\\n\\n* [For Support Teams](/support)\\n* [For Builders](/build)\\n* [Search Agent](/search)\\n* [CX Agent](/plug-user-engagement)\\n* [User Observability](/plug-observability)\\n* [Marketplace](https://marketplace.devrev.ai/)\\n\\nPlatform\\n\\n* [AgentOS](/agent-os)\\n* [Airdrop](/airdrop)\\n* [Analytics](/analytics)\\n* [Workflow Engine](/workflow-engine)\\n\\nResources\\n\\n* [Pricing](/pricing/support)\\n* [Blog](/blog)\\n*", - "title": "DevRev Careers | Strategic Operations Manager / Sr. Associate" + "id": "ART-4197_KNOWLEDGE_NODE-4", + "text": "More\\n\\nChoose another country or region to see content specific to your location.\\n\\n\\xf0\\x9f\\x8c\\x8e English\\xf0\\x9f\\x87\\xaf\\xf0\\x9f\\x87\\xb5 Japanese\\n\\n[Enterprise grade security to protect customer dataLearn more about it.](/blog/soc-compliance)\\n\\nProduct\\n\\n * [Build](/build)\\n * [Support](/support)\\n * [Search](/search)\\n * [PLuG - User Engagement](/plug-user-engagement)\\n * [PLuG - User Observability](/plug-observability)\\n *", + "title": "DevRev AgentOS Pricing | Pricing made simple" }, { - "id": "ART-4174_KNOWLEDGE_NODE-15", - "text": "the GDPR as well as any other specific local legal requirements.\\n\\n### What about data security?\\n\\nWe have implemented industry standard organisational and other security like SOC-II certification to keep your data safe.\\n\\nYou can find out more about the security measures we employ by following this [link](https://security.devrev.ai/).\\n\\n### Reach out to us with any additional questions.\\n\\nShould you have any additional questions about privacy and data processing at DevRev, our data", - "title": "Data Processing Agreement | DevRev" + "id": "ART-2043_KNOWLEDGE_NODE-31", + "text": "security to protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer works](/how-computer-works)\\n\\nApps\\n\\n* [For Support Teams](/for-support-teams)\\n* [For Builders](/for-builders)\\n* [For Customers](/for-customers)\\n* [For User Insights](/for-user-insights)\\n* [Marketplace](https://marketplace.devrev.ai/)\\n\\nResources\\n\\n* [Blog](/blog)\\n* [Our Customers](/case-study)\\n* [Snap-In", + "title": "Glean | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2575_KNOWLEDGE_NODE-33", - "text": "protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer works](/how-computer-works)\\n\\nApps\\n\\n* [For Support Teams](/for-support-teams)\\n* [For Builders](/for-builders)\\n* [For Customers](/for-customers)\\n* [For User Insights](/for-user-insights)\\n* [Marketplace](https://marketplace.devrev.ai/)\\n\\nResources\\n\\n* [Blog](/blog)\\n* [Our Customers](/case-study)\\n* [Snap-In", - "title": "Account and contact import | Computer for Growth Teams | DevRev" + "id": "ART-5011_KNOWLEDGE_NODE-36", + "text": "security to protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer works](/how-computer-works)\\n\\nApps\\n\\n* [For Support Teams](/for-support-teams)\\n* [For Builders](/for-builders)\\n* [For Customers](/for-customers)\\n* [For User Insights](/for-user-insights)\\n* [Marketplace](https://marketplace.devrev.ai/)\\n\\nResources\\n\\n* [Blog](/blog)\\n* [Our Customers](/case-study)\\n* [Snap-In", + "title": "Zoho Projects AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-2777_KNOWLEDGE_NODE-10", - "text": "us.\\n\\n![]()\\n\\nVishnu RavikumarVP Strategy & Planning, Velocity Global\\n\\nTop features:\\n-------------\\n\\n* Customer record management\\n* Customer support portal\\n* PLuG\\n* Vistas\\n* In-app custom dashboards\\n* SLA management\\n* Snap-Ins\\n* Computer Memory\\n\\nThe benefits\\n------------\\n\\n* Effortlessly migrated 600 macros from Zendesk using the AirSync feature\\n* Migrated 900k tickets using AirSync\\n* Enabled 350+ users to support their global customer base\\n\\nThe results\\n\\nEffortlessly", - "title": "Velocity Global transforms worldwide operations with DevRev" + "id": "ART-15688_KNOWLEDGE_NODE-31", + "text": "to protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer works](/how-computer-works)\\n\\nApps\\n\\n* [For Support Teams](/for-support-teams)\\n* [For Builders](/for-builders)\\n* [For Customers](/for-customers)\\n* [For User Insights](/for-user-insights)\\n* [Marketplace](https://marketplace.devrev.ai/)\\n\\nResources\\n\\n* [Blog](/blog)\\n* [Our Customers](/case-study)\\n* [Snap-In", + "title": "Effort logger | Automate | Snap-ins | DevRev" }, { - "id": "ART-16189_KNOWLEDGE_NODE-15", - "text": "protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer works](/how-computer-works)\\n\\nApps\\n\\n* [For Support Teams](/for-support-teams)\\n* [For Builders](/for-builders)\\n* [For Customers](/for-customers)\\n* [For User Insights](/for-user-insights)\\n* [Marketplace](https://marketplace.devrev.ai/)\\n\\nResources\\n\\n* [Blog](/blog)\\n* [Our Customers](/case-study)\\n* [Snap-In", - "title": "FOSSA\u2019s Unified Support Strategy for Elevated Customer Experience" + "id": "ART-1040_KNOWLEDGE_NODE-2", + "text": "to protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer works](/how-computer-works)\\n\\nApps\\n\\n* [For Support Teams](/for-support-teams)\\n* [For Builders](/for-builders)\\n* [For Customers](/for-customers)\\n* [For User Insights](/for-user-insights)\\n* [Marketplace](https://marketplace.devrev.ai/)\\n\\nResources\\n\\n* [Blog](/blog)\\n* [Our Customers](/case-study)\\n* [Snap-In", + "title": "https://devrev.ai/case-study/bigbasket" } ] }, @@ -1180,14 +1180,9 @@ "query": "declarative pathing within the bot", "retrievals": [ { - "id": "ART-1789_KNOWLEDGE_NODE-248", - "text": "links.\\nRequest.\\n\\nThis endpoint expects an object.\\nobject string Required\\nThe ID of the object to list the links for.\\ncursor string Optional\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\ndirection \"is_source\" or \"is_target\" Optional\\nAllowed values: is_source is_target\\nThe direction of link, which can either be outbound such that the object is the source of the link, otherwise inbound where the object is the target of the link.\\nlimit", - "title": "List \u2014 DevRev | Docs" - }, - { - "id": "ART-1954_KNOWLEDGE_NODE-36", - "text": "bot mentions will still appear in the **Others** tab.\\n\\nFollow conversations\\n--------------------\\n\\nTo receive updates about conversations in the Plug inbox, you must be a member of the support group. To manage membership of the support group go to [**Settings** > **Groups**](https://app.devrev.ai/devrev/settings/groups).\\n\\nFor more information about groups, refer to [Groups](/docs/product/groups).\\n\\nDaily email digest\\n------------------\\n\\nDevRev sends a daily email digest with a summary", - "title": "Updates | Computer by DevRev | DevRev" + "id": "ART-17649_KNOWLEDGE_NODE-3", + "text": "both agents and customers\\n* Complex requirements spanned agent, customer, and manager experiences\\n* Need for sophisticated routing, views, dashboards, and deterministic bot flows\\n\\nThe solution: switching to DevRev\\n---------------------------------\\n\\nThe company chose DevRev for its Computer capabilities and customization features:\\n\\n* Implementation of multiple dev organizations within DevRev\\n* Complete replacement of their previous Intercom-based support system\\n* Implementation of", + "title": "Leading APAC fintech transforms support with multi-instance AI solution" }, { "id": "ART-17649_KNOWLEDGE_NODE-4", @@ -1195,9 +1190,9 @@ "title": "Leading APAC fintech transforms support with multi-instance AI solution" }, { - "id": "ART-1788_KNOWLEDGE_NODE-248", - "text": "links.\\nRequest.\\n\\nThis endpoint expects an object.\\nobject string Required\\nThe ID of the object to list the links for.\\ncursor string Optional\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\ndirection \"is_source\" or \"is_target\" Optional\\nAllowed values: is_source is_target\\nThe direction of link, which can either be outbound such that the object is the source of the link, otherwise inbound where the object is the target of the link.\\nlimit", - "title": "Get Post \u2014 DevRev | Docs" + "id": "ART-1277_KNOWLEDGE_NODE-8", + "text": "1 | version: \"2\" |\\n| 2 | |\\n| 3 | name: Sample snap-in |\\n| 4 | description: Snap-in to add comments for demonstration purpose. |\\n| 5 | |\\n| 6 | service_account: |\\n| 7 | display_name: \"DevRev Bot\" |\\n```\\n\\n[3](/snapin-development/tutorials/triggered-event#event-source)\\n\\n### Event source\\n\\nFollowing the manifest update, the next step is to incorporate the [event source](/snapin-development/references/event-sources).\\nFor this scenario, events from DevRev are essential. Therefore, an", + "title": "Snap-in triggered by a DevRev event | DevRev | Docs" }, { "id": "ART-1959_KNOWLEDGE_NODE-28", @@ -1205,29 +1200,34 @@ "title": "Search | Computer by DevRev | DevRev" }, { - "id": "ART-1805_KNOWLEDGE_NODE-249", - "text": "links.\\nRequest.\\n\\nThis endpoint expects an object.\\nobject string Required\\nThe ID of the object to list the links for.\\ncursor string Optional\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\ndirection \"is_source\" or \"is_target\" Optional\\nAllowed values: is_source is_target\\nThe direction of link, which can either be outbound such that the object is the source of the link, otherwise inbound where the object is the target of the link.\\nlimit", - "title": "List Post \u2014 DevRev | Docs" + "id": "ART-1485_KNOWLEDGE_NODE-12", + "text": "descriptive overview that is visible to users, offering context about the snap-in\\xe2\\x80\\x99s purpose.\\n\\n[code]\\n\\n 1| version: \"2\" \\n ---|--- \\n 2| \\n 3| name: Sample snap-in \\n 4| description: Snap-in to add comments for demonstration purpose. \\n 5| \\n 6| service_account: \\n 7| display_name: \"DevRev Bot\"\\n[/code] \\n \\n[3](/public/snapin-development/tutorials/triggered-event#event-source)\\n\\n### Event source\\n\\nFollowing the manifest update, the next step", + "title": "Snap-in triggered by a DevRev event \u2014 DevRev | Docs" }, { - "id": "ART-17649_KNOWLEDGE_NODE-3", - "text": "both agents and customers\\n* Complex requirements spanned agent, customer, and manager experiences\\n* Need for sophisticated routing, views, dashboards, and deterministic bot flows\\n\\nThe solution: switching to DevRev\\n---------------------------------\\n\\nThe company chose DevRev for its Computer capabilities and customization features:\\n\\n* Implementation of multiple dev organizations within DevRev\\n* Complete replacement of their previous Intercom-based support system\\n* Implementation of", - "title": "Leading APAC fintech transforms support with multi-instance AI solution" + "id": "ART-15716_KNOWLEDGE_NODE-14", + "text": "AI Bot \\xe2\\x80\\x93 Turing\\n\\nYes! DevRev offers an AI-powered assistant called Turing , which can answer questions, suggest articles, summarize conversations, and more. You can read more about it in the documentation: [https://docs.devrev.ai/product/conversational-bot](https://docs.devrev.ai/product/conversational-bot)\\n\\n4.\\xe2\\x80\\x82Difference Between Runnables and Features\\n\\nA feature is a unit of configuration or capability in the product, often representing a user-facing function or", + "title": "Support queries related playbook" }, { - "id": "ART-1300_KNOWLEDGE_NODE-248", - "text": "links.\\nRequest.\\n\\nThis endpoint expects an object.\\nobject string Required\\nThe ID of the object to list the links for.\\ncursor string Optional\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\ndirection \"is_source\" or \"is_target\" Optional\\nAllowed values: is_source is_target\\nThe direction of link, which can either be outbound such that the object is the source of the link, otherwise inbound where the object is the target of the link.\\nlimit", - "title": "Create \u2014 DevRev | Docs" + "id": "ART-1954_KNOWLEDGE_NODE-34", + "text": "page.\\n4. Under the **Bots and Snap-ins Notification** panel, manage bots and snap-ins notifications. These override default notifications.\\n\\n![]()\\n\\nCurrently, all customer messages are treated as comments and share the same priority.\\n\\nCollision and prioritization\\n----------------------------\\n\\nDevRev prioritizes actions (comments, mentions, assignments, etc.) over actors (bots) to ensure efficiency and reduce noise. This means that the priority and channel of notifications are", + "title": "Updates | Computer by DevRev | DevRev" }, { - "id": "ART-1307_KNOWLEDGE_NODE-249", - "text": "links.\\nRequest.\\n\\nThis endpoint expects an object.\\nobject string Required\\nThe ID of the object to list the links for.\\ncursor string Optional\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\ndirection \"is_source\" or \"is_target\" Optional\\nAllowed values: is_source is_target\\nThe direction of link, which can either be outbound such that the object is the source of the link, otherwise inbound where the object is the target of the link.\\nlimit", - "title": "List Post \u2014 DevRev | Docs" + "id": "ART-4199_KNOWLEDGE_NODE-26", + "text": "and copy the signing secret.\\n3. Go to **OAuth & Permissions** and add the following scopes under **Bot Token Scopes**.\\n * channels:history\\n * chat:write\\n * files:read\\n * metadata.message:read\\n * team:read\\n * usergroups:read\\n * users:read\\n * users:read.email\\n4. Once the scopes are updated, copy the **Bot User OAuth Token** and click the button below it.\\n5. Go to **Event Subscriptions** and click **Enable Events**.\\n6. Under **Subscribe to bot events**, add", + "title": "Slack message agent | Automate | Snap-ins | DevRev" }, { - "id": "ART-1277_KNOWLEDGE_NODE-8", - "text": "1 | version: \"2\" |\\n| 2 | |\\n| 3 | name: Sample snap-in |\\n| 4 | description: Snap-in to add comments for demonstration purpose. |\\n| 5 | |\\n| 6 | service_account: |\\n| 7 | display_name: \"DevRev Bot\" |\\n```\\n\\n[3](/snapin-development/tutorials/triggered-event#event-source)\\n\\n### Event source\\n\\nFollowing the manifest update, the next step is to incorporate the [event source](/snapin-development/references/event-sources).\\nFor this scenario, events from DevRev are essential. Therefore, an", - "title": "Snap-in triggered by a DevRev event | DevRev | Docs" + "id": "ART-4206_KNOWLEDGE_NODE-10", + "text": "|\\n| 7 | \"progress\": { |\\n| 8 | \"progress_state\": \"skill_triggered\", |\\n| 9 | \"skill_triggered\": { |\\n| 10 | \"args\": { /* skill arguments */ }, |\\n| 11 | \"skill_name\": \"SkillName\", |\\n| 12 | \"workflow\": { /* This is not populated if KnowledgeSearch skill is called */ |\\n| 13 | \"display_id\": \"workflow-84\", |\\n| 14 | \"id\": \"don:integration:dvrv-us-1:devo/xyz:workflow/84\" |\\n| 15 | } |\\n| 16 | } |\\n| 17 | }, |\\n| 18 | \"session\": \"don:core:dvrv-us-1:devo/xyz:ai_agent_session/3810\", |\\n| 19 |", + "title": "Agents async API | DevRev | Docs" + }, + { + "id": "ART-4206_KNOWLEDGE_NODE-11", + "text": "\"session_object\": \"unique_conversation_identifier\" |\\n| 20 | }, |\\n| 21 | \"type\": \"ai_agent_response\" |\\n| 22 | } |\\n| 23 | } |\\n```\\n\\nSkill executed\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"payload\": { |\\n| 3 | \"ai_agent_response\": { |\\n| 4 | \"agent\": \"don:core:dvrv-us-1:devo/xyz:ai_agent/123\", |\\n| 5 | \"agent_response\": \"progress\", |\\n| 6 | \"client_metadata\": { /* your original metadata */ }, |\\n| 7 | \"progress\": { |\\n| 8 | \"progress_state\": \"skill_executed\", |\\n| 9 |", + "title": "Agents async API | DevRev | Docs" } ] }, @@ -1235,25 +1235,20 @@ "query_id": "5e3a4b4a-89bf-4499-bf29-80f9d0420721", "query": "resolution time grouped by Priority and Customer segment", "retrievals": [ + { + "id": "ART-15716_KNOWLEDGE_NODE-36", + "text": "the Dashboards section.\\n\\nAdd a widget for \\xe2\\x80\\x9cTicket Resolution Time\\xe2\\x80\\x9d or \\xe2\\x80\\x9cAverage Time to Resolution.\\xe2\\x80\\x9d\\n\\nConfigure the widget to display data by agent, team, or time period.\\n\\nUse filters to focus on specific ticket types, priorities, or customer segments.\\n\\nFor more granular analysis, use a table or chart widget with custom SQL or filters.\\n\\nThis will help you monitor and improve your team\\xe2\\x80\\x99s responsiveness.5. Configuring branding of the", + "title": "Support queries related playbook" + }, { "id": "ART-1003_KNOWLEDGE_NODE-19", "text": "t.created_at) = EXTRACT(@period FROM CURRENT_DATE);\\n-- NOTE: Replace @period with 'DAY', 'WEEK', 'MONTH', or 'QUARTER'.\\n\\n\\nAverage Resolution Time (ART)\\n\\n\\n Definition\\n \\n The average time it takes to resolve a customer issue from the moment it\\xe2\\x80\\x99s reported.\\n \\n \\n Calculation\\n \\n (Sum of resolution times for all resolved tickets) / (Total number of resolved tickets)\\n \\n \\n\\n\\nSELECT AVG(TIMESTAMPDIFF(MINUTE, t.created_at, t.resolved_at)) AS", "title": "Understanding a Support Lead's Pain Points and KPIs" }, { - "id": "ART-1974_KNOWLEDGE_NODE-25", - "text": "lower priority than existing customer orgs.\\n\\n**Tags** [*values*]\\n\\n* Stalled\\n* Priority/Escalated\\n* Fast/Slow Moving\\n* Blocked\\n* Resolution: [*value*]\\n\\nStages\\n------\\n\\nThe following figure shows the state machine for conversations.\\n\\n```\\nClosed\\n\\n\\n\\nIn progress\\n\\n\\n\\nOpen\\n\\n\\n\\nValid\\n\\n\\n\\nSpam\\n\\n\\n\\nReview\\n\\n\\n\\nWaiting on user\\n\\n\\n\\nUser responds\\n\\n\\n\\nHold for Dependency\\n\\n\\n\\nDependency Solved\\n\\n\\n\\nSupport", - "title": "Conversations | Computer for Support Teams | DevRev" - }, - { - "id": "ART-1004_KNOWLEDGE_NODE-7", - "text": "time it takes for a specific support engineer to resolve a customer issue from the moment it\\xe2\\x80\\x99s reported.\\n \\n \\n Calculation\\n \\n (Sum of resolution times for all resolved tickets by the engineer) / (Total number of resolved tickets by the engineer)\\n \\n \\n\\n\\nSELECT engineer_id, AVG(TIMESTAMPDIFF(MINUTE, t.created_at, t.resolved_at)) AS IndividualAverageResolutionTime\\nFROM tickets t\\nWHERE t.status = 'resolved'\\nAND EXTRACT(@period FROM t.created_at) =", - "title": "Understanding a Support Engineer's Pain Points and KPIs" - }, - { - "id": "ART-1035_KNOWLEDGE_NODE-10", - "text": "resolution time by 95%](/case-study/icici-prudential-life)\\n\\nChoose another country or region to see content specific to your location.\\n\\n\\xf0\\x9f\\x8c\\x8e English\\xf0\\x9f\\x87\\xaf\\xf0\\x9f\\x87\\xb5 Japanese\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer works](/how-computer-works)\\n\\nApps\\n\\n* [For Support Teams](/for-support-teams)\\n* [For", - "title": "Goodmeetings uses PLuG to reduce ticket resolution time" + "id": "ART-1003_KNOWLEDGE_NODE-8", + "text": "calculate these things manually\\n Make sure there is automation to keep these numbers up to date and don\\xe2\\x80\\x99t rely on a human to calculate\\n Manual/human-based calculations will always be out of date and error prone.\\n \\n \\n\\n\\nKPIs to track:\\n\\n\\n First Response Time\\n Average Resolution Time\\n Customer Satisfaction Score\\n Net Promoter Score\\n Escalation Rate\\n\\n\\nCustomer satisfaction (CSAT)\\n\\nTechnically this should be at the top of the list as this is all that", + "title": "Understanding a Support Lead's Pain Points and KPIs" }, { "id": "ART-1003_KNOWLEDGE_NODE-20", @@ -1261,14 +1256,19 @@ "title": "Understanding a Support Lead's Pain Points and KPIs" }, { - "id": "ART-15716_KNOWLEDGE_NODE-36", - "text": "the Dashboards section.\\n\\nAdd a widget for \\xe2\\x80\\x9cTicket Resolution Time\\xe2\\x80\\x9d or \\xe2\\x80\\x9cAverage Time to Resolution.\\xe2\\x80\\x9d\\n\\nConfigure the widget to display data by agent, team, or time period.\\n\\nUse filters to focus on specific ticket types, priorities, or customer segments.\\n\\nFor more granular analysis, use a table or chart widget with custom SQL or filters.\\n\\nThis will help you monitor and improve your team\\xe2\\x80\\x99s responsiveness.5. Configuring branding of the", - "title": "Support queries related playbook" + "id": "ART-1004_KNOWLEDGE_NODE-7", + "text": "time it takes for a specific support engineer to resolve a customer issue from the moment it\\xe2\\x80\\x99s reported.\\n \\n \\n Calculation\\n \\n (Sum of resolution times for all resolved tickets by the engineer) / (Total number of resolved tickets by the engineer)\\n \\n \\n\\n\\nSELECT engineer_id, AVG(TIMESTAMPDIFF(MINUTE, t.created_at, t.resolved_at)) AS IndividualAverageResolutionTime\\nFROM tickets t\\nWHERE t.status = 'resolved'\\nAND EXTRACT(@period FROM t.created_at) =", + "title": "Understanding a Support Engineer's Pain Points and KPIs" }, { - "id": "ART-4181_KNOWLEDGE_NODE-6", - "text": "time and resolution time, or tailor metrics to your requirements\\n\\n![]()\\n\\nTrigger SLAs at the right moment, every time\\n\\nMap conditions to parts of your product, tags, severity levels, or any other relevant criteria on our simple UI\\n\\n![]()\\n\\nTrigger SLAs at the right moment, every time\\n\\nMap conditions to parts of your product, tags, severity levels, or any other relevant criteria on our simple UI\\n\\n![]()\\n\\nSLAs in sync with your business\\n\\nAccount for calendar and business hours,", - "title": "Support like a lightning fast pit-crew" + "id": "ART-1974_KNOWLEDGE_NODE-25", + "text": "lower priority than existing customer orgs.\\n\\n**Tags** [*values*]\\n\\n* Stalled\\n* Priority/Escalated\\n* Fast/Slow Moving\\n* Blocked\\n* Resolution: [*value*]\\n\\nStages\\n------\\n\\nThe following figure shows the state machine for conversations.\\n\\n```\\nClosed\\n\\n\\n\\nIn progress\\n\\n\\n\\nOpen\\n\\n\\n\\nValid\\n\\n\\n\\nSpam\\n\\n\\n\\nReview\\n\\n\\n\\nWaiting on user\\n\\n\\n\\nUser responds\\n\\n\\n\\nHold for Dependency\\n\\n\\n\\nDependency Solved\\n\\n\\n\\nSupport", + "title": "Conversations | Computer for Support Teams | DevRev" + }, + { + "id": "ART-1968_KNOWLEDGE_NODE-25", + "text": "insights\\n=====================\\n\\n* **Resolution rate**\\n\\n The percentage of conversations resolved.\\n* **SLA compliance rate**\\n\\n The percentage of conversations where the SLA was met out of all conversations where the SLA was applied.\\n* **Average CSAT score**\\n\\n The average customer satisfaction score for conversations.\\n* **Average first response time**\\n\\n The average time for the first response to customer conversations.\\n\\nCustomer & product impact\\n-------------------------\\n\\n*", + "title": "Conversation insights | Support analytics | Computer for Support Teams | DevRev" }, { "id": "ART-1899_KNOWLEDGE_NODE-1", @@ -1276,9 +1276,9 @@ "title": "Tough Trucks for Kids Story" }, { - "id": "ART-1003_KNOWLEDGE_NODE-8", - "text": "calculate these things manually\\n Make sure there is automation to keep these numbers up to date and don\\xe2\\x80\\x99t rely on a human to calculate\\n Manual/human-based calculations will always be out of date and error prone.\\n \\n \\n\\n\\nKPIs to track:\\n\\n\\n First Response Time\\n Average Resolution Time\\n Customer Satisfaction Score\\n Net Promoter Score\\n Escalation Rate\\n\\n\\nCustomer satisfaction (CSAT)\\n\\nTechnically this should be at the top of the list as this is all that", - "title": "Understanding a Support Lead's Pain Points and KPIs" + "id": "ART-4181_KNOWLEDGE_NODE-10", + "text": "goals\\n\\nChoose from pre-built metrics such as response time and resolution time, or tailor metrics to your requirements\\n\\n![]()\\n\\nEffortlessly assign SLAs\\n========================\\n\\nPowered by intelligent automation and flexible customization to ensure customers consistently receive the right level of support\\n================================================================================================================================\\n\\n[Try for free](/request-a-demo)\\n\\nAutomated SLA", + "title": "Support like a lightning fast pit-crew" }, { "id": "ART-1004_KNOWLEDGE_NODE-3", @@ -1291,20 +1291,20 @@ "query_id": "9f26f4e6-a8e5-4813-ba95-36771c04c066", "query": "add attributes in MSAT snap-in", "retrievals": [ + { + "id": "ART-1619_KNOWLEDGE_NODE-1", + "text": "|\\n| > | -H \"Authorization: Bearer \" \\\\ |\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{ |\\n| > | \"id\": \"string\", |\\n| > | \"user\": \"string\" |\\n| > | }\\' |\\n```\\n\\n[Try it](/beta/api-reference/snap-ins/resources-post?explorer=true)\\n\\n200Successful\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"snap_in_version\": { |\\n| 3 | \"id\": \"string\", |\\n| 4 | \"display_id\": \"string\" |\\n| 5 | }, |\\n| 6 | \"event_sources\": {}, |\\n| 7 | \"inputs\": {}, |\\n| 8 | \"keyrings\": {} |\\n| 9 | }", + "title": "Resources Snap Ins (POST) | DevRev | Docs" + }, { "id": "ART-2028_KNOWLEDGE_NODE-24", "text": "[Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[Work duration](/docs/automations/work-duration)\\n\\nWork duration\\n=============\\n\\n[Work duration](/marketplace/work-duration) offers the ability\\nto track how much work issues and tickets took to complete, measured by time\\nspent in work sessions.\\n\\nThe snap-in adds a new attribute to tickets and issues which automatically\\ncalculates the work duration for that item. Work duration is meassured in time\\nspent through work sessions. A work", "title": "Work duration | Automate | Snap-ins | DevRev" }, { - "id": "ART-1290_KNOWLEDGE_NODE-192", - "text": "customize the options, initial selections, and other values according to your requirements.\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"object\": \"source_id\", |\\n| 3 | \"body\": \"Giphy\", |\\n| 4 | \"type\": \"timeline_comment\", |\\n| 5 | \"snap_kit_body\": { |\\n| 6 | \"snap_in_id\": \"snap_in_id\", |\\n| 7 | \"snap_in_action_name\": \"giphy\", |\\n| 8 | \"body\": { |\\n| 9 | \"snaps\": [ |\\n| 10 | { |\\n| 11 | \"type\": \"card\", |\\n| 12 | \"title\": { |\\n| 13 | \"text\": \"Hip hip hurray!\", |\\n| 14 | \"type\": \"plain_text\"", - "title": "Snapkit | DevRev | Docs" - }, - { - "id": "ART-2662_KNOWLEDGE_NODE-25", - "text": "Customers\\n\\nEmpower your customers and customer-facing teams with ready access to relevant information.](/docs/plug)[### Snap-ins\\n\\n![]()\\n\\nConnect tools, automate work, and extend your experience with add-on modules provided by DevRev.](/docs/snapins)[### Developer\\n\\n![]()\\n\\nEnabling developers to create tools for the future with DevRev APIs.](https://developer.devrev.ai/about/for-developers)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about", - "title": "DevRev Documentation" + "id": "ART-1545_KNOWLEDGE_NODE-442", + "text": "object.\\nsnap_in_version object\\nShow 2 properties\\nevent_sources map from strings to strings Optional\\n\\nThe event sources for the snap-in.\\n\\ninputs map from strings to any Optional\\n\\nThe inputs for the snap-in.\\n\\nkeyrings map from strings to objects Optional\\n\\nMap of keyring names and its data.\\n\\nShow 2 properties\\nAPI Reference snap-ins Update.\\n\\nPOST https://api.devrev.ai / snap-ins.update\\n\\nUpdates a snap-in.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nid string Required\\n\\nThe", + "title": "Create (Beta) \u2014 DevRev | Docs" }, { "id": "ART-1566_KNOWLEDGE_NODE-444", @@ -1312,34 +1312,34 @@ "title": "Transition (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-13034_KNOWLEDGE_NODE-0", - "text": "b'[](/public/api-reference/snap-widgets/create)\\n\\nPublic\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources", - "title": "Create Snap Widget \u2014 DevRev | Docs" + "id": "ART-1290_KNOWLEDGE_NODE-9", + "text": "is the base type that all other snaps inherit from.\\n\\n*Properties*\\n\\n* `type` (required): Type of snap.\\n* `block_id` (optional): A unique identifier for the snap. If not provided, a random ID is generated.\\n\\n###### Action\\n\\nBase interface for action components.\\n\\n*Action types*\\n\\n* **Remote action**: It triggers a backend API and is handled by the backend.\\n* **Client action**: It triggers a client-side action and is handled by the client.\\n\\n*Properties*\\n\\n* `action_id` (required): An", + "title": "Snapkit | DevRev | Docs" }, { - "id": "ART-1545_KNOWLEDGE_NODE-442", - "text": "object.\\nsnap_in_version object\\nShow 2 properties\\nevent_sources map from strings to strings Optional\\n\\nThe event sources for the snap-in.\\n\\ninputs map from strings to any Optional\\n\\nThe inputs for the snap-in.\\n\\nkeyrings map from strings to objects Optional\\n\\nMap of keyring names and its data.\\n\\nShow 2 properties\\nAPI Reference snap-ins Update.\\n\\nPOST https://api.devrev.ai / snap-ins.update\\n\\nUpdates a snap-in.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nid string Required\\n\\nThe", - "title": "Create (Beta) \u2014 DevRev | Docs" + "id": "ART-1290_KNOWLEDGE_NODE-192", + "text": "customize the options, initial selections, and other values according to your requirements.\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"object\": \"source_id\", |\\n| 3 | \"body\": \"Giphy\", |\\n| 4 | \"type\": \"timeline_comment\", |\\n| 5 | \"snap_kit_body\": { |\\n| 6 | \"snap_in_id\": \"snap_in_id\", |\\n| 7 | \"snap_in_action_name\": \"giphy\", |\\n| 8 | \"body\": { |\\n| 9 | \"snaps\": [ |\\n| 10 | { |\\n| 11 | \"type\": \"card\", |\\n| 12 | \"title\": { |\\n| 13 | \"text\": \"Hip hip hurray!\", |\\n| 14 | \"type\": \"plain_text\"", + "title": "Snapkit | DevRev | Docs" }, { - "id": "ART-1619_KNOWLEDGE_NODE-1", - "text": "|\\n| > | -H \"Authorization: Bearer \" \\\\ |\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{ |\\n| > | \"id\": \"string\", |\\n| > | \"user\": \"string\" |\\n| > | }\\' |\\n```\\n\\n[Try it](/beta/api-reference/snap-ins/resources-post?explorer=true)\\n\\n200Successful\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"snap_in_version\": { |\\n| 3 | \"id\": \"string\", |\\n| 4 | \"display_id\": \"string\" |\\n| 5 | }, |\\n| 6 | \"event_sources\": {}, |\\n| 7 | \"inputs\": {}, |\\n| 8 | \"keyrings\": {} |\\n| 9 | }", - "title": "Resources Snap Ins (POST) | DevRev | Docs" + "id": "ART-1543_KNOWLEDGE_NODE-440", + "text": "returns an object.\\nsnap_in_version object\\nShow 2 properties\\nevent_sources map from strings to strings Optional\\n\\nThe event sources for the snap-in.\\n\\ninputs map from strings to any Optional\\n\\nThe inputs for the snap-in.\\n\\nkeyrings map from strings to objects Optional\\n\\nMap of keyring names and its data.\\n\\nShow 2 properties\\nAPI Reference snap-ins Resources Post.\\n\\nPOST https://api.devrev.ai / snap-ins.resources\\n\\nGets snap-in resources for a user in a snap-in.\\n\\nRequest.\\n\\nThis", + "title": "Metric Definitions List Post (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1290_KNOWLEDGE_NODE-99", - "text": "exactly match one of the options within `options`.\\n* `max_selected_items` (optional): The maximum number of items that can be selected.\\n\\n*Inherited properties*\\n\\nInherited from [Snap](/snapin-development/references/snapkit#snap):\\n\\n* `type` (required): The type of the multi-static select component, should be set to `\"multi_static_select\"`.\\n* `block_id` (optional): A unique identifier for the snap. If not provided, a random ID is generated.\\n\\nInherited from", - "title": "Snapkit | DevRev | Docs" + "id": "ART-1562_KNOWLEDGE_NODE-442", + "text": "returns an object.\\nsnap_in_version object\\nShow 2 properties\\nevent_sources map from strings to strings Optional\\n\\nThe event sources for the snap-in.\\n\\ninputs map from strings to any Optional\\n\\nThe inputs for the snap-in.\\n\\nkeyrings map from strings to objects Optional\\n\\nMap of keyring names and its data.\\n\\nShow 2 properties\\nAPI Reference snap-ins Resources Post.\\n\\nPOST https://api.devrev.ai / snap-ins.resources\\n\\nGets snap-in resources for a user in a snap-in.\\n\\nRequest.\\n\\nThis", + "title": "Get (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-4226_KNOWLEDGE_NODE-3", - "text": "https://api.devrev.ai/snap-kit-action.execute.deferred \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -H \"Content-Type: application/json\" \\\\ \\n >| -d \\'{ \\n >| \"actions\": [ \\n >| { \\n >| \"value\": {} \\n >| } \\n >| ], \\n >| \"id\": \"foo\" \\n >| }\\'\\n[/code] \\n \\nTry it\\n\\n200snapKitExecutionSnapKitActionExecuteDeferredExample\\n\\n[code]\\n\\n 1| {} \\n ---|---\\n[/code] \\n \\n[Create Snap WidgetUp", - "title": "Deferred Snap Kit Action Execute \u2014 DevRev | Docs" + "id": "ART-1564_KNOWLEDGE_NODE-441", + "text": "returns an object.\\nsnap_in_version object\\nShow 2 properties\\nevent_sources map from strings to strings Optional\\n\\nThe event sources for the snap-in.\\n\\ninputs map from strings to any Optional\\n\\nThe inputs for the snap-in.\\n\\nkeyrings map from strings to objects Optional\\n\\nMap of keyring names and its data.\\n\\nShow 2 properties\\nAPI Reference snap-ins Resources Post.\\n\\nPOST https://api.devrev.ai / snap-ins.resources\\n\\nGets snap-in resources for a user in a snap-in.\\n\\nRequest.\\n\\nThis", + "title": "List (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1564_KNOWLEDGE_NODE-443", + "id": "ART-1543_KNOWLEDGE_NODE-442", "text": "data.\\n\\nShow 2 properties\\nAPI Reference snap-ins Update.\\n\\nPOST https://api.devrev.ai / snap-ins.update\\n\\nUpdates a snap-in.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nid string Required\\n\\nThe ID of the snap-in to update.\\n\\ninputs_values map from strings to any Optional\\n\\nThe updated values of the inputs.\\n\\nResponse.\\n\\nThis endpoint returns an object.\\nsnap_in object\\nShow 7 properties\\nAPI Reference snap-widgets Create.\\n\\nPOST https://api.devrev.ai /", - "title": "List (Beta) \u2014 DevRev | Docs" + "title": "Metric Definitions List Post (Beta) \u2014 DevRev | Docs" } ] }, @@ -1347,55 +1347,55 @@ "query_id": "8f8fd54f-97c5-47fb-85bc-eb0eec284788", "query": "Slack bot not working after multiple test tickets", "retrievals": [ + { + "id": "ART-2017_KNOWLEDGE_NODE-25", + "text": "ticket\\'s owner and subscribers, when a ticket\\'s resolution time SLA changes into the *Warning* or *Breached* stage.\\n\\n![]()\\n\\nFor more information, refer to the\\n[SLA status change Slack notifier snap-in](/marketplace/sla-status-change-slack-notifier) on the DevRev\\nmarketplace.\\n\\nInstallation\\n------------\\n\\n1. Create a Slack app for your workspace in .\\n2. In App features, generate bot token in **OAuth & Permissions**.\\n3. Grant the app bot the following", + "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" + }, { "id": "ART-4199_KNOWLEDGE_NODE-28", "text": "**Trigger URL** that is displayed.\\n6. Paste the Trigger URL under **Enable Events** in the custom Slack bot.\\n\\n[PreviousTicket linked issues comment sync](/docs/automations/ticket-linked-issues-comment-sync)[NextIntegrate](/docs/integrate)\\n\\n#### On this page\\n\\n* [Install](#install)\\n* [Configure the custom Slack bot](#configure-the-custom-slack-bot)\\n* [Configure DevRev](#configure-devrev)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about", "title": "Slack message agent | Automate | Snap-ins | DevRev" }, { - "id": "ART-6174_KNOWLEDGE_NODE-30", - "text": "there.\\n\\n![]()\\n\\nSlack end-user experience\\n-------------------------\\n\\nWhen a conversation is converted to a ticket in Slack:\\n\\n* Ticket information appears within the same thread.\\n* All subsequent messages sync with the newly created ticket.\\n* The transition is seamless for the end user.\\n\\nConversation conversion scenarios\\n---------------------------------\\n\\nConsider converting a conversation to a ticket in these scenarios:\\n\\n* Complex issues requiring in-depth investigation\\n*", - "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" + "id": "ART-4199_KNOWLEDGE_NODE-27", + "text": "message.channels.\\n7. Add this custom app and the **DevRev Slack Bot** into the Slack channel from which you want to create the DevRev object.\\n\\nConfigure DevRev\\n----------------\\n\\n1. Add the Slack Signing Secret and Slack Bot Token copied from the custom Slack bot app.\\n2. Add the channel IDs for either incidents, tickets or issues.\\n3. Click the respective buttons to enable the sync between threads.\\n4. Select the part ID to associate a particular part.\\n5. Click **Save** and copy the", + "title": "Slack message agent | Automate | Snap-ins | DevRev" }, { "id": "ART-2035_KNOWLEDGE_NODE-43", "text": "update** snap-in configuration.\\n* Applies only to tickets syncing with Slack threads.\\n* If enabled, the Slack snap-in will send notifications to the syncing thread whenever the ticket state changes.\\n\\n### Ticket digest\\n\\nTo see all open and in-progress tickets in Slack, use the /devrev ticket-digest command. This opens a modal with a paginated list of all open and in-progress tickets.\\n\\nDevRev Issues and Slack\\n-----------------------\\n\\nThe Slack snap-in allows issues to be created", "title": "Slack | Integrate | Snap-ins | DevRev" }, - { - "id": "ART-2017_KNOWLEDGE_NODE-28", - "text": "you would like to tag on the message (the ticket owner gets tagged automatically); and the target Slack channel. The channel\\'s ID can be found by going to the channel details. Refer to the placeholder value on the input to see an example of how this looks.\\n2. Decide if notifications should go out even if the ticket has a target end date set. Set the toggle to the desired behavior.\\n3. Decide if a ticket should pass the check if it\\'s part is a descendant of the filter part. For example, if a", - "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" - }, { "id": "ART-968_KNOWLEDGE_NODE-1", "text": "stays in Slack and doesn\\xe2\\x80\\x99t extend to DevRev tickets.\\n\\n\\xe2\\x97\\x8f Solution:\\nDeveloped by: Hariharan\\nStatus: Tested and verified.\\nCustomer Approval: Approved\\n\\xe2\\x97\\x8b Brief:\\nCustom Snap-in connected with a custom Slack application that would automatically tag\\nthe on-call members upon ticket creation at Slack.\\n\\n\\xe2\\x97\\x8b Description:\\nA custom application in Slack marketplace is to be created which would perform the\\ntagging by referencing the group members in Slack.", "title": "Rocketium: On call Tagging - Slack" }, { - "id": "ART-2017_KNOWLEDGE_NODE-25", - "text": "ticket\\'s owner and subscribers, when a ticket\\'s resolution time SLA changes into the *Warning* or *Breached* stage.\\n\\n![]()\\n\\nFor more information, refer to the\\n[SLA status change Slack notifier snap-in](/marketplace/sla-status-change-slack-notifier) on the DevRev\\nmarketplace.\\n\\nInstallation\\n------------\\n\\n1. Create a Slack app for your workspace in .\\n2. In App features, generate bot token in **OAuth & Permissions**.\\n3. Grant the app bot the following", - "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" + "id": "ART-3235_KNOWLEDGE_NODE-26", + "text": "system.\\n\\nAfter configuring these settings, the snap-in automatically processes new tickets and enriches their **Reported By** fields based on the provided email addresses.\\n\\n[PreviousSlack Broadcaster](/docs/automations/slack-broadcaster)[NextTicket approval workflow](/docs/automations/ticket-approval-workflow)\\n\\n#### On this page\\n\\n* [Installation](#installation)\\n* [Configuration](#configuration)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about", + "title": "Reported by enricher | Automate | Snap-ins | DevRev" }, { - "id": "ART-2035_KNOWLEDGE_NODE-44", - "text": "directly from Slack:\\n\\n* Using the /devrev create-issue command.\\n* Using the **Create a new issue** message action.\\n\\nBoth the options open a new pop-up modal with a new issue form. Some of the fields are pre-populated based on the messages in the thread.\\n\\n* The **Share with everyone** functionality operates identically to ticket creation. Only shared issues are synchronized between the platforms.\\n* The messages are always synced in the **Internal Discussions** panel with Slack thread.\\n*", + "id": "ART-2035_KNOWLEDGE_NODE-38", + "text": "recommended if you already have a conversation in progress. Configure the snap-in to send or not send a ticket summary card to the Slack thread using the **Notify on conversation to ticket conversion** setting. Regardless, the Slack thread will sync with the new ticket instead of the ongoing conversation.\\n\\n![]()\\n\\nSlack does not support slash commands in threads.\\n\\nChoosing one of the first two options will open a pop-up modal with the new ticket form. Complete the required fields; some", "title": "Slack | Integrate | Snap-ins | DevRev" }, - { - "id": "ART-4271_KNOWLEDGE_NODE-28", - "text": "PLuG widget:\\n\\n * The ticket number and basic details appear in the same conversation pane.\\n * Users can click **Details** to view complete ticket information.\\n * If the **Tickets** tab is enabled in PLuG, users can track their ticket status there.\\n\\n### Slack experience\\n\\nWhen a conversation is converted to a ticket in Slack:\\n\\n * Ticket information is sent within the same thread.\\n * All subsequent messages sync with the newly created ticket.\\n * The transition is seamless for the", - "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" - }, { "id": "ART-2035_KNOWLEDGE_NODE-36", "text": "Slack Channel ID in the **Channel ID to send conversation notifications** snap-in configuration as the target to post notifications.\\n\\n* Any new message within tickets in the customer messages panel is also subjected to the same automation.\\n* To prevent notification overload, each conversation or ticket is subject to a five minute cooldown period between notifications. Multiple consecutive messages within this window will not trigger additional notifications.\\n* Notification threads are not", "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-17515_KNOWLEDGE_NODE-26", - "text": "and feature requests on tickets.\\n* Computer on Plug: Enhances the following functionalities:\\n\\n + Conversation: It deflects customer queries using your knowledge base, providing accurate and relevant responses.\\n + Search: It summarizes your search results, making information retrieval more efficient and user-friendly.\\n* Computer assist: Recommends relevant articles and similar work items.\\n* Slack tickets: Automatically generates titles and descriptions for tickets created from Slack", - "title": "AI use cases in DevRev | Computer by DevRev | DevRev" + "id": "ART-2036_KNOWLEDGE_NODE-15", + "text": "[Custom field migration](/docs/automations/custom-field-migration)\\n - [Slack scraper](/docs/automations/slack-scraper)\\n - [Slack Broadcaster](/docs/automations/slack-broadcaster)\\n - [Reported by enricher](/docs/automations/ticket-reported-by)\\n - [Ticket approval workflow](/docs/automations/ticket-approval-workflow)\\n - [Ticket linked issues comment sync](/docs/automations/ticket-linked-issues-comment-sync)\\n - [Slack message agent](/docs/automations/slack-message-agent)\\n", + "title": "SendSafely | Integrate | Snap-ins | DevRev" + }, + { + "id": "ART-2017_KNOWLEDGE_NODE-27", + "text": "Connection**.\\n * Select **Slack** from the dowpdown list.\\n * Give it a name and sign in with Slack. Ensure to toggle on **Make public** to make the connection public for your organization.\\n\\nConfigure the snap-in\\n---------------------\\n\\n1. In the **Configuration** tab, the first input field to set is *filters*. Here you can declare for which tickets to track the SLA status and to which channels to send notifications.\\n\\n Set the ticket subtype, severity, and part; the support heads", + "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" } ] }, @@ -1404,9 +1404,14 @@ "query": "customizar severity de los tickets", "retrievals": [ { - "id": "ART-1244_KNOWLEDGE_NODE-23", - "text": "severities.\\n\\nAllowed values:blockerhighlowmedium\\n\\nticket.sla\\\\_summary.stagelist of enumsOptional\\n\\nFilters for records with any of the provided SLA stages.\\n\\nAllowed values:breachedcompletedpausedrunningwarning\\n\\nticket.source\\\\_channellist of stringsOptional\\n\\nFilters for tickets with any of the provided source channels.\\n\\nticket.source\\\\_channel\\\\_v2list of stringsOptional\\n\\nFilters for tickets that are associated with any of the source\\nchannels.\\n\\ntypelist of", - "title": "Export Works | DevRev | Docs" + "id": "ART-996_KNOWLEDGE_NODE-14", + "text": "api_visibility: public\\n api_required: true\\n summary: true # NOTE: `title` included in summary\\n---\\n- name: severity\\n devrev_field_type: legacy_enum\\n devrev_enum:\\n - blocker\\n - high\\n - medium\\n - low\\n is_required: true\\n description: Severity of the ticket\\n gateway:\\n api_visibility: public\\n is_filterable: true\\n summary: true # NOTE: `severity` included in summary\\n\\n\\nDon\\xe2\\x80\\x99t\\nDon\\xe2\\x80\\x99t set all fields to summary: true\\n\\n - name:", + "title": "An Example Object Model Style Guide (our actual style guide)" + }, + { + "id": "ART-1564_KNOWLEDGE_NODE-506", + "text": "organizations.\\n\\nticket.severity enum Optional\\n\\nFilters for tickets with any of the provided severities.\\n\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\n\\nFilters for records with any of the provided SLA stages.\\n\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\n\\nFilters for tickets with any of the provided source channels.\\n\\nticket.subtype string Optional\\n\\nFilters for tickets with any of the provided", + "title": "List (Beta) \u2014 DevRev | Docs" }, { "id": "ART-1639_KNOWLEDGE_NODE-458", @@ -1414,44 +1419,39 @@ "title": "Export Post \u2014 DevRev | Docs" }, { - "id": "ART-1979_KNOWLEDGE_NODE-29", - "text": "**Severity**: The importance of the ticket. Severity can be set to low, medium, blocker, or high.\\n* **Stage**: The current state of the issue. The stage attribute is used to track the progress of the issue through its lifecycle. For more information on stages, see [stages](#stages).\\n* **Part**: The part of the company or product that the issue is related to. For more information on parts, see [parts](./parts).\\n* **Created by**: The user who created the ticket.\\n* **Created date**: The date", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1244_KNOWLEDGE_NODE-23", + "text": "severities.\\n\\nAllowed values:blockerhighlowmedium\\n\\nticket.sla\\\\_summary.stagelist of enumsOptional\\n\\nFilters for records with any of the provided SLA stages.\\n\\nAllowed values:breachedcompletedpausedrunningwarning\\n\\nticket.source\\\\_channellist of stringsOptional\\n\\nFilters for tickets with any of the provided source channels.\\n\\nticket.source\\\\_channel\\\\_v2list of stringsOptional\\n\\nFilters for tickets that are associated with any of the source\\nchannels.\\n\\ntypelist of", + "title": "Export Works | DevRev | Docs" }, { - "id": "ART-1979_KNOWLEDGE_NODE-50", - "text": "customization](./object-customization).\\n\\nViewing attachments on tickets\\n------------------------------\\n\\nYou can view all attachments sent via the ticket's description, internal discussion, or a customer message by going to the **Attachments** section on the ticket for easy access.\\n\\n![]()\\n\\nTuring suggests\\n---------------\\n\\nTuring suggests enables Computer to aid customer experience engineers in resolving current tickets more efficiently. Each time a ticket is viewed, Computer", + "id": "ART-1979_KNOWLEDGE_NODE-29", + "text": "**Severity**: The importance of the ticket. Severity can be set to low, medium, blocker, or high.\\n* **Stage**: The current state of the issue. The stage attribute is used to track the progress of the issue through its lifecycle. For more information on stages, see [stages](#stages).\\n* **Part**: The part of the company or product that the issue is related to. For more information on parts, see [parts](./parts).\\n* **Created by**: The user who created the ticket.\\n* **Created date**: The date", "title": "Tickets | Computer for Support Teams | DevRev" }, { - "id": "ART-1027_KNOWLEDGE_NODE-6", - "text": "that intelligently assess ticket severity and streamline prioritization\\n* Specialized Computer CX Agents designed to handle both free and paid customer inquiries, optimizing deflection strategies for each segment\\n* In-app support experiences with real-time, contextual assistance\\n* Conversational AI layered on top of Computer\\xe2\\x80\\x99s Memory for unified knowledge\\n* Tight integration with Descope's internal dev workflows and APIs\\n\\nFor me, this is the number one priority for our service", - "title": "Descope streamlines support at scale with automation, AI, and unified collaboration" - }, - { - "id": "ART-996_KNOWLEDGE_NODE-14", - "text": "api_visibility: public\\n api_required: true\\n summary: true # NOTE: `title` included in summary\\n---\\n- name: severity\\n devrev_field_type: legacy_enum\\n devrev_enum:\\n - blocker\\n - high\\n - medium\\n - low\\n is_required: true\\n description: Severity of the ticket\\n gateway:\\n api_visibility: public\\n is_filterable: true\\n summary: true # NOTE: `severity` included in summary\\n\\n\\nDon\\xe2\\x80\\x99t\\nDon\\xe2\\x80\\x99t set all fields to summary: true\\n\\n - name:", - "title": "An Example Object Model Style Guide (our actual style guide)" + "id": "ART-1558_KNOWLEDGE_NODE-518", + "text": "response.\\n\\nticket.rev_org string Optional\\n\\nFilters for tickets that are associated with any of the provided Rev organizations.\\n\\nticket.severity enum Optional\\n\\nFilters for tickets with any of the provided severities.\\n\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\n\\nFilters for records with any of the provided SLA stages.\\n\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\n\\nFilters for tickets with any", + "title": "Metric Definitions List (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-15664_KNOWLEDGE_NODE-13", - "text": "\\n\\nYou may want to restrict links to specific subtypes of objects. For example, only allowing issues\\nof a particular subtype to be linked to tickets.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"name\": \"Link between social media issues and tickets\", |\\n| > | \"source_types\": [ |\\n| > | { |\\n|", - "title": "Links | DevRev | Docs" + "id": "ART-1566_KNOWLEDGE_NODE-521", + "text": "response.\\n\\nticket.rev_org string Optional\\n\\nFilters for tickets that are associated with any of the provided Rev organizations.\\n\\nticket.severity enum Optional\\n\\nFilters for tickets with any of the provided severities.\\n\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\n\\nFilters for records with any of the provided SLA stages.\\n\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\n\\nFilters for tickets with any", + "title": "Transition (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1979_KNOWLEDGE_NODE-37", - "text": "filters and **Group** conditions across various vistas in DevRev to track specific work, capacity, and more.\\n\\nYou can add custom attributes to tickets to track additional information. For more information on custom attributes, see [object customization](./object-customization).\\n\\nIssues are attached to tickets in order to track efforts with product priorities.\\n\\nCreate a ticket\\n---------------\\n\\n1. Go to **Support** > **Tickets** from the sidebar on the left.\\n2. Click **New Ticket** on", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1545_KNOWLEDGE_NODE-519", + "text": "response.\\n\\nticket.rev_org string Optional\\n\\nFilters for tickets that are associated with any of the provided Rev organizations.\\n\\nticket.severity enum Optional\\n\\nFilters for tickets with any of the provided severities.\\n\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\n\\nFilters for records with any of the provided SLA stages.\\n\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\n\\nFilters for tickets with any", + "title": "Create (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1975_KNOWLEDGE_NODE-26", - "text": "resolve tickets.\\n* **Tickets awaiting response**\\n\\n The number of active tickets awaiting response to customer.\\n* **Unassigned tickets**\\n\\n The number of tickets not yet assigned to a support agent.\\n* **Active blocker tickets**\\n\\n The number of tickets with severity Blocker that are in the Open or In Progress state.\\n* **SLA compliance rate**\\n\\n The percentage of tickets where the SLA was met out of all tickets where the SLA was applied.\\n* **Average CSAT score**\\n\\n The average", - "title": "Ticket insights | Support analytics | Computer for Support Teams | DevRev" + "id": "ART-1560_KNOWLEDGE_NODE-521", + "text": "response.\\n\\nticket.rev_org string Optional\\n\\nFilters for tickets that are associated with any of the provided Rev organizations.\\n\\nticket.severity enum Optional\\n\\nFilters for tickets with any of the provided severities.\\n\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\n\\nFilters for records with any of the provided SLA stages.\\n\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\n\\nFilters for tickets with any", + "title": "Assign (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1552_KNOWLEDGE_NODE-3", - "text": "\"display_id\": \"source\", \\n 16| \"rev_org\": { \\n 17| \"type\": \"rev_org\", \\n 18| \"id\": \"source\" \\n 19| }, \\n 20| \"severity\": \"blocker\", \\n 21| \"stage\": { \\n 22| \"name\": \"name\" \\n 23| } \\n 24| }, \\n 25| \"target\": { \\n 26| \"type\": \"ticket\", \\n 27| \"id\": \"target\", \\n 28| \"owned_by\": [ \\n 29| { \\n 30| \"type\": \"sys_user\", \\n 31| \"id\":", - "title": "Create Link (Beta) \u2014 DevRev | Docs" + "id": "ART-1027_KNOWLEDGE_NODE-6", + "text": "that intelligently assess ticket severity and streamline prioritization\\n* Specialized Computer CX Agents designed to handle both free and paid customer inquiries, optimizing deflection strategies for each segment\\n* In-app support experiences with real-time, contextual assistance\\n* Conversational AI layered on top of Computer\\xe2\\x80\\x99s Memory for unified knowledge\\n* Tight integration with Descope's internal dev workflows and APIs\\n\\nFor me, this is the number one priority for our service", + "title": "Descope streamlines support at scale with automation, AI, and unified collaboration" } ] }, @@ -1459,11 +1459,6 @@ "query_id": "2b37472e-12b1-409b-b999-3e3c953bc4bf", "query": "support engineer typing indicator in ticket conversation", "retrievals": [ - { - "id": "ART-4966_KNOWLEDGE_NODE-11", - "text": "notifier](/docs/automations/sla-change-notifier?)\\n * [Slash commands](/docs/automations/slash-commands?)\\n * [Spam Shield](/docs/automations/spam-shield?)\\n * [Ticket age in engineering](/docs/automations/ticket-age-in-engineering?)\\n * [Ticket issue field migrator](/docs/automations/ticket-issue-field-migrator?)\\n * [Ticket Immutability](/docs/automations/ticket-immutability?)\\n * [Ticket email notifier](/docs/automations/ticket-email-notifier?)\\n * [Task", - "title": "Zoho Projects Airdrop | Airdrop | Snap-ins | DevRev" - }, { "id": "ART-1969_KNOWLEDGE_NODE-28", "text": "engineers. To get a list of the available commands, type / in a conversation response text box.\\n\\n\\xf0\\x9f\\x8e\\xab Tickets\\n---------\\n\\nThe benefit of Computer by DevRev is that conversations can be linked to support [tickets](../product/tickets), and tickets can be linked to build issues. This [linkage](../product/apps) means that all work can be traced back to customer concerns or requests.\\n\\nSlash commands are available in tickets to provide AI assistance to customer experience engineers.", @@ -1474,15 +1469,25 @@ "text": "support ticket to get an update on the status of this feature as well as asks their rep what is going on. In most cases the rep and support engineer don\\xe2\\x80\\x99t communicate or have the context of what the other is doing (let alone access to the other\\xe2\\x80\\x99s system). The support engineer may respond saying that feature is a long ways away, while the rep may say it\\xe2\\x80\\x99s \\xe2\\x80\\x9ccoming soon\\xe2\\x80\\x9d.\\n\\nThis lack of coordination leads to contradiction and a clear", "title": "Why you Should be Looking at Support Differently" }, + { + "id": "ART-1004_KNOWLEDGE_NODE-12", + "text": "The percentage of support tickets resolved by a support engineer during the first interaction with the customer, which can indicate the engineer\\xe2\\x80\\x99s efficiency and problem-solving abilities.\\n \\n \\n Calculation\\n \\n (Total number of tickets resolved on first contact by the engineer) / (Total number of tickets handled by the engineer) * 100\\n \\n \\n\\n\\nTraining Hours per Employee\\n\\n\\n Definition\\n \\n The average number of training hours completed by a", + "title": "Understanding a Support Engineer's Pain Points and KPIs" + }, { "id": "ART-1981_KNOWLEDGE_NODE-26", "text": "a small number of tags to help categorize tickets. For example, at DevRev we have the following: bug, feature-request, other-request, question, and incident.\\n* Designate one or more customer experience engineers to be on call. Add them to the **Support** group inside **Settings > Groups** and as default owner in the **Support Routing** snap-in. Default owners are notified through email and the DevRev app as soon as a new conversation is started.\\n\\nMonitor the inbox\\n-----------------\\n\\n*", "title": "Support best practices | Computer for Support Teams | DevRev" }, { - "id": "ART-15687_KNOWLEDGE_NODE-14", - "text": "engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field migrator](/docs/automations/ticket-issue-field-migrator)\\n - [Ticket Immutability](/docs/automations/ticket-immutability)\\n - [Ticket email notifier](/docs/automations/ticket-email-notifier)\\n - [Task tracker](/docs/automations/task-tracker)\\n - [Ticket Tagger](/docs/automations/ticket-tagger)\\n - [Tracxn sync](/docs/automations/tracxn-sync)\\n - [User group", - "title": "Dashboards | Computer by DevRev | DevRev" + "id": "ART-1003_KNOWLEDGE_NODE-18", + "text": "Response Time (FRT)\\n\\n\\n Definition\\n \\n The average time it takes for a support engineer to respond to a customer\\xe2\\x80\\x99s initial inquiry.\\n \\n \\n Calculation\\n \\n (Sum of response times for all first responses) / (Total number of first responses)\\n \\n \\n\\n\\nSELECT AVG(TIMESTAMPDIFF(MINUTE, t.created_at, r.created_at)) AS FirstResponseTime\\nFROM tickets t\\nJOIN responses r ON t.id = r.ticket_id\\nWHERE r.is_first_response = 1\\nAND EXTRACT(@period FROM", + "title": "Understanding a Support Lead's Pain Points and KPIs" + }, + { + "id": "ART-6174_KNOWLEDGE_NODE-0", + "text": "b\"Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CMD`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n +", + "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" }, { "id": "ART-3880_KNOWLEDGE_NODE-8", @@ -1495,18 +1500,13 @@ "title": "Unifying teams: How ActionIQ transformed support with integration" }, { - "id": "ART-16806_KNOWLEDGE_NODE-27", - "text": "Internal Ticket** from the **Ticket Creation** dropdown.\\n* **Focused UI:** The **Customer Messages** tab is disabled on internal tickets to prevent unintended communication.\\n\\nThis feature supports internal workflows while giving you control over when customer engagement begins.\\n\\n![]()\\xc2\\xa0For more information about *Conversation and Ticket Workflows*, refer to the following articles: \\xe2\\x80\\xa3 [Auto parts to conversation | Automate | Snap-ins](/docs/automations/auto-parts)", - "title": "July 2025 | Changelog | DevRev" - }, - { - "id": "ART-1003_KNOWLEDGE_NODE-18", - "text": "Response Time (FRT)\\n\\n\\n Definition\\n \\n The average time it takes for a support engineer to respond to a customer\\xe2\\x80\\x99s initial inquiry.\\n \\n \\n Calculation\\n \\n (Sum of response times for all first responses) / (Total number of first responses)\\n \\n \\n\\n\\nSELECT AVG(TIMESTAMPDIFF(MINUTE, t.created_at, r.created_at)) AS FirstResponseTime\\nFROM tickets t\\nJOIN responses r ON t.id = r.ticket_id\\nWHERE r.is_first_response = 1\\nAND EXTRACT(@period FROM", - "title": "Understanding a Support Lead's Pain Points and KPIs" + "id": "ART-1004_KNOWLEDGE_NODE-9", + "text": "tickets\\nWHERE EXTRACT(@period FROM created_at) = EXTRACT(@period FROM CURRENT_DATE)\\nGROUP BY engineer_id;\\n-- NOTE: Replace @period with 'DAY', 'WEEK', 'MONTH', or 'QUARTER'.\\n\\n\\nIndividual Customer Satisfaction (CSAT) Score\\n\\n\\n Definition\\n \\n A metric that gauges customer satisfaction with the support provided by a specific engineer, typically collected through surveys.\\n \\n \\n Calculation\\n \\n (Number of satisfied responses for the engineer) / (Total number of", + "title": "Understanding a Support Engineer's Pain Points and KPIs" }, { - "id": "ART-4271_KNOWLEDGE_NODE-11", - "text": "commands](/docs/automations/slash-commands?)\\n * [Spam Shield](/docs/automations/spam-shield?)\\n * [Subtype Migration](/docs/automations/subtype-migration?)\\n * [Ticket age in engineering](/docs/automations/ticket-age-in-engineering?)\\n * [Ticket issue field migrator](/docs/automations/ticket-issue-field-migrator?)\\n * [Ticket Immutability](/docs/automations/ticket-immutability?)\\n * [Ticket email notifier](/docs/automations/ticket-email-notifier?)\\n * [Task", + "id": "ART-4271_KNOWLEDGE_NODE-29", + "text": "end user.\\n\\n## Why you should convert a Conversation to a Ticket\\n\\nConsider converting a conversation to a ticket in these scenarios:\\n\\n * **Complex issues** : When a customer inquiry requires in-depth investigation that can't be resolved in a quick conversation.\\n * **Cross-team collaboration** : Issues requiring input from multiple departments or specialists.\\n * **Escalation needs** : When a conversation needs to be escalated to a higher support tier.\\n * **Feature requests** :", "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" } ] @@ -1520,6 +1520,16 @@ "text": "associated with a part (product or service) and can come from both internal and external users. Tickets are also used to communicate progress to the user or other impacted party.\\n\\nThere may be cases where mass communications (broadcast) are necessary in the event of lots of impacted or related parties (such as service status updates). In this scenario, the ticket would be used to broadcast and handle communications among multiple parties, including across multiple workspaces. Broadcast can", "title": "Tickets | Computer for Support Teams | DevRev" }, + { + "id": "ART-17231_KNOWLEDGE_NODE-69", + "text": "#record:incident #record:issue #record:opportunity #record:product #record:project #record:revu #record:task #record:ticket] | \\xe2\\x9c\\x94\\xef\\xb8\\x8e | Target object ID |\\n\\n#### Enum values\\n\\n**link\\\\_type\\\\_id**\\n\\n| Value | Name | Description |\\n| --- | --- | --- |\\n| `is_dependent_on` | Is Dependent On | - |\\n| `is_duplicate_of` | Is Duplicate Of | - |\\n| `is_parent_of` | Is Parent Of | - |\\n| `is_related_to` | Is Related To | - |\\n\\n[\\xe2\\x96\\xb2", + "title": "Supported DevRev object types | DevRev | Docs" + }, + { + "id": "ART-1483_KNOWLEDGE_NODE-18", + "text": "the code\\n\\nUpdate the code in `src/functions/ticket_creator/index.ts` to reflect the behavior.\\n\\nFirstly, import the DevRev TypeScript SDK in the `index.ts` file\\n\\nindex.ts\\n\\n[code]\\n\\n 1| import {client, publicSDK} from \"@devrev/typescript-sdk\"; \\n ---|---\\n[/code] \\n \\nNext, update the `run` function in the hello-world example. Since the ticket gets created frequently, set some creation time in the title and the body. The example uses the part as `PROD-1` and keeps the owner as", + "title": "Using a snap-in to perform a DevRev action \u2014 DevRev | Docs" + }, { "id": "ART-1805_KNOWLEDGE_NODE-194", "text": "Update.\\n\\nPOST https:// api.devrev.ai / incidents.update\\nUpdates an incident.\\nRequest.\\n\\nThis endpoint expects an object.\\nid string Required\\nThe ID of the incident to be updated.\\nacknowledged_date datetime Optional\\nTimestamp when the incident was acknowledged.\\napplies_to_parts object Optional\\nShow property\\nartifacts object Optional\\nShow property\\nbody string Optional\\nBody of the incident.\\ncustom_fields map from strings to any Optional\\nApplication-defined custom", @@ -1530,16 +1540,6 @@ "text": "Update.\\n\\nPOST https:// api.devrev.ai / incidents.update\\nUpdates an incident.\\nRequest.\\n\\nThis endpoint expects an object.\\nid string Required\\nThe ID of the incident to be updated.\\nacknowledged_date datetime Optional\\nTimestamp when the incident was acknowledged.\\napplies_to_parts object Optional\\nShow property\\nartifacts object Optional\\nShow property\\nbody string Optional\\nBody of the incident.\\ncustom_fields map from strings to any Optional\\nApplication-defined custom", "title": "List \u2014 DevRev | Docs" }, - { - "id": "ART-3235_KNOWLEDGE_NODE-26", - "text": "system.\\n\\nAfter configuring these settings, the snap-in automatically processes new tickets and enriches their **Reported By** fields based on the provided email addresses.\\n\\n[PreviousSlack Broadcaster](/docs/automations/slack-broadcaster)[NextTicket approval workflow](/docs/automations/ticket-approval-workflow)\\n\\n#### On this page\\n\\n* [Installation](#installation)\\n* [Configuration](#configuration)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about", - "title": "Reported by enricher | Automate | Snap-ins | DevRev" - }, - { - "id": "ART-17231_KNOWLEDGE_NODE-69", - "text": "#record:incident #record:issue #record:opportunity #record:product #record:project #record:revu #record:task #record:ticket] | \\xe2\\x9c\\x94\\xef\\xb8\\x8e | Target object ID |\\n\\n#### Enum values\\n\\n**link\\\\_type\\\\_id**\\n\\n| Value | Name | Description |\\n| --- | --- | --- |\\n| `is_dependent_on` | Is Dependent On | - |\\n| `is_duplicate_of` | Is Duplicate Of | - |\\n| `is_parent_of` | Is Parent Of | - |\\n| `is_related_to` | Is Related To | - |\\n\\n[\\xe2\\x96\\xb2", - "title": "Supported DevRev object types | DevRev | Docs" - }, { "id": "ART-1307_KNOWLEDGE_NODE-194", "text": "Update.\\n\\nPOST https:// api.devrev.ai / incidents.update\\nUpdates an incident.\\nRequest.\\n\\nThis endpoint expects an object.\\nid string Required\\nThe ID of the incident to be updated.\\nacknowledged_date datetime Optional\\nTimestamp when the incident was acknowledged.\\napplies_to_parts object Optional\\nShow property\\nartifacts object Optional\\nShow property\\nbody string Optional\\nBody of the incident.\\ncustom_fields map from strings to any Optional\\nApplication-defined custom", @@ -1551,9 +1551,9 @@ "title": "Get Post \u2014 DevRev | Docs" }, { - "id": "ART-12395_KNOWLEDGE_NODE-33", - "text": "not support broadcasting to more than 650 channels at a time.\\n\\n[PreviousSlack scraper](/docs/automations/slack-scraper)[NextReported by enricher](/docs/automations/ticket-reported-by)\\n\\n#### On this page\\n\\n* [Configurations](#configurations)\\n* [Slack Connection](#slack-connection)\\n* [Features](#features)\\n* [Slash Commands](#slash-commands)\\n* [How to use](#how-to-use)\\n* [Inputs](#inputs)\\n* [CSV Format](#csv-format)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more", - "title": "Slack Broadcaster | Automate | Snap-ins | DevRev" + "id": "ART-1300_KNOWLEDGE_NODE-193", + "text": "Update.\\n\\nPOST https:// api.devrev.ai / incidents.update\\nUpdates an incident.\\nRequest.\\n\\nThis endpoint expects an object.\\nid string Required\\nThe ID of the incident to be updated.\\nacknowledged_date datetime Optional\\nTimestamp when the incident was acknowledged.\\napplies_to_parts object Optional\\nShow property\\nartifacts object Optional\\nShow property\\nbody string Optional\\nBody of the incident.\\ncustom_fields map from strings to any Optional\\nApplication-defined custom", + "title": "Create \u2014 DevRev | Docs" }, { "id": "ART-1979_KNOWLEDGE_NODE-27", @@ -1561,9 +1561,9 @@ "title": "Tickets | Computer for Support Teams | DevRev" }, { - "id": "ART-1300_KNOWLEDGE_NODE-193", - "text": "Update.\\n\\nPOST https:// api.devrev.ai / incidents.update\\nUpdates an incident.\\nRequest.\\n\\nThis endpoint expects an object.\\nid string Required\\nThe ID of the incident to be updated.\\nacknowledged_date datetime Optional\\nTimestamp when the incident was acknowledged.\\napplies_to_parts object Optional\\nShow property\\nartifacts object Optional\\nShow property\\nbody string Optional\\nBody of the incident.\\ncustom_fields map from strings to any Optional\\nApplication-defined custom", - "title": "Create \u2014 DevRev | Docs" + "id": "ART-1981_KNOWLEDGE_NODE-26", + "text": "a small number of tags to help categorize tickets. For example, at DevRev we have the following: bug, feature-request, other-request, question, and incident.\\n* Designate one or more customer experience engineers to be on call. Add them to the **Support** group inside **Settings > Groups** and as default owner in the **Support Routing** snap-in. Default owners are notified through email and the DevRev app as soon as a new conversation is started.\\n\\nMonitor the inbox\\n-----------------\\n\\n*", + "title": "Support best practices | Computer for Support Teams | DevRev" } ] }, @@ -1572,9 +1572,19 @@ "query": "search functionality on tickets and issues deprecated", "retrievals": [ { - "id": "ART-1483_KNOWLEDGE_NODE-18", - "text": "the code\\n\\nUpdate the code in `src/functions/ticket_creator/index.ts` to reflect the behavior.\\n\\nFirstly, import the DevRev TypeScript SDK in the `index.ts` file\\n\\nindex.ts\\n\\n[code]\\n\\n 1| import {client, publicSDK} from \"@devrev/typescript-sdk\"; \\n ---|---\\n[/code] \\n \\nNext, update the `run` function in the hello-world example. Since the ticket gets created frequently, set some creation time in the title and the body. The example uses the part as `PROD-1` and keeps the owner as", - "title": "Using a snap-in to perform a DevRev action \u2014 DevRev | Docs" + "id": "ART-1949_KNOWLEDGE_NODE-28", + "text": "Click **Delete** to confirm.\\n\\nSearch\\n------\\n\\nYou can search an object (issue, ticket, conversation) in a vista by clicking the search icon which is to the left of the **@** button in the vista toolbar.\\nYou can enter the description or name of the object which brings it up directly without issue or ticket number.\\n\\n![]()\\n\\nVista sharing\\n-------------\\n\\nVistas are private by default, ensuring they are accessible only to you unless explicitly shared. You can now share your vistas with", + "title": "Vistas | Computer by DevRev | DevRev" + }, + { + "id": "ART-17515_KNOWLEDGE_NODE-26", + "text": "and feature requests on tickets.\\n* Computer on Plug: Enhances the following functionalities:\\n\\n + Conversation: It deflects customer queries using your knowledge base, providing accurate and relevant responses.\\n + Search: It summarizes your search results, making information retrieval more efficient and user-friendly.\\n* Computer assist: Recommends relevant articles and similar work items.\\n* Slack tickets: Automatically generates titles and descriptions for tickets created from Slack", + "title": "AI use cases in DevRev | Computer by DevRev | DevRev" + }, + { + "id": "ART-1242_KNOWLEDGE_NODE-0", + "text": "b'Tickets and issues | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[works](/api-reference/works/tickets-and-issues)\\n\\nTickets and issues\\n==================\\n\\nCopy page\\n\\n`works` endpoint\\n\\n\\xe2\\x84\\xb9\\xef\\xb8\\x8f A work item is a record of some work that has to be done for a customer (ticket) or for another builder or maintainer of a part (issue).\\n\\n\\xf0\\x9f\\x93\\x8c For more information", + "title": "Tickets and issues | DevRev | Docs" }, { "id": "ART-15716_KNOWLEDGE_NODE-8", @@ -1582,9 +1592,19 @@ "title": "Support queries related playbook" }, { - "id": "ART-1244_KNOWLEDGE_NODE-22", - "text": "tickets belonging to specific groups.\\n\\nticket.is\\\\_frozenbooleanOptional\\n\\nFilters for frozen tickets.\\n\\nticket.is\\\\_spambooleanOptional\\n\\nFilters for tickets that are spam.\\n\\nticket.needs\\\\_responsebooleanOptional\\n\\nFilters for tickets that need response.\\n\\nticket.rev\\\\_orglist of stringsOptional\\n\\nFilters for tickets that are associated with any of the provided Rev\\norganizations.\\n\\nticket.severitylist of enumsOptional\\n\\nFilters for tickets with any of the provided", - "title": "Export Works | DevRev | Docs" + "id": "ART-1241_KNOWLEDGE_NODE-7", + "text": "helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/webhooks/list-post)[#### Tickets and issues\\n\\nNext](/api-reference/works/tickets-and-issues)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", + "title": "Update Webhook | DevRev | Docs" + }, + { + "id": "ART-1949_KNOWLEDGE_NODE-26", + "text": "upper-right corner after you make a change.\\n You can toggle on **Show groups** in **Group by** dropdown to open up a side panel showing the groups.\\n\\n![]()\\n\\n![]()\\n\\nYou can also apply **Actions** > **Smart Clustering** if the number of tickets or issues is under 10,000. Clustering isn't available for conversations.\\n\\n1. Click **Save as**. You can give the list a name, and description and save it which causes it to show up in the **My list** section at the bottom of the left-side nav", + "title": "Vistas | Computer by DevRev | DevRev" + }, + { + "id": "ART-15687_KNOWLEDGE_NODE-14", + "text": "engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field migrator](/docs/automations/ticket-issue-field-migrator)\\n - [Ticket Immutability](/docs/automations/ticket-immutability)\\n - [Ticket email notifier](/docs/automations/ticket-email-notifier)\\n - [Task tracker](/docs/automations/task-tracker)\\n - [Ticket Tagger](/docs/automations/ticket-tagger)\\n - [Tracxn sync](/docs/automations/tracxn-sync)\\n - [User group", + "title": "Dashboards | Computer by DevRev | DevRev" }, { "id": "ART-15664_KNOWLEDGE_NODE-13", @@ -1597,29 +1617,9 @@ "title": "February 2025 | Changelog | DevRev" }, { - "id": "ART-16803_KNOWLEDGE_NODE-26", - "text": "Tickets\\n* Meetings\\n* Objects linked to issues\\n* Users\\n\\nTo configure a workspace object loop:\\n\\n1. On the **workflow canvas**, add an action step named **Loop for [Object]**, where [Object] is the entity you want to iterate over.\\n2. Apply **filter conditions** to refine the set of objects included in the loop and perform operations on them.\\n\\nAll **actions** inside the loop execute once per object that satisfies the filter conditions.\\n\\n### For Each\\n\\nThe **For Each** loop iterates", - "title": "Workflow nodes | Workflows | Computer by DevRev | DevRev" - }, - { - "id": "ART-1961_KNOWLEDGE_NODE-37", - "text": "\\n{{Ticket\\xc2\\xa0Created\\xc2\\xa0>\\xc2\\xa0Output\\xc2\\xa0>\\xc2\\xa0Reported\\xc2\\xa0By\\xc2\\xa0>\\xc2\\xa0Rev\\xc2\\xa0Org\\xc2\\xa0>\\xc2\\xa0Display\\xc2\\xa0Name}}.\\xe2\\x80\\x9d\\n\\n\\n\\nDelay\\n\\n\\n\\nDuration: 2 minutes\\n\\n\\n\\nIf-else\\n\\n\\n\\nAttribute:\\xc2\\xa0Ticket\\xc2\\xa0Created/Output\\xc2\\xa0>\\xc2\\xa0Applies\\xc2\\xa0to\\xc2\\xa0part\\xc2\\xa0>\\xc2\\xa0Display\\xc2\\xa0ID \\nOperator: Equals \\nOperand: CAPL-18\\n\\n\\n\\nTicket \\ncreated\\n\\n\\n\\nEnd\\n```\\n\\n[### Workflow action", - "title": "Workflows | Computer by DevRev | DevRev" - }, - { - "id": "ART-1241_KNOWLEDGE_NODE-7", - "text": "helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/webhooks/list-post)[#### Tickets and issues\\n\\nNext](/api-reference/works/tickets-and-issues)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Update Webhook | DevRev | Docs" - }, - { - "id": "ART-1949_KNOWLEDGE_NODE-28", - "text": "Click **Delete** to confirm.\\n\\nSearch\\n------\\n\\nYou can search an object (issue, ticket, conversation) in a vista by clicking the search icon which is to the left of the **@** button in the vista toolbar.\\nYou can enter the description or name of the object which brings it up directly without issue or ticket number.\\n\\n![]()\\n\\nVista sharing\\n-------------\\n\\nVistas are private by default, ensuring they are accessible only to you unless explicitly shared. You can now share your vistas with", - "title": "Vistas | Computer by DevRev | DevRev" - }, - { - "id": "ART-1248_KNOWLEDGE_NODE-23", - "text": "groups.\\n\\nticket.is\\\\_frozenbooleanOptional\\n\\nFilters for frozen tickets.\\n\\nticket.is\\\\_spambooleanOptional\\n\\nFilters for tickets that are spam.\\n\\nticket.needs\\\\_responsebooleanOptional\\n\\nFilters for tickets that need response.\\n\\nticket.rev\\\\_orglist of stringsOptional\\n\\nFilters for tickets that are associated with any of the provided Rev\\norganizations.\\n\\nticket.severitylist of enumsOptional\\n\\nFilters for tickets with any of the provided severities.\\n\\nAllowed", - "title": "List Works | DevRev | Docs" + "id": "ART-2024_KNOWLEDGE_NODE-27", + "text": "help now... ask again in 5d\\n\\nSample response:\\n\\n> I am unable to assist you at the moment, however please reach out to me again in five days and I will be happy to help you.\\n\\n### Summarize\\n\\nUsing the summarize command, you can sum up the entire conversation. It applies to the following:\\n\\n* Conversation\\n* Tickets\\n* Issues\\n* Part\\n* Workspace\\n* Customer\\n* Account\\n\\nSample response:\\n\\n> **Summary:**\\n>\\n> * Rahul from DummyOrg is having difficulty installing the Plug Widget.\\n> *", + "title": "Slash commands | Automate | Snap-ins | DevRev" } ] }, @@ -1628,19 +1628,24 @@ "query": "how to use snap-ins in DevRev", "retrievals": [ { - "id": "ART-1468_KNOWLEDGE_NODE-5", - "text": "\\xe2\\x80\\x9carms-length\\xe2\\x80\\x9d and without making any changes to DevRev\\xe2\\x80\\x99s core platform.\\n\\nSnap-in developers interact with DevRev objects through APIs, get updates on DevRev objects through webhooks, and register an event source to subscribe to GitHub/Slack/any external events.\\n\\n## Snap-in package\\n\\nA snap-in package is a collection of DevRev objects and their relationships that describe the functionality of the developed snap-in. It doesn\\xe2\\x80\\x99t reference an object", - "title": "Concepts \u2014 DevRev | Docs" + "id": "ART-2913_KNOWLEDGE_NODE-25", + "text": "DevRev support.\\n\\nInstallation\\n------------\\n\\n1. In DevRev, go to **Settings** > **Snap-ins** and click **Explore\\n Marketplace** in the top-right corner.\\n2. In the DevRev marketplace, find **PagerDuty** and click **Install**.\\n3. Set-up the snap-in's configurations.\\n4. Click **Save** > **Install snap-in**.\\n5. Execute the /pagerduty register-webhook command in the snap-in\\n **Discussions** tab. Upon successful start, you will see the message\\n **Successfully registered DevRev", + "title": "PagerDuty | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2055_KNOWLEDGE_NODE-34", - "text": "Snap-ins, and other processes, as if the events originated directly in DevRev.\\n\\nIf this setting is disabled, updates will not trigger any event-driven processes. This behavior applies only to periodic syncs; no events are triggered during a first-time import or manual sync to or from DevRev.\\n\\n### Delete import\\n\\n![]()\\n\\nThis deletes any content created by the import, including users and works.\\n\\nAn import and all the content it creates can be deleted from DevRev. This can be useful when", - "title": "Linear AirSync | AirSync | Snap-ins | DevRev" + "id": "ART-1274_KNOWLEDGE_NODE-1", + "text": "snap-in.\\n\\nSnap-ins are collections of objects that extend DevRev\\xe2\\x80\\x99s core platform value. These objects include automation, event sources, keyrings, custom types, and vistas. Snap-ins are packaged and installed separately from the DevRev core platform. To create your own snap-in, create a [dev org](https://app.devrev.ai/) where you will be installing your snap-in.\\n\\n[1](/snapin-development/tutorials/getting-started#before-you-begin)\\n\\n### Before you begin\\n\\n* Install [DevRev", + "title": "Getting started | DevRev | Docs" }, { - "id": "ART-3905_KNOWLEDGE_NODE-38", - "text": "Snap-ins, and other processes, as if the events originated directly in DevRev.\\n\\nIf this setting is disabled, updates will not trigger any event-driven processes. This behavior applies only to periodic syncs; no events are triggered during a first-time import or manual sync to or from DevRev.\\n\\n### Delete import\\n\\n![]()\\n\\nThis deletes any content created by the import, including users and works.\\n\\nAn import and all the content it creates can be deleted from DevRev. This can be useful when", - "title": "Jira Service Management AirSync | AirSync | Snap-ins | DevRev" + "id": "ART-1470_KNOWLEDGE_NODE-5", + "text": "keyrings, custom types, and vistas. Snap-ins are packaged and installed separately from the DevRev core platform. To create your own snap-in, create a [dev org](https://app.devrev.ai/) where you will be installing your snap-in.\\n\\n[1](/public/snapin-development/tutorials/getting-started#before-you-begin)\\n\\n### Before you begin\\n\\n * Install [DevRev CLI](/public/snapin-development/references/cli-install)\\n * Install", + "title": "Getting started \u2014 DevRev | Docs" + }, + { + "id": "ART-1280_KNOWLEDGE_NODE-13", + "text": "| --- |\\n| $ | devrev snap_in_version list | jq . |\\n```\\n\\n**Additional flags**:\\n\\n* `--package `: Optional. If not provided, it uses the id from the [snap-in context](/snapin-development/references/cli#snap-in-context).\\n\\nSnap-in\\n-------\\n\\n###### Create a snap-in draft\\n\\nTo create a snap-in draft instance, run the following command:\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | devrev snap_in draft --snap_in_version [id] |\\n```\\n\\nFor example:\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | devrev", + "title": "DevRev CLI reference | DevRev | Docs" }, { "id": "ART-1280_KNOWLEDGE_NODE-21", @@ -1648,13 +1653,18 @@ "title": "DevRev CLI reference | DevRev | Docs" }, { - "id": "ART-1991_KNOWLEDGE_NODE-25", - "text": "helps you bring data from external sources to DevRev and keep them in sync.\\n\\nWhile numerous snap-ins are available and more are in development, you can create your own using [DevRev APIs](https://developer.devrev.ai/).\\n\\nSupport\\n-------\\n\\n| Automate | Integrate | AirSync |\\n| --- | --- | --- |\\n| [Auto parts to conversation](/docs/automations/auto-parts) | [Calendly](/docs/integrations/calendly) | [Salesforce](/docs/integrations/salesforce) |\\n| [Auto-reply](/docs/automations/auto-reply) |", - "title": "Support snap-ins | Computer for Support Teams | DevRev" + "id": "ART-17214_KNOWLEDGE_NODE-1", + "text": "developing your snap-in with a `manifest.yaml` file. The manifest defines the snap-in\\xe2\\x80\\x99s configuration, including its name, description, version, connection details, and functionality.\\n\\nBegin by setting the values for `name` and `description` in the template.\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | name: Template Connector |\\n| 2 | description: Template Connector for importing dummy data into DevRev |\\n```\\n\\n### Set snap-in functionalities\\n\\nDevRev supports creating snap-ins for", + "title": "Manifest | DevRev | Docs" }, { - "id": "ART-1274_KNOWLEDGE_NODE-1", - "text": "snap-in.\\n\\nSnap-ins are collections of objects that extend DevRev\\xe2\\x80\\x99s core platform value. These objects include automation, event sources, keyrings, custom types, and vistas. Snap-ins are packaged and installed separately from the DevRev core platform. To create your own snap-in, create a [dev org](https://app.devrev.ai/) where you will be installing your snap-in.\\n\\n[1](/snapin-development/tutorials/getting-started#before-you-begin)\\n\\n### Before you begin\\n\\n* Install [DevRev", + "id": "ART-1468_KNOWLEDGE_NODE-5", + "text": "\\xe2\\x80\\x9carms-length\\xe2\\x80\\x9d and without making any changes to DevRev\\xe2\\x80\\x99s core platform.\\n\\nSnap-in developers interact with DevRev objects through APIs, get updates on DevRev objects through webhooks, and register an event source to subscribe to GitHub/Slack/any external events.\\n\\n## Snap-in package\\n\\nA snap-in package is a collection of DevRev objects and their relationships that describe the functionality of the developed snap-in. It doesn\\xe2\\x80\\x99t reference an object", + "title": "Concepts \u2014 DevRev | Docs" + }, + { + "id": "ART-1274_KNOWLEDGE_NODE-14", + "text": "devrev snap_in_version list |\\n```\\n\\nTo delete the snap-in version, run the following command:\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | devrev snap_in_version delete-one |\\n```\\n\\n[6](/snapin-development/tutorials/getting-started#install-a-snap-in-from-a-snap-in-version)\\n\\n### Install a snap-in from a snap-in version\\n\\nTo create a snap-in from a snap-in version, run the following command:\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | devrev snap_in draft |\\n```\\n\\n##### \\n\\n1. To install the snap-in,", "title": "Getting started | DevRev | Docs" }, { @@ -1663,19 +1673,9 @@ "title": "Overview | DevRev | Docs" }, { - "id": "ART-2913_KNOWLEDGE_NODE-25", - "text": "DevRev support.\\n\\nInstallation\\n------------\\n\\n1. In DevRev, go to **Settings** > **Snap-ins** and click **Explore\\n Marketplace** in the top-right corner.\\n2. In the DevRev marketplace, find **PagerDuty** and click **Install**.\\n3. Set-up the snap-in's configurations.\\n4. Click **Save** > **Install snap-in**.\\n5. Execute the /pagerduty register-webhook command in the snap-in\\n **Discussions** tab. Upon successful start, you will see the message\\n **Successfully registered DevRev", - "title": "PagerDuty | Integrate | Snap-ins | DevRev" - }, - { - "id": "ART-1280_KNOWLEDGE_NODE-13", - "text": "| --- |\\n| $ | devrev snap_in_version list | jq . |\\n```\\n\\n**Additional flags**:\\n\\n* `--package `: Optional. If not provided, it uses the id from the [snap-in context](/snapin-development/references/cli#snap-in-context).\\n\\nSnap-in\\n-------\\n\\n###### Create a snap-in draft\\n\\nTo create a snap-in draft instance, run the following command:\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | devrev snap_in draft --snap_in_version [id] |\\n```\\n\\nFor example:\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | devrev", - "title": "DevRev CLI reference | DevRev | Docs" - }, - { - "id": "ART-3207_KNOWLEDGE_NODE-29", - "text": "to send emails to the group and is a member of the group and continue.\\n5. In your Gmail account, go to **Settings** > **Accounts and Import** > **Send mail as** and add your group address.\\n6. Grant DevRev additional access to your Google account. Refer to our [privacy policy](/privacy-policy) for more information.\\n\\nEmail connection\\n\\n1. In DevRev app, go to **Integrations** > **Snap-ins** and click **Connections**.\\n2. In the top-right corner, select **+ Connection**, choose **Email", - "title": "Email snap-in configuration | Email | Integrate | Snap-ins | DevRev" + "id": "ART-1991_KNOWLEDGE_NODE-25", + "text": "helps you bring data from external sources to DevRev and keep them in sync.\\n\\nWhile numerous snap-ins are available and more are in development, you can create your own using [DevRev APIs](https://developer.devrev.ai/).\\n\\nSupport\\n-------\\n\\n| Automate | Integrate | AirSync |\\n| --- | --- | --- |\\n| [Auto parts to conversation](/docs/automations/auto-parts) | [Calendly](/docs/integrations/calendly) | [Salesforce](/docs/integrations/salesforce) |\\n| [Auto-reply](/docs/automations/auto-reply) |", + "title": "Support snap-ins | Computer for Support Teams | DevRev" } ] }, @@ -1684,24 +1684,19 @@ "query": "generate support tickets from slack messages with questions", "retrievals": [ { - "id": "ART-6174_KNOWLEDGE_NODE-30", - "text": "there.\\n\\n![]()\\n\\nSlack end-user experience\\n-------------------------\\n\\nWhen a conversation is converted to a ticket in Slack:\\n\\n* Ticket information appears within the same thread.\\n* All subsequent messages sync with the newly created ticket.\\n* The transition is seamless for the end user.\\n\\nConversation conversion scenarios\\n---------------------------------\\n\\nConsider converting a conversation to a ticket in these scenarios:\\n\\n* Complex issues requiring in-depth investigation\\n*", - "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" - }, - { - "id": "ART-4185_KNOWLEDGE_NODE-15", - "text": "[Custom field migration](/docs/automations/custom-field-migration)\\n - [Slack scraper](/docs/automations/slack-scraper)\\n - [Slack Broadcaster](/docs/automations/slack-broadcaster)\\n - [Reported by enricher](/docs/automations/ticket-reported-by)\\n - [Ticket approval workflow](/docs/automations/ticket-approval-workflow)\\n - [Ticket linked issues comment sync](/docs/automations/ticket-linked-issues-comment-sync)\\n - [Slack message agent](/docs/automations/slack-message-agent)\\n", - "title": "Ticket approval workflow | Automate | Snap-ins | DevRev" + "id": "ART-2035_KNOWLEDGE_NODE-37", + "text": "synchronized between DevRev and Slack.\\n\\nWork management using Slack\\n---------------------------\\n\\n### DevRev Tickets and Slack\\n\\nThe Slack snap-in allows users to create tickets directly from Slack. There are multiple ways to initiate ticket creation from any channel:\\n\\n* **Use the command:** Run /devrev create-ticket.\\n* **Message action:** Select **Create a new ticket** from the message actions.\\n* **Convert a Conversation:** Transform an ongoing conversation into a ticket. This is", + "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-3231_KNOWLEDGE_NODE-15", - "text": "[Custom field migration](/docs/automations/custom-field-migration)\\n - [Slack scraper](/docs/automations/slack-scraper)\\n - [Slack Broadcaster](/docs/automations/slack-broadcaster)\\n - [Reported by enricher](/docs/automations/ticket-reported-by)\\n - [Ticket approval workflow](/docs/automations/ticket-approval-workflow)\\n - [Ticket linked issues comment sync](/docs/automations/ticket-linked-issues-comment-sync)\\n - [Slack message agent](/docs/automations/slack-message-agent)\\n", - "title": "Commands surface expander | Automate | Snap-ins | DevRev" + "id": "ART-4271_KNOWLEDGE_NODE-24", + "text": "[Support](/docs/product/support?)\\n 4. [Conversations](/docs/product/conversation?)\\n 5. [Convert Conversations to Tickets](/docs/product/Conversation-Tickets?)\\n\\n# Convert Conversations to Tickets\\n\\nYou can now convert conversations from PLuG and Slack directly into tickets. Previously, conversations were only linked to tickets. This update streamlines workflows and enhances the customer experience.\\n\\nFor conversations originating from PLuG or Slack, the **Link to Ticket** functionality", + "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" }, { - "id": "ART-2017_KNOWLEDGE_NODE-28", - "text": "you would like to tag on the message (the ticket owner gets tagged automatically); and the target Slack channel. The channel\\'s ID can be found by going to the channel details. Refer to the placeholder value on the input to see an example of how this looks.\\n2. Decide if notifications should go out even if the ticket has a target end date set. Set the toggle to the desired behavior.\\n3. Decide if a ticket should pass the check if it\\'s part is a descendant of the filter part. For example, if a", - "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" + "id": "ART-17515_KNOWLEDGE_NODE-26", + "text": "and feature requests on tickets.\\n* Computer on Plug: Enhances the following functionalities:\\n\\n + Conversation: It deflects customer queries using your knowledge base, providing accurate and relevant responses.\\n + Search: It summarizes your search results, making information retrieval more efficient and user-friendly.\\n* Computer assist: Recommends relevant articles and similar work items.\\n* Slack tickets: Automatically generates titles and descriptions for tickets created from Slack", + "title": "AI use cases in DevRev | Computer by DevRev | DevRev" }, { "id": "ART-2035_KNOWLEDGE_NODE-44", @@ -1709,29 +1704,34 @@ "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2818_KNOWLEDGE_NODE-15", - "text": "[Custom field migration](/docs/automations/custom-field-migration)\\n - [Slack scraper](/docs/automations/slack-scraper)\\n - [Slack Broadcaster](/docs/automations/slack-broadcaster)\\n - [Reported by enricher](/docs/automations/ticket-reported-by)\\n - [Ticket approval workflow](/docs/automations/ticket-approval-workflow)\\n - [Ticket linked issues comment sync](/docs/automations/ticket-linked-issues-comment-sync)\\n - [Slack message agent](/docs/automations/slack-message-agent)\\n", - "title": "Operational SLA Metrics | Automate | Snap-ins | DevRev" + "id": "ART-6174_KNOWLEDGE_NODE-30", + "text": "there.\\n\\n![]()\\n\\nSlack end-user experience\\n-------------------------\\n\\nWhen a conversation is converted to a ticket in Slack:\\n\\n* Ticket information appears within the same thread.\\n* All subsequent messages sync with the newly created ticket.\\n* The transition is seamless for the end user.\\n\\nConversation conversion scenarios\\n---------------------------------\\n\\nConsider converting a conversation to a ticket in these scenarios:\\n\\n* Complex issues requiring in-depth investigation\\n*", + "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" }, { - "id": "ART-2663_KNOWLEDGE_NODE-15", + "id": "ART-2035_KNOWLEDGE_NODE-39", + "text": "fields will auto-fill based on the messages.\\n\\n### Ticket sharing options\\n\\nThe new ticket modal in Slack includes a **Share with everyone** checkbox at the bottom:\\n\\n* **Enabled:** Shares the ticket details with the Slack channel via a summary card.\\n* **Disabled:** Keeps the ticket internal with no updates to the Slack channel.\\n\\nRegardless of sharing, the ticket details are visible to the creator in the submission modal.\\n\\n### Syncing details\\n\\nIf sharing is enabled, the type of Slack", + "title": "Slack | Integrate | Snap-ins | DevRev" + }, + { + "id": "ART-4965_KNOWLEDGE_NODE-15", "text": "[Custom field migration](/docs/automations/custom-field-migration)\\n - [Slack scraper](/docs/automations/slack-scraper)\\n - [Slack Broadcaster](/docs/automations/slack-broadcaster)\\n - [Reported by enricher](/docs/automations/ticket-reported-by)\\n - [Ticket approval workflow](/docs/automations/ticket-approval-workflow)\\n - [Ticket linked issues comment sync](/docs/automations/ticket-linked-issues-comment-sync)\\n - [Slack message agent](/docs/automations/slack-message-agent)\\n", - "title": "GitBook AirSync | AirSync | Snap-ins | DevRev" + "title": "Ticket Immutability | Automate | Snap-ins | DevRev" }, { - "id": "ART-15617_KNOWLEDGE_NODE-19", - "text": "SaaS Companies : Organizations with sophisticated support needs beyond Slack management\\n\\nEngineering-Heavy Teams : Companies needing better support-engineering collaboration\\n\\nProactive Support Teams : Organizations wanting to prevent issues rather than just respond to them Key Messaging Themes\\n\\n\"Beyond Basic Support\" : Position DevRev as the evolution from simple ticket management to intelligent support orchestration\\n\\n\"AI That Actually Thinks\" : Contrast reasoning-capable AI vs.", - "title": "Pylon - Competitive - for the PLuG on website" + "id": "ART-12395_KNOWLEDGE_NODE-15", + "text": "[Custom field migration](/docs/automations/custom-field-migration)\\n - [Slack scraper](/docs/automations/slack-scraper)\\n - [Slack Broadcaster](/docs/automations/slack-broadcaster)\\n - [Reported by enricher](/docs/automations/ticket-reported-by)\\n - [Ticket approval workflow](/docs/automations/ticket-approval-workflow)\\n - [Ticket linked issues comment sync](/docs/automations/ticket-linked-issues-comment-sync)\\n - [Slack message agent](/docs/automations/slack-message-agent)\\n", + "title": "Slack Broadcaster | Automate | Snap-ins | DevRev" }, { - "id": "ART-2035_KNOWLEDGE_NODE-36", - "text": "Slack Channel ID in the **Channel ID to send conversation notifications** snap-in configuration as the target to post notifications.\\n\\n* Any new message within tickets in the customer messages panel is also subjected to the same automation.\\n* To prevent notification overload, each conversation or ticket is subject to a five minute cooldown period between notifications. Multiple consecutive messages within this window will not trigger additional notifications.\\n* Notification threads are not", - "title": "Slack | Integrate | Snap-ins | DevRev" + "id": "ART-4218_KNOWLEDGE_NODE-15", + "text": "[Custom field migration](/docs/automations/custom-field-migration)\\n - [Slack scraper](/docs/automations/slack-scraper)\\n - [Slack Broadcaster](/docs/automations/slack-broadcaster)\\n - [Reported by enricher](/docs/automations/ticket-reported-by)\\n - [Ticket approval workflow](/docs/automations/ticket-approval-workflow)\\n - [Ticket linked issues comment sync](/docs/automations/ticket-linked-issues-comment-sync)\\n - [Slack message agent](/docs/automations/slack-message-agent)\\n", + "title": "Azure DevOps Wikis AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-15689_KNOWLEDGE_NODE-15", + "id": "ART-2037_KNOWLEDGE_NODE-15", "text": "[Custom field migration](/docs/automations/custom-field-migration)\\n - [Slack scraper](/docs/automations/slack-scraper)\\n - [Slack Broadcaster](/docs/automations/slack-broadcaster)\\n - [Reported by enricher](/docs/automations/ticket-reported-by)\\n - [Ticket approval workflow](/docs/automations/ticket-approval-workflow)\\n - [Ticket linked issues comment sync](/docs/automations/ticket-linked-issues-comment-sync)\\n - [Slack message agent](/docs/automations/slack-message-agent)\\n", - "title": "CSV comments uploader | Automate | Snap-ins | DevRev" + "title": "GitHub | Integrate | Snap-ins | DevRev" } ] }, @@ -1740,34 +1740,34 @@ "query": "cron configuration for timer trigger schedule in DevRev", "retrievals": [ { - "id": "ART-1277_KNOWLEDGE_NODE-4", - "text": "[Using a snap-in to perform a DevRev action](/snapin-development/tutorials/timer-ticket-creator) tutorial.\\n\\n[1](/snapin-development/tutorials/triggered-event#installation-guide)\\n\\n### Installation guide\\n\\n* Install [DevRev CLI](/snapin-development/references/cli-install)\\n* Install [jq](https://stedolan.github.io/jq)\\n* Install [DevRev SDK](https://www.npmjs.com/package/@devrev/typescript-sdk?activeTab=readme)\\n\\n##### \\n\\nIf you did not follow the [getting", - "title": "Snap-in triggered by a DevRev event | DevRev | Docs" + "id": "ART-1483_KNOWLEDGE_NODE-11", + "text": "config: \\n 8| # CRON expression for triggering every 10 minutes. \\n 9| cron: \"*/10 * * * *\" \\n 10| metadata: \\n 11| event_key: ten_minute_event\\n[/code] \\n \\nFinally, update the `function` name to better reflect the behavior and `automation`name to use the event type corresponding to the `timer-events` event source.\\n\\nmanifest.yaml\\n\\n[code]\\n\\n 1| functions: \\n ---|--- \\n 2| - name: ticket_creator \\n 3|", + "title": "Using a snap-in to perform a DevRev action \u2014 DevRev | Docs" + }, + { + "id": "ART-1478_KNOWLEDGE_NODE-42", + "text": "source configuration.\\n\\n[code]\\n\\n 1| event_sources: \\n ---|--- \\n 2| organization: \\n 3| - name: daily-timer-source \\n 4| description: Timer event source based on Cron expression \\n 5| display_name: Timer source \\n 6| type: timer-events \\n 7| config: \\n 8| cron: \"0 0 * * *\" \\n 9| metadata: \\n 10| event_key: daily_events \\n 11| \\n 12| - name: hourly-events \\n 13|", + "title": "Event sources \u2014 DevRev | Docs" }, { "id": "ART-1284_KNOWLEDGE_NODE-37", "text": "configuration.\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | event_sources: |\\n| 2 | organization: |\\n| 3 | - name: daily-timer-source |\\n| 4 | description: Timer event source based on Cron expression |\\n| 5 | display_name: Timer source |\\n| 6 | type: timer-events |\\n| 7 | config: |\\n| 8 | cron: \"0 0 * * *\" |\\n| 9 | metadata: |\\n| 10 | event_key: daily_events |\\n| 11 | |\\n| 12 | - name: hourly-events |\\n| 13 | description: Timer event source based on interval seconds |\\n| 14 | display_name: Timer", "title": "Event sources | DevRev | Docs" }, + { + "id": "ART-1275_KNOWLEDGE_NODE-8", + "text": "type `cron` or\\n`interval_seconds` as mentioned in the\\n[documentation](/snapin-development/references/event-sources#timer-based-event-sources).\\nThe `cron` config is used here.\\n\\nmanifest.yaml\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | event_sources: |\\n| 2 | organization: |\\n| 3 | - name: timer-event-source |\\n| 4 | description: Event source that sends events every 10 minutes. |\\n| 5 | display_name: Timer Event Source |\\n| 6 | type: timer-events |\\n| 7 | config: |\\n| 8 | # CRON expression for", + "title": "Using a snap-in to perform a DevRev action | DevRev | Docs" + }, { "id": "ART-1275_KNOWLEDGE_NODE-5", "text": "devrev snap_in_version init |\\n```\\n\\n#### Trigger\\n\\nThe trigger condition for the snap-in is dictated by the\\n[Event Sources](/snapin-development/references/event-sources)\\nsection in the manifest. The [`timer-events`](/snapin-development/references/event-sources#timer-based-event-sources)\\nevent source is suitable for the use-case, since it allows trigger of snap-ins\\nusing [CRON expression](https://crontab.guru/).\\n\\n#### Action\\n\\nThe hello-world snap-in prints a log message whenever the", "title": "Using a snap-in to perform a DevRev action | DevRev | Docs" }, { - "id": "ART-1485_KNOWLEDGE_NODE-8", - "text": "comment to the object timeline.\\n\\nTo learn more, refer to the [Using a snap-in to perform a DevRev action](/public/snapin-development/tutorials/timer-ticket-creator) tutorial.\\n\\n[1](/public/snapin-development/tutorials/triggered-event#installation-guide)\\n\\n### Installation guide\\n\\n * Install [DevRev CLI](/public/snapin-development/references/cli-install)\\n * Install [jq](https://stedolan.github.io/jq)\\n * Install [DevRev", - "title": "Snap-in triggered by a DevRev event \u2014 DevRev | Docs" - }, - { - "id": "ART-1483_KNOWLEDGE_NODE-11", - "text": "config: \\n 8| # CRON expression for triggering every 10 minutes. \\n 9| cron: \"*/10 * * * *\" \\n 10| metadata: \\n 11| event_key: ten_minute_event\\n[/code] \\n \\nFinally, update the `function` name to better reflect the behavior and `automation`name to use the event type corresponding to the `timer-events` event source.\\n\\nmanifest.yaml\\n\\n[code]\\n\\n 1| functions: \\n ---|--- \\n 2| - name: ticket_creator \\n 3|", - "title": "Using a snap-in to perform a DevRev action \u2014 DevRev | Docs" - }, - { - "id": "ART-1478_KNOWLEDGE_NODE-42", - "text": "source configuration.\\n\\n[code]\\n\\n 1| event_sources: \\n ---|--- \\n 2| organization: \\n 3| - name: daily-timer-source \\n 4| description: Timer event source based on Cron expression \\n 5| display_name: Timer source \\n 6| type: timer-events \\n 7| config: \\n 8| cron: \"0 0 * * *\" \\n 9| metadata: \\n 10| event_key: daily_events \\n 11| \\n 12| - name: hourly-events \\n 13|", - "title": "Event sources \u2014 DevRev | Docs" + "id": "ART-1483_KNOWLEDGE_NODE-10", + "text": "`interval_seconds` as mentioned in the [documentation](/public/snapin-development/references/event-sources#timer-based-event-sources). The `cron` config is used here.\\n\\nmanifest.yaml\\n\\n[code]\\n\\n 1| event_sources: \\n ---|--- \\n 2| organization: \\n 3| - name: timer-event-source \\n 4| description: Event source that sends events every 10 minutes. \\n 5| display_name: Timer Event Source \\n 6| type: timer-events \\n 7|", + "title": "Using a snap-in to perform a DevRev action \u2014 DevRev | Docs" }, { "id": "ART-1275_KNOWLEDGE_NODE-9", @@ -1775,19 +1775,19 @@ "title": "Using a snap-in to perform a DevRev action | DevRev | Docs" }, { - "id": "ART-15203_KNOWLEDGE_NODE-10", - "text": "Technical knowledge of web solutions including APIs and Webhooks. Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n* Outstanding communication (written and verbal), with fluency in English.\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who", - "title": "DevRev Careers | Senior Customer Success Manager" + "id": "ART-12449_KNOWLEDGE_NODE-33", + "text": "type=\"text\" placeholder=\"Enter Username\" name=\"username\" required class=\"devrev-unmask\"> \\n ---|---\\n[/code] \\n \\n### Timers\\n\\nThe DevRev SDK offers a timer mechanism to measure the time spent on specific tasks, allowing you to track events such as response time, loading time, or any other duration-based metrics.\\n\\nThe mechanism works using balanced start and stop methods that both accept a timer name and an optional dictionary of properties.\\n\\nTo start a timer, use the following", + "title": "Features \u2014 DevRev | Docs" }, { - "id": "ART-16798_KNOWLEDGE_NODE-9", - "text": "skills are also valued.\\n\\n* Outstanding communication (written and verbal), with fluency in English.\\n\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the earth\\xe2\\x80\\x99s most customer-centric companies. Our mission is", - "title": "DevRev Careers | Partner Success Manager" + "id": "ART-1485_KNOWLEDGE_NODE-8", + "text": "comment to the object timeline.\\n\\nTo learn more, refer to the [Using a snap-in to perform a DevRev action](/public/snapin-development/tutorials/timer-ticket-creator) tutorial.\\n\\n[1](/public/snapin-development/tutorials/triggered-event#installation-guide)\\n\\n### Installation guide\\n\\n * Install [DevRev CLI](/public/snapin-development/references/cli-install)\\n * Install [jq](https://stedolan.github.io/jq)\\n * Install [DevRev", + "title": "Snap-in triggered by a DevRev event \u2014 DevRev | Docs" }, { - "id": "ART-15962_KNOWLEDGE_NODE-9", - "text": "areas.\\n\\n**Preferred Qualifications** \\nList additional skills, experience, or attributes that are advantageous but not required.\\n\\n* MBA or related advanced degree.\\n* 10+ years of experience in software product marketing, with direct experience in AI, large language models, machine learning, or related fields preferred.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the", - "title": "DevRev Careers | Senior Product Marketing Manager" + "id": "ART-1277_KNOWLEDGE_NODE-4", + "text": "[Using a snap-in to perform a DevRev action](/snapin-development/tutorials/timer-ticket-creator) tutorial.\\n\\n[1](/snapin-development/tutorials/triggered-event#installation-guide)\\n\\n### Installation guide\\n\\n* Install [DevRev CLI](/snapin-development/references/cli-install)\\n* Install [jq](https://stedolan.github.io/jq)\\n* Install [DevRev SDK](https://www.npmjs.com/package/@devrev/typescript-sdk?activeTab=readme)\\n\\n##### \\n\\nIf you did not follow the [getting", + "title": "Snap-in triggered by a DevRev event | DevRev | Docs" } ] }, @@ -1795,21 +1795,36 @@ "query_id": "015c89d4-6aa6-41f4-b9a4-6da7550e85eb", "query": "view all tickets raised to DevRev support team", "retrievals": [ + { + "id": "ART-2046_KNOWLEDGE_NODE-29", + "text": "Ticket** button to create a ticket in DevRev by filling necessary attributes. You can turn this feature off in the app configuration if you want.\\n* To view comments on the tickets linked to the discussions that support teams had with customers or internally on DevRev, head over to the DevRev activity tab which is present in the same line as the **Comments** tab of Jira.\\n* To send comments from the Jira issue to the DevRev ticket, select the ticket from the dropdown, type in the comment, and", + "title": "DevRev for Jira app | Jira Software AirSync | AirSync | Snap-ins | DevRev" + }, + { + "id": "ART-1978_KNOWLEDGE_NODE-33", + "text": "tickets but also all the tickets raised by the other users from their organization. You can add multiple customer admins from the same customer organization.\\n\\nOnly verified users can login into the portal.\\n\\nTo create a verified user:\\n\\n1. Go to **Accounts** in the DevRev app and create an account.\\n2. Create a contact under **Contacts** and link it to the account.\\n\\n### Set up customer admins\\n\\nTo set up customer admins, follow these steps:\\n\\n1. Log in on your DevRev app with your", + "title": "Customer portal | Computer for Support Teams | DevRev" + }, { "id": "ART-1978_KNOWLEDGE_NODE-44", "text": "URL and not on the support portal of some other customer.\\n* Customer admin isn't able to see all the tickets of the organization.\\n\\n + This could happen if the customer isn't logged in on the correct URL. If the customer is logged in on the correct URL, then check if there are any tickets that are reported by the other customers in that organization or not. Check if the customer is added as a customer admin or not by logging in to your DevRev application.\\n* You are not able to add customer", "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-1771_KNOWLEDGE_NODE-10", - "text": "approach to customer service. The result was faster responses, more accurate solutions, and a significantly improved customer experience.\\n\\nThe bottom line: A transformation in support operations\\n-------------------------------------------------------\\n\\nToughTrucksForKids\\' implementation of DevRev delivers concrete business results:\\n\\n* 64% reduction in ticket resolution time\\n* 83% improvement in first response time\\n* 30% increase in CSAT scores\\n* 20% increase in conversion rates\\n* 65%", - "title": "ToughTrucksForKids.com achieves dramatic efficiency gains and customer satisfaction through AI-powered support automation" + "id": "ART-1978_KNOWLEDGE_NODE-43", + "text": "with that email or not.\\n + This could also be because your customer hasn't logged in.\\n* Customer isn't able to view the tickets they have created.\\n\\n + Check if there are any reported tickets by that customer. You can do so by logging into your DevRev app and then going into the tickets section. Here you can filter based on **reported by** and see if any tickets have been reported by the customer who isn't able to view the tickets.\\n + Check if the customer has logged in on the correct", + "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-37", - "text": "filters and **Group** conditions across various vistas in DevRev to track specific work, capacity, and more.\\n\\nYou can add custom attributes to tickets to track additional information. For more information on custom attributes, see [object customization](./object-customization).\\n\\nIssues are attached to tickets in order to track efforts with product priorities.\\n\\nCreate a ticket\\n---------------\\n\\n1. Go to **Support** > **Tickets** from the sidebar on the left.\\n2. Click **New Ticket** on", + "id": "ART-1979_KNOWLEDGE_NODE-0", + "text": "b\"Tickets | Computer for Support Teams | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", "title": "Tickets | Computer for Support Teams | DevRev" }, + { + "id": "ART-1954_KNOWLEDGE_NODE-25", + "text": "DevRev](/docs/intro)\\n[Updates](/docs/product/updates)\\n\\nUpdates\\n=======\\n\\nUpdates help you stay on top of all your activity on DevRev.\\n\\nConversations, tickets, and issues where you are an owner, member, or creator, or where comments are made or you are @mentioned, are automatically shown in your updates. A group can also be mentioned here which will send a notification to all the members of the group. For other tickets and issues, you can follow them to receive some or all updates through", + "title": "Updates | Computer by DevRev | DevRev" + }, { "id": "ART-3207_KNOWLEDGE_NODE-47", "text": "**Primary Use Case** is **Tickets**, go to **Support** > **Tickets** in the DevRev app; otherwise, if the **Primary Use Case** is **Conversation** go to **Inbox**. Find and open your verification message here.\\n6. Open the given link to confirm the request. Make sure you click the link that allows your support address to be forwarded to v\\\\_\\\\_\\\\_\\\\_\\\\_\\\\_\\\\_\\\\_\\\\_\\\\_\\\\_@hooks.devrev.ai.\\n7. Go back to your Gmail forwarding settings, select **Forward a copy of incoming mail** and **Save", @@ -1820,30 +1835,15 @@ "text": "your communication requirements.\\n\\nThe visibility and interaction capabilities with a ticket in DevRev are determined by the user's role and how they were added to the email thread.\\n\\nEnd users\\n\\n* Original sender\\n\\n *Added to:* **Reported by** or **Email members** field.\\n\\n *Is able to:* View the ticket on the portal and reply via email.\\n* An end user in the same organization\\n\\n *Added to:* **To** or **CC** fields in the email thread; **Reported by** field, **Email members** field,", "title": "Email | Integrate | Snap-ins | DevRev" }, - { - "id": "ART-1978_KNOWLEDGE_NODE-43", - "text": "with that email or not.\\n + This could also be because your customer hasn't logged in.\\n* Customer isn't able to view the tickets they have created.\\n\\n + Check if there are any reported tickets by that customer. You can do so by logging into your DevRev app and then going into the tickets section. Here you can filter based on **reported by** and see if any tickets have been reported by the customer who isn't able to view the tickets.\\n + Check if the customer has logged in on the correct", - "title": "Customer portal | Computer for Support Teams | DevRev" - }, - { - "id": "ART-2046_KNOWLEDGE_NODE-29", - "text": "Ticket** button to create a ticket in DevRev by filling necessary attributes. You can turn this feature off in the app configuration if you want.\\n* To view comments on the tickets linked to the discussions that support teams had with customers or internally on DevRev, head over to the DevRev activity tab which is present in the same line as the **Comments** tab of Jira.\\n* To send comments from the Jira issue to the DevRev ticket, select the ticket from the dropdown, type in the comment, and", - "title": "DevRev for Jira app | Jira Software AirSync | AirSync | Snap-ins | DevRev" - }, - { - "id": "ART-2749_KNOWLEDGE_NODE-9", - "text": "within the teams by the support manager on a daily basis. It enables the manager to drive what is important using insight. It is working as expected, so we are happy with this Ticket Insights dashboard.\\n\\n![]()\\n\\nSrinivasa Rao BonigaSenior Director, Support Engineering\\n\\nThe bottom line: A transformation in support and development operations\\n-----------------------------------------------------------------------\\n\\nPhenom's implementation of DevRev delivers impressive business results:\\n\\n*", - "title": "Phenom transforms talent experience with streamlined support and development workflows" - }, - { - "id": "ART-3905_KNOWLEDGE_NODE-41", - "text": "transferred as attachments to the\\n issues.\\n\\n### Customers and organizations\\n\\n* Tickets in DevRev can only be attached to a single customer, so if multiple\\n organizations are linked to a Jira Service Management issue, the DevRev ticket\\n is only linked to the first of them.\\n* Customers in DevRev can only belong to a single account, so if a customer is a\\n part of multiple organizations in Jira Service Management, he will only be\\n linked to one of them in DevRev.\\n\\n###", - "title": "Jira Service Management AirSync | AirSync | Snap-ins | DevRev" - }, { "id": "ART-1028_KNOWLEDGE_NODE-19", "text": "teams\\n\\nJira bidirectional sync\\n\\nSupport team was able to create Jira tickets directly within DevRev\\n\\n### Related Articles\\n\\n[![]()\\n\\n5 min readLuxCreo boosts operational efficiency and agility with DevRev](/case-study/luxcreo)[![]()\\n\\n5 min readAditya Birla Capital optimizes user experience with DevRev](/case-study/aditya-birla-capital)[![]()\\n\\n4 min readJar improves customer insights and increased conversion rates using DevRev](/case-study/jar)[![]()\\n\\n3 min read ICICI Prudential", "title": "Uniphore builds a proactive support culture with DevRev" + }, + { + "id": "ART-1981_KNOWLEDGE_NODE-26", + "text": "a small number of tags to help categorize tickets. For example, at DevRev we have the following: bug, feature-request, other-request, question, and incident.\\n* Designate one or more customer experience engineers to be on call. Add them to the **Support** group inside **Settings > Groups** and as default owner in the **Support Routing** snap-in. Default owners are notified through email and the DevRev app as soon as a new conversation is started.\\n\\nMonitor the inbox\\n-----------------\\n\\n*", + "title": "Support best practices | Computer for Support Teams | DevRev" } ] }, @@ -1851,45 +1851,30 @@ "query_id": "5e261249-25ac-4221-a487-20a1dfaecdee", "query": "add banner message in portal not showing", "retrievals": [ - { - "id": "ART-1270_KNOWLEDGE_NODE-7", - "text": "widget is opened.\\n\\nON_PLUG_WIDGET_READY The PLuG widget is ready.\\n\\nON_PLUG_WIDGET_UNREAD_COUNT_CHANGE The user receives a new message to their PLuG. You can also listen to the number of unread messages and display that to your user.\\n\\n1 useEffect ( () => { 2 window. plugSDK. onEvent ( ( payload ) => { 3 if ( payload. type === PAYLOAD_TYPE ) { 4 //Your logic goes here 5 } 6 } ) ; 7 } , []) ; Toggle theme.\\n\\nThe toggle theme method allows you to dynamically modify the PLuG SDK\\xe2\\x80\\x99s", - "title": "Methods \u2014 DevRev | Docs" - }, { "id": "ART-1978_KNOWLEDGE_NODE-38", "text": "conversations on the portal.\\n3. Under **Styling**, upload a banner image which should be in the ratio of 6:1. You can also set light/dark mode for appearance and select your accent color.\\n4. If you want to enable customers to create tickets from the portal, under **Tabs** turn on **Enable ticket creation**. Assign default owner and part.\\n5. If you want to enable public ticket creation wherein unauthenticated users can create tickets, contact DevRev support.\\n6. Turn on the **Enable banner**", "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-1873_KNOWLEDGE_NODE-7", - "text": "Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/beta/api-reference/notifications/content-template-get-post)[#### List Content Template (POST)\\n\\nNext](/beta/api-reference/notifications/content-template-list-post)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "List Content Template | DevRev | Docs" - }, - { - "id": "ART-2901_KNOWLEDGE_NODE-21", - "text": "portal. \\n`DevRev.pauseRecording()`| Pauses the ongoing session recording. \\n`DevRev.resumeRecording()`| Resumes a paused session recording. \\n \\n### Session properties\\n\\nYou can add custom properties to the session recording to help you understand the context of the session. The properties are defined as a dictionary of string values.\\n\\n[code]\\n\\n 1| DevRev.addSessionProperties(_:) \\n ---|---\\n[/code] \\n \\nTo clear the session properties in scenarios such as user logout or when", - "title": "iOS integration \u2014 DevRev | Docs" - }, - { - "id": "ART-1875_KNOWLEDGE_NODE-5", - "text": "Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/beta/api-reference/notifications/content-template-get)[#### List Content Template\\n\\nNext](/beta/api-reference/notifications/content-template-list)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Get Content Template (POST) | DevRev | Docs" + "id": "ART-1978_KNOWLEDGE_NODE-37", + "text": "portal\\n-----------------------------\\n\\nYou can customize the look of your support portal to match your branding goals.\\n\\n1. Go to **Settings** > **Plug & Portal** > **Portal Settings**.\\n2. Under **Configuration**, enter your site name and upload your company logo.\\n * (Optional) Enable the footer and add your social media and text links in their respective fields.\\n * (Optional) Enable **Search** to get answers in search results.\\n * (Optional) Enable Plug widget to facilitate", + "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-2063_KNOWLEDGE_NODE-28", - "text": "**Plug Nudges**.\\n2. Click **+ Nudge**.\\n3. In the **Create new nudge** window, select **Banner** and click **Create**.\\n4. In the **Nudge Title** field, enter the nudge name.\\n5. In the **Content** field, enter the nudge title.\\n6. To enable the nudge close button, turn on the **Show a close button** toggle.\\n7. Select the banner color by clicking the color icon.\\n8. Use the **Action** drop-down menu to select the type of engagement you want your users to have when they click the nudge. The", - "title": "Nudges | Computer for Your Customers | DevRev" + "id": "ART-1978_KNOWLEDGE_NODE-39", + "text": "toggle and craft your own title and description.\\n7. Enable **Public portal** to allow unauthenticated users to view/search public articles.\\n8. Click **Save & publish** to make the changes visible on your portal.\\n\\nIf you want to customize the font color and favicon, contact DevRev support. For favicon customization, an icon in .ico format is needed.\\n\\nCustomize portal URL\\n--------------------\\n\\nBy default, your customer portal is hosted at support.devrev.ai/. The", + "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-2017_KNOWLEDGE_NODE-29", - "text": "ticket with part set as \"Feature 1\" should trigger a notification when the filter is set to \"Capability 1\" and this is a parent part of that feature. Set the toggle to the desired behavior.\\n4. Check the default message body and change it if you would like a different phrasing.\\n\\n[PreviousSet user preference for group](/docs/automations/set-user-preference)[NextSlash commands](/docs/automations/slash-commands)\\n\\n#### On this page\\n\\n* [Installation](#installation)\\n* [Configure the", - "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" + "id": "ART-1872_KNOWLEDGE_NODE-1", + "text": "|\\n| > | -H \"Authorization: Bearer \" \\\\ |\\n| > | -d id=id |\\n```\\n\\n[Try it](/beta/api-reference/notifications/content-template-get?explorer=true)\\n\\n200Retrieved\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"content_template\": { |\\n| 3 | \"created_by\": { |\\n| 4 | \"display_id\": \"string\", |\\n| 5 | \"id\": \"string\", |\\n| 6 | \"display_name\": \"string\", |\\n| 7 | \"display_picture\": { |\\n| 8 | \"display_id\": \"string\", |\\n| 9 | \"id\": \"string\", |\\n| 10 | \"file\": { |\\n| 11 | \"type\": \"string\", |\\n|", + "title": "Get Content Template | DevRev | Docs" }, { - "id": "ART-15716_KNOWLEDGE_NODE-23", - "text": "steps, your customer portal will be accessible at the custom domain you\\'ve chosen.Account and Authentication\\n\\nTroubleshooting Sign-Up Issues\\n\\nIf a user can\\xe2\\x80\\x99t sign up:\\n\\nConfirm which signup method they\\xe2\\x80\\x99re using (email, SSO, etc.).\\n\\nCheck if they\\xe2\\x80\\x99re seeing an error message\\xe2\\x80\\x94if so, note the exact wording.\\n\\nCommon blockers include: email already in use, password policy issues, or incomplete form fields.\\n\\nIf the issue persists after retrying,", - "title": "Support queries related playbook" + "id": "ART-15510_KNOWLEDGE_NODE-15", + "text": "`DevRev.stopRecording(successCallback, errorCallback)` | Ends the session recording and uploads it to the portal. |\\n| `DevRev.pauseRecording(successCallback, errorCallback)` | Pauses the ongoing session recording. |\\n| `DevRev.resumeRecording(successCallback, errorCallback)` | Resumes a paused session recording. |\\n\\n### Session properties\\n\\nYou can add custom properties to the session recording to help you understand the context of the session. The properties are defined as a map of string", + "title": "Features | DevRev | Docs" }, { "id": "ART-4255_KNOWLEDGE_NODE-19", @@ -1900,6 +1885,21 @@ "id": "ART-1873_KNOWLEDGE_NODE-1", "text": "\\\\ |\\n| > | -H \"Authorization: Bearer \" |\\n```\\n\\n[Try it](/beta/api-reference/notifications/content-template-list?explorer=true)\\n\\n200Retrieved\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"content_template\": [ |\\n| 3 | { |\\n| 4 | \"created_by\": { |\\n| 5 | \"display_id\": \"string\", |\\n| 6 | \"id\": \"string\", |\\n| 7 | \"display_name\": \"string\", |\\n| 8 | \"display_picture\": { |\\n| 9 | \"display_id\": \"string\", |\\n| 10 | \"id\": \"string\", |\\n| 11 | \"file\": { |\\n| 12 | \"type\": \"string\", |\\n| 13 |", "title": "List Content Template | DevRev | Docs" + }, + { + "id": "ART-1820_KNOWLEDGE_NODE-1", + "text": "\\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\ |\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{ |\\n| > | \"notifications\": [ |\\n| > | { |\\n| > | \"event_type\": \"alert\", |\\n| > | \"metadata\": [ |\\n| > | { |\\n| > | \"content_template\": \"string\" |\\n| > | } |\\n| > | ] |\\n| > | } |\\n| > | ] |\\n| > | }\\' |\\n```\\n\\n[Try it](/beta/api-reference/notifications/send?explorer=true)\\n\\n200Successful\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | {} |\\n```\\n\\nGenerate a notification.\\n\\n###", + "title": "Send Notifications | DevRev | Docs" + }, + { + "id": "ART-2982_KNOWLEDGE_NODE-16", + "text": "\\n`DevRev.stopRecording()`| Ends the session recording and uploads it to the portal. \\n`DevRev.pauseRecording()`| Pauses the ongoing session recording. \\n`DevRev.resumeRecording()`| Resumes a paused session recording. \\n \\n### Session properties\\n\\nYou can add custom properties to the session recording to help you understand the context of the session. The properties are defined as a map of string values.\\n\\n[code]\\n\\n 1| DevRev.addSessionProperties(properties: Map) \\n", + "title": "React Native integration \u2014 DevRev | Docs" + }, + { + "id": "ART-15716_KNOWLEDGE_NODE-23", + "text": "steps, your customer portal will be accessible at the custom domain you\\'ve chosen.Account and Authentication\\n\\nTroubleshooting Sign-Up Issues\\n\\nIf a user can\\xe2\\x80\\x99t sign up:\\n\\nConfirm which signup method they\\xe2\\x80\\x99re using (email, SSO, etc.).\\n\\nCheck if they\\xe2\\x80\\x99re seeing an error message\\xe2\\x80\\x94if so, note the exact wording.\\n\\nCommon blockers include: email already in use, password policy issues, or incomplete form fields.\\n\\nIf the issue persists after retrying,", + "title": "Support queries related playbook" } ] }, @@ -1913,24 +1913,19 @@ "title": "Support queries related playbook" }, { - "id": "ART-2047_KNOWLEDGE_NODE-26", - "text": "corresponding DevRev equivalent. Those marked as **Sync to DevRev** are eligible for import/sync to DevRev from Salesforce. Those marked as **Sync to Salesforce** are eligible to be synced to Salesforce from DevRev.\\n\\n| Salesforce Object | DevRev Object | Sync to DevRev | Sync to Salesforce |\\n| --- | --- | --- | --- |\\n| Case | Ticket | \\xe2\\x9c\\x85 | \\xe2\\x9c\\x85 |\\n| Task | Ticket | \\xe2\\x9c\\x85 | \\xe2\\x9c\\x85 |\\n| Problem | Ticket | \\xe2\\x9c\\x85 | \\xe2\\x9c\\x85 |\\n| Incident | Ticket |", + "id": "ART-2047_KNOWLEDGE_NODE-37", + "text": "**Settings** > **Integrations** > **AirSyncs**.\\n2. Locate the previously imported project.\\n3. Select **\\xe2\\x8b\\xae** > **Sync DevRev to Salesforce Service**.\\n\\n![]()\\n\\nThis may override fields in Salesforce of previously imported items, even if they were modified in Salesforce.\\n\\n#### Mark a DevRev ticket for syncing\\n\\nUsing the [Sync to Salesforce](#sync-to-salesforce) feature, it\\'s possible to sync DevRev tickets to Salesforce. In order to sync a DevRev ticket to a specific Salesforce", "title": "Salesforce AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-2045_KNOWLEDGE_NODE-56", - "text": "the relationship to other accounts is dropped.\\n + Contact changes of Account in an external system are not reflected in DevRev after the initial sync.\\n + Contacts have an external reference that may be populated by email or source ID. This is an internal mapping and may not show up in the Mappings page.\\n* Account\\n + Accounts in DevRev have both Websites and Domains fields. Mapping from external source is typically done to DevRev\\'s Websites field and then a stripped down version is added", - "title": "AirSync | Snap-ins | DevRev" - }, - { - "id": "ART-2047_KNOWLEDGE_NODE-39", - "text": "created in the specified Salesforce account the next time the Sync from [DevRev to Salesforce](#sync-to-salesforce) runs. This can be triggered manually or automatically through a Periodic Sync. Future syncs keeps this item updated on both sides after it has been created in Salesforce.\\n\\n### Historical AirSyncs\\n\\nTo view currently running and previous AirSyncs from various sources, do the following:\\n\\n1. Go to **Settings** > **Integrations** > **AirSyncs**.\\n2. Select the import you want to", + "id": "ART-2047_KNOWLEDGE_NODE-36", + "text": "DevRev**.\\n\\n![]()\\n\\nThis may override fields in previously imported items, even if they were modified in DevRev.\\n\\n### Sync to Salesforce\\n\\nAfter a successful import from a Salesforce account, you can sync changes made in DevRev to the previously imported cases back to Salesforce. Additionally, any new [DevRev tickets marked for sync](#mark-a-devrev-ticket-for-syncing) is created as new Salesforce items.\\n\\nTo perform a one-time sync to Salesforce, follow these steps:\\n\\n1. Go to", "title": "Salesforce AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-2038_KNOWLEDGE_NODE-32", - "text": "contacts\\nand any changes made to previously imported items from Hubspot.\\n\\nTo perform a one-time sync to DevRev, follow these steps:\\n\\n1. Go to **Settings** > **Integrations** > **AirSyncs**.\\n2. Locate the previously imported project.\\n3. Select the **\\xe2\\x8b\\xae** > **Sync HubSpot to DevRev** option.\\n\\n![]()\\n\\nPlease be aware that this may override fields in previously imported\\nitems, even if they were modified in DevRev.\\n\\n### Historical AirSyncs\\n\\nTo view currently running and", - "title": "Hubspot AirSync | AirSync | Snap-ins | DevRev" + "id": "ART-2047_KNOWLEDGE_NODE-35", + "text": "longer available.\\n\\n### Sync to DevRev\\n\\nAfter a successful import from a Salesforce account, you can choose to sync the imported data with DevRev. This feature airdrops any new items and any changes made to previously imported items from Salesforce.\\n\\nTo perform a one-time sync to DevRev, follow these steps:\\n\\n1. Go to **Settings** > **Integrations** > **AirSyncs**.\\n2. Locate the previously imported project.\\n3. Select **\\xe2\\x8b\\xae** > **Sync Salesforce Service to", + "title": "Salesforce AirSync | AirSync | Snap-ins | DevRev" }, { "id": "ART-2047_KNOWLEDGE_NODE-33", @@ -1938,23 +1933,28 @@ "title": "Salesforce AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-2047_KNOWLEDGE_NODE-37", - "text": "**Settings** > **Integrations** > **AirSyncs**.\\n2. Locate the previously imported project.\\n3. Select **\\xe2\\x8b\\xae** > **Sync DevRev to Salesforce Service**.\\n\\n![]()\\n\\nThis may override fields in Salesforce of previously imported items, even if they were modified in Salesforce.\\n\\n#### Mark a DevRev ticket for syncing\\n\\nUsing the [Sync to Salesforce](#sync-to-salesforce) feature, it\\'s possible to sync DevRev tickets to Salesforce. In order to sync a DevRev ticket to a specific Salesforce", + "id": "ART-2047_KNOWLEDGE_NODE-26", + "text": "corresponding DevRev equivalent. Those marked as **Sync to DevRev** are eligible for import/sync to DevRev from Salesforce. Those marked as **Sync to Salesforce** are eligible to be synced to Salesforce from DevRev.\\n\\n| Salesforce Object | DevRev Object | Sync to DevRev | Sync to Salesforce |\\n| --- | --- | --- | --- |\\n| Case | Ticket | \\xe2\\x9c\\x85 | \\xe2\\x9c\\x85 |\\n| Task | Ticket | \\xe2\\x9c\\x85 | \\xe2\\x9c\\x85 |\\n| Problem | Ticket | \\xe2\\x9c\\x85 | \\xe2\\x9c\\x85 |\\n| Incident | Ticket |", "title": "Salesforce AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-2047_KNOWLEDGE_NODE-36", - "text": "DevRev**.\\n\\n![]()\\n\\nThis may override fields in previously imported items, even if they were modified in DevRev.\\n\\n### Sync to Salesforce\\n\\nAfter a successful import from a Salesforce account, you can sync changes made in DevRev to the previously imported cases back to Salesforce. Additionally, any new [DevRev tickets marked for sync](#mark-a-devrev-ticket-for-syncing) is created as new Salesforce items.\\n\\nTo perform a one-time sync to Salesforce, follow these steps:\\n\\n1. Go to", + "id": "ART-2047_KNOWLEDGE_NODE-39", + "text": "created in the specified Salesforce account the next time the Sync from [DevRev to Salesforce](#sync-to-salesforce) runs. This can be triggered manually or automatically through a Periodic Sync. Future syncs keeps this item updated on both sides after it has been created in Salesforce.\\n\\n### Historical AirSyncs\\n\\nTo view currently running and previous AirSyncs from various sources, do the following:\\n\\n1. Go to **Settings** > **Integrations** > **AirSyncs**.\\n2. Select the import you want to", "title": "Salesforce AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-2991_KNOWLEDGE_NODE-26", - "text": "Contacts**: Set to true if you want to import contacts.\\n * Set Sync Opportunities to true if you want to import opportunities.\\n5. Click **Save**.\\n6. Execute the /initialize\\\\_mapping command in the snap-in **Discussions** tab. This step ensures that custom fields from Snowflake map correctly to the DevRev schema.\\n7. Once the mapping step is completed then every day at **12 UTC** the snap-in would start importing the accounts, contacts and opportunities object from Snowflake to DevRev.\\n8.", - "title": "Snowflake | Integrate | Snap-ins | DevRev" + "id": "ART-13117_KNOWLEDGE_NODE-5", + "text": "don't care about updates from Zendesk. How should I set up everything in DevRev?\\n\\nYou should tell your customer support representative that you want to enable merging of accounts for Salesforce and Zendesk syncs, and that you would like to sync updates from Salesforce even after merging. After the Airdrop team has enabled the automatic merging you should do a full Salesforce import, so that all the accounts from Salesforce are imported into DevRev. Then you can do a Zendesk import into", + "title": "Airdrop duplicates merging" }, { - "id": "ART-2047_KNOWLEDGE_NODE-35", - "text": "longer available.\\n\\n### Sync to DevRev\\n\\nAfter a successful import from a Salesforce account, you can choose to sync the imported data with DevRev. This feature airdrops any new items and any changes made to previously imported items from Salesforce.\\n\\nTo perform a one-time sync to DevRev, follow these steps:\\n\\n1. Go to **Settings** > **Integrations** > **AirSyncs**.\\n2. Locate the previously imported project.\\n3. Select **\\xe2\\x8b\\xae** > **Sync Salesforce Service to", + "id": "ART-2047_KNOWLEDGE_NODE-24", + "text": "options](#post-import-options)\\n* [Sync to DevRev](#sync-to-devrev)\\n* [Sync to Salesforce](#sync-to-salesforce)\\n* [Mark a DevRev ticket for syncing](#mark-a-devrev-ticket-for-syncing)\\n* [AirSync Salesforce scope and limitations](#airsync-salesforce-scope-and-limitations)\\n* [Comments](#comments)\\n* [Updates](#updates)\\n* [Knowledge articles](#knowledge-articles)\\n\\n1. [Documentation](/docs)\\n3. [Snap-ins](/docs/snapins)\\n[AirSync](/docs/import)\\n[Salesforce", + "title": "Salesforce AirSync | AirSync | Snap-ins | DevRev" + }, + { + "id": "ART-2047_KNOWLEDGE_NODE-30", + "text": "it\\'s your first).\\n2. Create a new connection to your Salesforce account, or use an existing connection if you already have one.\\n3. Once the connection is established, select the Salesforce account you want to import and specify the DevRev part that should be used for any imported cases without a product. This initiates a bulk import of the selected account.\\n4. DevRev makes an effort to automatically map the fields from Salesforce to corresponding fields in DevRev. However, you may be", "title": "Salesforce AirSync | AirSync | Snap-ins | DevRev" } ] @@ -1964,52 +1964,52 @@ "query": "best way to export accounts in bulk", "retrievals": [ { - "id": "ART-1254_KNOWLEDGE_NODE-9", - "text": "Export Accounts (POST)\\n\\nNext](/api-reference/accounts/export-post)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Export Accounts | DevRev | Docs" + "id": "ART-1303_KNOWLEDGE_NODE-6", + "text": "exported accounts.\\nShow 18 properties\\nGET / accounts.export\\n$ curl -G https://api.devrev.ai/accounts.export \\\\ > -H \" Authorization: Bearer \" \\\\ > --data-urlencode created_date.after=2023-01-01T12:00:00Z \\\\ > --data-urlencode created_date.before=2023-01-01T12:00:00Z \\\\ > --data-urlencode modified_date.after=2023-01-01T12:00:00Z \\\\ > --data-urlencode modified_date.before=2023-01-01T12:00:00Z\\n200 Retrieved 1 { 2 \" accounts \" : [ 3 { 4 \" created_date \" : \" 2023-01-01T12:00:00Z \" , 5 \"", + "title": "Export Post \u2014 DevRev | Docs" }, { "id": "ART-1254_KNOWLEDGE_NODE-0", "text": "b'Export Accounts | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[accounts](/api-reference/accounts/accounts)\\n\\nExport Accounts\\n===============\\n\\nCopy page\\n\\nGET\\n\\nhttps://api.devrev.ai/accounts.export\\n\\nGET\\n\\n/accounts.export\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl https://api.devrev.ai/accounts.export \\\\ |\\n| > | -H \"Authorization: Bearer \" |\\n```\\n\\n[Try", "title": "Export Accounts | DevRev | Docs" }, - { - "id": "ART-1449_KNOWLEDGE_NODE-0", - "text": "b'[](/public/api-reference/accounts/export)\\n\\nPublic\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources", - "title": "Export Accounts \u2014 DevRev | Docs" - }, { "id": "ART-1255_KNOWLEDGE_NODE-0", "text": "b'Export Accounts (POST) | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[accounts](/api-reference/accounts/accounts)\\n\\nExport Accounts (POST)\\n======================\\n\\nCopy page\\n\\nPOST\\n\\nhttps://api.devrev.ai/accounts.export\\n\\nPOST\\n\\n/accounts.export\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl -X POST https://api.devrev.ai/accounts.export \\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\", "title": "Export Accounts (POST) | DevRev | Docs" }, { - "id": "ART-2873_KNOWLEDGE_NODE-28", - "text": "following command:\\n\\n```\\n```\\n1 /bulk_delete\\n```\\n```\\n\\nSelect the among one of the following:\\n\\n* Tickets\\n* Issues\\n* Accounts\\n* Contacts\\n* Opportunities\\n* Articles\\n\\n1. After entering the command, select the object type you want to delete from the list. Tags linked to these objects will be displayed for confirmation.\\n2. The repurcussions of deletion will be informed to the user before they are allowed to confirm whether they wish to proceed with the deletion.\\n3. The", - "title": "Bulk delete data | Automate | Snap-ins | DevRev" + "id": "ART-2000_KNOWLEDGE_NODE-24", + "text": "accounts](#bulk-import-accounts)\\n* [Using DevRev APIs](#using-devrev-apis)\\n* [Account attributes](#account-attributes)\\n* [External reference](#external-reference)\\n* [Add a workspace](#add-a-workspace)\\n\\n1. [Documentation](/docs)\\n3. [Computer for Growth Teams](/docs/product/grow)\\n[Accounts](/docs/product/account)\\n\\nAccount\\n=======\\n\\nAn account represents a customer organization, and it holds information about the company, including its name, address, industry, domain, and website", + "title": "Accounts | Computer for Growth Teams | DevRev" }, { - "id": "ART-1255_KNOWLEDGE_NODE-1", - "text": "|\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{}\\' |\\n```\\n\\n[Try it](/api-reference/accounts/export-post?explorer=true)\\n\\n200Successful\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"accounts\": [ |\\n| 3 | { |\\n| 4 | \"id\": \"string\", |\\n| 5 | \"owned_by\": [ |\\n| 6 | { |\\n| 7 | \"display_id\": \"string\", |\\n| 8 | \"id\": \"string\", |\\n| 9 | \"display_name\": \"string\", |\\n| 10 | \"display_picture\": { |\\n| 11 | \"display_id\": \"string\", |\\n| 12 | \"id\": \"string\", |\\n| 13 | \"file\": { |\\n| 14", - "title": "Export Accounts (POST) | DevRev | Docs" + "id": "ART-1305_KNOWLEDGE_NODE-6", + "text": "exported accounts.\\nShow 18 properties\\nAPI Reference accounts Export Post.\\n\\nPOST https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nRequest.\\n\\nThis endpoint expects an object.\\ncreated_by list of strings Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date object Optional\\nShow 2 properties\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name list of strings Optional\\nArray of display names of accounts", + "title": "Get Post \u2014 DevRev | Docs" }, { - "id": "ART-1303_KNOWLEDGE_NODE-6", - "text": "exported accounts.\\nShow 18 properties\\nGET / accounts.export\\n$ curl -G https://api.devrev.ai/accounts.export \\\\ > -H \" Authorization: Bearer \" \\\\ > --data-urlencode created_date.after=2023-01-01T12:00:00Z \\\\ > --data-urlencode created_date.before=2023-01-01T12:00:00Z \\\\ > --data-urlencode modified_date.after=2023-01-01T12:00:00Z \\\\ > --data-urlencode modified_date.before=2023-01-01T12:00:00Z\\n200 Retrieved 1 { 2 \" accounts \" : [ 3 { 4 \" created_date \" : \" 2023-01-01T12:00:00Z \" , 5 \"", - "title": "Export Post \u2014 DevRev | Docs" + "id": "ART-1650_KNOWLEDGE_NODE-6", + "text": "exported accounts.\\nShow 18 properties\\nAPI Reference accounts Export Post.\\n\\nPOST https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nRequest.\\n\\nThis endpoint expects an object.\\ncreated_by list of strings Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date object Optional\\nShow 2 properties\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name list of strings Optional\\nArray of display names of accounts", + "title": "List Post \u2014 DevRev | Docs" }, { - "id": "ART-1827_KNOWLEDGE_NODE-6", + "id": "ART-1824_KNOWLEDGE_NODE-6", "text": "exported accounts.\\nShow 18 properties\\nAPI Reference accounts Export Post.\\n\\nPOST https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nRequest.\\n\\nThis endpoint expects an object.\\ncreated_by list of strings Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date object Optional\\nShow 2 properties\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name list of strings Optional\\nArray of display names of accounts", - "title": "Update \u2014 DevRev | Docs" + "title": "Delete \u2014 DevRev | Docs" }, { - "id": "ART-1654_KNOWLEDGE_NODE-6", + "id": "ART-1593_KNOWLEDGE_NODE-6", "text": "exported accounts.\\nShow 18 properties\\nAPI Reference accounts Export Post.\\n\\nPOST https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nRequest.\\n\\nThis endpoint expects an object.\\ncreated_by list of strings Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date object Optional\\nShow 2 properties\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name list of strings Optional\\nArray of display names of accounts", - "title": "List \u2014 DevRev | Docs" + "title": "Get \u2014 DevRev | Docs" + }, + { + "id": "ART-1802_KNOWLEDGE_NODE-6", + "text": "exported accounts.\\nShow 18 properties\\nAPI Reference accounts Export Post.\\n\\nPOST https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nRequest.\\n\\nThis endpoint expects an object.\\ncreated_by list of strings Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date object Optional\\nShow 2 properties\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name list of strings Optional\\nArray of display names of accounts", + "title": "Get Post \u2014 DevRev | Docs" }, { - "id": "ART-1828_KNOWLEDGE_NODE-6", + "id": "ART-1643_KNOWLEDGE_NODE-6", "text": "exported accounts.\\nShow 18 properties\\nAPI Reference accounts Export Post.\\n\\nPOST https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nRequest.\\n\\nThis endpoint expects an object.\\ncreated_by list of strings Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date object Optional\\nShow 2 properties\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name list of strings Optional\\nArray of display names of accounts", "title": "List Post \u2014 DevRev | Docs" } @@ -2019,55 +2019,55 @@ "query_id": "1b7f0c03-5c55-403e-baf4-242b8d91bbe7", "query": "copy schema subtype deal registration leaf type of account", "retrievals": [ - { - "id": "ART-2683_KNOWLEDGE_NODE-3", - "text": "**Subtype** : A categorization of a leaf type. For example, \\xe2\\x80\\x9cpromotion\\xe2\\x80\\x9d or \\xe2\\x80\\x9cadvertising\\xe2\\x80\\x9d for a \\xe2\\x80\\x9ccampaign\\xe2\\x80\\x9d leaf type.\\n 3. **Schema fragment** : A schema fragment defines the schema for an object.\\n 4. **Custom fields** : User-defined fields that store specific data for your custom object.\\n 5. **Unique key** : A unique identifier for each custom object. This is useful for maintaining idempotency when retrying custom object", - "title": "Custom objects (Beta) \u2014 DevRev | Docs" - }, { "id": "ART-15337_KNOWLEDGE_NODE-19", "text": "subtype.\\n\\nis\\\\_custom\\\\_leaf\\\\_typebooleanOptional\\n\\nWhether the leaf type corresponds to a custom object.\\n\\nleaf\\\\_typestringOptional`format: \"text\"`\\n\\nThe leaf type. Used for inferring the default stage diagram and\\ntenant fragment ID.\\n\\nstock\\\\_schema\\\\_fragmentstringOptional`format: \"id\"`\\n\\nThe stock schema fragment which is to be aggregated.\\n\\n### Response\\n\\nSuccess.\\n\\nschemaobject\\n\\nList of custom fields from multiple source fragments.\\n\\nShow 13 properties\\n\\n###", "title": "Get Schemas Aggregated | DevRev | Docs" }, { - "id": "ART-5010_KNOWLEDGE_NODE-24", - "text": "[Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[Subtype Migration](/docs/automations/subtype-migration)\\n\\nSubtype Migration\\n=================\\n\\nThe [Subtype Migration snap-in](https://marketplace.devrev.ai/marketplace/subtype-migration) is designed to facilitate the seamless transition of work items (tickets and issues) from one custom schema subtype to another. It efficiently handles large volumes of work items by processing them in batches, transferring custom field values between", - "title": "Subtype Migration | Automate | Snap-ins | DevRev" - }, - { - "id": "ART-15342_KNOWLEDGE_NODE-1", - "text": "https://api.devrev.ai/schemas.subtypes.prepare-update \\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\ |\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{ |\\n| > | \"leaf_type\": \"string\" |\\n| > | }\\' |\\n```\\n\\n[Try it](/api-reference/customization/schemas-subtype-prepare-update-get?explorer=true)\\n\\n200Successful\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"added_fields\": [ |\\n| 3 | { |\\n| 4 | \"name\": \"string\", |\\n| 5 | \"default_value\": null |\\n| 6 | } |\\n| 7 | ], |\\n| 8 |", - "title": "Prepare-Update Schemas Subtypes | DevRev | Docs" + "id": "ART-1602_KNOWLEDGE_NODE-2", + "text": "DONs which are to be aggregated.\\n\\ncustom_schema_spec.appslist of stringsOptional\\n\\nList of apps.\\n\\ncustom_schema_spec.subtypestringOptional`format: \"text\"`\\n\\nName of the subtype.\\n\\nis_custom_leaf_typebooleanOptional\\n\\nWhether the leaf type corresponds to a custom object.\\n\\nleaf_typestringOptional`format: \"text\"`\\n\\nThe leaf type. Used for inferring the default stage diagram and tenant fragment ID.\\n\\nstock_schema_fragment_idstringOptional`format: \"id\"`\\n\\nThe stock schema fragment which", + "title": "Get Schemas Aggregated (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1792_KNOWLEDGE_NODE-229", - "text": "leaf types for which subtypes are required.\\nResponse.\\n\\nThis endpoint returns an object.\\nsubtypes list of objects\\nList of subtypes.\\nShow 4 properties\\nAPI Reference customization Subtypes List Post.\\n\\nPOST https:// api.devrev.ai / schemas.subtypes.list\\nLists subtypes.\\nRequest.\\n\\nThis endpoint expects an object.\\nleaf_type string Optional\\nLeaf type for which subtypes are required.\\nleaf_types list of strings Optional\\nList of leaf types for which subtypes are", - "title": "Update \u2014 DevRev | Docs" + "id": "ART-15502_KNOWLEDGE_NODE-3", + "text": "\\xe2\\x80\\x9ccampaign\\xe2\\x80\\x9d.\\n2. **Subtype**: A categorization of a leaf type. For example, \\xe2\\x80\\x9cpromotion\\xe2\\x80\\x9d or \\xe2\\x80\\x9cadvertising\\xe2\\x80\\x9d for a \\xe2\\x80\\x9ccampaign\\xe2\\x80\\x9d leaf type.\\n3. **Schema fragment**: A schema fragment defines the schema for an object.\\n4. **Custom fields**: User-defined fields that store specific data for your custom object.\\n5. **ID prefix**: A unique prefix used to generate the display ID for the custom object. If the `id_prefix`", + "title": "Custom objects | DevRev | Docs" }, { - "id": "ART-15502_KNOWLEDGE_NODE-8", - "text": "> | \"field_type\": \"enum\", |\\n| > | \"description\": \"Target audience for the campaign\", |\\n| > | \"allowed_values\": [ |\\n| > | \"Professionals\", |\\n| > | \"Students\" |\\n| > | ] |\\n| > | } |\\n| > | ] |\\n| > | }\\' |\\n```\\n\\nNote that for custom object schemas, `is_custom_leaf_type` must be set to `true` to\\ndifferentiate it from standard DevRev object schemas.\\n\\nOnce the schema is created, you can create a custom object of type \\xe2\\x80\\x9cCampaign\\xe2\\x80\\x9d:\\n\\n```\\n| | |\\n| --- | --- |\\n| $ |", - "title": "Custom objects | DevRev | Docs" + "id": "ART-2683_KNOWLEDGE_NODE-3", + "text": "**Subtype** : A categorization of a leaf type. For example, \\xe2\\x80\\x9cpromotion\\xe2\\x80\\x9d or \\xe2\\x80\\x9cadvertising\\xe2\\x80\\x9d for a \\xe2\\x80\\x9ccampaign\\xe2\\x80\\x9d leaf type.\\n 3. **Schema fragment** : A schema fragment defines the schema for an object.\\n 4. **Custom fields** : User-defined fields that store specific data for your custom object.\\n 5. **Unique key** : A unique identifier for each custom object. This is useful for maintaining idempotency when retrying custom object", + "title": "Custom objects (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-15502_KNOWLEDGE_NODE-3", - "text": "\\xe2\\x80\\x9ccampaign\\xe2\\x80\\x9d.\\n2. **Subtype**: A categorization of a leaf type. For example, \\xe2\\x80\\x9cpromotion\\xe2\\x80\\x9d or \\xe2\\x80\\x9cadvertising\\xe2\\x80\\x9d for a \\xe2\\x80\\x9ccampaign\\xe2\\x80\\x9d leaf type.\\n3. **Schema fragment**: A schema fragment defines the schema for an object.\\n4. **Custom fields**: User-defined fields that store specific data for your custom object.\\n5. **ID prefix**: A unique prefix used to generate the display ID for the custom object. If the `id_prefix`", - "title": "Custom objects | DevRev | Docs" + "id": "ART-1780_KNOWLEDGE_NODE-226", + "text": "leaf types for which subtypes are required.\\nResponse.\\n\\nThis endpoint returns an object.\\nsubtypes list of objects\\nList of subtypes.\\nShow 4 properties\\nAPI Reference customization Subtypes List Post.\\n\\nPOST https:// api.devrev.ai / schemas.subtypes.list\\nLists subtypes.\\nRequest.\\n\\nThis endpoint expects an object.\\nleaf_type string Optional\\nLeaf type for which subtypes are required.\\nleaf_types list of strings Optional\\nList of leaf types for which subtypes are", + "title": "Get Post \u2014 DevRev | Docs" }, { - "id": "ART-1301_KNOWLEDGE_NODE-231", + "id": "ART-1786_KNOWLEDGE_NODE-226", "text": "leaf types for which subtypes are required.\\nResponse.\\n\\nThis endpoint returns an object.\\nsubtypes list of objects\\nList of subtypes.\\nShow 4 properties\\nAPI Reference customization Subtypes List Post.\\n\\nPOST https:// api.devrev.ai / schemas.subtypes.list\\nLists subtypes.\\nRequest.\\n\\nThis endpoint expects an object.\\nleaf_type string Optional\\nLeaf type for which subtypes are required.\\nleaf_types list of strings Optional\\nList of leaf types for which subtypes are", "title": "Delete \u2014 DevRev | Docs" }, { - "id": "ART-1602_KNOWLEDGE_NODE-2", - "text": "DONs which are to be aggregated.\\n\\ncustom_schema_spec.appslist of stringsOptional\\n\\nList of apps.\\n\\ncustom_schema_spec.subtypestringOptional`format: \"text\"`\\n\\nName of the subtype.\\n\\nis_custom_leaf_typebooleanOptional\\n\\nWhether the leaf type corresponds to a custom object.\\n\\nleaf_typestringOptional`format: \"text\"`\\n\\nThe leaf type. Used for inferring the default stage diagram and tenant fragment ID.\\n\\nstock_schema_fragment_idstringOptional`format: \"id\"`\\n\\nThe stock schema fragment which", - "title": "Get Schemas Aggregated (Beta) \u2014 DevRev | Docs" + "id": "ART-1308_KNOWLEDGE_NODE-228", + "text": "leaf types for which subtypes are required.\\nResponse.\\n\\nThis endpoint returns an object.\\nsubtypes list of objects\\nList of subtypes.\\nShow 4 properties\\nAPI Reference customization Subtypes List Post.\\n\\nPOST https:// api.devrev.ai / schemas.subtypes.list\\nLists subtypes.\\nRequest.\\n\\nThis endpoint expects an object.\\nleaf_type string Optional\\nLeaf type for which subtypes are required.\\nleaf_types list of strings Optional\\nList of leaf types for which subtypes are", + "title": "Update \u2014 DevRev | Docs" }, { "id": "ART-1302_KNOWLEDGE_NODE-231", "text": "leaf types for which subtypes are required.\\nResponse.\\n\\nThis endpoint returns an object.\\nsubtypes list of objects\\nList of subtypes.\\nShow 4 properties\\nAPI Reference customization Subtypes List Post.\\n\\nPOST https:// api.devrev.ai / schemas.subtypes.list\\nLists subtypes.\\nRequest.\\n\\nThis endpoint expects an object.\\nleaf_type string Optional\\nLeaf type for which subtypes are required.\\nleaf_types list of strings Optional\\nList of leaf types for which subtypes are", "title": "Export \u2014 DevRev | Docs" + }, + { + "id": "ART-1301_KNOWLEDGE_NODE-231", + "text": "leaf types for which subtypes are required.\\nResponse.\\n\\nThis endpoint returns an object.\\nsubtypes list of objects\\nList of subtypes.\\nShow 4 properties\\nAPI Reference customization Subtypes List Post.\\n\\nPOST https:// api.devrev.ai / schemas.subtypes.list\\nLists subtypes.\\nRequest.\\n\\nThis endpoint expects an object.\\nleaf_type string Optional\\nLeaf type for which subtypes are required.\\nleaf_types list of strings Optional\\nList of leaf types for which subtypes are", + "title": "Delete \u2014 DevRev | Docs" + }, + { + "id": "ART-1792_KNOWLEDGE_NODE-229", + "text": "leaf types for which subtypes are required.\\nResponse.\\n\\nThis endpoint returns an object.\\nsubtypes list of objects\\nList of subtypes.\\nShow 4 properties\\nAPI Reference customization Subtypes List Post.\\n\\nPOST https:// api.devrev.ai / schemas.subtypes.list\\nLists subtypes.\\nRequest.\\n\\nThis endpoint expects an object.\\nleaf_type string Optional\\nLeaf type for which subtypes are required.\\nleaf_types list of strings Optional\\nList of leaf types for which subtypes are", + "title": "Update \u2014 DevRev | Docs" } ] }, @@ -2076,14 +2076,9 @@ "query": "Automatic case classification by product, severity, and category", "retrievals": [ { - "id": "ART-17219_KNOWLEDGE_NODE-15", - "text": "| { |\\n| 2 | \"record_types\":{ |\\n| 3 | \"issues_stock_epic\":{ |\\n| 4 | \"name\":\"Epic\" |\\n| 5 | }, |\\n| 6 | \"issues_custom2321\":{ |\\n| 7 | \"name\":\"Incident report\" |\\n| 8 | }, |\\n| 9 | \"issues_custom2322\":{ |\\n| 10 | \"name\":\"Problem\" |\\n| 11 | }, |\\n| 12 | \"comments\":{ |\\n| 13 | \"name\":\"Comment\" |\\n| 14 | } |\\n| 15 | } |\\n| 16 | } |\\n```\\n\\n[4](/airsync/metadata-extraction#categorize-external-record-types)\\n\\n### Categorize external record types\\n\\nThe metadata allows each external record type to", - "title": "Metadata extraction | DevRev | Docs" - }, - { - "id": "ART-4177_KNOWLEDGE_NODE-10", - "text": "productivity across the organization](/case-study/goodmeetings)[![]()\\n\\nDescope streamlines support at scale with automation, AI, and unified collaboration\\n\\nDescope streamlines support at scale with automation, AI, and unified collaboration](/case-study/descope)[![]()\\n\\nRocketium brings agility to product development through a unified platform\\n\\nFind out how Rocketium uses DevRev to assimilate customer feedback and expedite time to market.](/case-study/rocketium)\\n\\nFounder\\xe2\\x80\\x99s", - "title": "DevRev University - DevRev for Startups" + "id": "ART-4181_KNOWLEDGE_NODE-8", + "text": "metrics such as response time and resolution time, or tailor metrics to your requirements\\n\\n![]()\\n\\nTrigger SLAs at the right moment, every time\\n\\nMap conditions to parts of your product, tags, severity levels, or any other relevant criteria on our simple UI\\n\\n![]()\\n\\nTrigger SLAs at the right moment, every time\\n\\nMap conditions to parts of your product, tags, severity levels, or any other relevant criteria on our simple UI\\n\\n![]()\\n\\nSLAs in sync with your business\\n\\nAccount for", + "title": "Support like a lightning fast pit-crew" }, { "id": "ART-4181_KNOWLEDGE_NODE-4", @@ -2091,39 +2086,44 @@ "title": "Support like a lightning fast pit-crew" }, { - "id": "ART-4129_KNOWLEDGE_NODE-22", - "text": "incidents with any of the provided subtypes.\\n\\nsync\\\\_metadataobjectOptional\\n\\nShow 4 properties\\n\\ntarget\\\\_close\\\\_dateobjectOptional\\n\\nProvides ways to specify date ranges on objects.\\n\\nShow 2 variants\\n\\ntitlelist of stringsOptional\\n\\nFilters for incidents by the provided titles.\\n\\nsourcelist of longsOptionalDeprecated\\n\\nFilters for incidents with any of the provided sources.\\n\\n### Response\\n\\nSuccess.\\n\\ngroupslist of objects\\n\\nThe list of groups.\\n\\nShow 5", - "title": "Group Incidents (POST) | DevRev | Docs" - }, - { - "id": "ART-4130_KNOWLEDGE_NODE-16", - "text": "field to group the incidents by.\\n\\napplies\\\\_to\\\\_partslist of stringsOptional\\n\\nFilters for incidents that apply to any of the provided parts.\\n\\ncreated\\\\_bylist of stringsOptional\\n\\nFilters for incidents created by any of the provided users.\\n\\ncursorstringOptional`format: \"text\"`\\n\\nThe cursor to resume iteration from. If not provided, then iteration\\nstarts from the beginning.\\n\\ncustom\\\\_fieldsobjectOptional\\n\\nFilters for custom fields.\\n\\nlimitintegerOptional\\n\\nThe maximum number of", - "title": "Group Incidents | DevRev | Docs" + "id": "ART-4181_KNOWLEDGE_NODE-2", + "text": "blog](/blog/sla)\\n\\nTrigger SLAs at the right moment, every time\\n\\nMap conditions to parts of your product, tags, severity levels, or any other relevant criteria on our simple UI\\n\\n![]()\\n\\nTrigger SLAs at the right moment, every time\\n\\nMap conditions to parts of your product, tags, severity levels, or any other relevant criteria on our simple UI\\n\\n![]()\\n\\nSLAs in sync with your business\\n\\nAccount for calendar and business hours, ensuring that your SLAs accurately reflect your support", + "title": "Support like a lightning fast pit-crew" }, { "id": "ART-4181_KNOWLEDGE_NODE-6", "text": "time and resolution time, or tailor metrics to your requirements\\n\\n![]()\\n\\nTrigger SLAs at the right moment, every time\\n\\nMap conditions to parts of your product, tags, severity levels, or any other relevant criteria on our simple UI\\n\\n![]()\\n\\nTrigger SLAs at the right moment, every time\\n\\nMap conditions to parts of your product, tags, severity levels, or any other relevant criteria on our simple UI\\n\\n![]()\\n\\nSLAs in sync with your business\\n\\nAccount for calendar and business hours,", "title": "Support like a lightning fast pit-crew" }, - { - "id": "ART-4181_KNOWLEDGE_NODE-8", - "text": "metrics such as response time and resolution time, or tailor metrics to your requirements\\n\\n![]()\\n\\nTrigger SLAs at the right moment, every time\\n\\nMap conditions to parts of your product, tags, severity levels, or any other relevant criteria on our simple UI\\n\\n![]()\\n\\nTrigger SLAs at the right moment, every time\\n\\nMap conditions to parts of your product, tags, severity levels, or any other relevant criteria on our simple UI\\n\\n![]()\\n\\nSLAs in sync with your business\\n\\nAccount for", - "title": "Support like a lightning fast pit-crew" - }, { "id": "ART-4129_KNOWLEDGE_NODE-21", "text": "related docs.\\n\\nreported\\\\_bylist of longsOptional\\n\\nFilters for incidents with any of the provided reporters.\\n\\nseveritylist of longsOptional\\n\\nFilters for incidents containing any of the provided severities.\\n\\nsort\\\\_bylist of stringsOptional\\n\\nComma-separated fields to sort the incidents by.\\n\\nstagelist of stringsOptional\\n\\nFilters for incidents in any of the provided stages.\\n\\nstaged\\\\_infoobjectOptional\\n\\nShow 1 properties\\n\\nsubtypelist of stringsOptional\\n\\nFilters for", "title": "Group Incidents (POST) | DevRev | Docs" }, { - "id": "ART-4181_KNOWLEDGE_NODE-2", - "text": "blog](/blog/sla)\\n\\nTrigger SLAs at the right moment, every time\\n\\nMap conditions to parts of your product, tags, severity levels, or any other relevant criteria on our simple UI\\n\\n![]()\\n\\nTrigger SLAs at the right moment, every time\\n\\nMap conditions to parts of your product, tags, severity levels, or any other relevant criteria on our simple UI\\n\\n![]()\\n\\nSLAs in sync with your business\\n\\nAccount for calendar and business hours, ensuring that your SLAs accurately reflect your support", - "title": "Support like a lightning fast pit-crew" + "id": "ART-1641_KNOWLEDGE_NODE-177", + "text": "longs Optional\\nFilters for incidents containing any of the provided severities.\\nsort_by list of strings Optional\\nComma-separated fields to sort the incidents by.\\nsource list of longs Optional\\nFilters for incidents with any of the provided sources.\\nstage list of strings Optional\\nFilters for incidents in any of the provided stages.\\ntarget_close_date object Optional\\nProvides ways to specify date ranges on objects.\\nShow 2 variants\\ntitle list of strings Optional\\nFilters for incidents by", + "title": "Get Post \u2014 DevRev | Docs" }, { - "id": "ART-1828_KNOWLEDGE_NODE-177", + "id": "ART-1597_KNOWLEDGE_NODE-177", "text": "longs Optional\\nFilters for incidents containing any of the provided severities.\\nsort_by list of strings Optional\\nComma-separated fields to sort the incidents by.\\nsource list of longs Optional\\nFilters for incidents with any of the provided sources.\\nstage list of strings Optional\\nFilters for incidents in any of the provided stages.\\ntarget_close_date object Optional\\nProvides ways to specify date ranges on objects.\\nShow 2 variants\\ntitle list of strings Optional\\nFilters for incidents by", - "title": "List Post \u2014 DevRev | Docs" + "title": "Update \u2014 DevRev | Docs" + }, + { + "id": "ART-1577_KNOWLEDGE_NODE-177", + "text": "longs Optional\\nFilters for incidents containing any of the provided severities.\\nsort_by list of strings Optional\\nComma-separated fields to sort the incidents by.\\nsource list of longs Optional\\nFilters for incidents with any of the provided sources.\\nstage list of strings Optional\\nFilters for incidents in any of the provided stages.\\ntarget_close_date object Optional\\nProvides ways to specify date ranges on objects.\\nShow 2 variants\\ntitle list of strings Optional\\nFilters for incidents by", + "title": "Get Post \u2014 DevRev | Docs" + }, + { + "id": "ART-1575_KNOWLEDGE_NODE-177", + "text": "longs Optional\\nFilters for incidents containing any of the provided severities.\\nsort_by list of strings Optional\\nComma-separated fields to sort the incidents by.\\nsource list of longs Optional\\nFilters for incidents with any of the provided sources.\\nstage list of strings Optional\\nFilters for incidents in any of the provided stages.\\ntarget_close_date object Optional\\nProvides ways to specify date ranges on objects.\\nShow 2 variants\\ntitle list of strings Optional\\nFilters for incidents by", + "title": "Delete \u2014 DevRev | Docs" + }, + { + "id": "ART-1509_KNOWLEDGE_NODE-179", + "text": "longs Optional\\nFilters for incidents containing any of the provided severities.\\nsort_by list of strings Optional\\nComma-separated fields to sort the incidents by.\\nsource list of longs Optional\\nFilters for incidents with any of the provided sources.\\nstage list of strings Optional\\nFilters for incidents in any of the provided stages.\\ntarget_close_date object Optional\\nProvides ways to specify date ranges on objects.\\nShow 2 variants\\ntitle list of strings Optional\\nFilters for incidents by", + "title": "Prepare \u2014 DevRev | Docs" } ] }, @@ -2131,46 +2131,41 @@ "query_id": "0f16d2d9-ca4c-4091-bc94-1be50e2f7a90", "query": "enable Generative AI for Knowledge Base creation", "retrievals": [ - { - "id": "ART-970_KNOWLEDGE_NODE-67", - "text": "context, yet\\xe2\\x80\\xa6\\n\\n\\n That\\xe2\\x80\\x99s not the key, the key is in the data that you have that the models don\\xe2\\x80\\x99t have access to.\\n\\n\\nThe greater the context you can furnish through embeddings or fine-tuning, the more powerful AI becomes in your hands.\\n\\nThe Significance of Knowledge Graphs \\n\\nKnowledge graphs stand as invaluable tools that facilitate the organization and association of items based on various dimensions. Their utility extends beyond merely establishing", - "title": "The Story" - }, { "id": "ART-1980_KNOWLEDGE_NODE-25", "text": "knowledge base helps customers independently solve issues and assists employees in determining solutions to customer queries they\\xe2\\x80\\x99re resolving.\\n\\nThe articles can be created from scratch in DevRev, or they can be hosted on your own domain. Additionally, you can scrape articles from a previous database and import them into DevRev with the assistance of our support engineers.\\n\\nThere are multiple benefits to a knowledge base that can be accessed directly and through AI:\\n\\n*", "title": "Knowledge Base | Computer for Support Teams | DevRev" }, - { - "id": "ART-12581_KNOWLEDGE_NODE-7", - "text": "industry-leading AI and generative technologies.\\n\\n**Ideal Candidate Qualifications:**\\n\\n* 3+ years of prior experience in Consulting, Solution Architecture, Customer Success or equivalent history of increasing satisfaction, adoption, and retention.\\n* Knowledge of software development, technical support, and customer sales and success lifecycle. Technical knowledge of web solutions including APIs and Webhooks. Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n*", - "title": "DevRev Careers | Customer Success Manager" - }, { "id": "ART-13178_KNOWLEDGE_NODE-9", "text": "articles, designs graphics, and generates code. It focuses on content creation based on prompts. According to [IBM research](https://www.ibm.com/think/topics/generative-ai-use-cases), 65% of enterprises now use generative AI for creation tasks like these.\\n\\nAgentic AI operates differently. It doesn\\xe2\\x80\\x99t just create \\xe2\\x80\\x93 it decides and acts. When your customer reports an issue, generative AI might draft a response to customer service inquiries, while agentic AI will investigate", "title": "Understanding Agentic AI: Capabilities and Implications for the Future" }, { - "id": "ART-12577_KNOWLEDGE_NODE-7", - "text": "industry-leading AI and generative technologies.\\n\\n**Ideal Candidate Qualifications:**\\n\\n* 10+ years of prior experience in Consulting, Solution Architecture, Customer Success or equivalent history of increasing satisfaction, adoption, and retention.\\n* Knowledge of software development, technical support, and customer sales and success lifecycle. Technical knowledge of web solutions including APIs and Webhooks. Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n*", - "title": "DevRev Careers | Customer Success Manager" + "id": "ART-4170_KNOWLEDGE_NODE-9", + "text": "Baldwa](/blog/explore-article-creation-and-analytics-dashboard)[![]()\\n\\n7 min read10 step guide to preparing your knowledge base for Gen AI search\\n\\nRhea Jain](/blog/guide-to-preparing-your-knowledge-base-for-ai-search)\\n\\n[![]()](/the-essential-methodology-whitepaper)\\n\\n[Dheeraj Pandey12 min read\\n\\n### Essential Methodology\\n\\n### Whitepaper for free\\n\\n\\xe2\\x9e\\xa4 The latest thinking on AI agents and platform](/the-essential-methodology-whitepaper)\\n\\n[Download", + "title": "DevRev | Blog" }, { - "id": "ART-13083_KNOWLEDGE_NODE-6", - "text": "[Collections](/docs/product/collection)\\n\\n * [Turing AI agent](/docs/product/conversational-bot)\\n\\n * [Best practices for documentation that supports AI](/docs/product/writing-bp)\\n\\n * [Commands](/docs/product/commands)\\n * [Service-level agreement](/docs/product/sla)\\n * [Operational-level agreement](/docs/product/ola)\\n * [Support snap-ins](/docs/product/snapins-support)\\n\\n * [Build](/docs/product/build)\\n\\n * [Issues](/docs/product/issues)\\n * [Now, Next,", - "title": "| Automate | Snap-ins | DevRev" + "id": "ART-15792_KNOWLEDGE_NODE-9", + "text": "information sharing and reporting by converging support, product and user data in one shared view.\\n\\nAutomated knowledge base management: AI agents remember successful resolutions and instantly apply them to future issues, reducing customer wait time.\\n\\nSource: [DevRev Support](https://devrev.ai/support)BuildWhat is DevRev Build?\\n\\nDevRev Build is a full-featured product development platform built for modern businesses and trusted by leading organizations\\n\\nKey Features:\\n\\nAuto-generate", + "title": "DevRev Products and Agents" }, { - "id": "ART-2133_KNOWLEDGE_NODE-52", - "text": "auto-cluster, auto-classify, and auto-complete work items and human input. Similarly, de\\xef\\xac\\x82ect would be about recommending, routing, and summarizing work items with no human in the loop. And \\xef\\xac\\x81nally, deduplicate would be about retaining the provenance of merged records, as also active de\\xef\\xac\\x82ection of work items currently being created.\\n\\nNatural Language Everything Essential AI argues for natural language interfaces for everything: text to SQL, text to", - "title": "The Essential Methodology: Less but Better" + "id": "ART-1985_KNOWLEDGE_NODE-44", + "text": "Base**](https://app.devrev.ai/?setting=knowledge-base%2Farticles)** and select **View Templates**.\\n2. Select a template and click **Use Template**.\\n\\n### Edit a template\\n\\n1. Go to [**Settings** > **Customization** > **Templates**](https://app.devrev.ai/?setting=record-template).\\n2. Locate the template and click the **3-dot menu** under the **Action** column.\\n3. Click **Edit**, make your changes, and click **Publish**.\\n\\nContent blocks\\n--------------\\n\\nContent blocks let you create", + "title": "Articles | Knowledge Base | Computer for Support Teams | DevRev" }, { "id": "ART-1771_KNOWLEDGE_NODE-6", "text": "knowledge base integration.\\n\\nThe implementation validated DevRev\\'s capabilities and demonstrated remarkable speed. As Ankur noted: \"When I started using DevRev, the AirSync feature took me two hours to replace our previous solution, including transferring all knowledge articles.\" DevRev\\'s comprehensive documentation was particularly helpful during setup, allowing for a smooth transition without requiring extensive technical expertise.\\n\\nThe AI agent handles a large volume of routine", "title": "ToughTrucksForKids.com achieves dramatic efficiency gains and customer satisfaction through AI-powered support automation" }, + { + "id": "ART-1039_KNOWLEDGE_NODE-11", + "text": "Knowledge base deflection\\n\\nMetrics and insightsThe Benefits\\n--------------------------------\\n\\n* Support is a competitive differentiation\\n* Scale to 100s of customers with fewer than 5 support engineers\\n* High-touch and personalized support\\n* Accelerated path to paid support tier\\n* AI-enhanced productivity and less context switching\\n\\n### Related Articles\\n\\n[![]()\\n\\n5 min readLuxCreo boosts operational efficiency and agility with DevRev](/case-study/luxcreo)[![]()\\n\\n5 min readAditya", + "title": "100ms delivers differentiated customer support through a unified channel" + }, { "id": "ART-1985_KNOWLEDGE_NODE-32", "text": "Base**](https://app.devrev.ai/?setting=knowledge-base%2Farticles) and select the article you want to edit. The article opens in an additional window on top of the knowledge base view.\\n Select the full screen mode icon to expand the article view.\\n2. Click the pen icon in the top right corner of the article to make the article editable.\\n3. Make the necessary changes and click **Save** or **Publish**.\\n\\n * If you **Save** the article, the changes are saved as a new draft version. Edits are", @@ -2180,6 +2175,11 @@ "id": "ART-4168_KNOWLEDGE_NODE-7", "text": "do it all: give AI models easy access to formerly siloed data and enable SQL query capabilities that power robust reporting and analytics - without performance trade-offs.\\n\\n![]()\\n\\n![]()\\n\\n![]()\\n\\nLATEST\\n\\nRead our white paper \\xe2\\x80\\x94 The conversational computer: toward human agency\\n\\n[READ THE WHITE PAPER](/blog/the-conversational-computer)\\n\\nLATEST\\n\\n![]()\\n\\nRead our white paper \\xe2\\x80\\x94 The conversational computer: toward human agency\\n\\n[READ THE WHITE", "title": "Computer by DevRev: AI Infrastructure for Connected Enterprise Data | DevRev" + }, + { + "id": "ART-4162_KNOWLEDGE_NODE-7", + "text": "do it all: give AI models easy access to formerly siloed data and enable SQL query capabilities that power robust reporting and analytics - without performance trade-offs.\\n\\n![]()\\n\\n![]()\\n\\n![]()\\n\\nLATEST\\n\\nRead our white paper \\xe2\\x80\\x94 The conversational computer: toward human agency\\n\\n[READ THE WHITE PAPER](/blog/the-conversational-computer)\\n\\nLATEST\\n\\n![]()\\n\\nRead our white paper \\xe2\\x80\\x94 The conversational computer: toward human agency\\n\\n[READ THE WHITE", + "title": "Computer by DevRev: AI Infrastructure for Connected Enterprise Data | DevRev" } ] }, @@ -2188,54 +2188,54 @@ "query": "Resource Center downloads tutorials API documentation", "retrievals": [ { - "id": "ART-15292_KNOWLEDGE_NODE-1", - "text": "\"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{ |\\n| > | \"owned_by\": [ |\\n| > | \"DEVU-12345\" |\\n| > | ], |\\n| > | \"resource\": {}, |\\n| > | \"title\": \"string\" |\\n| > | }\\' |\\n```\\n\\n[Try it](/api-reference/articles/create-article?explorer=true)\\n\\n201Created\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"article\": { |\\n| 3 | \"id\": \"string\", |\\n| 4 | \"owned_by\": [ |\\n| 5 | { |\\n| 6 | \"display_id\": \"string\", |\\n| 7 | \"id\": \"string\", |\\n| 8 | \"display_name\": \"string\", |\\n| 9 |", - "title": "Create Article | DevRev | Docs" - }, - { - "id": "ART-1179_KNOWLEDGE_NODE-0", - "text": "b'List Artifacts | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[artifacts](/api-reference/artifacts/attachments)\\n\\nList Artifacts\\n==============\\n\\nCopy page\\n\\nGET\\n\\nhttps://api.devrev.ai/artifacts.list\\n\\nGET\\n\\n/artifacts.list\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl https://api.devrev.ai/artifacts.list \\\\ |\\n| > | -H \"Authorization: Bearer \" |\\n```\\n\\n[Try", - "title": "List Artifacts | DevRev | Docs" - }, - { - "id": "ART-1177_KNOWLEDGE_NODE-0", - "text": "b'Get Artifact | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[artifacts](/api-reference/artifacts/attachments)\\n\\nGet Artifact\\n============\\n\\nCopy page\\n\\nGET\\n\\nhttps://api.devrev.ai/artifacts.get\\n\\nGET\\n\\n/artifacts.get\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl -G https://api.devrev.ai/artifacts.get \\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\ |\\n| > | -d id=ARTIFACT-12345", - "title": "Get Artifact | DevRev | Docs" + "id": "ART-1617_KNOWLEDGE_NODE-5", + "text": "Next](/beta/api-reference/snap-ins/resources)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n'", + "title": "Get Service Account (POST) (Beta) \u2014 DevRev | Docs" }, { "id": "ART-1364_KNOWLEDGE_NODE-5", "text": "requested resource doesn\\xe2\\x80\\x99t exist. \\n`409`| `Conflict`| The attempted object creation conflicted with an existing object, for example, a group with the same name already exists. \\n \\nWas this page helpful?YesNo\\n\\n[Getting startedUp Next](/public/api-reference/getting-started)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n[Enterprise grade security to protect customer dataLearn more about", "title": "Errors \u2014 DevRev | Docs" }, - { - "id": "ART-1617_KNOWLEDGE_NODE-5", - "text": "Next](/beta/api-reference/snap-ins/resources)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n'", - "title": "Get Service Account (POST) (Beta) \u2014 DevRev | Docs" - }, { "id": "ART-1246_KNOWLEDGE_NODE-0", "text": "b'Get Work | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[works](/api-reference/works/tickets-and-issues)\\n\\nGet Work\\n========\\n\\nCopy page\\n\\nGET\\n\\nhttps://api.devrev.ai/works.get\\n\\nGET\\n\\n/works.get\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl -G https://api.devrev.ai/works.get \\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\ |\\n| > | -d id=ISS-12345 |\\n```\\n\\n[Try", "title": "Get Work | DevRev | Docs" }, + { + "id": "ART-1175_KNOWLEDGE_NODE-0", + "text": "b'Getting started | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\nOn this page\\n\\n* [Prerequisites](/api-reference/getting-started#prerequisites)\\n* [Send your first API request](/api-reference/getting-started#send-your-first-api-request)\\n* [Making a GET request](/api-reference/getting-started#making-a-get-request)\\n* [Next steps](/api-reference/getting-started#next-steps)\\n\\n[API Reference](/api-reference/getting-started)\\n\\nGetting", + "title": "Getting started | DevRev | Docs" + }, { "id": "ART-1619_KNOWLEDGE_NODE-1", "text": "|\\n| > | -H \"Authorization: Bearer \" \\\\ |\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{ |\\n| > | \"id\": \"string\", |\\n| > | \"user\": \"string\" |\\n| > | }\\' |\\n```\\n\\n[Try it](/beta/api-reference/snap-ins/resources-post?explorer=true)\\n\\n200Successful\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"snap_in_version\": { |\\n| 3 | \"id\": \"string\", |\\n| 4 | \"display_id\": \"string\" |\\n| 5 | }, |\\n| 6 | \"event_sources\": {}, |\\n| 7 | \"inputs\": {}, |\\n| 8 | \"keyrings\": {} |\\n| 9 | }", "title": "Resources Snap Ins (POST) | DevRev | Docs" }, { - "id": "ART-3191_KNOWLEDGE_NODE-18", - "text": "[`/artifacts.versions.prepare`](/public/api-reference/artifacts/versions-prepare) - Prepare artifact versions\\n\\n### Links\\n\\n* [`/links.replace`](/public/api-reference/links/replace) - Replace links\\n\\n### Metric Trackers\\n\\n* [`/metric-trackers.get`](/public/api-reference/slas/metric-trackers-get-post) - Get metric tracker details\\n\\nModified Endpoints\\n------------------\\n\\n### Accounts\\n\\nAdded `tier` filter support to:\\n\\n*", - "title": "Changelog | DevRev | Docs" + "id": "ART-1213_KNOWLEDGE_NODE-0", + "text": "b'Get Rev Org | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[rev-orgs](/api-reference/rev-orgs/workspaces)\\n\\nGet Rev Org\\n===========\\n\\nCopy page\\n\\nGET\\n\\nhttps://api.devrev.ai/rev-orgs.get\\n\\nGET\\n\\n/rev-orgs.get\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl https://api.devrev.ai/rev-orgs.get \\\\ |\\n| > | -H \"Authorization: Bearer \" |\\n```\\n\\n[Try", + "title": "Get Rev Org | DevRev | Docs" }, { - "id": "ART-1175_KNOWLEDGE_NODE-0", - "text": "b'Getting started | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\nOn this page\\n\\n* [Prerequisites](/api-reference/getting-started#prerequisites)\\n* [Send your first API request](/api-reference/getting-started#send-your-first-api-request)\\n* [Making a GET request](/api-reference/getting-started#making-a-get-request)\\n* [Next steps](/api-reference/getting-started#next-steps)\\n\\n[API Reference](/api-reference/getting-started)\\n\\nGetting", - "title": "Getting started | DevRev | Docs" + "id": "ART-15292_KNOWLEDGE_NODE-1", + "text": "\"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{ |\\n| > | \"owned_by\": [ |\\n| > | \"DEVU-12345\" |\\n| > | ], |\\n| > | \"resource\": {}, |\\n| > | \"title\": \"string\" |\\n| > | }\\' |\\n```\\n\\n[Try it](/api-reference/articles/create-article?explorer=true)\\n\\n201Created\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"article\": { |\\n| 3 | \"id\": \"string\", |\\n| 4 | \"owned_by\": [ |\\n| 5 | { |\\n| 6 | \"display_id\": \"string\", |\\n| 7 | \"id\": \"string\", |\\n| 8 | \"display_name\": \"string\", |\\n| 9 |", + "title": "Create Article | DevRev | Docs" + }, + { + "id": "ART-1179_KNOWLEDGE_NODE-0", + "text": "b'List Artifacts | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[artifacts](/api-reference/artifacts/attachments)\\n\\nList Artifacts\\n==============\\n\\nCopy page\\n\\nGET\\n\\nhttps://api.devrev.ai/artifacts.list\\n\\nGET\\n\\n/artifacts.list\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl https://api.devrev.ai/artifacts.list \\\\ |\\n| > | -H \"Authorization: Bearer \" |\\n```\\n\\n[Try", + "title": "List Artifacts | DevRev | Docs" + }, + { + "id": "ART-1177_KNOWLEDGE_NODE-0", + "text": "b'Get Artifact | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[artifacts](/api-reference/artifacts/attachments)\\n\\nGet Artifact\\n============\\n\\nCopy page\\n\\nGET\\n\\nhttps://api.devrev.ai/artifacts.get\\n\\nGET\\n\\n/artifacts.get\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl -G https://api.devrev.ai/artifacts.get \\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\ |\\n| > | -d id=ARTIFACT-12345", + "title": "Get Artifact | DevRev | Docs" }, { - "id": "ART-15404_KNOWLEDGE_NODE-2", - "text": "\"resource\": { |\\n| 10 | \"artifacts\": [ |\\n| 11 | { |\\n| 12 | \"display_id\": \"string\", |\\n| 13 | \"id\": \"string\", |\\n| 14 | \"file\": { |\\n| 15 | \"type\": \"string\", |\\n| 16 | \"name\": \"string\", |\\n| 17 | \"size\": 1 |\\n| 18 | } |\\n| 19 | } |\\n| 20 | ], |\\n| 21 | \"url\": \"string\" |\\n| 22 | }, |\\n| 23 | \"title\": \"string\" |\\n| 24 | }, |\\n| 25 | \"target\": { |\\n| 26 | \"display_id\": \"string\", |\\n| 27 | \"id\": \"string\", |\\n| 28 | \"article_type\": \"article\", |\\n| 29 | \"resource\": { |\\n| 30 | \"artifacts\": [ |\\n| 31", - "title": "Replace Links | DevRev | Docs" + "id": "ART-3191_KNOWLEDGE_NODE-18", + "text": "[`/artifacts.versions.prepare`](/public/api-reference/artifacts/versions-prepare) - Prepare artifact versions\\n\\n### Links\\n\\n* [`/links.replace`](/public/api-reference/links/replace) - Replace links\\n\\n### Metric Trackers\\n\\n* [`/metric-trackers.get`](/public/api-reference/slas/metric-trackers-get-post) - Get metric tracker details\\n\\nModified Endpoints\\n------------------\\n\\n### Accounts\\n\\nAdded `tier` filter support to:\\n\\n*", + "title": "Changelog | DevRev | Docs" } ] }, @@ -2244,9 +2244,14 @@ "query": "automations to fill repeated fields", "retrievals": [ { - "id": "ART-2858_KNOWLEDGE_NODE-0", - "text": "b'Custom field migration | Automate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CMD`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", - "title": "Custom field migration | Automate | Snap-ins | DevRev" + "id": "ART-2007_KNOWLEDGE_NODE-24", + "text": "[Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[Automate opportunities](/docs/automations/opportunity)\\n\\nAutomate opportunities\\n======================\\n\\nAutomate opportunities snap-in helps you automate the following features on opportunities to eliminate updating the fields manually and to enhance data consistency:\\n\\n* Auto-fills the forecast categories on the opportunities based on status updates. Enable this feature to keep the **Forecast Category** field on opportunities updated", + "title": "Automate opportunities | Automate | Snap-ins | DevRev" + }, + { + "id": "ART-2007_KNOWLEDGE_NODE-26", + "text": "marketplace, find **Automate opportunities** and click **Install**.\\n\\nConfiguration\\n-------------\\n\\n1. To configure the snap-in, type /AutomateOpportunityConfig in the **Discussions** tab of the snap-in.\\n\\n![]()\\n\\n1. Fill the required fields and click **Submit**.\\n\\n[PreviousAutomated part update](/docs/automations/automated-part-update)[NextBulk delete data](/docs/automations/bulk-delete)\\n\\n#### On this page\\n\\n* [Installation](#installation)\\n*", + "title": "Automate opportunities | Automate | Snap-ins | DevRev" }, { "id": "ART-6175_KNOWLEDGE_NODE-24", @@ -2254,44 +2259,39 @@ "title": "Airtable | Automate | Snap-ins | DevRev" }, { - "id": "ART-1978_KNOWLEDGE_NODE-9", - "text": "deduplication](/docs/automations/account-deduplication)\\n - [Airtable](/docs/automations/airtable)\\n - [Auto-link DevRev GitHub accounts](/docs/automations/auto-link-github-devrev)\\n - [Automatic customer reply](/docs/automations/auto-reply)\\n - [Auto parts to conversation](/docs/automations/auto-parts)\\n - [Automated part update](/docs/automations/automated-part-update)\\n - [Automate opportunities](/docs/automations/opportunity)\\n - [Bulk delete", - "title": "Customer portal | Computer for Support Teams | DevRev" - }, - { - "id": "ART-2007_KNOWLEDGE_NODE-24", - "text": "[Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[Automate opportunities](/docs/automations/opportunity)\\n\\nAutomate opportunities\\n======================\\n\\nAutomate opportunities snap-in helps you automate the following features on opportunities to eliminate updating the fields manually and to enhance data consistency:\\n\\n* Auto-fills the forecast categories on the opportunities based on status updates. Enable this feature to keep the **Forecast Category** field on opportunities updated", + "id": "ART-2007_KNOWLEDGE_NODE-25", + "text": "in sync with their current stage, as per the stage to forecast category mapping configured in the automation.\\n* Auto-fills the **Probability** field on opportunities based on their current stage. Enable this feature to auto-update opportunity probabilities based on the stage to probability mapping configured in the automation.\\n\\nInstallation\\n------------\\n\\n1. In DevRev, go to **Settings** > **Snap-ins** and click **Explore Marketplace** in the top-right corner.\\n2. In the DevRev", "title": "Automate opportunities | Automate | Snap-ins | DevRev" }, { - "id": "ART-3208_KNOWLEDGE_NODE-9", - "text": "deduplication](/docs/automations/account-deduplication)\\n - [Airtable](/docs/automations/airtable)\\n - [Auto-link DevRev GitHub accounts](/docs/automations/auto-link-github-devrev)\\n - [Automatic customer reply](/docs/automations/auto-reply)\\n - [Auto parts to conversation](/docs/automations/auto-parts)\\n - [Automated part update](/docs/automations/automated-part-update)\\n - [Automate opportunities](/docs/automations/opportunity)\\n - [Bulk delete", - "title": "DevRev AirSync | AirSync | Snap-ins | DevRev" + "id": "ART-2858_KNOWLEDGE_NODE-0", + "text": "b'Custom field migration | Automate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CMD`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", + "title": "Custom field migration | Automate | Snap-ins | DevRev" }, { - "id": "ART-2007_KNOWLEDGE_NODE-25", - "text": "in sync with their current stage, as per the stage to forecast category mapping configured in the automation.\\n* Auto-fills the **Probability** field on opportunities based on their current stage. Enable this feature to auto-update opportunity probabilities based on the stage to probability mapping configured in the automation.\\n\\nInstallation\\n------------\\n\\n1. In DevRev, go to **Settings** > **Snap-ins** and click **Explore Marketplace** in the top-right corner.\\n2. In the DevRev", - "title": "Automate opportunities | Automate | Snap-ins | DevRev" + "id": "ART-1478_KNOWLEDGE_NODE-44", + "text": "2| - name: \\n 3| source: \\n 4| event_types: \\n 5| - timer.tick \\n 6| function: \\n[/code] \\n \\nThe payload contains the `metadata` fields you specified in the event source configuration. For example, `{\"event_key\": \"daily_events\"}` for the `daily-timer-source`.\\n\\n## Email-based event sources\\n\\nYou can create an email-based event source that can be used to write automations on top of emails. For this, a", + "title": "Event sources \u2014 DevRev | Docs" }, { - "id": "ART-2007_KNOWLEDGE_NODE-26", - "text": "marketplace, find **Automate opportunities** and click **Install**.\\n\\nConfiguration\\n-------------\\n\\n1. To configure the snap-in, type /AutomateOpportunityConfig in the **Discussions** tab of the snap-in.\\n\\n![]()\\n\\n1. Fill the required fields and click **Submit**.\\n\\n[PreviousAutomated part update](/docs/automations/automated-part-update)[NextBulk delete data](/docs/automations/bulk-delete)\\n\\n#### On this page\\n\\n* [Installation](#installation)\\n*", - "title": "Automate opportunities | Automate | Snap-ins | DevRev" + "id": "ART-2874_KNOWLEDGE_NODE-0", + "text": "b'Ticket issue field migrator | Automate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CMD`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", + "title": "Ticket issue field migrator | Automate | Snap-ins | DevRev" }, { - "id": "ART-1999_KNOWLEDGE_NODE-9", - "text": "deduplication](/docs/automations/account-deduplication)\\n - [Airtable](/docs/automations/airtable)\\n - [Auto-link DevRev GitHub accounts](/docs/automations/auto-link-github-devrev)\\n - [Automatic customer reply](/docs/automations/auto-reply)\\n - [Auto parts to conversation](/docs/automations/auto-parts)\\n - [Automated part update](/docs/automations/automated-part-update)\\n - [Automate opportunities](/docs/automations/opportunity)\\n - [Bulk delete", - "title": "Opportunities | Computer for Growth Teams | DevRev" + "id": "ART-3235_KNOWLEDGE_NODE-24", + "text": "[Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[Reported by enricher](/docs/automations/ticket-reported-by)\\n\\nReported by enricher\\n====================\\n\\nThe [Reported by Enricher](https://marketplace.devrev.ai/ticket-reported-by) snap-in automatically updates the **Reported By** field on tickets created with an email entered in a custom field. It verifies if the email belongs to an existing customer of the configured account and either links to that customer or creates a new", + "title": "Reported by enricher | Automate | Snap-ins | DevRev" }, { - "id": "ART-3184_KNOWLEDGE_NODE-1", - "text": "automation\\n==========================================================================\\n\\n5 min read\\n\\nLast Updated \\xc2\\xa0Sep 29, 2025\\n\\n![]()\\n\\n![]()\\n\\n![]()\\n\\nCompany\\n\\nLuxCreo\\n\\nEmployees\\n\\n51-200\\n\\nFounded\\n\\n2017\\n\\nHeadquarters\\n\\nChicago, Illinois\\n\\nIndustry\\n\\nHealthcare & Life Sciences (for dental/medical 3D printing)\\n\\n### The company\\n\\nLuxCreo is leading the healthcare industry with its advanced 3D printing technology, creating personalized medical and dental solutions", - "title": "LuxCreo boosts operational efficiency and agility with DevRev" + "id": "ART-16803_KNOWLEDGE_NODE-9", + "text": "deduplication](/docs/automations/account-deduplication)\\n - [Airtable](/docs/automations/airtable)\\n - [Auto-link DevRev GitHub accounts](/docs/automations/auto-link-github-devrev)\\n - [Automatic customer reply](/docs/automations/auto-reply)\\n - [Auto parts to conversation](/docs/automations/auto-parts)\\n - [Automated part update](/docs/automations/automated-part-update)\\n - [Automate opportunities](/docs/automations/opportunity)\\n - [Bulk delete", + "title": "Workflow nodes | Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-2663_KNOWLEDGE_NODE-9", + "id": "ART-4215_KNOWLEDGE_NODE-9", "text": "deduplication](/docs/automations/account-deduplication)\\n - [Airtable](/docs/automations/airtable)\\n - [Auto-link DevRev GitHub accounts](/docs/automations/auto-link-github-devrev)\\n - [Automatic customer reply](/docs/automations/auto-reply)\\n - [Auto parts to conversation](/docs/automations/auto-parts)\\n - [Automated part update](/docs/automations/automated-part-update)\\n - [Automate opportunities](/docs/automations/opportunity)\\n - [Bulk delete", - "title": "GitBook AirSync | AirSync | Snap-ins | DevRev" + "title": "Notion AirSync | AirSync | Snap-ins | DevRev" } ] }, @@ -2299,55 +2299,55 @@ "query_id": "3a035e90-682d-4287-a6c9-4365d0755daf", "query": "action to reopen ticket in workflow", "retrievals": [ + { + "id": "ART-1961_KNOWLEDGE_NODE-35", + "text": "or one from a previous node.\\n8. Click **Deploy**.\\n9. If you need to modify the workflow after is has been deployed, click **Pause**, edit the workflow, then click **Deploy** to reactivate it.\\n\\nWorkflow example: Ticket auto-response\\n--------------------------------------\\n\\n```\\nControl\\n\\n\\n\\nIf true\\n\\n\\n\\nAction\\n\\n\\n\\nAction\\n\\n\\n\\nIf false\\n\\n\\n\\nAdd comment\\n\\n\\n\\nObject:\\xc2\\xa0Ticket\\xc2\\xa0Created\\xc2\\xa0>\\xc2\\xa0Output\\xc2\\xa0>\\xc2\\xa0ID \\nVisibility: External \\nBody:", + "title": "Workflows | Computer by DevRev | DevRev" + }, { "id": "ART-16803_KNOWLEDGE_NODE-26", "text": "Tickets\\n* Meetings\\n* Objects linked to issues\\n* Users\\n\\nTo configure a workspace object loop:\\n\\n1. On the **workflow canvas**, add an action step named **Loop for [Object]**, where [Object] is the entity you want to iterate over.\\n2. Apply **filter conditions** to refine the set of objects included in the loop and perform operations on them.\\n\\nAll **actions** inside the loop execute once per object that satisfies the filter conditions.\\n\\n### For Each\\n\\nThe **For Each** loop iterates", "title": "Workflow nodes | Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-1275_KNOWLEDGE_NODE-2", - "text": "work item is created.\\nThis tutorial makes the following changes to the snap-in:\\n\\n1. Update the trigger condition to run every 10 minutes instead of work\\n creation.\\n2. Create a ticket whenever the snap-in is triggered.\\n\\nEnsure that you have at least one [part](https://docs.devrev.ai/product/parts#product-or-service) in your organization since every\\nticket must be linked to a part and have an owner.\\n\\nSince a DevRev ticket is created whenever the function is triggered,\\nDevRev APIs", - "title": "Using a snap-in to perform a DevRev action | DevRev | Docs" + "id": "ART-1961_KNOWLEDGE_NODE-30", + "text": "Action: Tasks that modify one or more objects in the system.\\n* Control: Conditional (if-then) blocks to determine which actions to take based on an operand (variable) and an operator.\\n* Delay: Wait to take an action.\\n\\nAI nodes\\n--------\\n\\nWe provide several native AI nodes out of the box to enhance your workflows.\\n\\n**Spam checker**\\n\\nThe spam checker takes the ID of a ticket or object and determines whether the ticket or conversation is spam. You can use this output in your workflows as", + "title": "Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-2886_KNOWLEDGE_NODE-1", - "text": "workflows\\n--------------------------------------------------------------------------------------\\n\\n* 30% reduction in mean time to resolution\\n* 29% faster ticket closure time\\n* Unified collaboration between L1 and L2 support teams\\n\\n[Read Case Study](/case-study/phenom)\\n\\n![]()\\n\\nHIGHLIGHTS\\n\\nHow Bolt connected customer, product, and engineering for smooth checkout\\n-------------------------------------------------------------------------\\n\\n* 40% faster ticket resolution\\n* 35% faster", - "title": "Case Study Library | DevRev" + "id": "ART-12391_KNOWLEDGE_NODE-27", + "text": "workflow.\\n\\nNow, your workflow runs whenever a conversation or a ticket gets created and it\\nassigns it to an AI agent, which handles the conversation. No brittle rules.\\n\\nFind below a detailed explanation of all the fields needed to configure in the\\n\"Talk to Agent\" Step\\n\\n| Parameter | Type | Description |\\n| --- | --- | --- |\\n| agent | String | ID of the AI agent to use. Use the dropdown to select one. |\\n| object | String | ID of the conversation or ticket where the agent operate.s |\\n|", + "title": "Conversational workflows | Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-1275_KNOWLEDGE_NODE-18", - "text": "= `Ticket created at ${date.toLocaleString()}`; |\\n| 14 | const ticketBody = `This ticket was created by a snap-in at ${date.toLocaleString()}`; |\\n| 15 | |\\n| 16 | const response = await devrevSDK.worksCreate({ |\\n| 17 | title: ticketName, |\\n| 18 | body: ticketBody, |\\n| 19 | // The ticket is created in the PROD-1 part. Rename this to match your part. |\\n| 20 | applies_to_part: \"PROD-1\", |\\n| 21 | // The ticket is owned by the DEVU-1 user. Rename this to match the required user. |\\n| 22 |", - "title": "Using a snap-in to perform a DevRev action | DevRev | Docs" + "id": "ART-2024_KNOWLEDGE_NODE-25", + "text": "integrates into your workflow, regardless of whether you\\'re engaged in customer support interactions or immersed in building projects.\\n\\nCommands\\n--------\\n\\nSlash commands are available through text fields such as:\\n\\n* **Inbox** > **Conversation** > **Customer chat/Discussions**\\n* **Tickets** > **Customer chat/Discussions**\\n* **Issues** > **Discussions**\\n\\nEntering / in a text field allows you to execute commands, revealing a comprehensive list of available options. Respond to customers", + "title": "Slash commands | Automate | Snap-ins | DevRev" }, { - "id": "ART-1961_KNOWLEDGE_NODE-35", - "text": "or one from a previous node.\\n8. Click **Deploy**.\\n9. If you need to modify the workflow after is has been deployed, click **Pause**, edit the workflow, then click **Deploy** to reactivate it.\\n\\nWorkflow example: Ticket auto-response\\n--------------------------------------\\n\\n```\\nControl\\n\\n\\n\\nIf true\\n\\n\\n\\nAction\\n\\n\\n\\nAction\\n\\n\\n\\nIf false\\n\\n\\n\\nAdd comment\\n\\n\\n\\nObject:\\xc2\\xa0Ticket\\xc2\\xa0Created\\xc2\\xa0>\\xc2\\xa0Output\\xc2\\xa0>\\xc2\\xa0ID \\nVisibility: External \\nBody:", + "id": "ART-1961_KNOWLEDGE_NODE-33", + "text": "account.\\n\\n**Ask AI**\\n\\nWrite your own LLM prompt to generate content that can be used in various contexts. For example, you can request a summary of a ticket based on the title and description.\\n\\nCreating a workflow\\n-------------------\\n\\n1. Go to [**Settings** > **Workflows**](https://app.devrev.ai/devrev/settings/workflows?labels=skill&labelsOp=not_any&status=active). A canvas appears.\\n2. Enter a name for your workflow.\\n3. Select the steps you want to include by selecting them from the", "title": "Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-1827_KNOWLEDGE_NODE-456", - "text": "completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the provided types.\\nAllowed values: issue opportunity task ticket\\nResponse.\\n\\nThis endpoint returns an object.\\nworks list of objects\\nThe resulting collection of work items.\\nShow 4 variants\\nAPI Reference works Export", - "title": "Update \u2014 DevRev | Docs" - }, - { - "id": "ART-12391_KNOWLEDGE_NODE-27", - "text": "workflow.\\n\\nNow, your workflow runs whenever a conversation or a ticket gets created and it\\nassigns it to an AI agent, which handles the conversation. No brittle rules.\\n\\nFind below a detailed explanation of all the fields needed to configure in the\\n\"Talk to Agent\" Step\\n\\n| Parameter | Type | Description |\\n| --- | --- | --- |\\n| agent | String | ID of the AI agent to use. Use the dropdown to select one. |\\n| object | String | ID of the conversation or ticket where the agent operate.s |\\n|", - "title": "Conversational workflows | Workflows | Computer by DevRev | DevRev" + "id": "ART-2048_KNOWLEDGE_NODE-27", + "text": "allows you to create parent/child relationships between issues, you cannot do the same with tickets. If your workflow requires manual creation of parent/child relationships in DevRev work items, you should use issues. If that is not a requirement and tickets are preferred for another reason, you can specify tickets as the target for ClickUp tasks.\\n\\nImport from ClickUp\\n-------------------\\n\\nFollow the steps below to import from ClickUp:\\n\\n1. In **Marketplace**, search for **ClickUp** and", + "title": "ClickUp AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-1242_KNOWLEDGE_NODE-0", - "text": "b'Tickets and issues | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[works](/api-reference/works/tickets-and-issues)\\n\\nTickets and issues\\n==================\\n\\nCopy page\\n\\n`works` endpoint\\n\\n\\xe2\\x84\\xb9\\xef\\xb8\\x8f A work item is a record of some work that has to be done for a customer (ticket) or for another builder or maintainer of a part (issue).\\n\\n\\xf0\\x9f\\x93\\x8c For more information", - "title": "Tickets and issues | DevRev | Docs" + "id": "ART-1275_KNOWLEDGE_NODE-12", + "text": "`src/functions/ticket_creator/index.test.ts`\\n\\n[4](/snapin-development/tutorials/timer-ticket-creator#event-received-by-the-snap-in-function)\\n\\n### Event received by the snap-in function\\n\\nIn the hello-world snap-in, the ID of the created work-item gets extracted from\\nthe input event as such.\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | console.info( |\\n| 2 | `The work ${events[0].payload.work_created.work.id} has been created.` |\\n| 3 | ); |\\n```\\n\\nThe schema for a event received by the snap-in", + "title": "Using a snap-in to perform a DevRev action | DevRev | Docs" }, { - "id": "ART-1566_KNOWLEDGE_NODE-508", - "text": "values: breached completed paused running warning\\nticket.source_channel string Optional\\n\\nFilters for tickets with any of the provided source channels.\\n\\nticket.subtype string Optional\\n\\nFilters for tickets with any of the provided subtypes.\\n\\ntype enum Optional\\n\\nFilters for work of the provided types.\\n\\nAllowed values: issue opportunity task ticket\\nResponse.\\n\\nThis endpoint returns an object.\\nworks list of objects\\n\\nThe resulting collection of work items.\\n\\nShow 4 variants\\nAPI", - "title": "Transition (Beta) \u2014 DevRev | Docs" + "id": "ART-1997_KNOWLEDGE_NODE-29", + "text": "workflows\\xe2\\x80\\x94such as creating tickets, conversations, and SLAs\\xe2\\x80\\x94are linked to workspaces.\\n\\n\\xf0\\x9f\\x92\\xa1 Opportunity\\n-------------\\n\\nAn opportunity record represents a potential source of revenue for your organization. Opportunities feature customizable states and stages that communicate their position within the sales pipeline.\\n\\nIf an account has multiple sales opportunities, you can connect multiple opportunities to it. You can also associate tickets with", + "title": "Computer for Growth Teams | DevRev" }, { - "id": "ART-1961_KNOWLEDGE_NODE-30", - "text": "Action: Tasks that modify one or more objects in the system.\\n* Control: Conditional (if-then) blocks to determine which actions to take based on an operand (variable) and an operator.\\n* Delay: Wait to take an action.\\n\\nAI nodes\\n--------\\n\\nWe provide several native AI nodes out of the box to enhance your workflows.\\n\\n**Spam checker**\\n\\nThe spam checker takes the ID of a ticket or object and determines whether the ticket or conversation is spam. You can use this output in your workflows as", - "title": "Workflows | Computer by DevRev | DevRev" + "id": "ART-1645_KNOWLEDGE_NODE-5", + "text": "organization\\xe2\\x80\\x99s unique workflows and reporting needs. By using the customization framework, you can extend these objects with custom fields that reflect your processes.\\n\\nThis section provides an overview of the customization framework and walks you through the process of tracking bugs in your organization. By the end of this section, you\\xe2\\x80\\x99ll be able to:\\n\\n 1. Customize DevRev objects such as _issue_ and _ticket_ by adding custom fields.\\n 2. Override default field", + "title": "Object customization (Beta) \u2014 DevRev | Docs" } ] }, @@ -2356,9 +2356,14 @@ "query": "assign issue owner to someone else using workflow", "retrievals": [ { - "id": "ART-2048_KNOWLEDGE_NODE-27", - "text": "allows you to create parent/child relationships between issues, you cannot do the same with tickets. If your workflow requires manual creation of parent/child relationships in DevRev work items, you should use issues. If that is not a requirement and tickets are preferred for another reason, you can specify tickets as the target for ClickUp tasks.\\n\\nImport from ClickUp\\n-------------------\\n\\nFollow the steps below to import from ClickUp:\\n\\n1. In **Marketplace**, search for **ClickUp** and", - "title": "ClickUp AirSync | AirSync | Snap-ins | DevRev" + "id": "ART-15487_KNOWLEDGE_NODE-11", + "text": "|\\n| > | }, |\\n| > | { |\\n| > | \"name\": \"rca\", |\\n| > | \"field_type\": \"rich_text\", |\\n| > | \"ui\": { |\\n| > | \"display_name\": \"RCA\", |\\n| > | } |\\n| > | }, |\\n| > | ] |\\n| > | }\\' |\\n```\\n\\n##### \\n\\nA bug has been identified in the production environment. The reporter creates a\\n*bug*-flavored *issue* object to track it and assigns a relevant owner.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/works.create\\' \\\\ |\\n| > | --header \\'Content-Type:", + "title": "Object customization | DevRev | Docs" + }, + { + "id": "ART-1994_KNOWLEDGE_NODE-33", + "text": "sprint board and click **+Issue**.\\n Create a new issue, assign it to the part, sprint and add the owner.\\n\\n ![]()\\n\\n Sprints are not coordinated with stages.\\n3. Select issues that you would like to assign to **Sprint 1** or **Sprint 2** then click **Move** in the toolbar at the top of the screen and select the sprint.\\n\\n ![]()\\n4. Go to **Sprint 1** or **Sprint 2** to see that issues are displayed.\\n\\n ![]()\\n\\n The sprint is also displayed in (and can be changed from) the", + "title": "Sprint mode | Computer for Builders | DevRev" }, { "id": "ART-2737_KNOWLEDGE_NODE-25", @@ -2366,9 +2371,14 @@ "title": "Smart issue creator | Automate | Snap-ins | DevRev" }, { - "id": "ART-15833_KNOWLEDGE_NODE-7", - "text": "better workflow management and creating a single source of truth for customer issues and development priorities.\\n\\n### Unified knowledge access\\n\\nThe implementation of Computer\\xe2\\x80\\x99s Memory has transformed how support agents access information. Centralized knowledge management enables agents to efficiently find answers, reducing resolution times and improving effectiveness. Rexera has already achieved a 55% deflection rate for internal agents, and is expanding to enterprise-wide search", - "title": "Rexera transforms real estate operations with knowledge-driven automation" + "id": "ART-2053_KNOWLEDGE_NODE-56", + "text": "they do not match 1 to 1. The stages can still be mapped - for example Done in Jira to Completed in DevRev etc.\\n\\n![]()\\n\\nFor Jira Data Center, workflow extraction captures statuses but not transitions. This means that in DevRev all transitions are permitted. This can be edited manually in DevRev.\\n\\n### Recommended permissions for syncing to Jira\\n\\nThe following are self-explanatory and are usually enabled by default: assign issues, edit issues, transition issues, close issues, link issues,", + "title": "Jira Software AirSync | AirSync | Snap-ins | DevRev" + }, + { + "id": "ART-16355_KNOWLEDGE_NODE-26", + "text": "**Reported\\\\_by,** and **Contact** columns, provide the email of the person to be assigned as the owner or reporter of the work item. If the CSV lists multiple owners, only the first will be set as the owner.\\n* For the **Applies to Part**, **Stage**, **Account**, **Developed with Parts**, and **Tags** columns, provide the part name, stage name, account name, part name, and tag name respectively as it is present in the UI, ensuring case sensitivity.\\n* For **Date** and **Timestamp** related", + "title": "CSV commands uploader | Automate | Snap-ins | DevRev" }, { "id": "ART-15716_KNOWLEDGE_NODE-32", @@ -2376,34 +2386,24 @@ "title": "Support queries related playbook" }, { - "id": "ART-2010_KNOWLEDGE_NODE-26", - "text": "is not specified or empty, the work item is created as a ticket.\\n\\n![]()\\n\\nIf the CSV lists multiple owners, only the first is set as the owner in the DevRev ticket. Update the owner value to the email. In the Subtype column, write the name of the subtype instead of the display name. Default work item created is a ticket if not specified.\\n\\nFor detailed information about DevRev tickets, refer to [Tickets](https://docs.devrev.ai/product/tickets).\\n\\nFor detailed information about DevRev", - "title": "Bulk work item uploader | Automate | Snap-ins | DevRev" - }, - { - "id": "ART-1645_KNOWLEDGE_NODE-5", - "text": "organization\\xe2\\x80\\x99s unique workflows and reporting needs. By using the customization framework, you can extend these objects with custom fields that reflect your processes.\\n\\nThis section provides an overview of the customization framework and walks you through the process of tracking bugs in your organization. By the end of this section, you\\xe2\\x80\\x99ll be able to:\\n\\n 1. Customize DevRev objects such as _issue_ and _ticket_ by adding custom fields.\\n 2. Override default field", - "title": "Object customization (Beta) \u2014 DevRev | Docs" + "id": "ART-16803_KNOWLEDGE_NODE-26", + "text": "Tickets\\n* Meetings\\n* Objects linked to issues\\n* Users\\n\\nTo configure a workspace object loop:\\n\\n1. On the **workflow canvas**, add an action step named **Loop for [Object]**, where [Object] is the entity you want to iterate over.\\n2. Apply **filter conditions** to refine the set of objects included in the loop and perform operations on them.\\n\\nAll **actions** inside the loop execute once per object that satisfies the filter conditions.\\n\\n### For Each\\n\\nThe **For Each** loop iterates", + "title": "Workflow nodes | Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-15159_KNOWLEDGE_NODE-1", - "text": "Handles This Difference:\\n\\nDevRev creates a separate \"group\" field alongside the owner field\\n\\nIf a Salesforce owner is a group/queue, DevRev sets:\\n\\nThe group field = imported group\\n\\nThe owner field = service account (\"unassigned\")\\n\\nIf a Salesforce owner is a user, DevRev sets:\\n\\nThe owner field = the user\\n\\nSync Limitation:\\n\\nWhen syncing from DevRev to Salesforce, the system checks if:\\n\\nThe group field has changed AND\\n\\nThe owner is a service account\\n\\nOnly when both conditions", - "title": "Skipped Updates Due to Group Field Changes in Salesforce-DevRev Airdrop" + "id": "ART-16615_KNOWLEDGE_NODE-25", + "text": "work items through different stages of completion. It's particularly valuable for process-oriented workflows, such as moving tickets through support stages, tracking issues from development to deployment, or managing sales opportunities through pipeline stages.\\n\\nHow to use it\\n-------------\\n\\n### Set up your board\\n\\n1. **Access the view**: Go to any work item list, such as Issues or Tickets, and select **Board View** from the view type selector\\n2. **Configure columns**: Click the", + "title": "Board view | Vistas | Computer by DevRev | DevRev" }, { - "id": "ART-1994_KNOWLEDGE_NODE-33", - "text": "sprint board and click **+Issue**.\\n Create a new issue, assign it to the part, sprint and add the owner.\\n\\n ![]()\\n\\n Sprints are not coordinated with stages.\\n3. Select issues that you would like to assign to **Sprint 1** or **Sprint 2** then click **Move** in the toolbar at the top of the screen and select the sprint.\\n\\n ![]()\\n4. Go to **Sprint 1** or **Sprint 2** to see that issues are displayed.\\n\\n ![]()\\n\\n The sprint is also displayed in (and can be changed from) the", - "title": "Sprint mode | Computer for Builders | DevRev" - }, - { - "id": "ART-1276_KNOWLEDGE_NODE-14", - "text": "initialized, the next step is to invoke the necessary\\nAPIs.\\n\\nAs a preliminary step, the required fields for creating a GitHub Issue, namely **title** and **body**, need to be extracted. These details are sourced from the issue.\\n\\nTo facilitate this, introduce a function defined for this specific purpose:\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | const getIssueDetails = async (workId: string, devrevSDK: any) => { |\\n| 2 | try { |\\n| 3 | // Get the issue details from the database using the workId", - "title": "Using a snap-in to perform an external action | DevRev | Docs" + "id": "ART-1992_KNOWLEDGE_NODE-36", + "text": "Development* depending on the current priority and bandwidth.\\n* *Prioritized*\\n\\n Issues that are planned to be completed in the current or subsequent development cycle but which have not yet been started. Issues in the *prioritized* stage should have clear requirements. Issues in the *Prioritized* stage may be taken up for execution (promoted to *In development*) or deprioritized (demoted to *Backlog*).\\n\\n**In-progress**\\n\\n* *In development*\\n\\n The issue owner is actively working on the", + "title": "Issues | Computer for Builders | DevRev" }, { - "id": "ART-16803_KNOWLEDGE_NODE-26", - "text": "Tickets\\n* Meetings\\n* Objects linked to issues\\n* Users\\n\\nTo configure a workspace object loop:\\n\\n1. On the **workflow canvas**, add an action step named **Loop for [Object]**, where [Object] is the entity you want to iterate over.\\n2. Apply **filter conditions** to refine the set of objects included in the loop and perform operations on them.\\n\\nAll **actions** inside the loop execute once per object that satisfies the filter conditions.\\n\\n### For Each\\n\\nThe **For Each** loop iterates", - "title": "Workflow nodes | Workflows | Computer by DevRev | DevRev" + "id": "ART-2048_KNOWLEDGE_NODE-27", + "text": "allows you to create parent/child relationships between issues, you cannot do the same with tickets. If your workflow requires manual creation of parent/child relationships in DevRev work items, you should use issues. If that is not a requirement and tickets are preferred for another reason, you can specify tickets as the target for ClickUp tasks.\\n\\nImport from ClickUp\\n-------------------\\n\\nFollow the steps below to import from ClickUp:\\n\\n1. In **Marketplace**, search for **ClickUp** and", + "title": "ClickUp AirSync | AirSync | Snap-ins | DevRev" } ] }, @@ -2412,19 +2412,14 @@ "query": "add multiple email addresses to one contact through Grow interface", "retrievals": [ { - "id": "ART-6175_KNOWLEDGE_NODE-26", - "text": "contacts.\\n* **Link Account and Contact:**\\n Enable this option to link the account and contact to the custom object.\\n* **Account Description Fields:**\\n Enable this option to generate a rich description for accounts using values from multiple Airtable columns.\\n* **Contact Description Fields:**\\n Enable this option to generate a rich description for contacts using values from multiple Airtable columns.\\n* **Airtable Email Columns:**\\n Comma-separated list of names of the columns in", - "title": "Airtable | Automate | Snap-ins | DevRev" - }, - { - "id": "ART-15506_KNOWLEDGE_NODE-6", - "text": "[here](https://devrev.ai/docs/product/grow).\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/auth-tokens.create\\' \\\\ |\\n| > | --header \\'accept: application/json, text/plain, */*\\' \\\\ |\\n| > | --header \\'authorization: \\' \\\\ |\\n| > | --header \\'content-type: application/json\\' \\\\ |\\n| > | --data-raw \\'{ |\\n| > | \"rev_info\": { |\\n| > | \"user_ref\": \"example@devrev.ai\", |\\n| > | \"account_ref\": \"devrev.ai\", |\\n| > | \"workspace_ref\": \"devrev-dev\", |\\n| > |", - "title": "Identify your users with Plug | DevRev | Docs" + "id": "ART-16784_KNOWLEDGE_NODE-6", + "text": "in the source system.\\n\\nTerms related to connection: AirSync, snap-incontact\\n\\nIndividual prospects or users associated with an organization\\'s workspaces or accounts.\\n\\nContacts can be associated with an account or workspace, but not always.\\n\\nTerms related to contact: account, workspace\\n\\nRead more about contact: [https://devrev.ai/docs/product/grow](https://devrev.ai/docs/product/grow)conversation\\n\\nAn interaction between the builder and consumer that may be escalated to a", + "title": "Glossary" }, { - "id": "ART-980_KNOWLEDGE_NODE-24", - "text": "Email integration\\n Support Portal\\n \\n \\n Operate App\\n Grow App\\n \\n Account Management\\n Contact Management\\n Engagement Tracking\\n \\n \\n Core Services\\n Marketplace\\n \\n Partnerships\\n Integrations\\n \\n Discord\\n Slack\\n DevRev CLI\\n KB Extraction\\n Github Airdrop\\n SFDC Airdrop\\n", - "title": "How to Think About (And Structure) Your Products" + "id": "ART-2575_KNOWLEDGE_NODE-28", + "text": "a database identifier or an email address.)\\n* account\\\\_external\\\\_reference (the external reference of the contact\\'s parent account)\\n\\n### Array fields\\n\\nFor fields that accept multiple values, such as **owners** and **industry**, values should be separated by commas (,). For example, Agriculture and Forestry should be written as Agriculture,Forestry.\\n\\n![]()\\n\\nIf a value contains a comma, enclose it in backticks. For example, enter \"Rail, Bus & Taxi\" as `Rail, Bus & Taxi`.\\n\\n###", + "title": "Account and contact import | Computer for Growth Teams | DevRev" }, { "id": "ART-1284_KNOWLEDGE_NODE-45", @@ -2432,14 +2427,9 @@ "title": "Event sources | DevRev | Docs" }, { - "id": "ART-2933_KNOWLEDGE_NODE-2", - "text": "[contacts](https://docs.devrev.ai/product/grow#-contact) which represents an individual user associated with the account of the organization. To create a contact, we also need to use the `rev-orgs.list` API with the `accounts` filter to get the default [workspace](https://docs.devrev.ai/product/grow#-workspace)(rev org) created with the account. We will be creating a contact under the workspace (`rev_org`) of the account as contacts (`rev_user`) cannot exist individually without being", - "title": "Account creation | DevRev | Docs" - }, - { - "id": "ART-6177_KNOWLEDGE_NODE-26", - "text": "**Enable *Contact* Custom Field Mapping For Tracxn:** \\n Use the Tracxn-based *Contact* custom field mappings.\\n* **Enable *Contact* Custom Field Mapping for DevRev:** \\n Use static *Contact* custom field values.\\n* **Enable Tags For *Accounts*:** \\n Apply tags to created *Accounts*.\\n* **Enable Tags For *Contacts*:** \\n Apply tags to created *Contacts*.\\n* ***Account* Field Mapping:** \\n Map fields from Tracxn company objects to DevRev *Account* fields.\\n\\n **Format:**\\n\\n ```\\n", - "title": "Tracxn sync | Automate | Snap-ins | DevRev" + "id": "ART-980_KNOWLEDGE_NODE-24", + "text": "Email integration\\n Support Portal\\n \\n \\n Operate App\\n Grow App\\n \\n Account Management\\n Contact Management\\n Engagement Tracking\\n \\n \\n Core Services\\n Marketplace\\n \\n Partnerships\\n Integrations\\n \\n Discord\\n Slack\\n DevRev CLI\\n KB Extraction\\n Github Airdrop\\n SFDC Airdrop\\n", + "title": "How to Think About (And Structure) Your Products" }, { "id": "ART-2045_KNOWLEDGE_NODE-51", @@ -2447,19 +2437,29 @@ "title": "AirSync | Snap-ins | DevRev" }, { - "id": "ART-6175_KNOWLEDGE_NODE-27", - "text": "Airtable that contain email addresses. These are used to link or create contacts.\\n* **Airtable Phone Number Column:**\\n Provide the column name from Airtable that contains the contact\\'s phone number.\\n* **Airtable to Custom Object Mapping:**\\n Map fields from Airtable to your DevRev custom object fields.\\n **Format:**\\n\\n ```\\n ```\\n 1 { \"\": \"\" }\\n ```\\n ```\\n\\n **Explanation:**\\n Airtable Column Name: Column name exactly as it", - "title": "Airtable | Automate | Snap-ins | DevRev" - }, - { - "id": "ART-6177_KNOWLEDGE_NODE-31", - "text": "**Format:**\\n\\n ```\\n ```\\n 1 { \"\": \"\" }\\n ```\\n ```\\n\\n **Explanation:** \\n Tracxn Field: Tracxn key exactly how it appears in the payload. \\n *Contact* Field API Name: Field API name in the *Contact* object\\n\\n **Example:**\\n\\n ```\\n ```\\n 1 { \"name\": \"display_name\", \"linkedin\": \"linkedin_profile\" }\\n ```\\n ```\\n* ***Contact* Custom Field Mapping From Tracxn:** \\n Map Tracxn fields to custom fields in DevRev\\xe2\\x80\\x99s *Contact*", - "title": "Tracxn sync | Automate | Snap-ins | DevRev" + "id": "ART-1960_KNOWLEDGE_NODE-28", + "text": "Individual prospects or users associated with an organization\\'s workspaces or accounts.\\n: Contacts can be associated with an account or workspace, but not always.\\n: Terms related to\\xc2\\xa0*contact*:\\n\\n * *[account](#account)*\\n * *[workspace](#workspace)*\\n: Read more about\\xc2\\xa0[*contact*](https://docs.devrev.ai/product/grow)\\n\\nconversation\\n\\n: An interaction between the builder and consumer that may be escalated to a ticket.\\n: Terms related", + "title": "Glossary | Computer by DevRev | DevRev" }, { "id": "ART-1960_KNOWLEDGE_NODE-26", "text": "address.\\n: Terms related to\\xc2\\xa0*account*:\\n\\n * *[customer](#customer)*\\n * *[workspace](#workspace)*\\n: Read more about\\xc2\\xa0[*account*](https://docs.devrev.ai/product/grow)\\n\\ncapability\\n\\n: A collection of features that enable a customer to achieve a use case.\\n: Capability is a unit of licensing and entitlement for the persona driving a particular use case. As a collection of features, capabilities are grouped into different buckets for tiered use cases (for example,", "title": "Glossary | Computer by DevRev | DevRev" + }, + { + "id": "ART-15506_KNOWLEDGE_NODE-6", + "text": "[here](https://devrev.ai/docs/product/grow).\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/auth-tokens.create\\' \\\\ |\\n| > | --header \\'accept: application/json, text/plain, */*\\' \\\\ |\\n| > | --header \\'authorization: \\' \\\\ |\\n| > | --header \\'content-type: application/json\\' \\\\ |\\n| > | --data-raw \\'{ |\\n| > | \"rev_info\": { |\\n| > | \"user_ref\": \"example@devrev.ai\", |\\n| > | \"account_ref\": \"devrev.ai\", |\\n| > | \"workspace_ref\": \"devrev-dev\", |\\n| > |", + "title": "Identify your users with Plug | DevRev | Docs" + }, + { + "id": "ART-6175_KNOWLEDGE_NODE-26", + "text": "contacts.\\n* **Link Account and Contact:**\\n Enable this option to link the account and contact to the custom object.\\n* **Account Description Fields:**\\n Enable this option to generate a rich description for accounts using values from multiple Airtable columns.\\n* **Contact Description Fields:**\\n Enable this option to generate a rich description for contacts using values from multiple Airtable columns.\\n* **Airtable Email Columns:**\\n Comma-separated list of names of the columns in", + "title": "Airtable | Automate | Snap-ins | DevRev" + }, + { + "id": "ART-1458_KNOWLEDGE_NODE-1", + "text": "[Accounts](https://docs.devrev.ai/product/grow#-account).\\n\\nWas this page helpful?YesNo\\n\\n[Create AccountUp Next](/public/api-reference/accounts/create)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n[Enterprise grade security to protect customer dataLearn more about it.](https://devrev.ai/blog/soc-compliance)\\n\\nProduct\\n\\n * [Build](https://devrev.ai/build)\\n * [Support](https://devrev.ai/support)\\n *", + "title": "Accounts \u2014 DevRev | Docs" } ] }, @@ -2472,26 +2472,6 @@ "text": "b'List Accounts | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[accounts](/api-reference/accounts/accounts)\\n\\nList Accounts\\n=============\\n\\nCopy page\\n\\nGET\\n\\nhttps://api.devrev.ai/accounts.list\\n\\nGET\\n\\n/accounts.list\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl https://api.devrev.ai/accounts.list \\\\ |\\n| > | -H \"Authorization: Bearer \" |\\n```\\n\\n[Try", "title": "List Accounts | DevRev | Docs" }, - { - "id": "ART-1453_KNOWLEDGE_NODE-0", - "text": "b'[](/public/api-reference/accounts/list)\\n\\nPublic\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources", - "title": "List Accounts \u2014 DevRev | Docs" - }, - { - "id": "ART-1259_KNOWLEDGE_NODE-0", - "text": "b'List Accounts (POST) | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[accounts](/api-reference/accounts/accounts)\\n\\nList Accounts (POST)\\n====================\\n\\nCopy page\\n\\nPOST\\n\\nhttps://api.devrev.ai/accounts.list\\n\\nPOST\\n\\n/accounts.list\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl -X POST https://api.devrev.ai/accounts.list \\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\ |\\n| > | -H", - "title": "List Accounts (POST) | DevRev | Docs" - }, - { - "id": "ART-1465_KNOWLEDGE_NODE-0", - "text": "b'[](/public/api-reference/accounts/list-post)\\n\\nPublic\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources", - "title": "List Accounts (POST) \u2014 DevRev | Docs" - }, - { - "id": "ART-1259_KNOWLEDGE_NODE-1", - "text": "\"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{}\\' |\\n```\\n\\n[Try it](/api-reference/accounts/list-post?explorer=true)\\n\\n200Successful\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"accounts\": [ |\\n| 3 | { |\\n| 4 | \"id\": \"string\", |\\n| 5 | \"owned_by\": [ |\\n| 6 | { |\\n| 7 | \"display_id\": \"string\", |\\n| 8 | \"id\": \"string\", |\\n| 9 | \"display_name\": \"string\", |\\n| 10 | \"display_picture\": { |\\n| 11 | \"display_id\": \"string\", |\\n| 12 | \"id\": \"string\", |\\n| 13 | \"file\": { |\\n| 14 | \"type\":", - "title": "List Accounts (POST) | DevRev | Docs" - }, { "id": "ART-1306_KNOWLEDGE_NODE-19", "text": "api.devrev.ai / accounts.list\\nGets a list of accounts.\\nRequest.\\n\\nThis endpoint expects an object.\\ncreated_by list of strings Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date object Optional\\nShow 2 properties\\ncursor string Optional\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name list of strings Optional\\nArray of display", @@ -2503,19 +2483,39 @@ "title": "Get Post \u2014 DevRev | Docs" }, { - "id": "ART-2933_KNOWLEDGE_NODE-22", - "text": "created in **Accounts** and selecting the **Contacts** tab to view all the contacts created for the selected account.\\n\\n![]()\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/beta/changelog/2024/12/2)[#### Agents async API\\n\\nNext](/beta/guides/agents-async-api)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n![]()'", - "title": "Account creation | DevRev | Docs" + "id": "ART-1302_KNOWLEDGE_NODE-17", + "text": "of the account to be retrieved.\\nResponse.\\n\\nThis endpoint returns an object.\\naccount object\\nShow 18 properties\\nAPI Reference accounts List.\\n\\nGET https:// api.devrev.ai / accounts.list\\nGets a list of accounts.\\nQuery parameters.\\n\\ncreated_by string Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date.after datetime Optional\\nFilters for objects created after the provided timestamp (inclusive).\\ncreated_date.before datetime Optional\\nFilters for objects created", + "title": "Export \u2014 DevRev | Docs" }, { - "id": "ART-13047_KNOWLEDGE_NODE-8", - "text": "67| \"foo\" \\n 68| ], \\n 69| \"user_agent\": \"foo\" \\n 70| } \\n 71| ], \\n 72| \"next_cursor\": \"foo\", \\n 73| \"prev_cursor\": \"foo\" \\n 74| }\\n[/code] \\n \\n[List Web Crawler Jobs (POST)Up Next](/public/api-reference/web-crawler-job/list-web-crawler-jobs-post)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n[Enterprise grade security to protect customer dataLearn more about", - "title": "List Web Crawler Jobs \u2014 DevRev | Docs" + "id": "ART-1301_KNOWLEDGE_NODE-17", + "text": "of the account to be retrieved.\\nResponse.\\n\\nThis endpoint returns an object.\\naccount object\\nShow 18 properties\\nAPI Reference accounts List.\\n\\nGET https:// api.devrev.ai / accounts.list\\nGets a list of accounts.\\nQuery parameters.\\n\\ncreated_by string Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date.after datetime Optional\\nFilters for objects created after the provided timestamp (inclusive).\\ncreated_date.before datetime Optional\\nFilters for objects created", + "title": "Delete \u2014 DevRev | Docs" + }, + { + "id": "ART-1259_KNOWLEDGE_NODE-0", + "text": "b'List Accounts (POST) | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[accounts](/api-reference/accounts/accounts)\\n\\nList Accounts (POST)\\n====================\\n\\nCopy page\\n\\nPOST\\n\\nhttps://api.devrev.ai/accounts.list\\n\\nPOST\\n\\n/accounts.list\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl -X POST https://api.devrev.ai/accounts.list \\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\ |\\n| > | -H", + "title": "List Accounts (POST) | DevRev | Docs" + }, + { + "id": "ART-1300_KNOWLEDGE_NODE-14", + "text": "endpoint returns an object.\\naccount object\\nShow 18 properties\\nAPI Reference accounts List.\\n\\nGET https:// api.devrev.ai / accounts.list\\nGets a list of accounts.\\nQuery parameters.\\n\\ncreated_by string Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date.after datetime Optional\\nFilters for objects created after the provided timestamp (inclusive).\\ncreated_date.before datetime Optional\\nFilters for objects created before the provided timestamp (inclusive).\\ncursor", + "title": "Create \u2014 DevRev | Docs" }, { "id": "ART-1305_KNOWLEDGE_NODE-14", "text": ", 37 \" tier \" : \" tier \" 38 } 39 }\\nAPI Reference accounts List.\\n\\nGET https:// api.devrev.ai / accounts.list\\nGets a list of accounts.\\nQuery parameters.\\n\\ncreated_by string Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date.after datetime Optional\\nFilters for objects created after the provided timestamp (inclusive).\\ncreated_date.before datetime Optional\\nFilters for objects created before the provided timestamp (inclusive).\\ncursor string Optional\\nThe cursor", "title": "Get Post \u2014 DevRev | Docs" + }, + { + "id": "ART-1453_KNOWLEDGE_NODE-0", + "text": "b'[](/public/api-reference/accounts/list)\\n\\nPublic\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources", + "title": "List Accounts \u2014 DevRev | Docs" + }, + { + "id": "ART-2933_KNOWLEDGE_NODE-22", + "text": "created in **Accounts** and selecting the **Contacts** tab to view all the contacts created for the selected account.\\n\\n![]()\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/beta/changelog/2024/12/2)[#### Agents async API\\n\\nNext](/beta/guides/agents-async-api)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n![]()'", + "title": "Account creation | DevRev | Docs" } ] }, @@ -2524,34 +2524,39 @@ "query": "SLA timer not running for newly created tickets with L1 SLA tag and Test SLA Pilot", "retrievals": [ { - "id": "ART-2017_KNOWLEDGE_NODE-25", - "text": "ticket\\'s owner and subscribers, when a ticket\\'s resolution time SLA changes into the *Warning* or *Breached* stage.\\n\\n![]()\\n\\nFor more information, refer to the\\n[SLA status change Slack notifier snap-in](/marketplace/sla-status-change-slack-notifier) on the DevRev\\nmarketplace.\\n\\nInstallation\\n------------\\n\\n1. Create a Slack app for your workspace in .\\n2. In App features, generate bot token in **OAuth & Permissions**.\\n3. Grant the app bot the following", - "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" + "id": "ART-6174_KNOWLEDGE_NODE-32", + "text": "handling**: Conversation and ticket SLAs operate independently. When converting:\\n\\n + The new ticket starts with its own response and resolution SLA timers\\n + All active SLA metrics on the original conversation are marked as completed\\n\\n[PreviousConversations](/docs/product/conversation)[NextTickets](/docs/product/tickets)\\n\\n#### On this page\\n\\n* [Conversation conversion process](#conversation-conversion-process)\\n* [Convert conversations to tickets](#convert-conversations-to-tickets)\\n*", + "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" }, { - "id": "ART-1483_KNOWLEDGE_NODE-24", - "text": "[here](https://github.com/devrev/snap-in-examples/tree/main/6-timer-ticket-creator)\\n\\nWas this page helpful?YesNo\\n\\n[Using a snap-in to perform an external actionUp Next](/public/snapin-development/tutorials/perform-external-action)\\n\\n[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)\\n\\n[Enterprise grade security to protect customer dataLearn more about it.](https://devrev.ai/blog/soc-compliance)\\n\\nProduct\\n\\n *", - "title": "Using a snap-in to perform a DevRev action \u2014 DevRev | Docs" + "id": "ART-1986_KNOWLEDGE_NODE-41", + "text": "resolution is due in one day, the vista displays five minutes. In the case where the first response isn't provided within five minutes, the timer displays negative values (such as -10m), which indicates that it's been 10 minutes since the first response was due. Conversations or tickets can also be grouped by SLA stages.\\n\\nIn the **Detailed View**, all metrics applied to the ticket or conversation can be viewed along with their current stage.\\n\\nFiltering tickets by Next SLA", + "title": "Service-level agreement | Computer for Support Teams | DevRev" }, { - "id": "ART-1275_KNOWLEDGE_NODE-12", - "text": "`src/functions/ticket_creator/index.test.ts`\\n\\n[4](/snapin-development/tutorials/timer-ticket-creator#event-received-by-the-snap-in-function)\\n\\n### Event received by the snap-in function\\n\\nIn the hello-world snap-in, the ID of the created work-item gets extracted from\\nthe input event as such.\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | console.info( |\\n| 2 | `The work ${events[0].payload.work_created.work.id} has been created.` |\\n| 3 | ); |\\n```\\n\\nThe schema for a event received by the snap-in", - "title": "Using a snap-in to perform a DevRev action | DevRev | Docs" + "id": "ART-4181_KNOWLEDGE_NODE-18", + "text": "breach\\n\\n![]()\\n\\nSLA timers on Conversation and Ticket panel\\n\\nEquip agents with the comprehensive context they need to prioritize based on service level commitments\\n\\n![]()\\n\\nSLA timers on Conversation and Ticket panel\\n\\nEquip agents with the comprehensive context they need to prioritize based on service level commitments\\n\\n![]()\\n\\nView SLA targets in Inbox view\\n\\nSee critical SLA information directly on your Omnichannel Inbox to prioritize and take action before breach", + "title": "Support like a lightning fast pit-crew" }, { - "id": "ART-1275_KNOWLEDGE_NODE-7", - "text": "account\\xe2\\x80\\x99s display name to better reflect the\\nsnap-in\\xe2\\x80\\x99s behavior.\\n\\nmanifest.yaml\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | version: \"2\" |\\n| 2 | |\\n| 3 | name: \"Timely Ticketer\" |\\n| 4 | description: \"Snap-in to create ticket every 10 minutes\" |\\n| 5 | |\\n| 6 | service_account: |\\n| 7 | display_name: Automatic Ticket Creator Bot |\\n```\\n\\nNext, update the `event_sources` section to use the `timer-events` event source.\\nThe `timer-events` source type takes a `config` of", + "id": "ART-1275_KNOWLEDGE_NODE-19", + "text": "owned_by: [\"DEVU-1\"], |\\n| 23 | type: publicSDK.WorkType.Ticket, |\\n| 24 | }); |\\n| 25 | |\\n| 26 | console.log(response); |\\n| 27 | } |\\n| 28 | }; |\\n| 29 | |\\n| 30 | export default run; |\\n```\\n\\n[6](/snapin-development/tutorials/timer-ticket-creator#deploying-the-snap-in-to-your-organization)\\n\\n### Deploying the snap-in to your organization\\n\\nOnce satisfied with the code changes, move to the `code` folder, and run\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | npm install |\\n| > | |\\n| > | npm", "title": "Using a snap-in to perform a DevRev action | DevRev | Docs" }, { - "id": "ART-17231_KNOWLEDGE_NODE-153", - "text": "this object, which is used to track the SLA metrics. |\\n| `source_channel_v2` | reference\\xe2\\x86\\x92[#record:external\\\\_communication\\\\_channel] | | Source channel ID of the ticket |\\n| `stage` | enum | \\xe2\\x9c\\x94\\xef\\xb8\\x8e | Stage of the object |\\n| `tags` | reference (collection)\\xe2\\x86\\x92[#record:tag] | | Tags associated with the object |\\n| `target_close_date` | timestamp | | Timestamp when the work is expected to be complete |\\n| `title` | text | \\xe2\\x9c\\x94\\xef\\xb8\\x8e | Title", - "title": "Supported DevRev object types | DevRev | Docs" + "id": "ART-2017_KNOWLEDGE_NODE-25", + "text": "ticket\\'s owner and subscribers, when a ticket\\'s resolution time SLA changes into the *Warning* or *Breached* stage.\\n\\n![]()\\n\\nFor more information, refer to the\\n[SLA status change Slack notifier snap-in](/marketplace/sla-status-change-slack-notifier) on the DevRev\\nmarketplace.\\n\\nInstallation\\n------------\\n\\n1. Create a Slack app for your workspace in .\\n2. In App features, generate bot token in **OAuth & Permissions**.\\n3. Grant the app bot the following", + "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" }, { - "id": "ART-15688_KNOWLEDGE_NODE-13", - "text": "group](/docs/automations/set-user-preference)\\n - [SLA status change Slack notifier](/docs/automations/sla-change-notifier)\\n - [Slash commands](/docs/automations/slash-commands)\\n - [Spam Shield](/docs/automations/spam-shield)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field migrator](/docs/automations/ticket-issue-field-migrator)\\n - [Ticket", - "title": "Effort logger | Automate | Snap-ins | DevRev" + "id": "ART-1273_KNOWLEDGE_NODE-1", + "text": "action](/snapin-development/tutorials/timer-ticket-creator)\\n3. [Snap-in triggered by a DevRev event](/snapin-development/tutorials/triggered-event)\\n4. [Snap-in triggered by an external source](/snapin-development/tutorials/triggered-external-source)\\n5. [Using snap-in to perform an external action](/snapin-development/tutorials/perform-external-action)\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/snapin-development/concepts)[#### Getting", + "title": "Overview | DevRev | Docs" + }, + { + "id": "ART-1275_KNOWLEDGE_NODE-7", + "text": "account\\xe2\\x80\\x99s display name to better reflect the\\nsnap-in\\xe2\\x80\\x99s behavior.\\n\\nmanifest.yaml\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | version: \"2\" |\\n| 2 | |\\n| 3 | name: \"Timely Ticketer\" |\\n| 4 | description: \"Snap-in to create ticket every 10 minutes\" |\\n| 5 | |\\n| 6 | service_account: |\\n| 7 | display_name: Automatic Ticket Creator Bot |\\n```\\n\\nNext, update the `event_sources` section to use the `timer-events` event source.\\nThe `timer-events` source type takes a `config` of", + "title": "Using a snap-in to perform a DevRev action | DevRev | Docs" }, { "id": "ART-1483_KNOWLEDGE_NODE-22", @@ -2559,19 +2564,14 @@ "title": "Using a snap-in to perform a DevRev action \u2014 DevRev | Docs" }, { - "id": "ART-4021_KNOWLEDGE_NODE-13", + "id": "ART-2043_KNOWLEDGE_NODE-13", "text": "group](/docs/automations/set-user-preference)\\n - [SLA status change Slack notifier](/docs/automations/sla-change-notifier)\\n - [Slash commands](/docs/automations/slash-commands)\\n - [Spam Shield](/docs/automations/spam-shield)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field migrator](/docs/automations/ticket-issue-field-migrator)\\n - [Ticket", - "title": "Slack scraper | Automate | Snap-ins | DevRev" - }, - { - "id": "ART-6174_KNOWLEDGE_NODE-32", - "text": "handling**: Conversation and ticket SLAs operate independently. When converting:\\n\\n + The new ticket starts with its own response and resolution SLA timers\\n + All active SLA metrics on the original conversation are marked as completed\\n\\n[PreviousConversations](/docs/product/conversation)[NextTickets](/docs/product/tickets)\\n\\n#### On this page\\n\\n* [Conversation conversion process](#conversation-conversion-process)\\n* [Convert conversations to tickets](#convert-conversations-to-tickets)\\n*", - "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" + "title": "Glean | Integrate | Snap-ins | DevRev" }, { - "id": "ART-3235_KNOWLEDGE_NODE-13", + "id": "ART-15691_KNOWLEDGE_NODE-13", "text": "group](/docs/automations/set-user-preference)\\n - [SLA status change Slack notifier](/docs/automations/sla-change-notifier)\\n - [Slash commands](/docs/automations/slash-commands)\\n - [Spam Shield](/docs/automations/spam-shield)\\n - [Subtype Migration](/docs/automations/subtype-migration)\\n - [Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n - [Ticket issue field migrator](/docs/automations/ticket-issue-field-migrator)\\n - [Ticket", - "title": "Reported by enricher | Automate | Snap-ins | DevRev" + "title": "May 2025 | Changelog | DevRev" } ] }, @@ -2585,29 +2585,29 @@ "title": "Merge Dev Users | DevRev | Docs" }, { - "id": "ART-1979_KNOWLEDGE_NODE-54", - "text": "already raised in the primary ticket. Duplicate tickets often arise from customers submitting multiple requests through different channels (email, portal, Slack). All duplicate tickets become *immutable* after merging.\\n\\n**Primary ticket**\\n\\nA primary ticket is the main record that consolidates all relevant information from duplicate tickets. It serves as the primary source of communication for all merged duplicate tickets, ensuring that all customer interactions, updates, and resolutions are", + "id": "ART-1979_KNOWLEDGE_NODE-59", + "text": "duplicate tickets transfer to the primary ticket.\\n* The older messages and attachments on the duplicate ticket remains within the duplicate ticket post merge.\\n* Any new customer message on duplicate tickets post merge sync to the primary ticket.\\n* Duplicate tickets remain accessible through the **Linked Objects** section of the primary ticket.\\n* CSAT triggers only for the primary ticket resolution.\\n* Merge actions cannot be reversed, and merged tickets cannot be merged again.\\n\\nFollow up", "title": "Tickets | Computer for Support Teams | DevRev" }, { - "id": "ART-15664_KNOWLEDGE_NODE-13", - "text": "\\n\\nYou may want to restrict links to specific subtypes of objects. For example, only allowing issues\\nof a particular subtype to be linked to tickets.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"name\": \"Link between social media issues and tickets\", |\\n| > | \"source_types\": [ |\\n| > | { |\\n|", + "id": "ART-15664_KNOWLEDGE_NODE-6", + "text": "you want to establish a parent-child relationship between tickets and a custom object\\ntype called \\xe2\\x80\\x9cCampaign\\xe2\\x80\\x9d. This relationship helps track which tickets are assigned to which campaigns.\\n\\nTo create this relationship, make an API call to create a link type:\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\'", "title": "Links | DevRev | Docs" }, { - "id": "ART-1244_KNOWLEDGE_NODE-22", - "text": "tickets belonging to specific groups.\\n\\nticket.is\\\\_frozenbooleanOptional\\n\\nFilters for frozen tickets.\\n\\nticket.is\\\\_spambooleanOptional\\n\\nFilters for tickets that are spam.\\n\\nticket.needs\\\\_responsebooleanOptional\\n\\nFilters for tickets that need response.\\n\\nticket.rev\\\\_orglist of stringsOptional\\n\\nFilters for tickets that are associated with any of the provided Rev\\norganizations.\\n\\nticket.severitylist of enumsOptional\\n\\nFilters for tickets with any of the provided", - "title": "Export Works | DevRev | Docs" + "id": "ART-1979_KNOWLEDGE_NODE-54", + "text": "already raised in the primary ticket. Duplicate tickets often arise from customers submitting multiple requests through different channels (email, portal, Slack). All duplicate tickets become *immutable* after merging.\\n\\n**Primary ticket**\\n\\nA primary ticket is the main record that consolidates all relevant information from duplicate tickets. It serves as the primary source of communication for all merged duplicate tickets, ensuring that all customer interactions, updates, and resolutions are", + "title": "Tickets | Computer for Support Teams | DevRev" }, { - "id": "ART-1961_KNOWLEDGE_NODE-37", - "text": "\\n{{Ticket\\xc2\\xa0Created\\xc2\\xa0>\\xc2\\xa0Output\\xc2\\xa0>\\xc2\\xa0Reported\\xc2\\xa0By\\xc2\\xa0>\\xc2\\xa0Rev\\xc2\\xa0Org\\xc2\\xa0>\\xc2\\xa0Display\\xc2\\xa0Name}}.\\xe2\\x80\\x9d\\n\\n\\n\\nDelay\\n\\n\\n\\nDuration: 2 minutes\\n\\n\\n\\nIf-else\\n\\n\\n\\nAttribute:\\xc2\\xa0Ticket\\xc2\\xa0Created/Output\\xc2\\xa0>\\xc2\\xa0Applies\\xc2\\xa0to\\xc2\\xa0part\\xc2\\xa0>\\xc2\\xa0Display\\xc2\\xa0ID \\nOperator: Equals \\nOperand: CAPL-18\\n\\n\\n\\nTicket \\ncreated\\n\\n\\n\\nEnd\\n```\\n\\n[### Workflow action", - "title": "Workflows | Computer by DevRev | DevRev" + "id": "ART-1979_KNOWLEDGE_NODE-58", + "text": "on the number of tickets that can be merged.\\n4. Review the automatic communication sent to primary and duplicate ticket owners (configurable in ticket preferences).\\n\\n### Post-merge conditions\\n\\n* The primary ticket retains all key fields (description, part, group, owner, creator, priority, stage), and the SLA remains unchanged.\\n* Events are updated to reflect all merge actions.\\n* Subscribers and reporters from duplicate tickets are added to the primary ticket.\\n* Linked objects from", + "title": "Tickets | Computer for Support Teams | DevRev" }, { - "id": "ART-1986_KNOWLEDGE_NODE-43", - "text": "tickets that have been in breach for more than one hour.\\n + **Over a day**: Filters all tickets that have been in breach for more than one day.\\n + **Custom**: Filters all tickets that have been in breach from a given date.\\n* **Will breach in**:\\n\\n + **Any**: Filters all tickets that are currently not in breach.\\n + **Over an hour**: Filters all tickets that have less than 1 hour left for breach.\\n + **Over a day**: Filters all tickets that have less than 1 day left for breach.\\n +", - "title": "Service-level agreement | Computer for Support Teams | DevRev" + "id": "ART-15664_KNOWLEDGE_NODE-13", + "text": "\\n\\nYou may want to restrict links to specific subtypes of objects. For example, only allowing issues\\nof a particular subtype to be linked to tickets.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"name\": \"Link between social media issues and tickets\", |\\n| > | \"source_types\": [ |\\n| > | { |\\n|", + "title": "Links | DevRev | Docs" }, { "id": "ART-1483_KNOWLEDGE_NODE-18", @@ -2615,19 +2615,19 @@ "title": "Using a snap-in to perform a DevRev action \u2014 DevRev | Docs" }, { - "id": "ART-1979_KNOWLEDGE_NODE-59", - "text": "duplicate tickets transfer to the primary ticket.\\n* The older messages and attachments on the duplicate ticket remains within the duplicate ticket post merge.\\n* Any new customer message on duplicate tickets post merge sync to the primary ticket.\\n* Duplicate tickets remain accessible through the **Linked Objects** section of the primary ticket.\\n* CSAT triggers only for the primary ticket resolution.\\n* Merge actions cannot be reversed, and merged tickets cannot be merged again.\\n\\nFollow up", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-3107_KNOWLEDGE_NODE-24", + "text": "existing tickets](#triggering-tag-checks-for-existing-tickets)\\n\\n1. [Documentation](/docs)\\n3. [Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[Ticket Tagger](/docs/automations/ticket-tagger)\\n\\nTicket tagger\\n=============\\n\\nThe **Ticket Tagger** is an automation tool designed to streamline ticket\\nmanagement. It automatically assigns appropriate tags to tickets based on the\\ntags of the contact or their account.\\n\\nKey features\\n------------\\n\\n* Automatically tags tickets created by", + "title": "Ticket Tagger | Automate | Snap-ins | DevRev" }, { - "id": "ART-15643_KNOWLEDGE_NODE-7", - "text": "tickets \\xe2\\x80\\x93 with your unstructured data, like docs and chats. This gives our AI the complete context that others are missing.\\n\\nIt's a really hard problem; we\\xe2\\x80\\x99ve already spent five years on it. Our competitors are only now realizing that they will need to do the same.\\n\\nSecond, our AI takes action. Our competitors offer passive, read-only AI that can find and summarize information. That\\xe2\\x80\\x99s impressive, but the work stops there. And that\\xe2\\x80\\x99s not", - "title": "DevRev Corp Narrative - for PLuG on website" + "id": "ART-1961_KNOWLEDGE_NODE-37", + "text": "\\n{{Ticket\\xc2\\xa0Created\\xc2\\xa0>\\xc2\\xa0Output\\xc2\\xa0>\\xc2\\xa0Reported\\xc2\\xa0By\\xc2\\xa0>\\xc2\\xa0Rev\\xc2\\xa0Org\\xc2\\xa0>\\xc2\\xa0Display\\xc2\\xa0Name}}.\\xe2\\x80\\x9d\\n\\n\\n\\nDelay\\n\\n\\n\\nDuration: 2 minutes\\n\\n\\n\\nIf-else\\n\\n\\n\\nAttribute:\\xc2\\xa0Ticket\\xc2\\xa0Created/Output\\xc2\\xa0>\\xc2\\xa0Applies\\xc2\\xa0to\\xc2\\xa0part\\xc2\\xa0>\\xc2\\xa0Display\\xc2\\xa0ID \\nOperator: Equals \\nOperand: CAPL-18\\n\\n\\n\\nTicket \\ncreated\\n\\n\\n\\nEnd\\n```\\n\\n[### Workflow action", + "title": "Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-15664_KNOWLEDGE_NODE-6", - "text": "you want to establish a parent-child relationship between tickets and a custom object\\ntype called \\xe2\\x80\\x9cCampaign\\xe2\\x80\\x9d. This relationship helps track which tickets are assigned to which campaigns.\\n\\nTo create this relationship, make an API call to create a link type:\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\'", - "title": "Links | DevRev | Docs" + "id": "ART-1986_KNOWLEDGE_NODE-43", + "text": "tickets that have been in breach for more than one hour.\\n + **Over a day**: Filters all tickets that have been in breach for more than one day.\\n + **Custom**: Filters all tickets that have been in breach from a given date.\\n* **Will breach in**:\\n\\n + **Any**: Filters all tickets that are currently not in breach.\\n + **Over an hour**: Filters all tickets that have less than 1 hour left for breach.\\n + **Over a day**: Filters all tickets that have less than 1 day left for breach.\\n +", + "title": "Service-level agreement | Computer for Support Teams | DevRev" } ] }, @@ -2641,13 +2641,8 @@ "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" }, { - "id": "ART-2024_KNOWLEDGE_NODE-27", - "text": "help now... ask again in 5d\\n\\nSample response:\\n\\n> I am unable to assist you at the moment, however please reach out to me again in five days and I will be happy to help you.\\n\\n### Summarize\\n\\nUsing the summarize command, you can sum up the entire conversation. It applies to the following:\\n\\n* Conversation\\n* Tickets\\n* Issues\\n* Part\\n* Workspace\\n* Customer\\n* Account\\n\\nSample response:\\n\\n> **Summary:**\\n>\\n> * Rahul from DummyOrg is having difficulty installing the Plug Widget.\\n> *", - "title": "Slash commands | Automate | Snap-ins | DevRev" - }, - { - "id": "ART-6174_KNOWLEDGE_NODE-32", - "text": "handling**: Conversation and ticket SLAs operate independently. When converting:\\n\\n + The new ticket starts with its own response and resolution SLA timers\\n + All active SLA metrics on the original conversation are marked as completed\\n\\n[PreviousConversations](/docs/product/conversation)[NextTickets](/docs/product/tickets)\\n\\n#### On this page\\n\\n* [Conversation conversion process](#conversation-conversion-process)\\n* [Convert conversations to tickets](#convert-conversations-to-tickets)\\n*", + "id": "ART-6174_KNOWLEDGE_NODE-27", + "text": "happens automatically:\\n\\n* The original conversation moves to *Archived* stage and cannot be reopened.\\n* A new ticket is created with:\\n + All internal discussions and customer messages copied from the conversation\\n + Equivalent metadata as the conversation, including source channel, customer account information, and external members added as **reported by** on the ticket\\n + An AI-generated ticket title and description based on customer messages\\n\\nConvert conversations to", "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" }, { @@ -2655,15 +2650,25 @@ "text": "end user.\\n\\n## Why you should convert a Conversation to a Ticket\\n\\nConsider converting a conversation to a ticket in these scenarios:\\n\\n * **Complex issues** : When a customer inquiry requires in-depth investigation that can't be resolved in a quick conversation.\\n * **Cross-team collaboration** : Issues requiring input from multiple departments or specialists.\\n * **Escalation needs** : When a conversation needs to be escalated to a higher support tier.\\n * **Feature requests** :", "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" }, + { + "id": "ART-6174_KNOWLEDGE_NODE-25", + "text": "Teams](/docs/product/support)\\n[Conversations](/docs/product/conversation)\\n[Conversation to ticket conversion](/docs/product/conversation-ticket)\\n\\nConversation to ticket conversion\\n=================================\\n\\nYou can convert conversations from Plug and Slack directly into tickets. Previously, conversations were only linked to tickets. This update streamlines workflows and enhances the customer experience.\\n\\nFor conversations originating from Plug or Slack, the **Link to Ticket**", + "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" + }, + { + "id": "ART-2024_KNOWLEDGE_NODE-27", + "text": "help now... ask again in 5d\\n\\nSample response:\\n\\n> I am unable to assist you at the moment, however please reach out to me again in five days and I will be happy to help you.\\n\\n### Summarize\\n\\nUsing the summarize command, you can sum up the entire conversation. It applies to the following:\\n\\n* Conversation\\n* Tickets\\n* Issues\\n* Part\\n* Workspace\\n* Customer\\n* Account\\n\\nSample response:\\n\\n> **Summary:**\\n>\\n> * Rahul from DummyOrg is having difficulty installing the Plug Widget.\\n> *", + "title": "Slash commands | Automate | Snap-ins | DevRev" + }, { "id": "ART-4271_KNOWLEDGE_NODE-25", "text": "is being replaced with a new **Convert to Ticket** feature. This change provides a more seamless transition from conversation to ticket management.\\n\\n## How Conversation conversion works\\n\\nWhen you convert a conversation to a ticket, the following happens automatically:\\n\\n * The original conversation is moved to _Archived_ stage and cannot be reopened.\\n * A new ticket is created with: \\n * All internal discussions and customer messages copied from the conversation.\\n * Preserved", "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" }, { - "id": "ART-1639_KNOWLEDGE_NODE-248", - "text": "definition applies to.\\nAllowed values: conversation issue ticket\\ncursor string Optional\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\ninclude_custom_metrics boolean Optional\\nWhether to include custom metrics in the response. If not set, then custom metrics are excluded.\\nlimit integer Optional\\nThe maximum number of records to return. The default is \\'50\\'.\\nmode \"after\" or \"before\" Optional\\nThe iteration mode to use, otherwise if not set,", - "title": "Export Post \u2014 DevRev | Docs" + "id": "ART-6174_KNOWLEDGE_NODE-32", + "text": "handling**: Conversation and ticket SLAs operate independently. When converting:\\n\\n + The new ticket starts with its own response and resolution SLA timers\\n + All active SLA metrics on the original conversation are marked as completed\\n\\n[PreviousConversations](/docs/product/conversation)[NextTickets](/docs/product/tickets)\\n\\n#### On this page\\n\\n* [Conversation conversion process](#conversation-conversion-process)\\n* [Convert conversations to tickets](#convert-conversations-to-tickets)\\n*", + "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" }, { "id": "ART-6174_KNOWLEDGE_NODE-26", @@ -2671,19 +2676,14 @@ "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" }, { - "id": "ART-6174_KNOWLEDGE_NODE-25", - "text": "Teams](/docs/product/support)\\n[Conversations](/docs/product/conversation)\\n[Conversation to ticket conversion](/docs/product/conversation-ticket)\\n\\nConversation to ticket conversion\\n=================================\\n\\nYou can convert conversations from Plug and Slack directly into tickets. Previously, conversations were only linked to tickets. This update streamlines workflows and enhances the customer experience.\\n\\nFor conversations originating from Plug or Slack, the **Link to Ticket**", + "id": "ART-6174_KNOWLEDGE_NODE-29", + "text": "rules\\n\\nWorkflows enable seamless handovers from automated conversations to your support teams when necessary.\\n\\nPlug widget end-user experience\\n-------------------------------\\n\\nWhen a conversation is converted to a ticket in the Plug widget:\\n\\n* The ticket number and basic details appear in the same conversation pane.\\n* Users can click **Details** to view complete ticket information.\\n* If the **Tickets** tab is enabled in Plug, users can track their ticket status", "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" }, { - "id": "ART-1592_KNOWLEDGE_NODE-248", - "text": "definition applies to.\\nAllowed values: conversation issue ticket\\ncursor string Optional\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\ninclude_custom_metrics boolean Optional\\nWhether to include custom metrics in the response. If not set, then custom metrics are excluded.\\nlimit integer Optional\\nThe maximum number of records to return. The default is \\'50\\'.\\nmode \"after\" or \"before\" Optional\\nThe iteration mode to use, otherwise if not set,", - "title": "Update \u2014 DevRev | Docs" - }, - { - "id": "ART-1831_KNOWLEDGE_NODE-248", - "text": "definition applies to.\\nAllowed values: conversation issue ticket\\ncursor string Optional\\nThe cursor to resume iteration from. If not provided, then iteration starts from the beginning.\\ninclude_custom_metrics boolean Optional\\nWhether to include custom metrics in the response. If not set, then custom metrics are excluded.\\nlimit integer Optional\\nThe maximum number of records to return. The default is \\'50\\'.\\nmode \"after\" or \"before\" Optional\\nThe iteration mode to use, otherwise if not set,", - "title": "Get \u2014 DevRev | Docs" + "id": "ART-4271_KNOWLEDGE_NODE-32", + "text": "triggered when a conversation is resolved, not when it's archived through conversion.\\n\\n * **SLA handling** : Conversation and ticket SLAs operate independently. When converting:\\n\\n * The new ticket starts with its own response and resolution SLA timers.\\n * All active SLA metrics on the original conversation are marked as completed.\\n * **Conversion permanence** : Conversion cannot be undone. Once a conversation is converted to a ticket, this action is permanent and the conversation", + "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" } ] }, @@ -2691,30 +2691,15 @@ "query_id": "0e3d4f90-8b81-449e-85cb-cda6c356cf11", "query": "add subtype in conversation in DevRev", "retrievals": [ - { - "id": "ART-1957_KNOWLEDGE_NODE-24", - "text": "subtype](#add-a-new-subtype)\\n\\n1. [Documentation](/docs)\\n3. [Computer by DevRev](/docs/intro)\\n[Object customization](/docs/product/object-customization)\\n\\nObject customization\\n====================\\n\\nDevRev powers your organization with the ability to customize DevRev objects for your organization\\'s needs. You can add custom fields to the objects along with the pre-existing fields or add new subtypes to the objects which helps you extend an object\\'s capabilities.\\nObjects are the core", - "title": "Object customization | Computer by DevRev | DevRev" - }, - { - "id": "ART-16685_KNOWLEDGE_NODE-4", - "text": "power of conversational AI.\\n\\n**Objectives of this role will include:**\\n\\n* Proactively manage accounts to maximize customer value and drive tangible business growth and ROI for the customer and DevRev.\\n* Lead customers through onboarding; owning the implementation plan, developing product adoption strategies,and providing technical subject matter expertise and guidance.\\n* Develop new ways of helping customers increase the usage of our products.\\n* Enable integration of DevRev with", - "title": "DevRev Careers | Customer Success Manager" - }, - { - "id": "ART-12390_KNOWLEDGE_NODE-27", - "text": "applies\\\\_to\\\\_part, etc. * subtype: (Optional) Incident subtype * apps: (Optional) Related apps * app\\\\_custom\\\\_fields: (Optional) Custom fields | Created incident object |\\n| Create Issue | Creates a new issue in DevRev. | * Issue details like title, body, priority\\\\_v2, etc. * subtype: (Optional) Issue subtype * apps: (Optional) Related apps * app\\\\_custom\\\\_fields: (Optional) Custom fields | Created issue object |\\n| Create Meeting | Creates a new meeting in DevRev. | * Meeting details", - "title": "Workflow action library | Workflows | Computer by DevRev | DevRev" - }, { "id": "ART-1510_KNOWLEDGE_NODE-10", "text": "\"don:core:dvrv-us-1:devo/example:custom_type_fragment/custom-type-fragment-id\", \\n 115| \"subtype\": \"subtype\", \\n 116| \"tags\": [ \\n 117| { \\n 118| \"tag\": { \\n 119| \"id\": \"id\", \\n 120| \"name\": \"name\" \\n 121| } \\n 122| } \\n 123| ], \\n 124| \"title\": \"title\" \\n 125| } \\n 126| }\\n[/code] \\n \\n[Get Conversation (POST)Up Next](/beta/api-reference/conversations/get-post)\\n\\n[Built", "title": "Get Conversation (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-3068_KNOWLEDGE_NODE-26", - "text": "corner.\\n2. In the DevRev marketplace, find **Conversation reminder** and click\\n **Install**.\\n3. In DevRev, make necessary changes in configuration click **Save** and click\\n **Deploy**.\\n\\n[PreviousConvergence](/docs/automations/converge)[NextCSAT on conversation](/docs/automations/csat-conv)\\n\\n#### On this page\\n\\n* [Installing the auto parts to conversation snap-in](#installing-the-auto-parts-to-conversation-snapin)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more", - "title": "Conversation reminder | Automate | Snap-ins | DevRev" + "id": "ART-1957_KNOWLEDGE_NODE-24", + "text": "subtype](#add-a-new-subtype)\\n\\n1. [Documentation](/docs)\\n3. [Computer by DevRev](/docs/intro)\\n[Object customization](/docs/product/object-customization)\\n\\nObject customization\\n====================\\n\\nDevRev powers your organization with the ability to customize DevRev objects for your organization\\'s needs. You can add custom fields to the objects along with the pre-existing fields or add new subtypes to the objects which helps you extend an object\\'s capabilities.\\nObjects are the core", + "title": "Object customization | Computer by DevRev | DevRev" }, { "id": "ART-12390_KNOWLEDGE_NODE-28", @@ -2727,19 +2712,34 @@ "title": "Initial domain mapping | DevRev | Docs" }, { - "id": "ART-1036_KNOWLEDGE_NODE-5", - "text": "Computer\\n-----------------------------------------------------------------------------------\\n\\nShipsy implemented DevRev's unified platform, transforming their support operations with DevRev Support and conversational product management capabilities powered by AI and Computer's memory that connected previously siloed data sources.\\n\\n### 1. Easily integrated siloed data sources to unleash AI capabilities\\n\\nShipsy connected its existing knowledge base from Jira Confluence and integrated", - "title": "Shipsy elevates logistics support with AI-powered automation and cross team collaboration" + "id": "ART-12390_KNOWLEDGE_NODE-27", + "text": "applies\\\\_to\\\\_part, etc. * subtype: (Optional) Incident subtype * apps: (Optional) Related apps * app\\\\_custom\\\\_fields: (Optional) Custom fields | Created incident object |\\n| Create Issue | Creates a new issue in DevRev. | * Issue details like title, body, priority\\\\_v2, etc. * subtype: (Optional) Issue subtype * apps: (Optional) Related apps * app\\\\_custom\\\\_fields: (Optional) Custom fields | Created issue object |\\n| Create Meeting | Creates a new meeting in DevRev. | * Meeting details", + "title": "Workflow action library | Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-1818_KNOWLEDGE_NODE-223", + "id": "ART-1607_KNOWLEDGE_NODE-223", "text": "Reference customization Subtypes List.\\n\\nGET https:// api.devrev.ai / schemas.subtypes.list\\nLists subtypes.\\nQuery parameters.\\n\\nleaf_type string Optional\\nLeaf type for which subtypes are required.\\nleaf_types string Optional\\nList of leaf types for which subtypes are required.\\nResponse.\\n\\nThis endpoint returns an object.\\nsubtypes list of objects\\nList of subtypes.\\nShow 4 properties\\nAPI Reference customization Subtypes List Post.\\n\\nPOST https:// api.devrev.ai /", - "title": "Sla Trackers Get Post \u2014 DevRev | Docs" + "title": "Get Post \u2014 DevRev | Docs" }, { - "id": "ART-1838_KNOWLEDGE_NODE-223", + "id": "ART-1605_KNOWLEDGE_NODE-223", "text": "Reference customization Subtypes List.\\n\\nGET https:// api.devrev.ai / schemas.subtypes.list\\nLists subtypes.\\nQuery parameters.\\n\\nleaf_type string Optional\\nLeaf type for which subtypes are required.\\nleaf_types string Optional\\nList of leaf types for which subtypes are required.\\nResponse.\\n\\nThis endpoint returns an object.\\nsubtypes list of objects\\nList of subtypes.\\nShow 4 properties\\nAPI Reference customization Subtypes List Post.\\n\\nPOST https:// api.devrev.ai /", - "title": "List Post \u2014 DevRev | Docs" + "title": "Create \u2014 DevRev | Docs" + }, + { + "id": "ART-1822_KNOWLEDGE_NODE-223", + "text": "Reference customization Subtypes List.\\n\\nGET https:// api.devrev.ai / schemas.subtypes.list\\nLists subtypes.\\nQuery parameters.\\n\\nleaf_type string Optional\\nLeaf type for which subtypes are required.\\nleaf_types string Optional\\nList of leaf types for which subtypes are required.\\nResponse.\\n\\nThis endpoint returns an object.\\nsubtypes list of objects\\nList of subtypes.\\nShow 4 properties\\nAPI Reference customization Subtypes List Post.\\n\\nPOST https:// api.devrev.ai /", + "title": "Create \u2014 DevRev | Docs" + }, + { + "id": "ART-1306_KNOWLEDGE_NODE-228", + "text": "Reference customization Subtypes List.\\n\\nGET https:// api.devrev.ai / schemas.subtypes.list\\nLists subtypes.\\nQuery parameters.\\n\\nleaf_type string Optional\\nLeaf type for which subtypes are required.\\nleaf_types string Optional\\nList of leaf types for which subtypes are required.\\nResponse.\\n\\nThis endpoint returns an object.\\nsubtypes list of objects\\nList of subtypes.\\nShow 4 properties\\nAPI Reference customization Subtypes List Post.\\n\\nPOST https:// api.devrev.ai /", + "title": "List \u2014 DevRev | Docs" + }, + { + "id": "ART-1595_KNOWLEDGE_NODE-223", + "text": "Reference customization Subtypes List.\\n\\nGET https:// api.devrev.ai / schemas.subtypes.list\\nLists subtypes.\\nQuery parameters.\\n\\nleaf_type string Optional\\nLeaf type for which subtypes are required.\\nleaf_types string Optional\\nList of leaf types for which subtypes are required.\\nResponse.\\n\\nThis endpoint returns an object.\\nsubtypes list of objects\\nList of subtypes.\\nShow 4 properties\\nAPI Reference customization Subtypes List Post.\\n\\nPOST https:// api.devrev.ai /", + "title": "List \u2014 DevRev | Docs" } ] }, @@ -2752,20 +2752,20 @@ "text": "Option: Keep it as default i.e. allow both incoming and outgoing calls to truly experience the features provided by DevRev integration.\\n\\nYou can customise data storage options here.Recommended Option: Keep this as default and click on Next.\\n\\nReview the details and click on Create Instance.\\n\\nUse the Emergency Access to login the first time to setup the instance. If you are an administrator, you can directly use the access URL to login.\\n\\nYou can directly follow the guide available at home", "title": "Amazon Connect Telephony Integration Guide" }, - { - "id": "ART-1963_KNOWLEDGE_NODE-0", - "text": "b'Accessing DevRev | Computer by DevRev | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", - "title": "Accessing DevRev | Computer by DevRev | DevRev" - }, { "id": "ART-2004_KNOWLEDGE_NODE-0", "text": "b'Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CMD`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n + [Groups](/docs/product/groups)\\n +", "title": "Snap-ins | DevRev" }, { - "id": "ART-12602_KNOWLEDGE_NODE-8", - "text": "platforms\\n * Knowledge of revenue attribution models and sales funnel metrics\\n * Background in business analytics, finance, or a related field\\n\\n### **What We Offer:**\\n\\n * Competitive compensation and benefits\\n * Opportunities for career growth and advancement\\n * A collaborative, supportive team environment\\n * Flexible work arrangements\\n * Access to modern tools and technology\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry,", - "title": "DevRev Careers | Revenue Operations Analyst" + "id": "ART-2819_KNOWLEDGE_NODE-0", + "text": "b\"Exotel | Integrate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CMD`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", + "title": "Exotel | Integrate | Snap-ins | DevRev" + }, + { + "id": "ART-2023_KNOWLEDGE_NODE-0", + "text": "b'Integrate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", + "title": "Integrate | Snap-ins | DevRev" }, { "id": "ART-2031_KNOWLEDGE_NODE-0", @@ -2773,24 +2773,24 @@ "title": "Harness | Integrate | Snap-ins | DevRev" }, { - "id": "ART-12475_KNOWLEDGE_NODE-1", - "text": ".\\n\\nProceed to integrate the DevRev PLuG SDK. For specific platform migration guides, refer to the following resources:\\n\\nAndroid SDK migration guide: Android Migration Guide\\n\\niOS SDK migration guide: iOS Migration Guide\\n\\nReact Native & Expo SDK migration guide: React Native Migration Guide\\n\\nCordova SDK migration guide: Cordova Migration Guide\\n\\nWeb SDK migration guide: Web Migration Guide\\n\\nOnce the integration is complete, you will be able to view sessions on the Session", - "title": "Migrating from UserExperior to DevRev" + "id": "ART-2035_KNOWLEDGE_NODE-0", + "text": "b\"Slack | Integrate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", + "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-16570_KNOWLEDGE_NODE-8", - "text": "access\\n--------------------------------------------------------------\\n\\n**The Transformation Journey**\\n\\nThe shift from FAME\\'s previous fragmented information landscape to DevRev\\'s unified memory represented a fundamental change in how teams work. What once required navigating multiple platforms, piecing together incomplete information, and spending hours searching for answers became as simple as having a conversation.\\n\\nDevRev\\'s AirSync technology seamlessly ingested FAME\\'s existing", - "title": "FAME transforms information access with AI-powered enterprise search" + "id": "ART-2036_KNOWLEDGE_NODE-0", + "text": "b'SendSafely | Integrate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CMD`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", + "title": "SendSafely | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2035_KNOWLEDGE_NODE-0", - "text": "b\"Slack | Integrate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", - "title": "Slack | Integrate | Snap-ins | DevRev" + "id": "ART-2043_KNOWLEDGE_NODE-0", + "text": "b'Glean | Integrate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", + "title": "Glean | Integrate | Snap-ins | DevRev" }, { - "id": "ART-16078_KNOWLEDGE_NODE-0", - "text": "b\"DevRev Careers | Head of Data Science and Analytics \\n\\n* Product\\n* Platform\\n* Marketplace\\n* Company\\n* Resources\\n* Pricing\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nProduct\\n\\nPlatform\\n\\nMarketplace\\n\\nCompany\\n\\nResources\\n\\nPricing\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\ncareers\\n\\nHead of Data Science and Analytics\\n==================================\\n\\nPalo Alto, California, United", - "title": "DevRev Careers | Head of Data Science and Analytics" + "id": "ART-2037_KNOWLEDGE_NODE-0", + "text": "b'GitHub | Integrate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CMD`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", + "title": "GitHub | Integrate | Snap-ins | DevRev" }, { "id": "ART-2041_KNOWLEDGE_NODE-0", @@ -2809,49 +2809,49 @@ "title": "Links | DevRev | Docs" }, { - "id": "ART-15664_KNOWLEDGE_NODE-13", - "text": "\\n\\nYou may want to restrict links to specific subtypes of objects. For example, only allowing issues\\nof a particular subtype to be linked to tickets.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"name\": \"Link between social media issues and tickets\", |\\n| > | \"source_types\": [ |\\n| > | { |\\n|", - "title": "Links | DevRev | Docs" + "id": "ART-1959_KNOWLEDGE_NODE-34", + "text": "subtype: :\\n```\\n```\\n\\n**Examples**\\n\\nSearch for tickets related to access issues with tenant field escalated:\\n\\n```\\n```\\n1 tnt__escalated:true access issues\\n```\\n```\\n\\nSearch for bugs related to access issues with subtype field customer\\\\_impact:\\n\\n```\\n```\\n1 subtype:Bug ctype__customer_impact:true access issues\\n```\\n```\\n\\nSearch across multiple subtypes for tickets related to access issues:\\n\\n```\\n```\\n1 subtype:Bug,Events access", + "title": "Search | Computer by DevRev | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-47", - "text": "validate the fix with the user and then to *resolved*. If the user wants to cancel the ticket then the stage moves to *canceled*.\\n\\n**Closed**\\n\\n* *Canceled* (C)\\n\\n The ticket is determined to be invalid either by the user or the customer experience engineer. In certain scenarios, a ticket may have been created by accident and may be canceled by the creator. In other scenarios, garbage tickets may be created through automation or because of spam. Automation or the customer experience", + "id": "ART-1979_KNOWLEDGE_NODE-49", + "text": "tickets. Resolved means that the customer's concerns which led to the ticket have been addressed.\\n\\nSubtypes\\n--------\\n\\nYou can create subtypes for tickets to categorize them based on the type of issue. For example, you can create subtypes for bugs, feature requests, or questions.\\nA subtype inherits all the attributes of its parent ticket type. You can add custom attributes to a subtype.\\nTo know how to create subtypes and add custom attributes to them, see [object", "title": "Tickets | Computer for Support Teams | DevRev" }, { - "id": "ART-1961_KNOWLEDGE_NODE-37", - "text": "\\n{{Ticket\\xc2\\xa0Created\\xc2\\xa0>\\xc2\\xa0Output\\xc2\\xa0>\\xc2\\xa0Reported\\xc2\\xa0By\\xc2\\xa0>\\xc2\\xa0Rev\\xc2\\xa0Org\\xc2\\xa0>\\xc2\\xa0Display\\xc2\\xa0Name}}.\\xe2\\x80\\x9d\\n\\n\\n\\nDelay\\n\\n\\n\\nDuration: 2 minutes\\n\\n\\n\\nIf-else\\n\\n\\n\\nAttribute:\\xc2\\xa0Ticket\\xc2\\xa0Created/Output\\xc2\\xa0>\\xc2\\xa0Applies\\xc2\\xa0to\\xc2\\xa0part\\xc2\\xa0>\\xc2\\xa0Display\\xc2\\xa0ID \\nOperator: Equals \\nOperand: CAPL-18\\n\\n\\n\\nTicket \\ncreated\\n\\n\\n\\nEnd\\n```\\n\\n[### Workflow action", - "title": "Workflows | Computer by DevRev | DevRev" + "id": "ART-15664_KNOWLEDGE_NODE-13", + "text": "\\n\\nYou may want to restrict links to specific subtypes of objects. For example, only allowing issues\\nof a particular subtype to be linked to tickets.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"name\": \"Link between social media issues and tickets\", |\\n| > | \"source_types\": [ |\\n| > | { |\\n|", + "title": "Links | DevRev | Docs" }, { - "id": "ART-1979_KNOWLEDGE_NODE-49", - "text": "tickets. Resolved means that the customer's concerns which led to the ticket have been addressed.\\n\\nSubtypes\\n--------\\n\\nYou can create subtypes for tickets to categorize them based on the type of issue. For example, you can create subtypes for bugs, feature requests, or questions.\\nA subtype inherits all the attributes of its parent ticket type. You can add custom attributes to a subtype.\\nTo know how to create subtypes and add custom attributes to them, see [object", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1822_KNOWLEDGE_NODE-448", + "text": "warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the provided types.\\nAllowed values: issue opportunity task ticket\\nResponse.\\n\\nThis endpoint returns an object.\\nworks list of objects\\nThe resulting collection of work items.\\nShow 4 variants\\nAPI Reference works Export Post.\\n\\nPOST https:// api.devrev.ai", + "title": "Create \u2014 DevRev | Docs" }, { - "id": "ART-2874_KNOWLEDGE_NODE-27", - "text": "updated, and not updated. If the fields specified in the configuration are not found, a notification will be provided in the **Discussion** tab.\\n\\n[PreviousTicket age in engineering](/docs/automations/ticket-age-in-engineering)[NextTicket Immutability](/docs/automations/ticket-immutability)\\n\\n#### On this page\\n\\n* [Ticket issue field migrator](#ticket-issue-field-migrator)\\n* [Installation](#installation)\\n* [Configuration](#configuration)\\n\\n[Enterprise grade security to protect customer", - "title": "Ticket issue field migrator | Automate | Snap-ins | DevRev" + "id": "ART-1782_KNOWLEDGE_NODE-447", + "text": "warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the provided types.\\nAllowed values: issue opportunity task ticket\\nResponse.\\n\\nThis endpoint returns an object.\\nworks list of objects\\nThe resulting collection of work items.\\nShow 4 variants\\nAPI Reference works Export Post.\\n\\nPOST https:// api.devrev.ai", + "title": "List Post \u2014 DevRev | Docs" }, { - "id": "ART-1483_KNOWLEDGE_NODE-18", - "text": "the code\\n\\nUpdate the code in `src/functions/ticket_creator/index.ts` to reflect the behavior.\\n\\nFirstly, import the DevRev TypeScript SDK in the `index.ts` file\\n\\nindex.ts\\n\\n[code]\\n\\n 1| import {client, publicSDK} from \"@devrev/typescript-sdk\"; \\n ---|---\\n[/code] \\n \\nNext, update the `run` function in the hello-world example. Since the ticket gets created frequently, set some creation time in the title and the body. The example uses the part as `PROD-1` and keeps the owner as", - "title": "Using a snap-in to perform a DevRev action \u2014 DevRev | Docs" + "id": "ART-1826_KNOWLEDGE_NODE-448", + "text": "warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the provided types.\\nAllowed values: issue opportunity task ticket\\nResponse.\\n\\nThis endpoint returns an object.\\nworks list of objects\\nThe resulting collection of work items.\\nShow 4 variants\\nAPI Reference works Export Post.\\n\\nPOST https:// api.devrev.ai", + "title": "Get Post \u2014 DevRev | Docs" }, { - "id": "ART-1959_KNOWLEDGE_NODE-34", - "text": "subtype: :\\n```\\n```\\n\\n**Examples**\\n\\nSearch for tickets related to access issues with tenant field escalated:\\n\\n```\\n```\\n1 tnt__escalated:true access issues\\n```\\n```\\n\\nSearch for bugs related to access issues with subtype field customer\\\\_impact:\\n\\n```\\n```\\n1 subtype:Bug ctype__customer_impact:true access issues\\n```\\n```\\n\\nSearch across multiple subtypes for tickets related to access issues:\\n\\n```\\n```\\n1 subtype:Bug,Events access", - "title": "Search | Computer by DevRev | DevRev" + "id": "ART-1609_KNOWLEDGE_NODE-450", + "text": "warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the provided types.\\nAllowed values: issue opportunity task ticket\\nResponse.\\n\\nThis endpoint returns an object.\\nworks list of objects\\nThe resulting collection of work items.\\nShow 4 variants\\nAPI Reference works Export Post.\\n\\nPOST https:// api.devrev.ai", + "title": "List Post \u2014 DevRev | Docs" }, { - "id": "ART-1639_KNOWLEDGE_NODE-459", - "text": "Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the provided types.\\nAllowed values: issue opportunity task ticket\\nResponse.\\n\\nThis endpoint returns an object.\\nworks list of objects\\nThe list of works.\\nShow 4 variants\\nnext_cursor string Optional\\nThe cursor used to iterate subsequent results in accordance to the sort order. If not set, then no later elements exist.\\nprev_cursor string Optional\\nThe cursor used to iterate preceding", - "title": "Export Post \u2014 DevRev | Docs" + "id": "ART-1597_KNOWLEDGE_NODE-452", + "text": "warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the provided types.\\nAllowed values: issue opportunity task ticket\\nResponse.\\n\\nThis endpoint returns an object.\\nworks list of objects\\nThe resulting collection of work items.\\nShow 4 variants\\nAPI Reference works Export Post.\\n\\nPOST https:// api.devrev.ai", + "title": "Update \u2014 DevRev | Docs" }, { - "id": "ART-2874_KNOWLEDGE_NODE-24", - "text": "[Configuration](#configuration)\\n\\n1. [Documentation](/docs)\\n3. [Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[Ticket issue field migrator](/docs/automations/ticket-issue-field-migrator)\\n\\nTicket issue field migrator\\n---------------------------\\n\\nThe Ticket issue field migration snap-in automates the transfer of custom field values from tickets to new linked issues in DevRev. It checks for empty or undefined fields and fills them with corresponding ticket values based on the field", - "title": "Ticket issue field migrator | Automate | Snap-ins | DevRev" + "id": "ART-1483_KNOWLEDGE_NODE-18", + "text": "the code\\n\\nUpdate the code in `src/functions/ticket_creator/index.ts` to reflect the behavior.\\n\\nFirstly, import the DevRev TypeScript SDK in the `index.ts` file\\n\\nindex.ts\\n\\n[code]\\n\\n 1| import {client, publicSDK} from \"@devrev/typescript-sdk\"; \\n ---|---\\n[/code] \\n \\nNext, update the `run` function in the hello-world example. Since the ticket gets created frequently, set some creation time in the title and the body. The example uses the part as `PROD-1` and keeps the owner as", + "title": "Using a snap-in to perform a DevRev action \u2014 DevRev | Docs" } ] }, @@ -2860,54 +2860,54 @@ "query": "Why would I use DevRev?", "retrievals": [ { - "id": "ART-15203_KNOWLEDGE_NODE-10", - "text": "Technical knowledge of web solutions including APIs and Webhooks. Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n* Outstanding communication (written and verbal), with fluency in English.\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who", - "title": "DevRev Careers | Senior Customer Success Manager" + "id": "ART-16688_KNOWLEDGE_NODE-2", + "text": "to increase product velocity and reduce customer churn. DevRev is used by thousands of companies in search of low latency analytics and customizable LLMs to thrive in this era of GenAI. \\n \\nHeadquartered in Palo Alto, California, DevRev has offices in seven global locations. We have raised $100 million in funding from investors like Khosla Ventures and Mayfield at a $1.1 billion valuation. We are also honored to be named on the Forbes 2024 list of America\\xe2\\x80\\x99s Best Startup", + "title": "DevRev Careers | Marketing Designer, Digital & Print - Bengaluru" }, { - "id": "ART-15681_KNOWLEDGE_NODE-2", + "id": "ART-16798_KNOWLEDGE_NODE-2", "text": "to increase product velocity and reduce customer churn. DevRev is used by thousands of companies in search of low latency analytics and customizable LLMs to thrive in this era of GenAI. \\n \\nHeadquartered in Palo Alto, California, DevRev has offices in seven global locations. We have raised $100 million in funding from investors like Khosla Ventures and Mayfield at a $1.1 billion valuation. We are also honored to be named on the Forbes 2024 list of America\\xe2\\x80\\x99s Best Startup", - "title": "DevRev Careers | Revenue: Account Executive - Mumbai" + "title": "DevRev Careers | Partner Success Manager" }, { - "id": "ART-15958_KNOWLEDGE_NODE-2", + "id": "ART-15590_KNOWLEDGE_NODE-2", "text": "to increase product velocity and reduce customer churn. DevRev is used by thousands of companies in search of low latency analytics and customizable LLMs to thrive in this era of GenAI. \\n \\nHeadquartered in Palo Alto, California, DevRev has offices in seven global locations. We have raised $100 million in funding from investors like Khosla Ventures and Mayfield at a $1.1 billion valuation. We are also honored to be named on the Forbes 2024 list of America\\xe2\\x80\\x99s Best Startup", - "title": "DevRev Careers | Member of Technical Staff: Front-End" + "title": "DevRev Careers | GTM Finance Manager- FP&A" }, { - "id": "ART-16798_KNOWLEDGE_NODE-9", - "text": "skills are also valued.\\n\\n* Outstanding communication (written and verbal), with fluency in English.\\n\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the earth\\xe2\\x80\\x99s most customer-centric companies. Our mission is", - "title": "DevRev Careers | Partner Success Manager" + "id": "ART-15961_KNOWLEDGE_NODE-2", + "text": "to increase product velocity and reduce customer churn. DevRev is used by thousands of companies in search of low latency analytics and customizable LLMs to thrive in this era of GenAI. \\n \\nHeadquartered in Palo Alto, California, DevRev has offices in seven global locations. We have raised $100 million in funding from investors like Khosla Ventures and Mayfield at a $1.1 billion valuation. We are also honored to be named on the Forbes 2024 list of America\\xe2\\x80\\x99s Best Startup", + "title": "DevRev Careers | Senior Member of Technical Staff : Front-End" }, { - "id": "ART-15957_KNOWLEDGE_NODE-2", + "id": "ART-15956_KNOWLEDGE_NODE-2", "text": "to increase product velocity and reduce customer churn. DevRev is used by thousands of companies in search of low latency analytics and customizable LLMs to thrive in this era of GenAI. \\n \\nHeadquartered in Palo Alto, California, DevRev has offices in seven global locations. We have raised $100 million in funding from investors like Khosla Ventures and Mayfield at a $1.1 billion valuation. We are also honored to be named on the Forbes 2024 list of America\\xe2\\x80\\x99s Best Startup", - "title": "DevRev Careers | Member of Technical Staff" + "title": "DevRev Careers | Member of Technical Staff: Front-End" }, { - "id": "ART-15962_KNOWLEDGE_NODE-9", - "text": "areas.\\n\\n**Preferred Qualifications** \\nList additional skills, experience, or attributes that are advantageous but not required.\\n\\n* MBA or related advanced degree.\\n* 10+ years of experience in software product marketing, with direct experience in AI, large language models, machine learning, or related fields preferred.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the", - "title": "DevRev Careers | Senior Product Marketing Manager" + "id": "ART-12614_KNOWLEDGE_NODE-2", + "text": "to increase product velocity and reduce customer churn. DevRev is used by thousands of companies in search of low latency analytics and customizable LLMs to thrive in this era of GenAI. \\n \\nHeadquartered in Palo Alto, California, DevRev has offices in seven global locations. We have raised $100 million in funding from investors like Khosla Ventures and Mayfield at a $1.1 billion valuation. We are also honored to be named on the Forbes 2024 list of America\\xe2\\x80\\x99s Best Startup", + "title": "DevRev Careers | Solutions Engineer - Mumbai" }, { - "id": "ART-16077_KNOWLEDGE_NODE-2", + "id": "ART-15203_KNOWLEDGE_NODE-2", "text": "to increase product velocity and reduce customer churn. DevRev is used by thousands of companies in search of low latency analytics and customizable LLMs to thrive in this era of GenAI. \\n \\nHeadquartered in Palo Alto, California, DevRev has offices in seven global locations. We have raised $100 million in funding from investors like Khosla Ventures and Mayfield at a $1.1 billion valuation. We are also honored to be named on the Forbes 2024 list of America\\xe2\\x80\\x99s Best Startup", - "title": "DevRev Careers | Demand Gen Content Marketer" + "title": "DevRev Careers | Senior Customer Success Manager" }, { - "id": "ART-15202_KNOWLEDGE_NODE-10", - "text": "including APIs and Webhooks. Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n* Outstanding communication (written and verbal), with fluency in English.\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to", - "title": "DevRev Careers | Senior Customer Success Manager" + "id": "ART-15592_KNOWLEDGE_NODE-2", + "text": "to increase product velocity and reduce customer churn. DevRev is used by thousands of companies in search of low latency analytics and customizable LLMs to thrive in this era of GenAI. \\n \\nHeadquartered in Palo Alto, California, DevRev has offices in seven global locations. We have raised $100 million in funding from investors like Khosla Ventures and Mayfield at a $1.1 billion valuation. We are also honored to be named on the Forbes 2024 list of America\\xe2\\x80\\x99s Best Startup", + "title": "DevRev Careers | Partner Solutions Engineer" }, { - "id": "ART-12589_KNOWLEDGE_NODE-2", + "id": "ART-12597_KNOWLEDGE_NODE-2", "text": "to increase product velocity and reduce customer churn. DevRev is used by thousands of companies in search of low latency analytics and customizable LLMs to thrive in this era of GenAI. \\n \\nHeadquartered in Palo Alto, California, DevRev has offices in seven global locations. We have raised $100 million in funding from investors like Khosla Ventures and Mayfield at a $1.1 billion valuation. We are also honored to be named on the Forbes 2024 list of America\\xe2\\x80\\x99s Best Startup", - "title": "DevRev Careers | Forward Deployed Architect" + "title": "DevRev Careers | Member of Technical Staff: Front-End" }, { - "id": "ART-15201_KNOWLEDGE_NODE-10", - "text": "Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n * Outstanding communication (written and verbal), with fluency in English.\\n * Comfort operating in a fast-paced, high-demand, global environment.\\n * Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the", - "title": "DevRev Careers | Senior Customer Success Manager" + "id": "ART-16686_KNOWLEDGE_NODE-2", + "text": "to increase product velocity and reduce customer churn. DevRev is used by thousands of companies in search of low latency analytics and customizable LLMs to thrive in this era of GenAI. \\n \\nHeadquartered in Palo Alto, California, DevRev has offices in seven global locations. We have raised $100 million in funding from investors like Khosla Ventures and Mayfield at a $1.1 billion valuation. We are also honored to be named on the Forbes 2024 list of America\\xe2\\x80\\x99s Best Startup", + "title": "DevRev Careers | Member of Product Management" } ] }, @@ -2915,6 +2915,21 @@ "query_id": "a01c7c2b-0eda-489a-a3f7-e2fadaf9f999", "query": "apply repeated multiple fields on tickets with one click", "retrievals": [ + { + "id": "ART-1483_KNOWLEDGE_NODE-18", + "text": "the code\\n\\nUpdate the code in `src/functions/ticket_creator/index.ts` to reflect the behavior.\\n\\nFirstly, import the DevRev TypeScript SDK in the `index.ts` file\\n\\nindex.ts\\n\\n[code]\\n\\n 1| import {client, publicSDK} from \"@devrev/typescript-sdk\"; \\n ---|---\\n[/code] \\n \\nNext, update the `run` function in the hello-world example. Since the ticket gets created frequently, set some creation time in the title and the body. The example uses the part as `PROD-1` and keeps the owner as", + "title": "Using a snap-in to perform a DevRev action \u2014 DevRev | Docs" + }, + { + "id": "ART-2874_KNOWLEDGE_NODE-26", + "text": "> **Ticket Issue Field Migrator** > **Configure**.\\n2. Specify the **Field Names** to migrate values from the ticket to the issue when fields are empty or undefined.\\n3. Click **Save** and **Install** to complete the setup.\\n4. Link an issue to a ticket to begin the migration of values from the ticket fields to the issue fields.\\n5. After the migration process is complete, you will receive a summary message in the snap-in **Discussion** tab, informing you of the number of fields processed,", + "title": "Ticket issue field migrator | Automate | Snap-ins | DevRev" + }, + { + "id": "ART-1961_KNOWLEDGE_NODE-37", + "text": "\\n{{Ticket\\xc2\\xa0Created\\xc2\\xa0>\\xc2\\xa0Output\\xc2\\xa0>\\xc2\\xa0Reported\\xc2\\xa0By\\xc2\\xa0>\\xc2\\xa0Rev\\xc2\\xa0Org\\xc2\\xa0>\\xc2\\xa0Display\\xc2\\xa0Name}}.\\xe2\\x80\\x9d\\n\\n\\n\\nDelay\\n\\n\\n\\nDuration: 2 minutes\\n\\n\\n\\nIf-else\\n\\n\\n\\nAttribute:\\xc2\\xa0Ticket\\xc2\\xa0Created/Output\\xc2\\xa0>\\xc2\\xa0Applies\\xc2\\xa0to\\xc2\\xa0part\\xc2\\xa0>\\xc2\\xa0Display\\xc2\\xa0ID \\nOperator: Equals \\nOperand: CAPL-18\\n\\n\\n\\nTicket \\ncreated\\n\\n\\n\\nEnd\\n```\\n\\n[### Workflow action", + "title": "Workflows | Computer by DevRev | DevRev" + }, { "id": "ART-2874_KNOWLEDGE_NODE-24", "text": "[Configuration](#configuration)\\n\\n1. [Documentation](/docs)\\n3. [Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[Ticket issue field migrator](/docs/automations/ticket-issue-field-migrator)\\n\\nTicket issue field migrator\\n---------------------------\\n\\nThe Ticket issue field migration snap-in automates the transfer of custom field values from tickets to new linked issues in DevRev. It checks for empty or undefined fields and fills them with corresponding ticket values based on the field", @@ -2926,44 +2941,29 @@ "title": "ClickUp AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-2874_KNOWLEDGE_NODE-26", - "text": "> **Ticket Issue Field Migrator** > **Configure**.\\n2. Specify the **Field Names** to migrate values from the ticket to the issue when fields are empty or undefined.\\n3. Click **Save** and **Install** to complete the setup.\\n4. Link an issue to a ticket to begin the migration of values from the ticket fields to the issue fields.\\n5. After the migration process is complete, you will receive a summary message in the snap-in **Discussion** tab, informing you of the number of fields processed,", - "title": "Ticket issue field migrator | Automate | Snap-ins | DevRev" + "id": "ART-16803_KNOWLEDGE_NODE-26", + "text": "Tickets\\n* Meetings\\n* Objects linked to issues\\n* Users\\n\\nTo configure a workspace object loop:\\n\\n1. On the **workflow canvas**, add an action step named **Loop for [Object]**, where [Object] is the entity you want to iterate over.\\n2. Apply **filter conditions** to refine the set of objects included in the loop and perform operations on them.\\n\\nAll **actions** inside the loop execute once per object that satisfies the filter conditions.\\n\\n### For Each\\n\\nThe **For Each** loop iterates", + "title": "Workflow nodes | Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-1508_KNOWLEDGE_NODE-27", - "text": "for tickets that are associated with any of the brands.\\n\\nchannelslist of stringsOptional\\n\\nFilters for conversations that are associated with any of the\\nchannels.\\n\\ncustom\\\\_fieldsobjectOptional\\n\\nFilters for custom fields.\\n\\nfirstintegerOptional\\n\\nThe number of conversation items to return. The default is \\'50\\', the\\nmaximum is \\'5000\\'.\\n\\ngrouplist of stringsOptional\\n\\nFilters for conversation that belong to the given groups.\\n\\nis\\\\_creator\\\\_verifiedbooleanOptional\\n\\nFilters for", - "title": "Export Conversations | DevRev | Docs" + "id": "ART-3107_KNOWLEDGE_NODE-25", + "text": "specific users (customer users).\\n* Ignores tickets created by other user types.\\n* Allows multiple tags to be assigned based on predefined rules.\\n* Can be triggered via commands or automatically when tickets are created.\\n\\nConfiguration\\n-------------\\n\\nFollow these steps to set up the Ticket Tagger:\\n\\n1. Go to **Snap-ins** > **Ticket Tagger** > **Configure**.\\n2. Fill in the configuration settings.\\n\\n * **Search for Tags**: Select the tags to check for on the contact or\\n account.", + "title": "Ticket Tagger | Automate | Snap-ins | DevRev" }, { - "id": "ART-15664_KNOWLEDGE_NODE-13", - "text": "\\n\\nYou may want to restrict links to specific subtypes of objects. For example, only allowing issues\\nof a particular subtype to be linked to tickets.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"name\": \"Link between social media issues and tickets\", |\\n| > | \"source_types\": [ |\\n| > | { |\\n|", - "title": "Links | DevRev | Docs" + "id": "ART-15602_KNOWLEDGE_NODE-28", + "text": "by a Freshdesk account administrator.\\n\\n1. Once the connection is established, click the **AirSync** button. Select the Freshdesk account you want to import historical tickets from, and specify the DevRev part where the imported work should reside. This initiates a bulk ticket import.\\n2. DevRev automatically attempts to map fields from Freshdesk to their corresponding fields in DevRev. You may be prompted to manually map certain fields if automatic mapping is not possible.\\n\\nPost import", + "title": "Freshdesk historical ticket import | AirSync | Snap-ins | DevRev" }, { "id": "ART-13083_KNOWLEDGE_NODE-13", "text": "field migrator](/docs/automations/ticket-issue-field-migrator)\\n * [Ticket Immutability](/docs/automations/ticket-immutability)\\n * [Ticket email notifier](/docs/automations/ticket-email-notifier)\\n * [Task tracker](/docs/automations/task-tracker)\\n * [Ticket Tagger](/docs/automations/ticket-tagger)\\n * [Tracxn sync](/docs/automations/tracxn-sync)\\n * [User group validator](/docs/automations/user-group-validator)\\n *", "title": "| Automate | Snap-ins | DevRev" }, - { - "id": "ART-1961_KNOWLEDGE_NODE-37", - "text": "\\n{{Ticket\\xc2\\xa0Created\\xc2\\xa0>\\xc2\\xa0Output\\xc2\\xa0>\\xc2\\xa0Reported\\xc2\\xa0By\\xc2\\xa0>\\xc2\\xa0Rev\\xc2\\xa0Org\\xc2\\xa0>\\xc2\\xa0Display\\xc2\\xa0Name}}.\\xe2\\x80\\x9d\\n\\n\\n\\nDelay\\n\\n\\n\\nDuration: 2 minutes\\n\\n\\n\\nIf-else\\n\\n\\n\\nAttribute:\\xc2\\xa0Ticket\\xc2\\xa0Created/Output\\xc2\\xa0>\\xc2\\xa0Applies\\xc2\\xa0to\\xc2\\xa0part\\xc2\\xa0>\\xc2\\xa0Display\\xc2\\xa0ID \\nOperator: Equals \\nOperand: CAPL-18\\n\\n\\n\\nTicket \\ncreated\\n\\n\\n\\nEnd\\n```\\n\\n[### Workflow action", - "title": "Workflows | Computer by DevRev | DevRev" - }, { "id": "ART-8442_KNOWLEDGE_NODE-13", "text": "field migrator](/docs/automations/ticket-issue-field-migrator)\\n * [Ticket Immutability](/docs/automations/ticket-immutability)\\n * [Ticket email notifier](/docs/automations/ticket-email-notifier)\\n * [Task tracker](/docs/automations/task-tracker)\\n * [Ticket Tagger](/docs/automations/ticket-tagger)\\n * [Tracxn sync](/docs/automations/tracxn-sync)\\n * [User group validator](/docs/automations/user-group-validator)\\n *", "title": "January 2025 | Changelog | DevRev" - }, - { - "id": "ART-12390_KNOWLEDGE_NODE-39", - "text": "to update * subtype: (Optional) Ticket subtype * apps: (Optional) Related apps * app\\\\_custom\\\\_fields: (Optional) Custom fields * stage: (Optional) New stage | Updated ticket object |\\n\\nObject links\\n------------\\n\\n| Operation | Description | Input Parameters | Output |\\n| --- | --- | --- | --- |\\n| LinkConversationWithTicket | Creates a link between a conversation and a ticket. | * source: Conversation ID * link\\\\_type: Type of link (usually \"is\\\\_related\\\\_to\") * target: Ticket ID | Empty", - "title": "Workflow action library | Workflows | Computer by DevRev | DevRev" - }, - { - "id": "ART-12391_KNOWLEDGE_NODE-27", - "text": "workflow.\\n\\nNow, your workflow runs whenever a conversation or a ticket gets created and it\\nassigns it to an AI agent, which handles the conversation. No brittle rules.\\n\\nFind below a detailed explanation of all the fields needed to configure in the\\n\"Talk to Agent\" Step\\n\\n| Parameter | Type | Description |\\n| --- | --- | --- |\\n| agent | String | ID of the AI agent to use. Use the dropdown to select one. |\\n| object | String | ID of the conversation or ticket where the agent operate.s |\\n|", - "title": "Conversational workflows | Workflows | Computer by DevRev | DevRev" } ] }, @@ -2971,40 +2971,25 @@ "query_id": "bd3a18be-1f76-4d1d-b813-c54880d2b2b7", "query": "configure contact to open ticket in different workspace", "retrievals": [ - { - "id": "ART-2012_KNOWLEDGE_NODE-28", - "text": "say \\xe2\\x80\\x9cI would like to add a terminal stage on my tickets\\xe2\\x80\\x9d and we will get it done.\\n\\n * If no terminal stage is set, tickets will reopen on new comments from customers if **Reopen Closed Tickets on customer message** is enabled in the [convergence snap-in](./converge). The tickets move to the _In Progress_ state by default.\\n\\n * If you connected your support email address with DevRev, it is recommended that you enable the **Allow automations to send email** in your", - "title": "Follow-up ticket | Automate | Snap-ins | DevRev" - }, - { - "id": "ART-16803_KNOWLEDGE_NODE-26", - "text": "Tickets\\n* Meetings\\n* Objects linked to issues\\n* Users\\n\\nTo configure a workspace object loop:\\n\\n1. On the **workflow canvas**, add an action step named **Loop for [Object]**, where [Object] is the entity you want to iterate over.\\n2. Apply **filter conditions** to refine the set of objects included in the loop and perform operations on them.\\n\\nAll **actions** inside the loop execute once per object that satisfies the filter conditions.\\n\\n### For Each\\n\\nThe **For Each** loop iterates", - "title": "Workflow nodes | Workflows | Computer by DevRev | DevRev" - }, - { - "id": "ART-2040_KNOWLEDGE_NODE-30", - "text": "established, select the Zendesk workspace you want to import and specify the DevRev part where the imported tickets should be created. This initiates a bulk import of the selected workspace.\\n4. DevRev makes an effort to automatically map the fields from Zendesk to corresponding fields in DevRev. However, you may be prompted to manually map certain fields if needed.\\n\\n![]()\\n\\nDevRev supports importing Zendesk organization custom fields. When importing organizations, AirSync will display", - "title": "Zendesk AirSync | AirSync | Snap-ins | DevRev" - }, { "id": "ART-2874_KNOWLEDGE_NODE-25", "text": "mappings specified in the configuration input. The process features robust error handling, detailed logging, and appends a summary comment to the timeline for easy update tracking.\\n\\nInstallation\\n------------\\n\\n1. Install the **Ticket Issue Field Migrator** snap-in from the DevRev marketplace.\\n2. Select the workspace where you want to install the snap-in, confirm your selection, and click **Deploy snap-in**.\\n\\nConfiguration\\n-------------\\n\\n1. In DevRev, go to **Settings** > **Snap-ins**", "title": "Ticket issue field migrator | Automate | Snap-ins | DevRev" }, { - "id": "ART-2035_KNOWLEDGE_NODE-31", - "text": "creating conversations from any Slack channel:\\n\\n1. Link the DevRev Customer workspace to the channel by running /devrev link in the channel.\\n2. In the pop-up modal, search for the DevRev Customer workspace. \\n 2a. Select the preferred workspace and click **Link**. \\n 2b. If your channel is already linked to a workspace, the modal will show the details of the workspace and an option to unlink.\\n3. Once linked, new contacts identified via Slack are automatically added to the associated", - "title": "Slack | Integrate | Snap-ins | DevRev" + "id": "ART-1957_KNOWLEDGE_NODE-27", + "text": "[Issues](./issues#attributes)\\n* [Tickets](./tickets#attributes)\\n* [Opportunity](./grow#opportunity-attributes)\\n* [Account](./grow#account-attributes)\\n* [Contact](./grow#contact-attributes)\\n* [Parts](./parts#attributes)\\n\\n![]()\\n\\nAdding custom fields can be done by workspace admins only. Members of your organization can only view the custom fields and subtypes.\\n\\nTo get started with object customization, go to [**Settings** > **Object", + "title": "Object customization | Computer by DevRev | DevRev" }, { - "id": "ART-2010_KNOWLEDGE_NODE-28", - "text": "user ID mentioned in a row doesn\\'t exist. Other work items aren\\'t impacted by this.\\n* The workspace ID is only used for associating tickets to the workspace and not issues.\\n* If the CSV lists multiple owners, only the first is set as the owner in the DevRev work item.\\n\\nHow to use bulk ticket uploader\\n-------------------------------\\n\\n1. In the **Discussion** tab of an account, ticket, part, or issue, enter /upload\\\\_workitems.\\n A **Bulk Uploader Bot** form appears.\\n2. From the", - "title": "Bulk work item uploader | Automate | Snap-ins | DevRev" + "id": "ART-1978_KNOWLEDGE_NODE-41", + "text": "If no such contact is found, JIT provisioning automatically creates a user account, allowing immediate access to the portal. This means users can sign up and log in without manual contact creation within the app.\\n* **Existing contacts without mapped accounts**: If a user is already a contact within the app but does not have a mapped account, they can still log in and create a ticket. In this scenario, the login is performed under the default workspace assigned to the contact.\\n* **Account", + "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-1957_KNOWLEDGE_NODE-27", - "text": "[Issues](./issues#attributes)\\n* [Tickets](./tickets#attributes)\\n* [Opportunity](./grow#opportunity-attributes)\\n* [Account](./grow#account-attributes)\\n* [Contact](./grow#contact-attributes)\\n* [Parts](./parts#attributes)\\n\\n![]()\\n\\nAdding custom fields can be done by workspace admins only. Members of your organization can only view the custom fields and subtypes.\\n\\nTo get started with object customization, go to [**Settings** > **Object", - "title": "Object customization | Computer by DevRev | DevRev" + "id": "ART-16264_KNOWLEDGE_NODE-28", + "text": "**Account** and **Reported By**. This provides a more streamlined approach to managing customer data.\\n* **Automatic workspace display:** When a ticket reporter is associated with a specific workspace within an account, adding that user to the **Reported By** field will automatically reveal three fields: **Account**, **Workspace**, and **Reported By**.\\n* **Dynamic user listing:**\\n\\n + Upon selection of an account, the **Reported By** list is filtered to show only users associated with that", + "title": "June 2025 | Changelog | DevRev" }, { "id": "ART-2027_KNOWLEDGE_NODE-26", @@ -3012,14 +2997,29 @@ "title": "Email | Integrate | Snap-ins | DevRev" }, { - "id": "ART-6175_KNOWLEDGE_NODE-26", - "text": "contacts.\\n* **Link Account and Contact:**\\n Enable this option to link the account and contact to the custom object.\\n* **Account Description Fields:**\\n Enable this option to generate a rich description for accounts using values from multiple Airtable columns.\\n* **Contact Description Fields:**\\n Enable this option to generate a rich description for contacts using values from multiple Airtable columns.\\n* **Airtable Email Columns:**\\n Comma-separated list of names of the columns in", - "title": "Airtable | Automate | Snap-ins | DevRev" + "id": "ART-16803_KNOWLEDGE_NODE-26", + "text": "Tickets\\n* Meetings\\n* Objects linked to issues\\n* Users\\n\\nTo configure a workspace object loop:\\n\\n1. On the **workflow canvas**, add an action step named **Loop for [Object]**, where [Object] is the entity you want to iterate over.\\n2. Apply **filter conditions** to refine the set of objects included in the loop and perform operations on them.\\n\\nAll **actions** inside the loop execute once per object that satisfies the filter conditions.\\n\\n### For Each\\n\\nThe **For Each** loop iterates", + "title": "Workflow nodes | Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-2035_KNOWLEDGE_NODE-32", - "text": "workspace. When creating work items, the linked customer workspace is pre-selected for quick access.\\n4. Invite the DevRev app to a channel by running /invite @DevRev in the channel.\\n\\nOnce the above steps are completed:\\n\\n* Messages sent by customers directly to the channel will create new conversations.\\n* Any messages in thread, or channel messages by members from your own team won\\xe2\\x80\\x99t create new conversations.\\n* Created conversations can be located in the **Inbox vista** in your", - "title": "Slack | Integrate | Snap-ins | DevRev" + "id": "ART-15602_KNOWLEDGE_NODE-27", + "text": "snap-in\\n\\n1. Go to **Marketplace**, search for **Freshdesk (Historical Ticket Import)**, and click the **Add** button in the top right corner.\\n2. Once added, click the **Configure** button that appears in the top right corner. This opens the snap-in configuration modal.\\n3. Fill in the required fields in the configuration form and click **Submit**.\\n4. Create a new connection to your Freshdesk account, or select an existing one.\\n\\n![]()\\n\\nThe API token for the connection must be generated", + "title": "Freshdesk historical ticket import | AirSync | Snap-ins | DevRev" + }, + { + "id": "ART-1979_KNOWLEDGE_NODE-26", + "text": "associated with a part (product or service) and can come from both internal and external users. Tickets are also used to communicate progress to the user or other impacted party.\\n\\nThere may be cases where mass communications (broadcast) are necessary in the event of lots of impacted or related parties (such as service status updates). In this scenario, the ticket would be used to broadcast and handle communications among multiple parties, including across multiple workspaces. Broadcast can", + "title": "Tickets | Computer for Support Teams | DevRev" + }, + { + "id": "ART-12391_KNOWLEDGE_NODE-27", + "text": "workflow.\\n\\nNow, your workflow runs whenever a conversation or a ticket gets created and it\\nassigns it to an AI agent, which handles the conversation. No brittle rules.\\n\\nFind below a detailed explanation of all the fields needed to configure in the\\n\"Talk to Agent\" Step\\n\\n| Parameter | Type | Description |\\n| --- | --- | --- |\\n| agent | String | ID of the AI agent to use. Use the dropdown to select one. |\\n| object | String | ID of the conversation or ticket where the agent operate.s |\\n|", + "title": "Conversational workflows | Workflows | Computer by DevRev | DevRev" + }, + { + "id": "ART-2040_KNOWLEDGE_NODE-30", + "text": "established, select the Zendesk workspace you want to import and specify the DevRev part where the imported tickets should be created. This initiates a bulk import of the selected workspace.\\n4. DevRev makes an effort to automatically map the fields from Zendesk to corresponding fields in DevRev. However, you may be prompted to manually map certain fields if needed.\\n\\n![]()\\n\\nDevRev supports importing Zendesk organization custom fields. When importing organizations, AirSync will display", + "title": "Zendesk AirSync | AirSync | Snap-ins | DevRev" } ] }, @@ -3027,6 +3027,11 @@ "query_id": "35acf2f7-9d3f-47ad-89d8-49474855dbad", "query": "link an agent with the search agent so that the search agent can ask the other agent", "retrievals": [ + { + "id": "ART-15490_KNOWLEDGE_NODE-6", + "text": "Setup for React\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | |\\n```\\n\\nYou can modify the keydown event listener to bind it to other", + "title": "Install Plug search | DevRev | Docs" + }, { "id": "ART-2665_KNOWLEDGE_NODE-31", "text": "interactions occurring within the chat widget and search agent should be captured or not. | True |\\n| sessionDetails.sessionId | Field to pass session ID of the previous session to link. | null |\\n| sessionDetails.tabId | Field to pass the tab ID of the previous session to link. | null |\\n| maskTextFn | An option to customize the logic for masking sensitive text during session recording. This function accepts a callback that receives the text content and allows you to define how the text should", @@ -3038,9 +3043,9 @@ "title": "Create \u2014 DevRev | Docs" }, { - "id": "ART-15490_KNOWLEDGE_NODE-6", - "text": "Setup for React\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | |\\n```\\n\\nYou can modify the keydown event listener to bind it to other", - "title": "Install Plug search | DevRev | Docs" + "id": "ART-1590_KNOWLEDGE_NODE-113", + "text": "api.devrev.ai / dev-users.identities.link\\nLinks an external/secondary identity to the Dev user.\\nRequest.\\n\\nThis endpoint expects an object.\\ndev_user string Required\\nThe ID of the Dev user to link the external identity to.\\nid string Required\\nUnique ID of the Dev user in the external source.\\nissuer string Required\\nIssuer of the external identity of the Dev user.\\ndisplay_name string Optional\\nDisplay name of the Dev user in the external source.\\nResponse.\\n\\nThis endpoint returns an", + "title": "List \u2014 DevRev | Docs" }, { "id": "ART-1832_KNOWLEDGE_NODE-113", @@ -3048,14 +3053,9 @@ "title": "Create \u2014 DevRev | Docs" }, { - "id": "ART-1590_KNOWLEDGE_NODE-113", + "id": "ART-1579_KNOWLEDGE_NODE-113", "text": "api.devrev.ai / dev-users.identities.link\\nLinks an external/secondary identity to the Dev user.\\nRequest.\\n\\nThis endpoint expects an object.\\ndev_user string Required\\nThe ID of the Dev user to link the external identity to.\\nid string Required\\nUnique ID of the Dev user in the external source.\\nissuer string Required\\nIssuer of the external identity of the Dev user.\\ndisplay_name string Optional\\nDisplay name of the Dev user in the external source.\\nResponse.\\n\\nThis endpoint returns an", - "title": "List \u2014 DevRev | Docs" - }, - { - "id": "ART-12988_KNOWLEDGE_NODE-9", - "text": "[Privacy Policy](https://devrev.ai/legal/privacy-policy)\\n * [Terms of Service](https://devrev.ai/legal/terms-of-service)\\n\\nLearn\\n\\n * [What are AI Agents?](https://devrev.ai/what-are-ai-agents)\\n * [What is Agentic AI?](https://devrev.ai/what-is-agentic-ai)\\n * [What is Enterprise Search?](https://devrev.ai/what-is-enterprise-search)\\n * [What is Conversational", - "title": "Get Dev Org \u2014 DevRev | Docs" + "title": "List Post \u2014 DevRev | Docs" }, { "id": "ART-1806_KNOWLEDGE_NODE-113", @@ -3063,19 +3063,19 @@ "title": "Self Post \u2014 DevRev | Docs" }, { - "id": "ART-1391_KNOWLEDGE_NODE-8", - "text": "[Privacy Policy](https://devrev.ai/legal/privacy-policy)\\n * [Terms of Service](https://devrev.ai/legal/terms-of-service)\\n\\nLearn\\n\\n * [What are AI Agents?](https://devrev.ai/what-are-ai-agents)\\n * [What is Agentic AI?](https://devrev.ai/what-is-agentic-ai)\\n * [What is Enterprise Search?](https://devrev.ai/what-is-enterprise-search)\\n * [What is Conversational", - "title": "Delete Auth Token \u2014 DevRev | Docs" + "id": "ART-1819_KNOWLEDGE_NODE-113", + "text": "api.devrev.ai / dev-users.identities.link\\nLinks an external/secondary identity to the Dev user.\\nRequest.\\n\\nThis endpoint expects an object.\\ndev_user string Required\\nThe ID of the Dev user to link the external identity to.\\nid string Required\\nUnique ID of the Dev user in the external source.\\nissuer string Required\\nIssuer of the external identity of the Dev user.\\ndisplay_name string Optional\\nDisplay name of the Dev user in the external source.\\nResponse.\\n\\nThis endpoint returns an", + "title": "Sla Trackers Get \u2014 DevRev | Docs" }, { - "id": "ART-1653_KNOWLEDGE_NODE-113", + "id": "ART-1838_KNOWLEDGE_NODE-113", "text": "api.devrev.ai / dev-users.identities.link\\nLinks an external/secondary identity to the Dev user.\\nRequest.\\n\\nThis endpoint expects an object.\\ndev_user string Required\\nThe ID of the Dev user to link the external identity to.\\nid string Required\\nUnique ID of the Dev user in the external source.\\nissuer string Required\\nIssuer of the external identity of the Dev user.\\ndisplay_name string Optional\\nDisplay name of the Dev user in the external source.\\nResponse.\\n\\nThis endpoint returns an", - "title": "Get \u2014 DevRev | Docs" + "title": "List Post \u2014 DevRev | Docs" }, { - "id": "ART-13045_KNOWLEDGE_NODE-12", - "text": "[Privacy Policy](https://devrev.ai/legal/privacy-policy)\\n * [Terms of Service](https://devrev.ai/legal/terms-of-service)\\n\\nLearn\\n\\n * [What are AI Agents?](https://devrev.ai/what-are-ai-agents)\\n * [What is Agentic AI?](https://devrev.ai/what-is-agentic-ai)\\n * [What is Enterprise Search?](https://devrev.ai/what-is-enterprise-search)\\n * [What is Conversational", - "title": "Get Web Crawler Job \u2014 DevRev | Docs" + "id": "ART-1633_KNOWLEDGE_NODE-113", + "text": "api.devrev.ai / dev-users.identities.link\\nLinks an external/secondary identity to the Dev user.\\nRequest.\\n\\nThis endpoint expects an object.\\ndev_user string Required\\nThe ID of the Dev user to link the external identity to.\\nid string Required\\nUnique ID of the Dev user in the external source.\\nissuer string Required\\nIssuer of the external identity of the Dev user.\\ndisplay_name string Optional\\nDisplay name of the Dev user in the external source.\\nResponse.\\n\\nThis endpoint returns an", + "title": "List \u2014 DevRev | Docs" } ] }, @@ -3084,18 +3084,13 @@ "query": "devrev platform orientation and navigation guide", "retrievals": [ { - "id": "ART-2666_KNOWLEDGE_NODE-26", - "text": "[Developer](https://developer.devrev.ai/)\\n * [DevRevU](/docs/DevRevU)\\n\\n * [Product demos](/docs/DevRevU/demos)\\n\\nOn this page\\n\\n * Key changes\\n * New navigation sections\\n * Explore the section for boards and views\\n * Search and filter options in Explore\\n * Pinning and unpinning views\\n * Recents section\\n\\n 1. [Documentation](/docs)\\n 2. 3. [Changelog](/docs/changelog)\\n 4. [October 5: Left navigation](/docs/product/left-navigation)\\n\\n# Left navigation\\n\\nThe updated", + "id": "ART-2666_KNOWLEDGE_NODE-27", + "text": "DevRev's left navigation is designed to provide a more customizable and intuitive navigation experience. This update introduces new sections for better organization, enhanced customization capabilities, and a dedicated **Explore** page for managing views, dashboards, and sprint boards.\\n\\nWhen existing users log in, a prompt appears to guide them in migrating to the new left navigation. Follow the on-screen instructions to complete the migration and begin customizing your experience.\\n\\n## Key", "title": "October 5: Left navigation | Changelog | DevRev" }, { - "id": "ART-12602_KNOWLEDGE_NODE-8", - "text": "platforms\\n * Knowledge of revenue attribution models and sales funnel metrics\\n * Background in business analytics, finance, or a related field\\n\\n### **What We Offer:**\\n\\n * Competitive compensation and benefits\\n * Opportunities for career growth and advancement\\n * A collaborative, supportive team environment\\n * Flexible work arrangements\\n * Access to modern tools and technology\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry,", - "title": "DevRev Careers | Revenue Operations Analyst" - }, - { - "id": "ART-2666_KNOWLEDGE_NODE-27", - "text": "DevRev's left navigation is designed to provide a more customizable and intuitive navigation experience. This update introduces new sections for better organization, enhanced customization capabilities, and a dedicated **Explore** page for managing views, dashboards, and sprint boards.\\n\\nWhen existing users log in, a prompt appears to guide them in migrating to the new left navigation. Follow the on-screen instructions to complete the migration and begin customizing your experience.\\n\\n## Key", + "id": "ART-2666_KNOWLEDGE_NODE-26", + "text": "[Developer](https://developer.devrev.ai/)\\n * [DevRevU](/docs/DevRevU)\\n\\n * [Product demos](/docs/DevRevU/demos)\\n\\nOn this page\\n\\n * Key changes\\n * New navigation sections\\n * Explore the section for boards and views\\n * Search and filter options in Explore\\n * Pinning and unpinning views\\n * Recents section\\n\\n 1. [Documentation](/docs)\\n 2. 3. [Changelog](/docs/changelog)\\n 4. [October 5: Left navigation](/docs/product/left-navigation)\\n\\n# Left navigation\\n\\nThe updated", "title": "October 5: Left navigation | Changelog | DevRev" }, { @@ -3103,20 +3098,20 @@ "text": ".\\n\\nProceed to integrate the DevRev PLuG SDK. For specific platform migration guides, refer to the following resources:\\n\\nAndroid SDK migration guide: Android Migration Guide\\n\\niOS SDK migration guide: iOS Migration Guide\\n\\nReact Native & Expo SDK migration guide: React Native Migration Guide\\n\\nCordova SDK migration guide: Cordova Migration Guide\\n\\nWeb SDK migration guide: Web Migration Guide\\n\\nOnce the integration is complete, you will be able to view sessions on the Session", "title": "Migrating from UserExperior to DevRev" }, - { - "id": "ART-2662_KNOWLEDGE_NODE-0", - "text": "b'DevRev Documentation\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n + [Groups](/docs/product/groups)\\n +", - "title": "DevRev Documentation" - }, { "id": "ART-16570_KNOWLEDGE_NODE-8", "text": "access\\n--------------------------------------------------------------\\n\\n**The Transformation Journey**\\n\\nThe shift from FAME\\'s previous fragmented information landscape to DevRev\\'s unified memory represented a fundamental change in how teams work. What once required navigating multiple platforms, piecing together incomplete information, and spending hours searching for answers became as simple as having a conversation.\\n\\nDevRev\\'s AirSync technology seamlessly ingested FAME\\'s existing", "title": "FAME transforms information access with AI-powered enterprise search" }, { - "id": "ART-15203_KNOWLEDGE_NODE-10", - "text": "Technical knowledge of web solutions including APIs and Webhooks. Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n* Outstanding communication (written and verbal), with fluency in English.\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who", - "title": "DevRev Careers | Senior Customer Success Manager" + "id": "ART-2819_KNOWLEDGE_NODE-0", + "text": "b\"Exotel | Integrate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CMD`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", + "title": "Exotel | Integrate | Snap-ins | DevRev" + }, + { + "id": "ART-13079_KNOWLEDGE_NODE-9", + "text": "English).\\n * Result-oriented work style, ability to get things done and a learning mindset.\\n * An endless passion for challenging work that requires high energy, full engagement and a self-founded need for high performance.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the earth\\xe2\\x80\\x99s most customer-centric companies. Our mission is to leverage design, data", + "title": "DevRev Careers | Applied AI Engineer - Support" }, { "id": "ART-2031_KNOWLEDGE_NODE-0", @@ -3124,14 +3119,19 @@ "title": "Harness | Integrate | Snap-ins | DevRev" }, { - "id": "ART-16798_KNOWLEDGE_NODE-9", - "text": "skills are also valued.\\n\\n* Outstanding communication (written and verbal), with fluency in English.\\n\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the earth\\xe2\\x80\\x99s most customer-centric companies. Our mission is", - "title": "DevRev Careers | Partner Success Manager" + "id": "ART-2662_KNOWLEDGE_NODE-0", + "text": "b'DevRev Documentation\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n + [Groups](/docs/product/groups)\\n +", + "title": "DevRev Documentation" }, { - "id": "ART-2039_KNOWLEDGE_NODE-0", - "text": "b\"Marker.io | Integrate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CMD`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", - "title": "Marker.io | Integrate | Snap-ins | DevRev" + "id": "ART-2035_KNOWLEDGE_NODE-0", + "text": "b\"Slack | Integrate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", + "title": "Slack | Integrate | Snap-ins | DevRev" + }, + { + "id": "ART-2043_KNOWLEDGE_NODE-0", + "text": "b'Glean | Integrate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", + "title": "Glean | Integrate | Snap-ins | DevRev" } ] }, @@ -3140,19 +3140,24 @@ "query": "common causes of Bad_Request error in DevRev", "retrievals": [ { - "id": "ART-15203_KNOWLEDGE_NODE-10", - "text": "Technical knowledge of web solutions including APIs and Webhooks. Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n* Outstanding communication (written and verbal), with fluency in English.\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who", - "title": "DevRev Careers | Senior Customer Success Manager" + "id": "ART-3896_KNOWLEDGE_NODE-3", + "text": "Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nPOST\\n\\n/stage-diagrams.create\\n\\n[code]\\n\\n $| curl -X POST https://api.devrev.ai/stage-diagrams.create \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -H \"Content-Type: application/json\" \\\\ \\n >| -d \\'{ \\n >| \"leaf_type\": \"foo\", \\n >|", + "title": "Create Stage Diagram (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1174_KNOWLEDGE_NODE-0", - "text": "b'Errors | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[About](/about/for-developers)\\n\\nErrors\\n======\\n\\nCopy page\\n\\nDevRev\\xe2\\x80\\x99s APIs use standard HTTP status codes when responding to requests. On success, a `20X` status code is returned along with any response data, as indicated in the OpenAPI specification.\\n\\n| Status Code | Status | Description |\\n| --- | --- | --- |\\n| `200` | `OK` | The request succeeded and the result is", - "title": "Errors | DevRev | Docs" + "id": "ART-4098_KNOWLEDGE_NODE-1", + "text": "Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n404\\n\\nNot Found Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nGET\\n\\n/rev-users.get\\n\\n[code]\\n\\n $| curl -G https://api.devrev.ai/rev-users.get \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -d id=id\\n[/code] \\n \\nTry it\\n\\n200getExample\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"rev_user\": { \\n 3|", + "title": "Get Rev User \u2014 DevRev | Docs" }, { - "id": "ART-16798_KNOWLEDGE_NODE-9", - "text": "skills are also valued.\\n\\n* Outstanding communication (written and verbal), with fluency in English.\\n\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the earth\\xe2\\x80\\x99s most customer-centric companies. Our mission is", - "title": "DevRev Careers | Partner Success Manager" + "id": "ART-12991_KNOWLEDGE_NODE-1", + "text": "Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n404\\n\\nNot Found Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nPOST\\n\\n/dev-users.deactivate\\n\\n[code]\\n\\n $| curl -X POST https://api.devrev.ai/dev-users.deactivate \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -H \"Content-Type: application/json\" \\\\ \\n >| -d \\'{ \\n >| \"id\": \"foo\" \\n >| }\\'\\n[/code]", + "title": "Deactivate Dev Users \u2014 DevRev | Docs" + }, + { + "id": "ART-4097_KNOWLEDGE_NODE-1", + "text": "Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n404\\n\\nNot Found Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nPOST\\n\\n/rev-users.delete\\n\\n[code]\\n\\n $| curl -X POST https://api.devrev.ai/rev-users.delete \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -H \"Content-Type: application/json\" \\\\ \\n >| -d \\'{ \\n >| \"id\": \"foo\" \\n >| }\\'\\n[/code] \\n \\nTry", + "title": "Delete Rev User \u2014 DevRev | Docs" }, { "id": "ART-1174_KNOWLEDGE_NODE-3", @@ -3160,9 +3165,9 @@ "title": "Errors | DevRev | Docs" }, { - "id": "ART-15962_KNOWLEDGE_NODE-9", - "text": "areas.\\n\\n**Preferred Qualifications** \\nList additional skills, experience, or attributes that are advantageous but not required.\\n\\n* MBA or related advanced degree.\\n* 10+ years of experience in software product marketing, with direct experience in AI, large language models, machine learning, or related fields preferred.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the", - "title": "DevRev Careers | Senior Product Marketing Manager" + "id": "ART-1205_KNOWLEDGE_NODE-11", + "text": "Error\\n\\n403\\n\\nForbidden Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/dev-users/identities-unlink)[#### List Dev Users (POST)\\n\\nNext](/api-reference/dev-users/list-post)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", + "title": "List Dev Users | DevRev | Docs" }, { "id": "ART-1364_KNOWLEDGE_NODE-3", @@ -3170,19 +3175,14 @@ "title": "Errors \u2014 DevRev | Docs" }, { - "id": "ART-4098_KNOWLEDGE_NODE-1", - "text": "Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n404\\n\\nNot Found Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nGET\\n\\n/rev-users.get\\n\\n[code]\\n\\n $| curl -G https://api.devrev.ai/rev-users.get \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -d id=id\\n[/code] \\n \\nTry it\\n\\n200getExample\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"rev_user\": { \\n 3|", - "title": "Get Rev User \u2014 DevRev | Docs" - }, - { - "id": "ART-15202_KNOWLEDGE_NODE-10", - "text": "including APIs and Webhooks. Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n* Outstanding communication (written and verbal), with fluency in English.\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to", - "title": "DevRev Careers | Senior Customer Success Manager" + "id": "ART-4061_KNOWLEDGE_NODE-3", + "text": "Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nPOST\\n\\n/dev-users.self.update\\n\\n[code]\\n\\n $| curl -X POST https://api.devrev.ai/dev-users.self.update \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -H \"Content-Type: application/json\" \\\\ \\n >| -d \\'{}\\'\\n[/code] \\n \\nTry it\\n\\n200devUsersSelfUpdateExample\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"dev_user\": { \\n 3|", + "title": "Update Dev Users Self \u2014 DevRev | Docs" }, { - "id": "ART-15201_KNOWLEDGE_NODE-10", - "text": "Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n * Outstanding communication (written and verbal), with fluency in English.\\n * Comfort operating in a fast-paced, high-demand, global environment.\\n * Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the", - "title": "DevRev Careers | Senior Customer Success Manager" + "id": "ART-1174_KNOWLEDGE_NODE-0", + "text": "b'Errors | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[About](/about/for-developers)\\n\\nErrors\\n======\\n\\nCopy page\\n\\nDevRev\\xe2\\x80\\x99s APIs use standard HTTP status codes when responding to requests. On success, a `20X` status code is returned along with any response data, as indicated in the OpenAPI specification.\\n\\n| Status Code | Status | Description |\\n| --- | --- | --- |\\n| `200` | `OK` | The request succeeded and the result is", + "title": "Errors | DevRev | Docs" }, { "id": "ART-1854_KNOWLEDGE_NODE-6", @@ -3196,29 +3196,14 @@ "query": "associate multiple workspaces to a contact", "retrievals": [ { - "id": "ART-2035_KNOWLEDGE_NODE-31", - "text": "creating conversations from any Slack channel:\\n\\n1. Link the DevRev Customer workspace to the channel by running /devrev link in the channel.\\n2. In the pop-up modal, search for the DevRev Customer workspace. \\n 2a. Select the preferred workspace and click **Link**. \\n 2b. If your channel is already linked to a workspace, the modal will show the details of the workspace and an option to unlink.\\n3. Once linked, new contacts identified via Slack are automatically added to the associated", - "title": "Slack | Integrate | Snap-ins | DevRev" - }, - { - "id": "ART-1997_KNOWLEDGE_NODE-31", - "text": "users associated with an organization's workspaces or accounts. A contact is also known as a rev-user in the DevRev API.\\n\\nContacts represent customers, leads, and stakeholders with whom a business interacts. Contacts can be associated with an account or workspace, but not always.\\n\\n\\xf0\\x9f\\xa4\\x9d Engagement\\n------------\\n\\nDevRev uses engagements to capture all interactions between employees and customers, encompassing communications across various channels and touchpoints. DevRev records", - "title": "Computer for Growth Teams | DevRev" - }, - { - "id": "ART-2933_KNOWLEDGE_NODE-3", - "text": "associated with a workspace.\\n\\n##### \\n\\nJust want to get a token and get started? This [tutorial](/about/authentication#generate-a-personal-access-token-pat) teaches you the fastest way to get a token.\\n\\nYes\\n\\nNo\\n\\naccounts.create\\n\\nAccount is existing \\n\\'account ID\\'\\n\\nrev-orgs.list with \\n\\'account\\' filter\\n\\nrev-orgs.get with \\n\\'account ID\\'\\n\\nGet rev-org \\'display\\\\_id\\'\\n\\nCreate a \\'rev-user\\' under \\'contact\\'\\n\\nCreate an account\\n-----------------\\n\\nThe payload to make a", - "title": "Account creation | DevRev | Docs" - }, - { - "id": "ART-16784_KNOWLEDGE_NODE-6", - "text": "in the source system.\\n\\nTerms related to connection: AirSync, snap-incontact\\n\\nIndividual prospects or users associated with an organization\\'s workspaces or accounts.\\n\\nContacts can be associated with an account or workspace, but not always.\\n\\nTerms related to contact: account, workspace\\n\\nRead more about contact: [https://devrev.ai/docs/product/grow](https://devrev.ai/docs/product/grow)conversation\\n\\nAn interaction between the builder and consumer that may be escalated to a", - "title": "Glossary" + "id": "ART-2000_KNOWLEDGE_NODE-25", + "text": "address.\\n\\nAccounts are associated with a workspace. An account can be a part of multiple workspaces at the same time. An account can also be linked to multiple opportunities. Accounts help you keep track of your customer contacts. Contacts are always linked to a workspace or an account.\\n\\nCreate an account\\n-----------------\\n\\nYou can create accounts in the following ways:\\n\\n### Using the DevRev app\\n\\n1. Go to **Accounts** > **+ Account**.\\n2. Fill in the details like account name,", + "title": "Accounts | Computer for Growth Teams | DevRev" }, { - "id": "ART-2035_KNOWLEDGE_NODE-32", - "text": "workspace. When creating work items, the linked customer workspace is pre-selected for quick access.\\n4. Invite the DevRev app to a channel by running /invite @DevRev in the channel.\\n\\nOnce the above steps are completed:\\n\\n* Messages sent by customers directly to the channel will create new conversations.\\n* Any messages in thread, or channel messages by members from your own team won\\xe2\\x80\\x99t create new conversations.\\n* Created conversations can be located in the **Inbox vista** in your", - "title": "Slack | Integrate | Snap-ins | DevRev" + "id": "ART-1986_KNOWLEDGE_NODE-30", + "text": "its own SLA, and a single customer can have multiple workspaces.\\n\\n**Adding assignment rules**\\n\\nGo to **Assignment rules** to add conditions for an account to be assigned a particular SLA.\\n\\n1. Click **+ Create Rule**.\\n2. In the **New SLA assignment rule** pane, select the account attributes and their values to check for.\\n3. Click **Save and Apply**.\\n\\n**Editing/Deleting an assignment rule**\\n\\nOnce an assignment rule is created, you have the option to edit or delete it. Any changes made", + "title": "Service-level agreement | Computer for Support Teams | DevRev" }, { "id": "ART-1960_KNOWLEDGE_NODE-28", @@ -3231,19 +3216,34 @@ "title": "June 2025 | Changelog | DevRev" }, { - "id": "ART-6175_KNOWLEDGE_NODE-26", - "text": "contacts.\\n* **Link Account and Contact:**\\n Enable this option to link the account and contact to the custom object.\\n* **Account Description Fields:**\\n Enable this option to generate a rich description for accounts using values from multiple Airtable columns.\\n* **Contact Description Fields:**\\n Enable this option to generate a rich description for contacts using values from multiple Airtable columns.\\n* **Airtable Email Columns:**\\n Comma-separated list of names of the columns in", - "title": "Airtable | Automate | Snap-ins | DevRev" + "id": "ART-1997_KNOWLEDGE_NODE-31", + "text": "users associated with an organization's workspaces or accounts. A contact is also known as a rev-user in the DevRev API.\\n\\nContacts represent customers, leads, and stakeholders with whom a business interacts. Contacts can be associated with an account or workspace, but not always.\\n\\n\\xf0\\x9f\\xa4\\x9d Engagement\\n------------\\n\\nDevRev uses engagements to capture all interactions between employees and customers, encompassing communications across various channels and touchpoints. DevRev records", + "title": "Computer for Growth Teams | DevRev" }, { - "id": "ART-6177_KNOWLEDGE_NODE-26", - "text": "**Enable *Contact* Custom Field Mapping For Tracxn:** \\n Use the Tracxn-based *Contact* custom field mappings.\\n* **Enable *Contact* Custom Field Mapping for DevRev:** \\n Use static *Contact* custom field values.\\n* **Enable Tags For *Accounts*:** \\n Apply tags to created *Accounts*.\\n* **Enable Tags For *Contacts*:** \\n Apply tags to created *Contacts*.\\n* ***Account* Field Mapping:** \\n Map fields from Tracxn company objects to DevRev *Account* fields.\\n\\n **Format:**\\n\\n ```\\n", - "title": "Tracxn sync | Automate | Snap-ins | DevRev" + "id": "ART-16784_KNOWLEDGE_NODE-6", + "text": "in the source system.\\n\\nTerms related to connection: AirSync, snap-incontact\\n\\nIndividual prospects or users associated with an organization\\'s workspaces or accounts.\\n\\nContacts can be associated with an account or workspace, but not always.\\n\\nTerms related to contact: account, workspace\\n\\nRead more about contact: [https://devrev.ai/docs/product/grow](https://devrev.ai/docs/product/grow)conversation\\n\\nAn interaction between the builder and consumer that may be escalated to a", + "title": "Glossary" }, { - "id": "ART-1986_KNOWLEDGE_NODE-30", - "text": "its own SLA, and a single customer can have multiple workspaces.\\n\\n**Adding assignment rules**\\n\\nGo to **Assignment rules** to add conditions for an account to be assigned a particular SLA.\\n\\n1. Click **+ Create Rule**.\\n2. In the **New SLA assignment rule** pane, select the account attributes and their values to check for.\\n3. Click **Save and Apply**.\\n\\n**Editing/Deleting an assignment rule**\\n\\nOnce an assignment rule is created, you have the option to edit or delete it. Any changes made", - "title": "Service-level agreement | Computer for Support Teams | DevRev" + "id": "ART-2933_KNOWLEDGE_NODE-3", + "text": "associated with a workspace.\\n\\n##### \\n\\nJust want to get a token and get started? This [tutorial](/about/authentication#generate-a-personal-access-token-pat) teaches you the fastest way to get a token.\\n\\nYes\\n\\nNo\\n\\naccounts.create\\n\\nAccount is existing \\n\\'account ID\\'\\n\\nrev-orgs.list with \\n\\'account\\' filter\\n\\nrev-orgs.get with \\n\\'account ID\\'\\n\\nGet rev-org \\'display\\\\_id\\'\\n\\nCreate a \\'rev-user\\' under \\'contact\\'\\n\\nCreate an account\\n-----------------\\n\\nThe payload to make a", + "title": "Account creation | DevRev | Docs" + }, + { + "id": "ART-15506_KNOWLEDGE_NODE-17", + "text": "Contacts linked to the account | User and account information | Recommended for most B2B cases |\\n| **Three-level** | Account with linked workspaces and contacts | User, workspace and account information | Used for B2B cases but only recommended if your business model requires workspace organization |\\n\\n**What happens when you send different combinations:**\\n\\nUser reference:\\n\\n* A user reference is mandatory, ensuring its constant presence.\\n* If a user with the provided reference", + "title": "Identify your users with Plug | DevRev | Docs" + }, + { + "id": "ART-1997_KNOWLEDGE_NODE-28", + "text": "single account. This allows us to consolidate various workspaces under one account.\\n\\nTo create a new organization in DevRev:\\n\\n1. Click on your profile picture in the top left corner.\\n2. Go to the **Orgs** section and click on **+**.\\n3. Fill in the details and click **Create**.\\n4. Now you can find your newly created org in **Orgs**.\\n\\nIn modern SaaS applications, customers often create multiple workspaces for testing, production, and staging. All entities that drive support", + "title": "Computer for Growth Teams | DevRev" + }, + { + "id": "ART-2035_KNOWLEDGE_NODE-31", + "text": "creating conversations from any Slack channel:\\n\\n1. Link the DevRev Customer workspace to the channel by running /devrev link in the channel.\\n2. In the pop-up modal, search for the DevRev Customer workspace. \\n 2a. Select the preferred workspace and click **Link**. \\n 2b. If your channel is already linked to a workspace, the modal will show the details of the workspace and an option to unlink.\\n3. Once linked, new contacts identified via Slack are automatically added to the associated", + "title": "Slack | Integrate | Snap-ins | DevRev" } ] }, @@ -3251,55 +3251,55 @@ "query_id": "6dbad6ea-8ad4-41c5-8cf0-ed39a644fb26", "query": "Slack notifications org name unknown organisation", "retrievals": [ + { + "id": "ART-1283_KNOWLEDGE_NODE-2", + "text": "keyrings : 2 organization : 3 - name : my-secret-org-token 4 description : Enables access to organization-wide resources (e.g., Slack workspace) 5 types : 6 - devrev-keyring-type 7 display_name : Organization secret token 8 9 user : 10 - name : my-secret-user-token 11 description : Allows access to individual user resources (e.g., personal Google Calendar) 12 types : 13 - devrev-keyring-type 14 display_name : Your secret token\\n\\nBreakdown:\\n\\nname. : A unique identifier for the keyring in the", + "title": "Keyrings \u2014 DevRev | Docs" + }, + { + "id": "ART-1491_KNOWLEDGE_NODE-2", + "text": "keyrings : 2 organization : 3 - name : my-secret-org-token 4 description : Enables access to organization-wide resources (e.g., Slack workspace) 5 types : 6 - devrev-keyring-type 7 display_name : Organization secret token 8 9 user : 10 - name : my-secret-user-token 11 description : Allows access to individual user resources (e.g., personal Google Calendar) 12 types : 13 - devrev-keyring-type 14 display_name : Your secret token\\n\\nBreakdown:\\n\\nname. : A unique identifier for the keyring in the", + "title": "Keyrings \u2014 DevRev | Docs" + }, { "id": "ART-1276_KNOWLEDGE_NODE-18", "text": "--- |\\n| 1 | const verifyOrgName = async (orgName: string, octokit: Octokit) => { |\\n| 2 | try { |\\n| 3 | await octokit.request(\"GET /orgs/{org}\", { |\\n| 4 | headers: { |\\n| 5 | \"X-GitHub-Api-Version\": \"2022-11-28\", |\\n| 6 | }, |\\n| 7 | org: orgName, |\\n| 8 | }); |\\n| 9 | } catch (error) { |\\n| 10 | console.error(error); |\\n| 11 | throw new Error(\"Invalid Organisation Name\"); |\\n| 12 | } |\\n| 13 | }; |\\n```\\n\\nSimilarly, the [GET", "title": "Using a snap-in to perform an external action | DevRev | Docs" }, { - "id": "ART-2017_KNOWLEDGE_NODE-28", - "text": "you would like to tag on the message (the ticket owner gets tagged automatically); and the target Slack channel. The channel\\'s ID can be found by going to the channel details. Refer to the placeholder value on the input to see an example of how this looks.\\n2. Decide if notifications should go out even if the ticket has a target end date set. Set the toggle to the desired behavior.\\n3. Decide if a ticket should pass the check if it\\'s part is a descendant of the filter part. For example, if a", - "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" + "id": "ART-1276_KNOWLEDGE_NODE-17", + "text": "getOrgAndRepoNames = (paramString: string): string[] => { |\\n| 2 | const paramList = paramString.split(\" \"); |\\n| 3 | if (paramList.length !== 2) { |\\n| 4 | throw new Error(\"Invalid Parameters\"); |\\n| 5 | } |\\n| 6 | const [orgName, repoName] = paramList; |\\n| 7 | return [orgName, repoName]; |\\n| 8 | }; |\\n```\\n\\nThe GitHub REST API () is used to confirm the specified organisation name.\\n\\n```\\n| | |\\n| --- |", + "title": "Using a snap-in to perform an external action | DevRev | Docs" }, { - "id": "ART-2035_KNOWLEDGE_NODE-36", - "text": "Slack Channel ID in the **Channel ID to send conversation notifications** snap-in configuration as the target to post notifications.\\n\\n* Any new message within tickets in the customer messages panel is also subjected to the same automation.\\n* To prevent notification overload, each conversation or ticket is subject to a five minute cooldown period between notifications. Multiple consecutive messages within this window will not trigger additional notifications.\\n* Notification threads are not", + "id": "ART-2035_KNOWLEDGE_NODE-42", + "text": "ticket notifications\\n\\n* Enable through the **Notify on new ticket creation** snap-in configuration.\\n* Provide a Slack channel ID in the **Channel ID to send ticket notifications** configuration.\\n* Snap-in will send notifications to the target channel whenever a new ticket is created, regardless of the source channel or platform.\\n* Notification message threads are **not** synced between platforms.\\n\\n### Notifications for ticket state update\\n\\n* Enable through **Notify on ticket state", "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-1278_KNOWLEDGE_NODE-10", - "text": "as the\\nconduit for receiving relevant events.\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | event_sources: |\\n| 2 | organization: |\\n| 3 | - name: github-app-source |\\n| 4 | type: flow-custom-webhook |\\n| 5 | description: Event coming from Github app. |\\n| 6 | config: |\\n| 7 | policy: | |\\n| 8 | package rego |\\n| 9 | signature := crypto.hmac.sha256(base64.decode(input.request.body_raw), input.parameters.secret) |\\n| 10 | expected_header := sprintf(\"sha256=%v\", [signature]) |\\n| 11 |", - "title": "Snap-in triggered by an external source | DevRev | Docs" - }, - { - "id": "ART-1484_KNOWLEDGE_NODE-98", - "text": "\\n 3| \"action_id\": \"emails\", \\n 4| \"placeholder\": { \\n 5| \"text\": \"Enter email here\", \\n 6| \"type\": \"plain_text\" \\n 7| }, \\n 8| \"type\": \"email_list\" \\n 9| }, \\n 10| \"hint\": { \\n 11| \"text\": \"When these emails are included in a Slack message, they automatically receive an email notification.\", \\n 12| \"type\": \"plain_text\" \\n 13| }, \\n 14| \"label\": { \\n 15| \"text\": \"List of emails\", \\n 16|", - "title": "Snapkit \u2014 DevRev | Docs" + "id": "ART-12395_KNOWLEDGE_NODE-26", + "text": "docs](/docs/integrations/slack?_gl=1*sit0d5*_ga*MTkzMTU5ODIyOS4xNzE5ODEyMjEw*_ga_MK3C9L001S*czE3NDc2NjIxOTkkbzEzNTkkZzEkdDE3NDc2NjIyMzMkajAkbDAkaDA).\\n\\nFeatures\\n--------\\n\\n* **Customer release notes**: Automatically share release notes with customers via Slack Connect channels.\\n* **Account linking**: Link Slack channels to accounts using the /slack\\\\_broadcaster\\\\_link command in the account timeline. To unlink, use /slack\\\\_broadcaster\\\\_link invalid.\\n* **Bulk account", + "title": "Slack Broadcaster | Automate | Snap-ins | DevRev" }, { - "id": "ART-1276_KNOWLEDGE_NODE-17", - "text": "getOrgAndRepoNames = (paramString: string): string[] => { |\\n| 2 | const paramList = paramString.split(\" \"); |\\n| 3 | if (paramList.length !== 2) { |\\n| 4 | throw new Error(\"Invalid Parameters\"); |\\n| 5 | } |\\n| 6 | const [orgName, repoName] = paramList; |\\n| 7 | return [orgName, repoName]; |\\n| 8 | }; |\\n```\\n\\nThe GitHub REST API () is used to confirm the specified organisation name.\\n\\n```\\n| | |\\n| --- |", - "title": "Using a snap-in to perform an external action | DevRev | Docs" + "id": "ART-2017_KNOWLEDGE_NODE-28", + "text": "you would like to tag on the message (the ticket owner gets tagged automatically); and the target Slack channel. The channel\\'s ID can be found by going to the channel details. Refer to the placeholder value on the input to see an example of how this looks.\\n2. Decide if notifications should go out even if the ticket has a target end date set. Set the toggle to the desired behavior.\\n3. Decide if a ticket should pass the check if it\\'s part is a descendant of the filter part. For example, if a", + "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" }, { - "id": "ART-968_KNOWLEDGE_NODE-2", - "text": "The tagging will occur once the\\nticket is created from a Slack channel provided the ticket-share acknowledgment\\ncheckbox is enabled(the conversation stays private otherwise). This app connects with a\\nSnapin at DevRev that would invoke the app at the time of ticket creation. The ticket\\xe2\\x80\\x99s\\nsource(Slack) serves as the delimiter.\\nYield:\\n\\nThe group\\xe2\\x80\\x99s ID is obtained within the configuration of the snapin at DevRev\\nas shown below.\\n\\nGroup ID to be obtained from within the", - "title": "Rocketium: On call Tagging - Slack" + "id": "ART-2035_KNOWLEDGE_NODE-48", + "text": "channel.\\n\\n1. **Sync messages with the thread (for incidents created from Slack)**\\n\\n* Works only for incidents created from Slack.\\n* It syncs messages with the originating thread, similar to ticket and issue work items.\\n\\n1. **Sync messages with the notification thread**\\n\\n* Syncs with the thread of the incident notification sent on the channel mentioned in the **Channel ID to send incident notifications** configuration.\\n* Works for all incidents irrespective of source channel or", + "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-1484_KNOWLEDGE_NODE-86", - "text": "keywords in a Slack message, they are prompted to send the message to your DevRev inbox.\", \\n 16| \"type\": \"plain_text\" \\n 17| }, \\n 18| \"label\": { \\n 19| \"text\": \"List of strings\", \\n 20| \"type\": \"plain_text\" \\n 21| }, \\n 22| \"type\": \"input_layout\" \\n 23| }\\n[/code] \\n \\nMultiline string list input with a minimum of 1 item and a maximum of 2 items.\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"element\": { \\n 3| \"action_id\":", + "id": "ART-1484_KNOWLEDGE_NODE-98", + "text": "\\n 3| \"action_id\": \"emails\", \\n 4| \"placeholder\": { \\n 5| \"text\": \"Enter email here\", \\n 6| \"type\": \"plain_text\" \\n 7| }, \\n 8| \"type\": \"email_list\" \\n 9| }, \\n 10| \"hint\": { \\n 11| \"text\": \"When these emails are included in a Slack message, they automatically receive an email notification.\", \\n 12| \"type\": \"plain_text\" \\n 13| }, \\n 14| \"label\": { \\n 15| \"text\": \"List of emails\", \\n 16|", "title": "Snapkit \u2014 DevRev | Docs" }, { - "id": "ART-12395_KNOWLEDGE_NODE-26", - "text": "docs](/docs/integrations/slack?_gl=1*sit0d5*_ga*MTkzMTU5ODIyOS4xNzE5ODEyMjEw*_ga_MK3C9L001S*czE3NDc2NjIxOTkkbzEzNTkkZzEkdDE3NDc2NjIyMzMkajAkbDAkaDA).\\n\\nFeatures\\n--------\\n\\n* **Customer release notes**: Automatically share release notes with customers via Slack Connect channels.\\n* **Account linking**: Link Slack channels to accounts using the /slack\\\\_broadcaster\\\\_link command in the account timeline. To unlink, use /slack\\\\_broadcaster\\\\_link invalid.\\n* **Bulk account", - "title": "Slack Broadcaster | Automate | Snap-ins | DevRev" - }, - { - "id": "ART-968_KNOWLEDGE_NODE-0", - "text": "b'Rocketium: Slack - On-call Tagging\\n\\n\\xe2\\x97\\x8f Problem statement:\\n\\xe2\\x97\\x8b Rocketium\\xe2\\x80\\x99s CS team creates tickets in DevRev from a specific Slack channel for their\\non-call team to address and work on them.\\n\\xe2\\x97\\x8b Currently, the users are required to manually tag the on-call Slack group members in\\nthe ticket description as shown in the image below.\\n\\n\\xe2\\x97\\x8b The requirement is to automatically tag the members without manual intervention.\\nNote: The requirement", - "title": "Rocketium: On call Tagging - Slack" + "id": "ART-1278_KNOWLEDGE_NODE-10", + "text": "as the\\nconduit for receiving relevant events.\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | event_sources: |\\n| 2 | organization: |\\n| 3 | - name: github-app-source |\\n| 4 | type: flow-custom-webhook |\\n| 5 | description: Event coming from Github app. |\\n| 6 | config: |\\n| 7 | policy: | |\\n| 8 | package rego |\\n| 9 | signature := crypto.hmac.sha256(base64.decode(input.request.body_raw), input.parameters.secret) |\\n| 10 | expected_header := sprintf(\"sha256=%v\", [signature]) |\\n| 11 |", + "title": "Snap-in triggered by an external source | DevRev | Docs" } ] }, @@ -3307,35 +3307,40 @@ "query_id": "5008d8ba-33fe-4763-b515-5934672610d1", "query": "how to create tickets in DevRev MVP org", "retrievals": [ + { + "id": "ART-1979_KNOWLEDGE_NODE-37", + "text": "filters and **Group** conditions across various vistas in DevRev to track specific work, capacity, and more.\\n\\nYou can add custom attributes to tickets to track additional information. For more information on custom attributes, see [object customization](./object-customization).\\n\\nIssues are attached to tickets in order to track efforts with product priorities.\\n\\nCreate a ticket\\n---------------\\n\\n1. Go to **Support** > **Tickets** from the sidebar on the left.\\n2. Click **New Ticket** on", + "title": "Tickets | Computer for Support Teams | DevRev" + }, { "id": "ART-12390_KNOWLEDGE_NODE-29", "text": "Ticket | Creates a new ticket in DevRev. | * Ticket details like title, body, applies\\\\_to\\\\_part, etc. * subtype: (Optional) Ticket subtype * apps: (Optional) Related apps * app\\\\_custom\\\\_fields: (Optional) Custom fields | Created ticket object |\\n| Convert Conversation To Ticket | Converts a conversation to a ticket. | * conversation\\\\_id: ID of the conversation to convert | ticket\\\\_id: ID of the created ticket |\\n\\nObject retrieval\\n----------------\\n\\n| Operation | Description | Input", "title": "Workflow action library | Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-1978_KNOWLEDGE_NODE-43", - "text": "with that email or not.\\n + This could also be because your customer hasn't logged in.\\n* Customer isn't able to view the tickets they have created.\\n\\n + Check if there are any reported tickets by that customer. You can do so by logging into your DevRev app and then going into the tickets section. Here you can filter based on **reported by** and see if any tickets have been reported by the customer who isn't able to view the tickets.\\n + Check if the customer has logged in on the correct", - "title": "Customer portal | Computer for Support Teams | DevRev" + "id": "ART-1483_KNOWLEDGE_NODE-18", + "text": "the code\\n\\nUpdate the code in `src/functions/ticket_creator/index.ts` to reflect the behavior.\\n\\nFirstly, import the DevRev TypeScript SDK in the `index.ts` file\\n\\nindex.ts\\n\\n[code]\\n\\n 1| import {client, publicSDK} from \"@devrev/typescript-sdk\"; \\n ---|---\\n[/code] \\n \\nNext, update the `run` function in the hello-world example. Since the ticket gets created frequently, set some creation time in the title and the body. The example uses the part as `PROD-1` and keeps the owner as", + "title": "Using a snap-in to perform a DevRev action \u2014 DevRev | Docs" }, { - "id": "ART-1981_KNOWLEDGE_NODE-26", - "text": "a small number of tags to help categorize tickets. For example, at DevRev we have the following: bug, feature-request, other-request, question, and incident.\\n* Designate one or more customer experience engineers to be on call. Add them to the **Support** group inside **Settings > Groups** and as default owner in the **Support Routing** snap-in. Default owners are notified through email and the DevRev app as soon as a new conversation is started.\\n\\nMonitor the inbox\\n-----------------\\n\\n*", - "title": "Support best practices | Computer for Support Teams | DevRev" + "id": "ART-2039_KNOWLEDGE_NODE-25", + "text": "create DevRev tickets from Marker.io issues, you can configure the\\nsnap-in to use this email to auto-fill the **Reported By** and **Customer\\nWorkspace** fields in tickets. If no contact or accounts match the email, they\\nare automatically created.\\n\\nInstalling the Marker.io integration snap-in\\n--------------------------------------------\\n\\n1. Install the [Marker.io](/marketplace/marker-io) from the\\n DevRev Marketplace.\\n2. Configure the snap-in as needed.\\n\\n * (Optional) Select the", + "title": "Marker.io | Integrate | Snap-ins | DevRev" }, { - "id": "ART-1979_KNOWLEDGE_NODE-37", - "text": "filters and **Group** conditions across various vistas in DevRev to track specific work, capacity, and more.\\n\\nYou can add custom attributes to tickets to track additional information. For more information on custom attributes, see [object customization](./object-customization).\\n\\nIssues are attached to tickets in order to track efforts with product priorities.\\n\\nCreate a ticket\\n---------------\\n\\n1. Go to **Support** > **Tickets** from the sidebar on the left.\\n2. Click **New Ticket** on", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-2047_KNOWLEDGE_NODE-38", + "text": "type, it must be marked for syncing. Marking a DevRev ticket for syncing can only be done during the creation of a new ticket. During ticket creation, open the dropdown **Select Subtype**, set it to the type the ticket should be synced to. The format is as follows: SalesforceService / {type}.\\n\\nFor example, if you want to sync a new ticket in DevRev to a case type in Salesforce, this would show as **SalesforceService / cases**.\\n\\nAfter a DevRev work item has been marked for syncing, it\\'s", + "title": "Salesforce AirSync | AirSync | Snap-ins | DevRev" }, { - "id": "ART-1275_KNOWLEDGE_NODE-18", - "text": "= `Ticket created at ${date.toLocaleString()}`; |\\n| 14 | const ticketBody = `This ticket was created by a snap-in at ${date.toLocaleString()}`; |\\n| 15 | |\\n| 16 | const response = await devrevSDK.worksCreate({ |\\n| 17 | title: ticketName, |\\n| 18 | body: ticketBody, |\\n| 19 | // The ticket is created in the PROD-1 part. Rename this to match your part. |\\n| 20 | applies_to_part: \"PROD-1\", |\\n| 21 | // The ticket is owned by the DEVU-1 user. Rename this to match the required user. |\\n| 22 |", - "title": "Using a snap-in to perform a DevRev action | DevRev | Docs" + "id": "ART-1361_KNOWLEDGE_NODE-0", + "text": "b'Create Work | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[works](/api-reference/works/tickets-and-issues)\\n\\nCreate Work\\n===========\\n\\nCopy page\\n\\nPOST\\n\\nhttps://api.devrev.ai/works.create\\n\\nPOST\\n\\n/works.create\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl -X POST https://api.devrev.ai/works.create \\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\ |\\n| > | -H \"Content-Type:", + "title": "Create Work | DevRev | Docs" }, { - "id": "ART-15664_KNOWLEDGE_NODE-13", - "text": "\\n\\nYou may want to restrict links to specific subtypes of objects. For example, only allowing issues\\nof a particular subtype to be linked to tickets.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"name\": \"Link between social media issues and tickets\", |\\n| > | \"source_types\": [ |\\n| > | { |\\n|", - "title": "Links | DevRev | Docs" + "id": "ART-3235_KNOWLEDGE_NODE-25", + "text": "one.\\n\\nInstallation\\n------------\\n\\nInstall the [Reported by Enricher](https://marketplace.devrev.ai/ticket-reported-by) from DevRev marketplace.\\n\\nConfiguration\\n-------------\\n\\nIn the **Configuration** tab, the following settings are available:\\n\\n* **Custom Email Field**: Specify the backend name of the custom field where the email is entered when creating a ticket.\\n* **Default Account**: Select the account to which new customers should be linked if they do not already exist in the", + "title": "Reported by enricher | Automate | Snap-ins | DevRev" }, { "id": "ART-1978_KNOWLEDGE_NODE-33", @@ -3343,19 +3348,14 @@ "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-3235_KNOWLEDGE_NODE-25", - "text": "one.\\n\\nInstallation\\n------------\\n\\nInstall the [Reported by Enricher](https://marketplace.devrev.ai/ticket-reported-by) from DevRev marketplace.\\n\\nConfiguration\\n-------------\\n\\nIn the **Configuration** tab, the following settings are available:\\n\\n* **Custom Email Field**: Specify the backend name of the custom field where the email is entered when creating a ticket.\\n* **Default Account**: Select the account to which new customers should be linked if they do not already exist in the", - "title": "Reported by enricher | Automate | Snap-ins | DevRev" - }, - { - "id": "ART-2027_KNOWLEDGE_NODE-29", - "text": "your communication requirements.\\n\\nThe visibility and interaction capabilities with a ticket in DevRev are determined by the user's role and how they were added to the email thread.\\n\\nEnd users\\n\\n* Original sender\\n\\n *Added to:* **Reported by** or **Email members** field.\\n\\n *Is able to:* View the ticket on the portal and reply via email.\\n* An end user in the same organization\\n\\n *Added to:* **To** or **CC** fields in the email thread; **Reported by** field, **Email members** field,", - "title": "Email | Integrate | Snap-ins | DevRev" + "id": "ART-1275_KNOWLEDGE_NODE-18", + "text": "= `Ticket created at ${date.toLocaleString()}`; |\\n| 14 | const ticketBody = `This ticket was created by a snap-in at ${date.toLocaleString()}`; |\\n| 15 | |\\n| 16 | const response = await devrevSDK.worksCreate({ |\\n| 17 | title: ticketName, |\\n| 18 | body: ticketBody, |\\n| 19 | // The ticket is created in the PROD-1 part. Rename this to match your part. |\\n| 20 | applies_to_part: \"PROD-1\", |\\n| 21 | // The ticket is owned by the DEVU-1 user. Rename this to match the required user. |\\n| 22 |", + "title": "Using a snap-in to perform a DevRev action | DevRev | Docs" }, { - "id": "ART-2039_KNOWLEDGE_NODE-25", - "text": "create DevRev tickets from Marker.io issues, you can configure the\\nsnap-in to use this email to auto-fill the **Reported By** and **Customer\\nWorkspace** fields in tickets. If no contact or accounts match the email, they\\nare automatically created.\\n\\nInstalling the Marker.io integration snap-in\\n--------------------------------------------\\n\\n1. Install the [Marker.io](/marketplace/marker-io) from the\\n DevRev Marketplace.\\n2. Configure the snap-in as needed.\\n\\n * (Optional) Select the", - "title": "Marker.io | Integrate | Snap-ins | DevRev" + "id": "ART-4185_KNOWLEDGE_NODE-25", + "text": "marketplace.\\n\\nInstallation\\n------------\\n\\n1. In DevRev, go to **Settings** > **Snap-ins** and click **Explore Marketplace** in the top-right corner.\\n2. In the DevRev marketplace, find **Ticket approval workflow** and click **Install**.\\n3. In DevRev, **Snap-ins** > **Ticket approval workflow** > **Configure**.\\n4. Enter the required parameters like **Delay in seconds**.\\n5. Click **Save** and **Install snap-in**.\\n\\nUsage\\n-----\\n\\nOn the ticket execute the /request\\\\_approval command with", + "title": "Ticket approval workflow | Automate | Snap-ins | DevRev" } ] }, @@ -3364,54 +3364,54 @@ "query": "manage multiple email addresses for one account", "retrievals": [ { - "id": "ART-980_KNOWLEDGE_NODE-24", - "text": "Email integration\\n Support Portal\\n \\n \\n Operate App\\n Grow App\\n \\n Account Management\\n Contact Management\\n Engagement Tracking\\n \\n \\n Core Services\\n Marketplace\\n \\n Partnerships\\n Integrations\\n \\n Discord\\n Slack\\n DevRev CLI\\n KB Extraction\\n Github Airdrop\\n SFDC Airdrop\\n", - "title": "How to Think About (And Structure) Your Products" + "id": "ART-3207_KNOWLEDGE_NODE-45", + "text": "snap-in. These only appear once the email snap-in is successfully installed and verified.\\n\\nSet-up the provided forwarding address to the account you want to forward from. For example support@example.com.\\n\\nIn the DevRev app, under the **Instructions** tab you can see a forwarding email address displayed as v\\\\_\\\\_\\\\_\\\\_\\\\_\\\\_\\\\_\\\\_\\\\_\\\\_\\\\_@hooks.devrev.ai. This is the address where you can forward your support emails.\\n\\nGoogle Workspace/Groups\\n\\n1. If you are using Google Groups, add your", + "title": "Email snap-in configuration | Email | Integrate | Snap-ins | DevRev" }, { - "id": "ART-1640_KNOWLEDGE_NODE-3", - "text": "}, \\n 17| \"email\": \"email\", \\n 18| \"full_name\": \"full_name\", \\n 19| \"state\": \"active\" \\n 20| } \\n 21| }, \\n 22| { \\n 23| \"address\": \"address\", \\n 24| \"name\": \"name\", \\n 25| \"user\": { \\n 26| \"type\": \"dev_user\", \\n 27| \"id\": \"id\", \\n 28| \"display_id\": \"display_id\", \\n 29| \"display_name\": \"display_name\", \\n 30|", - "title": "Create Snap Widget (Beta) \u2014 DevRev | Docs" + "id": "ART-4020_KNOWLEDGE_NODE-25", + "text": "account.\\n2. Generate an **API key**.\\n3. Create a SendGrid connection:\\n a. Go to **Settings** > **Snap-ins** > **+ Connection**\\n b. Select **SendGrid**.\\n c. Add the **API key** and click **Save**.\\n\\nInstallation\\n------------\\n\\n1. Install the [**send customized emails**](https://marketplace.devrev.ai/marketplace/send-emails) from the DevRev marketplace.\\n2. Open the Workflow Builder and locate the **send customized emails** action node.\\n3. Configure the node by selecting the", + "title": "Send customized emails | Automate | Snap-ins | DevRev" }, { - "id": "ART-2045_KNOWLEDGE_NODE-51", - "text": "email: [a@example.com](mailto:a@example.com) account: **None** | email: [a@example.com](mailto:a@example.com) account: **None** | Existing contact used |\\n| email: [a@example.com](mailto:a@example.com) account: \"Example\" | email: [a@example.com](mailto:a@example.com) account: \"Example\" | Existing contact used |\\n| email: [a@example.com](mailto:a@example.com) account: \"Example\" | email: [a@example.com](mailto:a@example.com) account: **None** | New contact created |\\n| email:", - "title": "AirSync | Snap-ins | DevRev" + "id": "ART-2575_KNOWLEDGE_NODE-28", + "text": "a database identifier or an email address.)\\n* account\\\\_external\\\\_reference (the external reference of the contact\\'s parent account)\\n\\n### Array fields\\n\\nFor fields that accept multiple values, such as **owners** and **industry**, values should be separated by commas (,). For example, Agriculture and Forestry should be written as Agriculture,Forestry.\\n\\n![]()\\n\\nIf a value contains a comma, enclose it in backticks. For example, enter \"Rail, Bus & Taxi\" as `Rail, Bus & Taxi`.\\n\\n###", + "title": "Account and contact import | Computer for Growth Teams | DevRev" }, { - "id": "ART-16790_KNOWLEDGE_NODE-1", - "text": "Computer.\\n\\nCan I change my email address?\\n\\nYour email address appears to be managed at the organization level and may not be directly editable from the profile page. Contact your organization administrator if you need to update your email address.\\n\\nHow do I leave an organization?\\n\\nIn the Profile settings, you\\'ll find a \"Leave organization\" button. Clicking this will remove your access to the current organization, but you\\'ll retain access to any other organizations you belong", - "title": "Computer Settings and Preferences FAQs" + "id": "ART-3207_KNOWLEDGE_NODE-57", + "text": "connection](#1-create-a-new-connection)\\n* [2. Configure email integration snap-in](#2-configure-email-integration-snapin)\\n* [Next steps for configuration of the snap-in](#next-steps-for-configuration-of-the-snapin)\\n* [Step 1: Add a Primary Email Address](#step-1-add-a-primary-email-address)\\n* [Step 2: Define the Primary Use Case](#step-2-define-the-primary-use-case)\\n* [Step 3: Add Additional Support Emails](#step-3-add-additional-support-emails)\\n* [Step 4: Set the Default Part and", + "title": "Email snap-in configuration | Email | Integrate | Snap-ins | DevRev" }, { - "id": "ART-1978_KNOWLEDGE_NODE-34", - "text": "registered email address and go to **Settings** > **User management** > **Groups > Customer Admins**.\\n2. Select the **Add User** option in the top-right corner to search for the customer whom you want to designate as a customer admin.\\n\\n### Customer portal login methods\\n\\nThe customer portal supports three login methods:\\n\\n1. Email OTP (One-Time Password): User enters their email, receives a one-time code, and enters it to log in.\\n2. SSO: Users log in through organization\\xe2\\x80\\x99s", - "title": "Customer portal | Computer for Support Teams | DevRev" + "id": "ART-888_KNOWLEDGE_NODE-49", + "text": "enterprise, or use your personal email address to register for or access the Services. If an administrator has not already asserted control over your account or access to the Services, you can update the email address associated with your account through your account settings in your profile. Once an administrator asserts control over your account or use of the Services, you will no longer be able to change the email address associated with your account without administrator approval.Please", + "title": "Privacy Policy" }, { - "id": "ART-1640_KNOWLEDGE_NODE-8", - "text": "\\n 89| \"email\": \"email\", \\n 90| \"full_name\": \"full_name\", \\n 91| \"state\": \"active\" \\n 92| } \\n 93| }, \\n 94| { \\n 95| \"address\": \"address\", \\n 96| \"name\": \"name\", \\n 97| \"user\": { \\n 98| \"type\": \"dev_user\", \\n 99| \"id\": \"id\", \\n 100| \"display_id\": \"display_id\", \\n 101| \"display_name\": \"display_name\", \\n 102|", - "title": "Create Snap Widget (Beta) \u2014 DevRev | Docs" + "id": "ART-3207_KNOWLEDGE_NODE-46", + "text": "support address as a member of the Google Group.\\n\\n You must be a part of the group and have permission to send emails to the Google Group.\\n2. Go to the settings of your support Gmail account.\\n3. Navigate to **Forwarding and POP/IMAP** and add the forwarding email address v\\\\_\\\\_\\\\_\\\\_\\\\_\\\\_\\\\_\\\\_\\\\_\\\\_\\\\_@hooks.devrev.ai. Click **Next**.\\n4. Click **Proceed** when you are redirected to a new webpage. You are asked for a confirmation code sent to this forwarding address.\\n5. If the", + "title": "Email snap-in configuration | Email | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2575_KNOWLEDGE_NODE-28", - "text": "a database identifier or an email address.)\\n* account\\\\_external\\\\_reference (the external reference of the contact\\'s parent account)\\n\\n### Array fields\\n\\nFor fields that accept multiple values, such as **owners** and **industry**, values should be separated by commas (,). For example, Agriculture and Forestry should be written as Agriculture,Forestry.\\n\\n![]()\\n\\nIf a value contains a comma, enclose it in backticks. For example, enter \"Rail, Bus & Taxi\" as `Rail, Bus & Taxi`.\\n\\n###", - "title": "Account and contact import | Computer for Growth Teams | DevRev" + "id": "ART-2045_KNOWLEDGE_NODE-51", + "text": "email: [a@example.com](mailto:a@example.com) account: **None** | email: [a@example.com](mailto:a@example.com) account: **None** | Existing contact used |\\n| email: [a@example.com](mailto:a@example.com) account: \"Example\" | email: [a@example.com](mailto:a@example.com) account: \"Example\" | Existing contact used |\\n| email: [a@example.com](mailto:a@example.com) account: \"Example\" | email: [a@example.com](mailto:a@example.com) account: **None** | New contact created |\\n| email:", + "title": "AirSync | Snap-ins | DevRev" }, { - "id": "ART-2654_KNOWLEDGE_NODE-15", - "text": "\\n 154| }, \\n 155| \"email\": \"email\", \\n 156| \"full_name\": \"full_name\", \\n 157| \"state\": \"active\" \\n 158| }, \\n 159| \"modified_date\": \"modified_date\", \\n 160| \"parent\": { \\n 161| \"id\": \"id\", \\n 162| \"display_id\": \"display_id\", \\n 163| \"sync_metadata\": { \\n 164| \"external_reference\": \"external_reference\", \\n 165| \"origin_system\": \"origin_system\" \\n 166|", - "title": "List Directories (POST) (Beta) \u2014 DevRev | Docs" + "id": "ART-1401_KNOWLEDGE_NODE-2", + "text": "starts from the beginning.\\n\\nemaillist of stringsOptional\\n\\nFilters Dev users based on email addresses.\\n\\nexternal_identity.idstringOptional`format: \"text\"`\\n\\nUnique ID of the user in the external source.\\n\\nexternal_identity.issuerstringOptional`format: \"text\"`\\n\\nIssuer of the external identity of the user.\\n\\nlimitintegerOptional\\n\\nThe maximum number of Dev users to return. The default is \\xe2\\x80\\x9850\\xe2\\x80\\x99.\\n\\nmodeenumOptional\\n\\nThe iteration mode to use, otherwise if not set,", + "title": "List Dev Users \u2014 DevRev | Docs" }, { - "id": "ART-3207_KNOWLEDGE_NODE-57", - "text": "connection](#1-create-a-new-connection)\\n* [2. Configure email integration snap-in](#2-configure-email-integration-snapin)\\n* [Next steps for configuration of the snap-in](#next-steps-for-configuration-of-the-snapin)\\n* [Step 1: Add a Primary Email Address](#step-1-add-a-primary-email-address)\\n* [Step 2: Define the Primary Use Case](#step-2-define-the-primary-use-case)\\n* [Step 3: Add Additional Support Emails](#step-3-add-additional-support-emails)\\n* [Step 4: Set the Default Part and", - "title": "Email snap-in configuration | Email | Integrate | Snap-ins | DevRev" + "id": "ART-1978_KNOWLEDGE_NODE-34", + "text": "registered email address and go to **Settings** > **User management** > **Groups > Customer Admins**.\\n2. Select the **Add User** option in the top-right corner to search for the customer whom you want to designate as a customer admin.\\n\\n### Customer portal login methods\\n\\nThe customer portal supports three login methods:\\n\\n1. Email OTP (One-Time Password): User enters their email, receives a one-time code, and enters it to log in.\\n2. SSO: Users log in through organization\\xe2\\x80\\x99s", + "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-888_KNOWLEDGE_NODE-49", - "text": "enterprise, or use your personal email address to register for or access the Services. If an administrator has not already asserted control over your account or access to the Services, you can update the email address associated with your account through your account settings in your profile. Once an administrator asserts control over your account or use of the Services, you will no longer be able to change the email address associated with your account without administrator approval.Please", - "title": "Privacy Policy" + "id": "ART-3207_KNOWLEDGE_NODE-37", + "text": "href=\"mailto:support@devrev.ai\">support@devrev.ai\\n\\n\\n\\n18 \\n\\n\\n\\n19 \\n\\n\\n\\n20 \\n```\\n\\nShow more\\n```\\n\\n**Result**:\\n\\n![]()\\n\\n### Next steps for configuration of the snap-in\\n\\n### Step 1: Add a Primary Email Address\\n\\n* Format: Name \\xe2\\x80\\x94 this is what appears in the customer\\xe2\\x80\\x99s inbox.\\n* Example: Maple Support \\n\\nThis email address becomes the primary channel for incoming support mail.\\n\\n###", + "title": "Email snap-in configuration | Email | Integrate | Snap-ins | DevRev" } ] }, @@ -3420,24 +3420,19 @@ "query": "how to install PLuG website installation PLuG ID setup guide", "retrievals": [ { - "id": "ART-15490_KNOWLEDGE_NODE-1", - "text": "code snippet provided below on every page where you want the widget to appear for website visitors.\\n\\nUnique app ID\\n-------------\\n\\nEnsure to replace the app ID with your app ID which identifies your Plug search widget. You can access your app ID from your DevRev account by following these steps.\\n\\n1. In DevRev, go to **Settings** > **Support** > **Plug Settings** through the settings icon in the top-left corner.\\n2. Click **Enable Plug Widget** if it isn\\xe2\\x80\\x99t already enabled.\\n3.", - "title": "Install Plug search | DevRev | Docs" - }, - { - "id": "ART-2894_KNOWLEDGE_NODE-2", - "text": "insert the code snippet provided below on every page where you want the widget to appear for website visitors.\\n\\n## Unique app ID\\n\\nEnsure to replace the app ID with your app ID which identifies your PLuG search widget. You can access your app ID from your DevRev account by following these steps.\\n\\n 1. In DevRev, go to **Settings** > **Support** > **PLuG Settings** through the settings icon in the top-left corner.\\n 2. Click **Enable PLuG Widget** if it isn\\xe2\\x80\\x99t already enabled.\\n", - "title": "Install PLuG search \u2014 DevRev | Docs" + "id": "ART-2893_KNOWLEDGE_NODE-0", + "text": "b'[](/public/sdks/web/installation)\\n\\nPublic\\n\\nOn this page\\n\\n * [Getting your unique app ID](/public/sdks/web/installation#getting-your-unique-app-id)\\n\\n[SDKs](/public/sdks)[PLuG Web SDK](/public/sdks/web/installation)\\n\\n#\\n\\nInstall the Web SDK\\n\\nTo install the PLuG SDK on your website or web application, insert the code snippet provided below on every page where you want the SDK to be active. Once the SDK is installed, the chat widget appears by default.\\n\\n## Getting your unique app", + "title": "Install the Web SDK \u2014 DevRev | Docs" }, { - "id": "ART-1466_KNOWLEDGE_NODE-5", - "text": "\\n+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------+--------+\\n| The unique identifier for your PLuG SDK. This parameter is required.", - "title": "Methods \u2014 DevRev | Docs" + "id": "ART-2059_KNOWLEDGE_NODE-9", + "text": "App.js.\\n\\n1 useEffect ( () => {\\n2 window. plugSDK. init ({\\n3 // Please ensure you replace the app_id with your unique app id\\n4 app_id : \"\" ,\\n5 });\\n6 }, []);\\n\\nYou should now have PLuG chat widget installed on your website. Facing some issues? Reach out to us through our own PLuG chat widget from the bottom right of your screen.\\n\\nOnce the widget is installed on your website, every user who visits your website is considered an anonymous user. Anonymous users are the", + "title": "Install PLuG chat on your website" }, { - "id": "ART-15509_KNOWLEDGE_NODE-17", - "text": "the `initSearchAgent()` method sets up the Plug search agent on your website. This initialization is required before performing any other actions with the Plug widget SDK.\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | useEffect(() => { |\\n| 2 | window.plugSDK.init({ |\\n| 3 | app_id: \\'\\', |\\n| 4 | disable_plug_chat_window: true, |\\n| 5 | }); |\\n| 6 | |\\n| 7 | window.plugSDK.onEvent((payload) => { |\\n| 8 | if (payload.type === \\'ON_PLUG_WIDGET_READY\\') { |\\n| 9 |", - "title": "Methods | DevRev | Docs" + "id": "ART-2894_KNOWLEDGE_NODE-2", + "text": "insert the code snippet provided below on every page where you want the widget to appear for website visitors.\\n\\n## Unique app ID\\n\\nEnsure to replace the app ID with your app ID which identifies your PLuG search widget. You can access your app ID from your DevRev account by following these steps.\\n\\n 1. In DevRev, go to **Settings** > **Support** > **PLuG Settings** through the settings icon in the top-left corner.\\n 2. Click **Enable PLuG Widget** if it isn\\xe2\\x80\\x99t already enabled.\\n", + "title": "Install PLuG search \u2014 DevRev | Docs" }, { "id": "ART-2059_KNOWLEDGE_NODE-5", @@ -3445,19 +3440,19 @@ "title": "Install PLuG chat on your website" }, { - "id": "ART-2893_KNOWLEDGE_NODE-0", - "text": "b'[](/public/sdks/web/installation)\\n\\nPublic\\n\\nOn this page\\n\\n * [Getting your unique app ID](/public/sdks/web/installation#getting-your-unique-app-id)\\n\\n[SDKs](/public/sdks)[PLuG Web SDK](/public/sdks/web/installation)\\n\\n#\\n\\nInstall the Web SDK\\n\\nTo install the PLuG SDK on your website or web application, insert the code snippet provided below on every page where you want the SDK to be active. Once the SDK is installed, the chat widget appears by default.\\n\\n## Getting your unique app", + "id": "ART-2893_KNOWLEDGE_NODE-2", + "text": "2| type=\"text/javascript\" \\n 3| src=\"https://plug-platform.devrev.ai/static/plug.js\" \\n 4| >\\n[/code] \\n \\nPlace the following code in the `` section of your HTML page:\\n\\n[code]\\n\\n 1| \\n[/code] \\n \\nThe PLuG widget should now be installed on", "title": "Install the Web SDK \u2014 DevRev | Docs" }, { - "id": "ART-3109_KNOWLEDGE_NODE-29", - "text": "go to **Settings > Support > Plug Chat > Layout** through the settings icon on the top-left corner.\\n2. Select **Add a Card** and enter a title, description, image, and redirect URL.\\n3. Click **Save and Publish** in the top-right corner. The new card is visible in your Plug widget.\\n\\nWant to add more personalization to your Plug widget? Create your own. Visit [SDK Methods and Customization](https://developer.devrev.ai/sdks/web/customize) to create your own Plug from the ground", - "title": "Plug widget customization | Computer for Your Customers | DevRev" + "id": "ART-2059_KNOWLEDGE_NODE-7", + "text": "these steps.\\n\\nIn DevRev, go to Settings. > Support. > PLuG Settings. through the settings icon in the top-left corner.\\nClick Enable PLuG Widget. if it isn\\'t already enabled.\\nCopy your Unique App ID. from the Configuration tab..\\nSetup for HTML.\\n\\nPlace this code in the head of your HTML page.\\n\\n1 //\\n2 < script\\n3 type = \"text/javascript\"\\n4 src = \"https://plug-platform.devrev.ai/static/plug.js\"\\n5 > \\n\\nPlace this code in the body of your HTML page.\\n\\n1 < script >\\n2", + "title": "Install PLuG chat on your website" }, { - "id": "ART-2893_KNOWLEDGE_NODE-2", - "text": "2| type=\"text/javascript\" \\n 3| src=\"https://plug-platform.devrev.ai/static/plug.js\" \\n 4| >\\n[/code] \\n \\nPlace the following code in the `` section of your HTML page:\\n\\n[code]\\n\\n 1| \\n[/code] \\n \\nThe PLuG widget should now be installed on", - "title": "Install the Web SDK \u2014 DevRev | Docs" + "id": "ART-15490_KNOWLEDGE_NODE-1", + "text": "code snippet provided below on every page where you want the widget to appear for website visitors.\\n\\nUnique app ID\\n-------------\\n\\nEnsure to replace the app ID with your app ID which identifies your Plug search widget. You can access your app ID from your DevRev account by following these steps.\\n\\n1. In DevRev, go to **Settings** > **Support** > **Plug Settings** through the settings icon in the top-left corner.\\n2. Click **Enable Plug Widget** if it isn\\xe2\\x80\\x99t already enabled.\\n3.", + "title": "Install Plug search | DevRev | Docs" }, { "id": "ART-1270_KNOWLEDGE_NODE-3", @@ -3465,9 +3460,14 @@ "title": "Methods \u2014 DevRev | Docs" }, { - "id": "ART-15490_KNOWLEDGE_NODE-0", - "text": "b'Install Plug search | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\nOn this page\\n\\n* [Unique app ID](/sdks/web/install-search#unique-app-id)\\n* [Bind a hotkey to toggle search agent](/sdks/web/install-search#bind-a-hotkey-to-toggle-search-agent)\\n\\n[SDKs](/sdks)[Plug Web SDK](/sdks/web/installation)\\n\\nInstall Plug search\\n===================\\n\\nCopy page\\n\\nTo get the Plug search widget to appear on your website and web app, insert the", - "title": "Install Plug search | DevRev | Docs" + "id": "ART-2897_KNOWLEDGE_NODE-18", + "text": "search agent on your website. This initialization is required before performing any other actions with the PLuG widget SDK.\\n\\n[code]\\n\\n 1| useEffect(() => { \\n ---|--- \\n 2| window.plugSDK.init({ \\n 3| app_id: \\'\\', \\n 4| disable_plug_chat_window: true, \\n 5| }); \\n 6| \\n 7| window.plugSDK.onEvent((payload) => { \\n 8| if (payload.type === \\'ON_PLUG_WIDGET_READY\\') { \\n 9| window.plugSDK.initSearchAgent(); \\n", + "title": "Methods \u2014 DevRev | Docs" + }, + { + "id": "ART-1944_KNOWLEDGE_NODE-4", + "text": "PLuG chat on your website Install PLuG search on your website Identify your users with PLuG Customize Nudges SDK\\n\\nChangelog\\n\\nSeptember 01 to September 30 August 01 to August 31 July 01 to July 31, 2024 June 01 to June 28, 2024 May 01 to May 31, 2024 April 01 to April 29, 2024 Mar 01 to Mar 29, 2024 Feb 10 to Feb 29, 2024 Jan 09, 2024 to Feb 09, 2024 Dec 08, 2023 to Jan 08, 2024 Nov 10 to Dec 07, 2023 Oct 13 to Nov 09, 2023 Sep 15 to Oct 12, 2023 Aug 17 to Sep 14, 2023 Jul 20 to Aug 16, 2023", + "title": "DevRev Documentation" } ] }, @@ -3475,19 +3475,14 @@ "query_id": "80fd3cb8-b4ff-4ca4-8d4b-2b0ac1fdab5b", "query": "send notification to slack when a ticket is manually assigned", "retrievals": [ - { - "id": "ART-2017_KNOWLEDGE_NODE-28", - "text": "you would like to tag on the message (the ticket owner gets tagged automatically); and the target Slack channel. The channel\\'s ID can be found by going to the channel details. Refer to the placeholder value on the input to see an example of how this looks.\\n2. Decide if notifications should go out even if the ticket has a target end date set. Set the toggle to the desired behavior.\\n3. Decide if a ticket should pass the check if it\\'s part is a descendant of the filter part. For example, if a", - "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" - }, { "id": "ART-2035_KNOWLEDGE_NODE-42", "text": "ticket notifications\\n\\n* Enable through the **Notify on new ticket creation** snap-in configuration.\\n* Provide a Slack channel ID in the **Channel ID to send ticket notifications** configuration.\\n* Snap-in will send notifications to the target channel whenever a new ticket is created, regardless of the source channel or platform.\\n* Notification message threads are **not** synced between platforms.\\n\\n### Notifications for ticket state update\\n\\n* Enable through **Notify on ticket state", "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2035_KNOWLEDGE_NODE-36", - "text": "Slack Channel ID in the **Channel ID to send conversation notifications** snap-in configuration as the target to post notifications.\\n\\n* Any new message within tickets in the customer messages panel is also subjected to the same automation.\\n* To prevent notification overload, each conversation or ticket is subject to a five minute cooldown period between notifications. Multiple consecutive messages within this window will not trigger additional notifications.\\n* Notification threads are not", + "id": "ART-2035_KNOWLEDGE_NODE-38", + "text": "recommended if you already have a conversation in progress. Configure the snap-in to send or not send a ticket summary card to the Slack thread using the **Notify on conversation to ticket conversion** setting. Regardless, the Slack thread will sync with the new ticket instead of the ongoing conversation.\\n\\n![]()\\n\\nSlack does not support slash commands in threads.\\n\\nChoosing one of the first two options will open a pop-up modal with the new ticket form. Complete the required fields; some", "title": "Slack | Integrate | Snap-ins | DevRev" }, { @@ -3496,29 +3491,34 @@ "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-6174_KNOWLEDGE_NODE-30", - "text": "there.\\n\\n![]()\\n\\nSlack end-user experience\\n-------------------------\\n\\nWhen a conversation is converted to a ticket in Slack:\\n\\n* Ticket information appears within the same thread.\\n* All subsequent messages sync with the newly created ticket.\\n* The transition is seamless for the end user.\\n\\nConversation conversion scenarios\\n---------------------------------\\n\\nConsider converting a conversation to a ticket in these scenarios:\\n\\n* Complex issues requiring in-depth investigation\\n*", - "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" + "id": "ART-2017_KNOWLEDGE_NODE-27", + "text": "Connection**.\\n * Select **Slack** from the dowpdown list.\\n * Give it a name and sign in with Slack. Ensure to toggle on **Make public** to make the connection public for your organization.\\n\\nConfigure the snap-in\\n---------------------\\n\\n1. In the **Configuration** tab, the first input field to set is *filters*. Here you can declare for which tickets to track the SLA status and to which channels to send notifications.\\n\\n Set the ticket subtype, severity, and part; the support heads", + "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" }, { - "id": "ART-4271_KNOWLEDGE_NODE-28", - "text": "PLuG widget:\\n\\n * The ticket number and basic details appear in the same conversation pane.\\n * Users can click **Details** to view complete ticket information.\\n * If the **Tickets** tab is enabled in PLuG, users can track their ticket status there.\\n\\n### Slack experience\\n\\nWhen a conversation is converted to a ticket in Slack:\\n\\n * Ticket information is sent within the same thread.\\n * All subsequent messages sync with the newly created ticket.\\n * The transition is seamless for the", - "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" + "id": "ART-2017_KNOWLEDGE_NODE-25", + "text": "ticket\\'s owner and subscribers, when a ticket\\'s resolution time SLA changes into the *Warning* or *Breached* stage.\\n\\n![]()\\n\\nFor more information, refer to the\\n[SLA status change Slack notifier snap-in](/marketplace/sla-status-change-slack-notifier) on the DevRev\\nmarketplace.\\n\\nInstallation\\n------------\\n\\n1. Create a Slack app for your workspace in .\\n2. In App features, generate bot token in **OAuth & Permissions**.\\n3. Grant the app bot the following", + "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" }, { - "id": "ART-2035_KNOWLEDGE_NODE-38", - "text": "recommended if you already have a conversation in progress. Configure the snap-in to send or not send a ticket summary card to the Slack thread using the **Notify on conversation to ticket conversion** setting. Regardless, the Slack thread will sync with the new ticket instead of the ongoing conversation.\\n\\n![]()\\n\\nSlack does not support slash commands in threads.\\n\\nChoosing one of the first two options will open a pop-up modal with the new ticket form. Complete the required fields; some", + "id": "ART-2017_KNOWLEDGE_NODE-28", + "text": "you would like to tag on the message (the ticket owner gets tagged automatically); and the target Slack channel. The channel\\'s ID can be found by going to the channel details. Refer to the placeholder value on the input to see an example of how this looks.\\n2. Decide if notifications should go out even if the ticket has a target end date set. Set the toggle to the desired behavior.\\n3. Decide if a ticket should pass the check if it\\'s part is a descendant of the filter part. For example, if a", + "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" + }, + { + "id": "ART-2035_KNOWLEDGE_NODE-36", + "text": "Slack Channel ID in the **Channel ID to send conversation notifications** snap-in configuration as the target to post notifications.\\n\\n* Any new message within tickets in the customer messages panel is also subjected to the same automation.\\n* To prevent notification overload, each conversation or ticket is subject to a five minute cooldown period between notifications. Multiple consecutive messages within this window will not trigger additional notifications.\\n* Notification threads are not", "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2035_KNOWLEDGE_NODE-44", - "text": "directly from Slack:\\n\\n* Using the /devrev create-issue command.\\n* Using the **Create a new issue** message action.\\n\\nBoth the options open a new pop-up modal with a new issue form. Some of the fields are pre-populated based on the messages in the thread.\\n\\n* The **Share with everyone** functionality operates identically to ticket creation. Only shared issues are synchronized between the platforms.\\n* The messages are always synced in the **Internal Discussions** panel with Slack thread.\\n*", + "id": "ART-2035_KNOWLEDGE_NODE-25", + "text": "Tickets](#followup-and-merged-tickets)\\n* [New ticket notifications](#new-ticket-notifications)\\n* [Notifications for ticket state update](#notifications-for-ticket-state-update)\\n* [Ticket digest](#ticket-digest)\\n* [DevRev Issues and Slack](#devrev-issues-and-slack)\\n* [DevRev Incidents and Slack](#devrev-incidents-and-slack)\\n* [Sync options](#sync-options)\\n* [Share and view record details](#share-and-view-record-details)\\n* [Creating custom workflows](#creating-custom-workflows)\\n*", "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2017_KNOWLEDGE_NODE-27", - "text": "Connection**.\\n * Select **Slack** from the dowpdown list.\\n * Give it a name and sign in with Slack. Ensure to toggle on **Make public** to make the connection public for your organization.\\n\\nConfigure the snap-in\\n---------------------\\n\\n1. In the **Configuration** tab, the first input field to set is *filters*. Here you can declare for which tickets to track the SLA status and to which channels to send notifications.\\n\\n Set the ticket subtype, severity, and part; the support heads", - "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" + "id": "ART-2035_KNOWLEDGE_NODE-48", + "text": "channel.\\n\\n1. **Sync messages with the thread (for incidents created from Slack)**\\n\\n* Works only for incidents created from Slack.\\n* It syncs messages with the originating thread, similar to ticket and issue work items.\\n\\n1. **Sync messages with the notification thread**\\n\\n* Syncs with the thread of the incident notification sent on the channel mentioned in the **Channel ID to send incident notifications** configuration.\\n* Works for all incidents irrespective of source channel or", + "title": "Slack | Integrate | Snap-ins | DevRev" }, { "id": "ART-4199_KNOWLEDGE_NODE-28", @@ -3531,25 +3531,15 @@ "query_id": "3b420be6-ebc2-458e-a551-3a6038309339", "query": "export all accounts without 500 limit", "retrievals": [ - { - "id": "ART-1254_KNOWLEDGE_NODE-9", - "text": "Export Accounts (POST)\\n\\nNext](/api-reference/accounts/export-post)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", - "title": "Export Accounts | DevRev | Docs" - }, { "id": "ART-1254_KNOWLEDGE_NODE-0", "text": "b'Export Accounts | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[accounts](/api-reference/accounts/accounts)\\n\\nExport Accounts\\n===============\\n\\nCopy page\\n\\nGET\\n\\nhttps://api.devrev.ai/accounts.export\\n\\nGET\\n\\n/accounts.export\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl https://api.devrev.ai/accounts.export \\\\ |\\n| > | -H \"Authorization: Bearer \" |\\n```\\n\\n[Try", "title": "Export Accounts | DevRev | Docs" }, { - "id": "ART-1449_KNOWLEDGE_NODE-0", - "text": "b'[](/public/api-reference/accounts/export)\\n\\nPublic\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources", - "title": "Export Accounts \u2014 DevRev | Docs" - }, - { - "id": "ART-1255_KNOWLEDGE_NODE-0", - "text": "b'Export Accounts (POST) | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[accounts](/api-reference/accounts/accounts)\\n\\nExport Accounts (POST)\\n======================\\n\\nCopy page\\n\\nPOST\\n\\nhttps://api.devrev.ai/accounts.export\\n\\nPOST\\n\\n/accounts.export\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl -X POST https://api.devrev.ai/accounts.export \\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\", - "title": "Export Accounts (POST) | DevRev | Docs" + "id": "ART-1303_KNOWLEDGE_NODE-6", + "text": "exported accounts.\\nShow 18 properties\\nGET / accounts.export\\n$ curl -G https://api.devrev.ai/accounts.export \\\\ > -H \" Authorization: Bearer \" \\\\ > --data-urlencode created_date.after=2023-01-01T12:00:00Z \\\\ > --data-urlencode created_date.before=2023-01-01T12:00:00Z \\\\ > --data-urlencode modified_date.after=2023-01-01T12:00:00Z \\\\ > --data-urlencode modified_date.before=2023-01-01T12:00:00Z\\n200 Retrieved 1 { 2 \" accounts \" : [ 3 { 4 \" created_date \" : \" 2023-01-01T12:00:00Z \" , 5 \"", + "title": "Export Post \u2014 DevRev | Docs" }, { "id": "ART-1449_KNOWLEDGE_NODE-4", @@ -3562,9 +3552,9 @@ "title": "Export Accounts (POST) | DevRev | Docs" }, { - "id": "ART-1303_KNOWLEDGE_NODE-6", - "text": "exported accounts.\\nShow 18 properties\\nGET / accounts.export\\n$ curl -G https://api.devrev.ai/accounts.export \\\\ > -H \" Authorization: Bearer \" \\\\ > --data-urlencode created_date.after=2023-01-01T12:00:00Z \\\\ > --data-urlencode created_date.before=2023-01-01T12:00:00Z \\\\ > --data-urlencode modified_date.after=2023-01-01T12:00:00Z \\\\ > --data-urlencode modified_date.before=2023-01-01T12:00:00Z\\n200 Retrieved 1 { 2 \" accounts \" : [ 3 { 4 \" created_date \" : \" 2023-01-01T12:00:00Z \" , 5 \"", - "title": "Export Post \u2014 DevRev | Docs" + "id": "ART-1255_KNOWLEDGE_NODE-0", + "text": "b'Export Accounts (POST) | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[accounts](/api-reference/accounts/accounts)\\n\\nExport Accounts (POST)\\n======================\\n\\nCopy page\\n\\nPOST\\n\\nhttps://api.devrev.ai/accounts.export\\n\\nPOST\\n\\n/accounts.export\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl -X POST https://api.devrev.ai/accounts.export \\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\", + "title": "Export Accounts (POST) | DevRev | Docs" }, { "id": "ART-1254_KNOWLEDGE_NODE-1", @@ -3572,14 +3562,24 @@ "title": "Export Accounts | DevRev | Docs" }, { - "id": "ART-1654_KNOWLEDGE_NODE-6", + "id": "ART-1826_KNOWLEDGE_NODE-6", + "text": "exported accounts.\\nShow 18 properties\\nAPI Reference accounts Export Post.\\n\\nPOST https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nRequest.\\n\\nThis endpoint expects an object.\\ncreated_by list of strings Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date object Optional\\nShow 2 properties\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name list of strings Optional\\nArray of display names of accounts", + "title": "Get Post \u2014 DevRev | Docs" + }, + { + "id": "ART-1803_KNOWLEDGE_NODE-6", "text": "exported accounts.\\nShow 18 properties\\nAPI Reference accounts Export Post.\\n\\nPOST https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nRequest.\\n\\nThis endpoint expects an object.\\ncreated_by list of strings Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date object Optional\\nShow 2 properties\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name list of strings Optional\\nArray of display names of accounts", "title": "List \u2014 DevRev | Docs" }, { - "id": "ART-1560_KNOWLEDGE_NODE-9", - "text": "objects\\n\\nThe exported accounts.\\n\\nShow 18 properties\\nAPI Reference accounts Get.\\n\\nGET https://api.devrev.ai / accounts.get\\n\\nRetrieves an account\\xe2\\x80\\x99s information.\\n\\nQuery parameters.\\n\\nid string Required\\n\\nThe ID of the account to be retrieved.\\n\\nResponse.\\n\\nThis endpoint returns an object.\\naccount object\\nShow 18 properties\\nAPI Reference accounts Get Post.\\n\\nPOST https://api.devrev.ai / accounts.get\\n\\nRetrieves an account\\xe2\\x80\\x99s information.\\n\\nRequest.\\n\\nThis", - "title": "Assign (Beta) \u2014 DevRev | Docs" + "id": "ART-1304_KNOWLEDGE_NODE-6", + "text": "exported accounts.\\nShow 18 properties\\nAPI Reference accounts Export Post.\\n\\nPOST https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nRequest.\\n\\nThis endpoint expects an object.\\ncreated_by list of strings Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date object Optional\\nShow 2 properties\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name list of strings Optional\\nArray of display names of accounts", + "title": "Get \u2014 DevRev | Docs" + }, + { + "id": "ART-1605_KNOWLEDGE_NODE-6", + "text": "exported accounts.\\nShow 18 properties\\nAPI Reference accounts Export Post.\\n\\nPOST https:// api.devrev.ai / accounts.export\\nExports a collection of accounts.\\nRequest.\\n\\nThis endpoint expects an object.\\ncreated_by list of strings Optional\\nFilters for accounts created by the specified user(s).\\ncreated_date object Optional\\nShow 2 properties\\ncustom_fields map from strings to any Optional\\nFilters for custom fields.\\ndisplay_name list of strings Optional\\nArray of display names of accounts", + "title": "Create \u2014 DevRev | Docs" } ] }, @@ -3588,9 +3588,9 @@ "query": "export report CSV download location", "retrievals": [ { - "id": "ART-4022_KNOWLEDGE_NODE-27", - "text": "person who should be assigned as the owner or reporter of the work item. If the CSV lists multiple owners, only the first is set as the owner.\\n2. For Applies to Part, Stage, Account, RevOrg, Developed with Parts, and Tags columns, provide the part name, stage name, account name, workspace, part name, and tag name respectively as it appears in the UI (case-sensitive).\\n3. For Date and Timestamp related fields, provide the date and timestamp in the format YYYY/MM/DD.\\n4. The tnt\\\\_\\\\_ prefix in", - "title": "CSV work item uploader | Automate | Snap-ins | DevRev" + "id": "ART-16355_KNOWLEDGE_NODE-24", + "text": "CSV](#validations-for-uploading-csv)\\n* [Upload commands from CSV](#upload-commands-from-csv)\\n\\n1. [Documentation](/docs)\\n3. [Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[CSV commands uploader](/docs/automations/csv-commands-uploader)\\n\\nCSV commands uploader\\n=====================\\n\\nThe CSV commands uploader is a snap-in designed to streamline the process of creating commands for work items in bulk through a CSV file. It efficiently handles commands while providing dynamic error", + "title": "CSV commands uploader | Automate | Snap-ins | DevRev" }, { "id": "ART-2575_KNOWLEDGE_NODE-32", @@ -3598,44 +3598,44 @@ "title": "Account and contact import | Computer for Growth Teams | DevRev" }, { - "id": "ART-16355_KNOWLEDGE_NODE-26", - "text": "**Reported\\\\_by,** and **Contact** columns, provide the email of the person to be assigned as the owner or reporter of the work item. If the CSV lists multiple owners, only the first will be set as the owner.\\n* For the **Applies to Part**, **Stage**, **Account**, **Developed with Parts**, and **Tags** columns, provide the part name, stage name, account name, part name, and tag name respectively as it is present in the UI, ensuring case sensitivity.\\n* For **Date** and **Timestamp** related", + "id": "ART-16355_KNOWLEDGE_NODE-31", + "text": "is completed, a sample CSV is generated in the **Discussion** tab of the snap-in with the status of the operation, including each line number, any error messages for failed rows, and the display ID of the created commands for successful rows.\\n9. In case of a retry, a command timeline entry is created, and the user needs to re-enter the command /upload\\\\_commands .\\n\\n[PreviousCSV comments uploader](/docs/automations/csv-comments-uploader)[NextDescope identity", "title": "CSV commands uploader | Automate | Snap-ins | DevRev" }, { - "id": "ART-15689_KNOWLEDGE_NODE-29", - "text": "invalid headers and any missing required headers.\\n7. After the operation is completed, a sample CSV is generated in the **Discussion** tab of the snap-in with the status of the operation, including each line number, any error messages for failed rows, and the link of the successfully created timeline entry for successful rows.\\n8. In case of a retry, a timeline entry is created, and the user needs to re-enter the command /upload\\\\_timelines.\\n\\n[PreviousCSV work item", + "id": "ART-15689_KNOWLEDGE_NODE-24", + "text": "CSV](#validations-for-uploading-csv)\\n* [Upload comments from CSV on work-items](#upload-comments-from-csv-on-workitems)\\n\\n1. [Documentation](/docs)\\n3. [Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[CSV comments uploader](/docs/automations/csv-comments-uploader)\\n\\nCSV comments uploader\\n=====================\\n\\nThe CSV comments uploader is a snap-in designed to streamline the process of creating timeline entries on work items in bulk through a CSV file. It efficiently handles", "title": "CSV comments uploader | Automate | Snap-ins | DevRev" }, { - "id": "ART-17228_KNOWLEDGE_NODE-7", - "text": "\"tags\": [\"bug\", \"good-first-issue\"] |\\n| 15 | } |\\n```\\n\\nSome systems provide collections as enum values or references in a string, separated by some separator (comma or semicolon):\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"reporter_ids\": \"2103232131,2103232144\", |\\n| 3 | \"tags\": \"bug;good-first-issue\" |\\n| 4 | } |\\n```\\n\\nThis format should be avoided, and the data normalized to the natural format in the extractor.\\n\\n###### Using struct fields\\n\\nStructs are embedded JSON objects", - "title": "Common issues | DevRev | Docs" + "id": "ART-4186_KNOWLEDGE_NODE-11", + "text": "uploader](/docs/automations/csv-work-item-uploader)\\n - [CSV comments uploader](/docs/automations/csv-comments-uploader)\\n - [CSV commands uploader](/docs/automations/csv-commands-uploader)\\n - [Descope identity validation](/docs/automations/descope-identity-validation)\\n - [Effort logger](/docs/automations/effort-logger)\\n - [HTTP archive file upload & sanitization](/docs/automations/har-sanitization)\\n - [Link preview](/docs/automations/link-preview)\\n - [Org tags", + "title": "Computer for User Insights | Session analytics | Computer for Your Customers | DevRev" }, { - "id": "ART-16355_KNOWLEDGE_NODE-31", - "text": "is completed, a sample CSV is generated in the **Discussion** tab of the snap-in with the status of the operation, including each line number, any error messages for failed rows, and the display ID of the created commands for successful rows.\\n9. In case of a retry, a command timeline entry is created, and the user needs to re-enter the command /upload\\\\_commands .\\n\\n[PreviousCSV comments uploader](/docs/automations/csv-comments-uploader)[NextDescope identity", - "title": "CSV commands uploader | Automate | Snap-ins | DevRev" + "id": "ART-2575_KNOWLEDGE_NODE-11", + "text": "uploader](/docs/automations/csv-work-item-uploader)\\n - [CSV comments uploader](/docs/automations/csv-comments-uploader)\\n - [CSV commands uploader](/docs/automations/csv-commands-uploader)\\n - [Descope identity validation](/docs/automations/descope-identity-validation)\\n - [Effort logger](/docs/automations/effort-logger)\\n - [HTTP archive file upload & sanitization](/docs/automations/har-sanitization)\\n - [Link preview](/docs/automations/link-preview)\\n - [Org tags", + "title": "Account and contact import | Computer for Growth Teams | DevRev" }, { - "id": "ART-16355_KNOWLEDGE_NODE-24", - "text": "CSV](#validations-for-uploading-csv)\\n* [Upload commands from CSV](#upload-commands-from-csv)\\n\\n1. [Documentation](/docs)\\n3. [Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[CSV commands uploader](/docs/automations/csv-commands-uploader)\\n\\nCSV commands uploader\\n=====================\\n\\nThe CSV commands uploader is a snap-in designed to streamline the process of creating commands for work items in bulk through a CSV file. It efficiently handles commands while providing dynamic error", - "title": "CSV commands uploader | Automate | Snap-ins | DevRev" + "id": "ART-6174_KNOWLEDGE_NODE-11", + "text": "uploader](/docs/automations/csv-work-item-uploader)\\n - [CSV comments uploader](/docs/automations/csv-comments-uploader)\\n - [CSV commands uploader](/docs/automations/csv-commands-uploader)\\n - [Descope identity validation](/docs/automations/descope-identity-validation)\\n - [Effort logger](/docs/automations/effort-logger)\\n - [HTTP archive file upload & sanitization](/docs/automations/har-sanitization)\\n - [Link preview](/docs/automations/link-preview)\\n - [Org tags", + "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" }, { - "id": "ART-17228_KNOWLEDGE_NODE-6", - "text": "be a collection instead.\\nThe natural format of a collection is a JSON array (or `null`), containing the natural format of its elements.\\nFor example:\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"reporter_ids\": [ |\\n| 3 | { |\\n| 4 | \"ref_type\": \"user\", |\\n| 5 | \"id\": \"2103232131\", |\\n| 6 | \"fallback_record_name\": \"John Doe\" |\\n| 7 | }, |\\n| 8 | { |\\n| 9 | \"ref_type\": \"contact\", |\\n| 10 | \"id\": \"2103232144\", |\\n| 11 | \"fallback_record_name\": \"Jane Doe\" |\\n| 12 | } |\\n| 13 | ], |\\n| 14 |", - "title": "Common issues | DevRev | Docs" + "id": "ART-2017_KNOWLEDGE_NODE-11", + "text": "uploader](/docs/automations/csv-work-item-uploader)\\n - [CSV comments uploader](/docs/automations/csv-comments-uploader)\\n - [CSV commands uploader](/docs/automations/csv-commands-uploader)\\n - [Descope identity validation](/docs/automations/descope-identity-validation)\\n - [Effort logger](/docs/automations/effort-logger)\\n - [HTTP archive file upload & sanitization](/docs/automations/har-sanitization)\\n - [Link preview](/docs/automations/link-preview)\\n - [Org tags", + "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" }, { - "id": "ART-1590_KNOWLEDGE_NODE-181", - "text": "reporters.\\nseverity long Optional\\nFilters for incidents containing any of the provided severities.\\nsort_by string Optional\\nThe list of fields to sort the items by and how to sort them.\\nsource long Optional\\nFilters for incidents with any of the provided sources.\\nstage string Optional\\nFilters for incidents in any of the provided stages.\\ntitle string Optional\\nFilters for incidents by the provided titles.\\nResponse.\\n\\nThis endpoint returns an object.\\nincidents list of objects\\nThe", - "title": "List \u2014 DevRev | Docs" + "id": "ART-15689_KNOWLEDGE_NODE-29", + "text": "invalid headers and any missing required headers.\\n7. After the operation is completed, a sample CSV is generated in the **Discussion** tab of the snap-in with the status of the operation, including each line number, any error messages for failed rows, and the link of the successfully created timeline entry for successful rows.\\n8. In case of a retry, a timeline entry is created, and the user needs to re-enter the command /upload\\\\_timelines.\\n\\n[PreviousCSV work item", + "title": "CSV comments uploader | Automate | Snap-ins | DevRev" }, { - "id": "ART-15689_KNOWLEDGE_NODE-24", - "text": "CSV](#validations-for-uploading-csv)\\n* [Upload comments from CSV on work-items](#upload-comments-from-csv-on-workitems)\\n\\n1. [Documentation](/docs)\\n3. [Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[CSV comments uploader](/docs/automations/csv-comments-uploader)\\n\\nCSV comments uploader\\n=====================\\n\\nThe CSV comments uploader is a snap-in designed to streamline the process of creating timeline entries on work items in bulk through a CSV file. It efficiently handles", - "title": "CSV comments uploader | Automate | Snap-ins | DevRev" + "id": "ART-16355_KNOWLEDGE_NODE-26", + "text": "**Reported\\\\_by,** and **Contact** columns, provide the email of the person to be assigned as the owner or reporter of the work item. If the CSV lists multiple owners, only the first will be set as the owner.\\n* For the **Applies to Part**, **Stage**, **Account**, **Developed with Parts**, and **Tags** columns, provide the part name, stage name, account name, part name, and tag name respectively as it is present in the UI, ensuring case sensitivity.\\n* For **Date** and **Timestamp** related", + "title": "CSV commands uploader | Automate | Snap-ins | DevRev" } ] }, @@ -3644,14 +3644,19 @@ "query": "ticket calls show playback access issue", "retrievals": [ { - "id": "ART-1444_KNOWLEDGE_NODE-9", - "text": "breachedcompletedpausedrunningwarning\\n\\nticket.source_channellist of stringsOptional\\n\\nFilters for tickets with any of the provided source channels.\\n\\nticket.source_channel_v2list of stringsOptional\\n\\nFilters for tickets that are associated with any of the source channels.\\n\\ntypelist of enumsOptional\\n\\nFilters for work of the provided types.\\n\\nAllowed values: issueticket\\n\\n### Response\\n\\nSuccess.\\n\\nworkslist of objects\\n\\nThe list of works.\\n\\nShow 2", - "title": "List Works \u2014 DevRev | Docs" + "id": "ART-1483_KNOWLEDGE_NODE-18", + "text": "the code\\n\\nUpdate the code in `src/functions/ticket_creator/index.ts` to reflect the behavior.\\n\\nFirstly, import the DevRev TypeScript SDK in the `index.ts` file\\n\\nindex.ts\\n\\n[code]\\n\\n 1| import {client, publicSDK} from \"@devrev/typescript-sdk\"; \\n ---|---\\n[/code] \\n \\nNext, update the `run` function in the hello-world example. Since the ticket gets created frequently, set some creation time in the title and the body. The example uses the part as `PROD-1` and keeps the owner as", + "title": "Using a snap-in to perform a DevRev action \u2014 DevRev | Docs" }, { - "id": "ART-1981_KNOWLEDGE_NODE-26", - "text": "a small number of tags to help categorize tickets. For example, at DevRev we have the following: bug, feature-request, other-request, question, and incident.\\n* Designate one or more customer experience engineers to be on call. Add them to the **Support** group inside **Settings > Groups** and as default owner in the **Support Routing** snap-in. Default owners are notified through email and the DevRev app as soon as a new conversation is started.\\n\\nMonitor the inbox\\n-----------------\\n\\n*", - "title": "Support best practices | Computer for Support Teams | DevRev" + "id": "ART-15701_KNOWLEDGE_NODE-9", + "text": "information.\\n\\nDevRev recommends to switch on both agent and customer recording and realtime and post call analytics.\\n\\nCapturing user input in IVR: If you are taking inputs from user in the IVR and you want that information to be visible to the agent/ captured in the call, use set contact attributes block. Store the keys in the User Defined Namespace and add the key which needs to be displayed/ captured. For eg: previous_ticket_id is being captured by the user input.\\n\\nAdd users: Navigate", + "title": "Amazon Connect Telephony Integration Guide" + }, + { + "id": "ART-16803_KNOWLEDGE_NODE-26", + "text": "Tickets\\n* Meetings\\n* Objects linked to issues\\n* Users\\n\\nTo configure a workspace object loop:\\n\\n1. On the **workflow canvas**, add an action step named **Loop for [Object]**, where [Object] is the entity you want to iterate over.\\n2. Apply **filter conditions** to refine the set of objects included in the loop and perform operations on them.\\n\\nAll **actions** inside the loop execute once per object that satisfies the filter conditions.\\n\\n### For Each\\n\\nThe **For Each** loop iterates", + "title": "Workflow nodes | Workflows | Computer by DevRev | DevRev" }, { "id": "ART-15664_KNOWLEDGE_NODE-13", @@ -3659,24 +3664,24 @@ "title": "Links | DevRev | Docs" }, { - "id": "ART-1804_KNOWLEDGE_NODE-452", - "text": "response.\\nticket.rev_org string Optional\\nFilters for tickets that are associated with any of the provided Rev organizations.\\nticket.severity enum Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided", - "title": "Self \u2014 DevRev | Docs" + "id": "ART-2024_KNOWLEDGE_NODE-27", + "text": "help now... ask again in 5d\\n\\nSample response:\\n\\n> I am unable to assist you at the moment, however please reach out to me again in five days and I will be happy to help you.\\n\\n### Summarize\\n\\nUsing the summarize command, you can sum up the entire conversation. It applies to the following:\\n\\n* Conversation\\n* Tickets\\n* Issues\\n* Part\\n* Workspace\\n* Customer\\n* Account\\n\\nSample response:\\n\\n> **Summary:**\\n>\\n> * Rahul from DummyOrg is having difficulty installing the Plug Widget.\\n> *", + "title": "Slash commands | Automate | Snap-ins | DevRev" }, { - "id": "ART-16803_KNOWLEDGE_NODE-26", - "text": "Tickets\\n* Meetings\\n* Objects linked to issues\\n* Users\\n\\nTo configure a workspace object loop:\\n\\n1. On the **workflow canvas**, add an action step named **Loop for [Object]**, where [Object] is the entity you want to iterate over.\\n2. Apply **filter conditions** to refine the set of objects included in the loop and perform operations on them.\\n\\nAll **actions** inside the loop execute once per object that satisfies the filter conditions.\\n\\n### For Each\\n\\nThe **For Each** loop iterates", - "title": "Workflow nodes | Workflows | Computer by DevRev | DevRev" + "id": "ART-1444_KNOWLEDGE_NODE-9", + "text": "breachedcompletedpausedrunningwarning\\n\\nticket.source_channellist of stringsOptional\\n\\nFilters for tickets with any of the provided source channels.\\n\\nticket.source_channel_v2list of stringsOptional\\n\\nFilters for tickets that are associated with any of the source channels.\\n\\ntypelist of enumsOptional\\n\\nFilters for work of the provided types.\\n\\nAllowed values: issueticket\\n\\n### Response\\n\\nSuccess.\\n\\nworkslist of objects\\n\\nThe list of works.\\n\\nShow 2", + "title": "List Works \u2014 DevRev | Docs" }, { - "id": "ART-1802_KNOWLEDGE_NODE-452", - "text": "response.\\nticket.rev_org string Optional\\nFilters for tickets that are associated with any of the provided Rev organizations.\\nticket.severity enum Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided", - "title": "Get Post \u2014 DevRev | Docs" + "id": "ART-1961_KNOWLEDGE_NODE-37", + "text": "\\n{{Ticket\\xc2\\xa0Created\\xc2\\xa0>\\xc2\\xa0Output\\xc2\\xa0>\\xc2\\xa0Reported\\xc2\\xa0By\\xc2\\xa0>\\xc2\\xa0Rev\\xc2\\xa0Org\\xc2\\xa0>\\xc2\\xa0Display\\xc2\\xa0Name}}.\\xe2\\x80\\x9d\\n\\n\\n\\nDelay\\n\\n\\n\\nDuration: 2 minutes\\n\\n\\n\\nIf-else\\n\\n\\n\\nAttribute:\\xc2\\xa0Ticket\\xc2\\xa0Created/Output\\xc2\\xa0>\\xc2\\xa0Applies\\xc2\\xa0to\\xc2\\xa0part\\xc2\\xa0>\\xc2\\xa0Display\\xc2\\xa0ID \\nOperator: Equals \\nOperand: CAPL-18\\n\\n\\n\\nTicket \\ncreated\\n\\n\\n\\nEnd\\n```\\n\\n[### Workflow action", + "title": "Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-1792_KNOWLEDGE_NODE-450", - "text": "response.\\nticket.rev_org string Optional\\nFilters for tickets that are associated with any of the provided Rev organizations.\\nticket.severity enum Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided", - "title": "Update \u2014 DevRev | Docs" + "id": "ART-1949_KNOWLEDGE_NODE-26", + "text": "upper-right corner after you make a change.\\n You can toggle on **Show groups** in **Group by** dropdown to open up a side panel showing the groups.\\n\\n![]()\\n\\n![]()\\n\\nYou can also apply **Actions** > **Smart Clustering** if the number of tickets or issues is under 10,000. Clustering isn't available for conversations.\\n\\n1. Click **Save as**. You can give the list a name, and description and save it which causes it to show up in the **My list** section at the bottom of the left-side nav", + "title": "Vistas | Computer by DevRev | DevRev" }, { "id": "ART-16611_KNOWLEDGE_NODE-4", @@ -3684,14 +3689,9 @@ "title": "Using custom processors for attachments in Airdrop snap-in" }, { - "id": "ART-1949_KNOWLEDGE_NODE-26", - "text": "upper-right corner after you make a change.\\n You can toggle on **Show groups** in **Group by** dropdown to open up a side panel showing the groups.\\n\\n![]()\\n\\n![]()\\n\\nYou can also apply **Actions** > **Smart Clustering** if the number of tickets or issues is under 10,000. Clustering isn't available for conversations.\\n\\n1. Click **Save as**. You can give the list a name, and description and save it which causes it to show up in the **My list** section at the bottom of the left-side nav", - "title": "Vistas | Computer by DevRev | DevRev" - }, - { - "id": "ART-1592_KNOWLEDGE_NODE-449", - "text": "response.\\nticket.rev_org string Optional\\nFilters for tickets that are associated with any of the provided Rev organizations.\\nticket.severity enum Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided", - "title": "Update \u2014 DevRev | Docs" + "id": "ART-1981_KNOWLEDGE_NODE-26", + "text": "a small number of tags to help categorize tickets. For example, at DevRev we have the following: bug, feature-request, other-request, question, and incident.\\n* Designate one or more customer experience engineers to be on call. Add them to the **Support** group inside **Settings > Groups** and as default owner in the **Support Routing** snap-in. Default owners are notified through email and the DevRev app as soon as a new conversation is started.\\n\\nMonitor the inbox\\n-----------------\\n\\n*", + "title": "Support best practices | Computer for Support Teams | DevRev" } ] }, @@ -3705,19 +3705,14 @@ "title": "Issues with Salesforce OAuth connection" }, { - "id": "ART-1687_KNOWLEDGE_NODE-2", - "text": "DevRev snap-in) without needing to share their passwords directly. This approach enhances security and user convenience.\\n\\nFor comprehensive information about the OAuth specification, refer to the official documentation: [OAuth 2.0](https://oauth.net/2/).\\n\\nUsing OAuth 2.0 keyrings\\n------------------------\\n\\n1. **Define the keyring:** Within your snap-in manifest, define a keyring specifically for OAuth credentials. DevRev offers pre-defined keyring types for popular services like Slack or", - "title": "OAuth 2.0 configuration: Securely storing access tokens | DevRev | Docs" - }, - { - "id": "ART-12994_KNOWLEDGE_NODE-3", - "text": "Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n404\\n\\nNot Found Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nPOST\\n\\n/dev-users.identities.link\\n\\n[code]\\n\\n $| curl -X POST https://api.devrev.ai/dev-users.identities.link \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -H \"Content-Type: application/json\" \\\\ \\n >| -d \\'{ \\n >| \"dev_user\": \"foo\", \\n >|", - "title": "Link Dev Users Identities \u2014 DevRev | Docs" + "id": "ART-4057_KNOWLEDGE_NODE-3", + "text": "Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nPOST\\n\\n/dev-orgs.auth-connections.list\\n\\n[code]\\n\\n $| curl -X POST https://api.devrev.ai/dev-orgs.auth-connections.list \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -H \"Content-Type: application/json\" \\\\ \\n >| -d \\'{}\\'\\n[/code] \\n \\nTry", + "title": "List Dev Orgs Auth Connections (POST) \u2014 DevRev | Docs" }, { - "id": "ART-1491_KNOWLEDGE_NODE-16", - "text": "devrev-example-oauth # Predefined keyring type to be used as a reference for the custom keyring type 8 scopes : 9 - name : read 10 description : Read access to Example resources 11 value : read 12 - name : write 13 description : Write access to Example resources 14 value : write 15 is_optional : true\\n\\n3.2. Custom keyring type definition. : This approach defines a new, entirely custom keyring type with complete control over the OAuth flow configuration.\\n\\n1 keyring_types : 2 - id :", - "title": "Keyrings \u2014 DevRev | Docs" + "id": "ART-4056_KNOWLEDGE_NODE-3", + "text": "Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nGET\\n\\n/dev-orgs.auth-connections.get\\n\\n[code]\\n\\n $| curl -G https://api.devrev.ai/dev-orgs.auth-connections.get \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -d id=id\\n[/code] \\n \\nTry it\\n\\n200devOrgAuthConnectionsGetExample\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"auth_connection\": {} \\n 3| }\\n[/code] \\n \\n[Get Dev Orgs Auth Connection (POST)Up", + "title": "Get Dev Orgs Auth Connection \u2014 DevRev | Docs" }, { "id": "ART-4055_KNOWLEDGE_NODE-2", @@ -3725,29 +3720,34 @@ "title": "Get Dev Orgs Auth Connection (POST) \u2014 DevRev | Docs" }, { - "id": "ART-1283_KNOWLEDGE_NODE-16", - "text": "devrev-example-oauth # Predefined keyring type to be used as a reference for the custom keyring type 8 scopes : 9 - name : read 10 description : Read access to Example resources 11 value : read 12 - name : write 13 description : Write access to Example resources 14 value : write 15 is_optional : true\\n\\n3.2. Custom keyring type definition. : This approach defines a new, entirely custom keyring type with complete control over the OAuth flow configuration.\\n\\n1 keyring_types : 2 - id :", - "title": "Keyrings \u2014 DevRev | Docs" + "id": "ART-15360_KNOWLEDGE_NODE-3", + "text": "Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/auth-connections/dev-org-auth-connections-create)[#### Get Dev Orgs Auth Connection\\n\\nNext](/api-reference/auth-connections/dev-org-auth-connections-get)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", + "title": "Delete Dev Orgs Auth Connection | DevRev | Docs" + }, + { + "id": "ART-15374_KNOWLEDGE_NODE-3", + "text": "Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/auth-connections/dev-org-auth-connections-list-post)[#### Update Dev Orgs Auth Connection\\n\\nNext](/api-reference/auth-connections/dev-org-auth-connections-update)[Built with](https://buildwithfern.com/?utm_campaign=buildWith&utm_medium=docs&utm_source=developer.devrev.ai)'", + "title": "Toggle Dev Orgs Auth Connections | DevRev | Docs" + }, + { + "id": "ART-1197_KNOWLEDGE_NODE-4", + "text": "\"urn:devrev:params:oauth:token-type:aat\", |\\n| 45 | \"scopes\": [ |\\n| 46 | \"string\" |\\n| 47 | ], |\\n| 48 | \"status\": \"active\", |\\n| 49 | \"subject\": \"string\", |\\n| 50 | \"token_hint\": \"string\" |\\n| 51 | } |\\n| 52 | } |\\n```\\n\\nGets the token metadata corresponding to the given token ID under the\\ngiven Dev organization.\\n\\n### Headers\\n\\nAuthorizationstringRequired\\n\\nBearer authentication of the form `Bearer `, where token is your auth token.\\n\\n### Request\\n\\nThis endpoint expects an", + "title": "Get Auth Token (POST) | DevRev | Docs" + }, + { + "id": "ART-1371_KNOWLEDGE_NODE-10", + "text": "an error while authenticating the APIs? Refer to our [errors guide](/public/about/errors) to learn more about our error codes.\\n\\n## Next steps\\n\\nYou\\xe2\\x80\\x99re all set to explore our platform. You are ready to browse through our APIs and build your first integration with DevRev.\\n\\nWas this page helpful?YesNo\\n\\n[AttachmentsUp Next](/public/api-reference/artifacts/attachments)\\n\\n[Built", + "title": "Getting started \u2014 DevRev | Docs" }, { "id": "ART-1966_KNOWLEDGE_NODE-44", "text": "errors**: Verify the sign\\\\_in\\\\_endpoint (SAML) or issuer (OIDC) is accessible and returns valid responses.\\n2. **Login failures**: Check that users are assigned to the application in your identity provider.\\n\\nFor additional support, contact the DevRev customer success team with your connection details and error messages.\\n\\n[PreviousAccessing DevRev](/docs/product/ui)[NextRemote MCP server](/docs/product/remote-mcp)\\n\\n#### On this page\\n\\n* [Before you begin](#before-you-begin)\\n* [Setup", "title": "External identity provider setup | Computer by DevRev | DevRev" }, - { - "id": "ART-4057_KNOWLEDGE_NODE-3", - "text": "Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nPOST\\n\\n/dev-orgs.auth-connections.list\\n\\n[code]\\n\\n $| curl -X POST https://api.devrev.ai/dev-orgs.auth-connections.list \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -H \"Content-Type: application/json\" \\\\ \\n >| -d \\'{}\\'\\n[/code] \\n \\nTry", - "title": "List Dev Orgs Auth Connections (POST) \u2014 DevRev | Docs" - }, { "id": "ART-16805_KNOWLEDGE_NODE-37", "text": "deleted, all the content it created gets deleted, even if they were modified in DevRev. It's possible to import the learning data again after its deletion.\\n\\nTo delete an import and all the content it created, go to **Settings > Integrations > Imports**, find the previously imported project, and select \\xe2\\x8b\\xae > **Delete Import**.\\n\\n### Limitations\\n\\n* Limited to API key authentication only; OAuth 2.0 not currently supported by Articulate Reach 360 platform.\\n* No delta synchronization", "title": "Articulate Reach 360 AirSync | AirSync | Snap-ins | DevRev" - }, - { - "id": "ART-4056_KNOWLEDGE_NODE-3", - "text": "Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nGET\\n\\n/dev-orgs.auth-connections.get\\n\\n[code]\\n\\n $| curl -G https://api.devrev.ai/dev-orgs.auth-connections.get \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -d id=id\\n[/code] \\n \\nTry it\\n\\n200devOrgAuthConnectionsGetExample\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"auth_connection\": {} \\n 3| }\\n[/code] \\n \\n[Get Dev Orgs Auth Connection (POST)Up", - "title": "Get Dev Orgs Auth Connection \u2014 DevRev | Docs" } ] }, @@ -3755,55 +3755,55 @@ "query_id": "b0868a8c-db97-4032-a697-5e8eb9c4be3d", "query": "DevRev statistical data on ticket resolution time and customer benefits", "retrievals": [ + { + "id": "ART-1870_KNOWLEDGE_NODE-14", + "text": "customer ticket resolution times by 50%.\\n\\nFaster follow-up responses\\n\\nWith DevRev, ActionIQ has achieved a 60% reduction in turnaround time for responses to customer tickets.\\n\\nIncreased agent productivity\\n\\nImproved organization of work items, combined with workflow automation through Snap-Ins, drove a 68% increase in the number of incidents closed within Level 1 Support (per agent, per month) and an overall 18% increase in the number of incidents closed (per agent, per month).\\n\\n###", + "title": "Unifying teams: How ActionIQ transformed support with integration" + }, { "id": "ART-1771_KNOWLEDGE_NODE-10", "text": "approach to customer service. The result was faster responses, more accurate solutions, and a significantly improved customer experience.\\n\\nThe bottom line: A transformation in support operations\\n-------------------------------------------------------\\n\\nToughTrucksForKids\\' implementation of DevRev delivers concrete business results:\\n\\n* 64% reduction in ticket resolution time\\n* 83% improvement in first response time\\n* 30% increase in CSAT scores\\n* 20% increase in conversion rates\\n* 65%", "title": "ToughTrucksForKids.com achieves dramatic efficiency gains and customer satisfaction through AI-powered support automation" }, - { - "id": "ART-16189_KNOWLEDGE_NODE-13", - "text": "faster ticket resolution\\n* 57% drop in resolution time\\n* Improved coordination between support and engineering\\n* Real-time visibility into issue status\\n* Automation of routine support tasks\\n* Reduced backlog by 100+ tickets\\n* Enhanced customer communication and transparency\\n* Scalable, future-proof support operations\\n\\n### Related Articles\\n\\n[![]()\\n\\n5 min readLuxCreo boosts operational efficiency and agility with DevRev](/case-study/luxcreo)[![]()\\n\\n5 min readAditya Birla Capital", - "title": "FOSSA\u2019s Unified Support Strategy for Elevated Customer Experience" - }, - { - "id": "ART-1035_KNOWLEDGE_NODE-0", - "text": "b'Goodmeetings uses PLuG to reduce ticket resolution time\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\n- [Case Studies](/case-study)\\n\\n- Goodmeetings\\n\\nGoodmeetings uses DevRev to reduce ticket resolution time\\n=========================================================\\n\\n3 min", - "title": "Goodmeetings uses PLuG to reduce ticket resolution time" - }, { "id": "ART-16570_KNOWLEDGE_NODE-13", "text": "and improve, making information access increasingly effortless over time.\\n\\nData-backed transformation\\n--------------------------\\n\\nSince the rollout in June 2025, the data shows clear improvements in operational efficiency:\\n\\n* **+10 hrs saved** every user each week\\n* **~40% faster ticket resolution** when DevRev is used\\n* **Up to 75% faster resolution** in specific cases\\n* **Consistent adoption** across the team through June and July\\n\\nBenefits\\n--------\\n\\nFAME\\'s adoption of", "title": "FAME transforms information access with AI-powered enterprise search" }, { - "id": "ART-1981_KNOWLEDGE_NODE-26", - "text": "a small number of tags to help categorize tickets. For example, at DevRev we have the following: bug, feature-request, other-request, question, and incident.\\n* Designate one or more customer experience engineers to be on call. Add them to the **Support** group inside **Settings > Groups** and as default owner in the **Support Routing** snap-in. Default owners are notified through email and the DevRev app as soon as a new conversation is started.\\n\\nMonitor the inbox\\n-----------------\\n\\n*", - "title": "Support best practices | Computer for Support Teams | DevRev" + "id": "ART-16189_KNOWLEDGE_NODE-13", + "text": "faster ticket resolution\\n* 57% drop in resolution time\\n* Improved coordination between support and engineering\\n* Real-time visibility into issue status\\n* Automation of routine support tasks\\n* Reduced backlog by 100+ tickets\\n* Enhanced customer communication and transparency\\n* Scalable, future-proof support operations\\n\\n### Related Articles\\n\\n[![]()\\n\\n5 min readLuxCreo boosts operational efficiency and agility with DevRev](/case-study/luxcreo)[![]()\\n\\n5 min readAditya Birla Capital", + "title": "FOSSA\u2019s Unified Support Strategy for Elevated Customer Experience" }, { - "id": "ART-1709_KNOWLEDGE_NODE-14", - "text": "_The future is not just about fewer tickets or resolving them faster. It 's about having no tickets at all. And that\\xe2\\x80\\x99s precisely what DevRev aims to achieve for digital businesses._**\\n\\nBook a demo\\n\\n### Related Articles\\n\\n[6 min readUniphore builds a proactive support culture with DevRev01.27.2025](/case-study/uniphore)[5 min readDescope drives its PLG motion using a single consolidated inbox01.27.2025](/case-study/descope)[3 min readGoodmeetings uses PLuG to reduce ticket", - "title": "ACC-qjz7ErXz - Mad Rewards: MadRewards uses DevRev\u2019s AI to modernize customer su" + "id": "ART-2749_KNOWLEDGE_NODE-7", + "text": "impact: Enhanced collaboration, faster resolution, measurable results\\n-------------------------------------------------------------------------\\n\\n### Improved support operations\\n\\nPhenom's adoption of Computer by DevRev has significantly improved support operations by allowing L1 and L2 teams to collaborate within the same tool, leading to a 30% decrease in ticket resolution time and a 29% decrease in time to close tickets.\\n\\nCustomer self-service options were improved with Computer CX", + "title": "Phenom transforms talent experience with streamlined support and development workflows" }, { "id": "ART-1870_KNOWLEDGE_NODE-10", "text": "retention or engagement\\n\\n![]()\\n\\nTasso ArgyrosCEO, ActionIQ\\n\\nThe bottom line: Transforming support through connected operations\\n------------------------------------------------------------------\\n\\nActionIQ's implementation of DevRev delivered concrete business results:\\n\\n* 67% reduction in median incident resolution times\\n* 50% faster customer ticket resolution\\n* 60% reduction in turnaround time for responses to customer tickets\\n* 68% increase in incidents closed within Level 1", "title": "Unifying teams: How ActionIQ transformed support with integration" }, + { + "id": "ART-17649_KNOWLEDGE_NODE-5", + "text": "helps the company deploy different PLuG instances across various website paths, each with its own appearance and memory.\\n\\n#### *DevRev's ticketing feature has really helped reduce escalations. Since we've set clear expectations that tickets will get responses within 24 to 48 hours, customers are more patient\\xe2\\x80\\x94unlike in chat, where they expect instant replies.*\\xe2\\x80\\x9d\\n\\n### Tailored knowledge management\\n\\nThe search agent accesses relevant information for each platform", + "title": "Leading APAC fintech transforms support with multi-instance AI solution" + }, { "id": "ART-2749_KNOWLEDGE_NODE-6", "text": "tools, giving their support and engineering teams context on customer history, product usage, and prior interactions.\\n\\nThis shift improved operational efficiency while fostering better collaboration and faster resolution times, aligning more closely with Phenom's evolving needs and goals.\\n\\nWith DevRev, we've significantly reduced our ticket resolution time by 30%, enhancing our overall support efficiency.\\n\\n![]()\\n\\nMark MacDonaldVice President of Global Customer Care, Phenom\\n\\nThe", "title": "Phenom transforms talent experience with streamlined support and development workflows" }, - { - "id": "ART-15716_KNOWLEDGE_NODE-34", - "text": "DevRev provides dashboards for CSAT (Customer Satisfaction) scores:\\n\\nClick the Explore Section and search for the Ticket Insights or Ticket Team Performance Dashboard\\n\\nNavigate to find the CSAT widgets.\\n\\nYou can filter by time, team, or agent to get detailed insights.\\n\\nThis gives you a centralized view of customer feedback trends.3. Visualizing Data Using Dashboards and Widgets\\n\\nTo create dashboards:\\n\\nGo to the Vista you are interested in visualizing\\n\\nApply the necessary", - "title": "Support queries related playbook" - }, { "id": "ART-1027_KNOWLEDGE_NODE-12", "text": "driver\\n----------------------------------------------------------\\n\\nBy deploying DevRev, Descope has achieved:\\n\\n* 54% reduction in average resolution time\\n* 5\\xc3\\x97 faster ticket resolution with complete lifecycle visibility\\n* 300M+ users supported daily, up from 10M\\n* 100% SLA adherence maintained during scale\\n* 32\\xe2\\x80\\x9340% of inquiries resolved through AI-powered self-service\\n* Increased CSAT and reduced time to resolution\\n\\nThe result: a streamlined, product-led support", "title": "Descope streamlines support at scale with automation, AI, and unified collaboration" + }, + { + "id": "ART-4181_KNOWLEDGE_NODE-1", + "text": "context-aware, and customer-centric with SLAs that are connected to your customers, parts of your product, and issues - not just tickets.\\n\\nNever miss an SLA with DevRev\\n\\nReduction in SLA breaches\\n\\n40%\\n\\nImprovement in response time\\n\\n60%\\n\\nFaster ticket resolution\\n\\n4X\\n\\nEffortlessly create SLAs\\n========================\\n\\nSay goodbye to the hassle of creating SLAs using complex flowcharts\\n===================================================================\\n\\n[Read our", + "title": "Support like a lightning fast pit-crew" } ] }, @@ -3812,9 +3812,19 @@ "query": "who can provide access to a dashboard or board", "retrievals": [ { - "id": "ART-15617_KNOWLEDGE_NODE-8", - "text": "capability to build custom dashboards quite intuitively and quickly. The Ask AI runs analytics on support data with very simple prompts. It has the capability to track gaps in knowledge base, ensuring that the training data improves with time. Detailed Strengths and Weaknesses Strengths\\n\\nSeamless Integration : Excellent Slack integration and multi-channel support including MS Teams\\n\\nUser Experience : Intuitive, easy-to-use interface with minimal learning curve\\n\\nCustomer Success :", - "title": "Pylon - Competitive - for the PLuG on website" + "id": "ART-1958_KNOWLEDGE_NODE-28", + "text": "are not authorized to perform this action\". Relevant buttons may be inactive.\\nUsers can contact the organization\\'s admins to enable access in that case.\\n\\n![]()\\n\\nGranting access permissions\\n---------------------------\\n\\nUsers are granted access permissions to dashboards or reports through MFZ policies and sharing.\\n\\n### MFZ policies\\n\\nUse of MFZ policies facilitates the need to grant access to a wider group of users.\\n\\nAn org admin has permission to define and enable roles, in", + "title": "Access control | Computer by DevRev | DevRev" + }, + { + "id": "ART-1958_KNOWLEDGE_NODE-29", + "text": "whatever combination, that will give user groups permission to perform various operations on dashboards/reports. Out of the box, the following roles are enabled for the predefined user groups:\\n\\n* Admins\\n\\n ![]()\\n* Platform users\\n\\n ![]()\\n\\n By default, platform users have the following permissions:\\n\\n + Create dashboards or reports.\\n + Read, update, and delete their own dashboards or reports.\\n + Create datasets.\\n + Read, update, and delete their own datasets.\\n\\nPlatform users", + "title": "Access control | Computer by DevRev | DevRev" + }, + { + "id": "ART-15687_KNOWLEDGE_NODE-31", + "text": "dashboards\\n-------------------\\n\\nDashboards organize and display multiple widgets.\\n\\n* **Access the dashboard builder**:\\n Similar to the widget builder, access the dashboard builder by modifying your DevRev workspace URL. For example, your\\\\_workspace\\\\_slug/dashboard-preview.\\n The builder provides a boilerplate code.\\n\\n ![]()\\n* **Link widgets to the dashboard**:\\n\\n + Scroll to the section that defines the widgets to be linked.\\n + Remove any existing widget IDs and paste the", + "title": "Dashboards | Computer by DevRev | DevRev" }, { "id": "ART-15687_KNOWLEDGE_NODE-33", @@ -3822,14 +3832,14 @@ "title": "Dashboards | Computer by DevRev | DevRev" }, { - "id": "ART-15687_KNOWLEDGE_NODE-0", - "text": "b'Dashboards | Computer by DevRev | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CMD`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", - "title": "Dashboards | Computer by DevRev | DevRev" + "id": "ART-13189_KNOWLEDGE_NODE-29", + "text": "and presentation needs.\\n + Share via Email: Dashboards can be directly shared via email, streamlining the process of distributing key metrics and insights to stakeholders.\\n\\n **What's improved:**\\n\\n + Enhanced Export Functionality: Improved the export functionality to ensure high-quality outputs in all supported formats.\\n* **Automatic Dynamic Drill-throughs for Vista Reports**\\n\\n Introducing a new way to explore data in Vista reports. With the latest update, users can now access", + "title": "March and April 2025 | Changelog | DevRev" }, { - "id": "ART-1958_KNOWLEDGE_NODE-28", - "text": "are not authorized to perform this action\". Relevant buttons may be inactive.\\nUsers can contact the organization\\'s admins to enable access in that case.\\n\\n![]()\\n\\nGranting access permissions\\n---------------------------\\n\\nUsers are granted access permissions to dashboards or reports through MFZ policies and sharing.\\n\\n### MFZ policies\\n\\nUse of MFZ policies facilitates the need to grant access to a wider group of users.\\n\\nAn org admin has permission to define and enable roles, in", - "title": "Access control | Computer by DevRev | DevRev" + "id": "ART-15687_KNOWLEDGE_NODE-24", + "text": "\\xe2\\x86\\x97\\xef\\xb8\\x8f](/docs/DevRevU)\\n\\n + [Product demos](/docs/DevRevU/demos)\\n\\nOn this page\\n\\n* [Dashboards](#dashboards)\\n* [Creating widgets](#creating-widgets)\\n* [Creating dashboards](#creating-dashboards)\\n\\n1. [Documentation](/docs)\\n3. [Computer by DevRev](/docs/intro)\\n[Dashboards](/docs/dashboards/dashboard-creation)\\n\\nDashboards\\n----------\\n\\nDashboards in the DevRev app help users visualize and make sense of data spread across different objects. They are built using a", + "title": "Dashboards | Computer by DevRev | DevRev" }, { "id": "ART-2666_KNOWLEDGE_NODE-30", @@ -3837,28 +3847,18 @@ "title": "October 5: Left navigation | Changelog | DevRev" }, { - "id": "ART-15687_KNOWLEDGE_NODE-34", - "text": "choice.\\n\\n[PreviousObject customization](/docs/product/object-customization)[NextGlossary \\xe2\\x86\\x97\\xef\\xb8\\x8f](/docshttps://support.devrev.ai/devrev/article/ART-16784-glossary)\\n\\n#### On this page\\n\\n* [Dashboards](#dashboards)\\n* [Creating widgets](#creating-widgets)\\n* [Creating dashboards](#creating-dashboards)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer", + "id": "ART-15687_KNOWLEDGE_NODE-0", + "text": "b'Dashboards | Computer by DevRev | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CMD`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", "title": "Dashboards | Computer by DevRev | DevRev" }, { - "id": "ART-15716_KNOWLEDGE_NODE-35", - "text": "filters\\n\\nYou can create a simple report by clicking on the Smart Icon at the top right corner and selecting \\'Create New report.\\' Create a dashboard and a widget by giving a name. Select the dimensions and measures and finalize the visualization of the widget and click on the preview widget to test it out.\\n\\nEach widget can be customized with filters, groupings, and visualizations (charts, tables, etc.)4. Create a dashboard for tracking ticket resolution time\\n\\nCreate a new dashboard in", - "title": "Support queries related playbook" - }, - { - "id": "ART-15691_KNOWLEDGE_NODE-30", - "text": "accessibility and user experience without the need to navigate to the Dev360 dashboard.\\n\\n **What's improved:**\\n\\n + Metric Trends and Roll-up Functionality: Enhanced metrics with trend data for better context and introduced roll-up functionality to view data across various levels of the knowledge graph.\\n + Monitoring and Alerting Setup: Set up comprehensive alerting and monitoring for widget errors and established usage metrics to track dashboard adoption effectively.\\n + Conversational", - "title": "May 2025 | Changelog | DevRev" - }, - { - "id": "ART-17233_KNOWLEDGE_NODE-13", - "text": "and groups.\\n\\n##### \\n\\nOnly 1-way sync (from the external system to DevRev) is supported for authorization policy.\\n\\n### Object fields\\n\\nThe Authorization policy object supports the following fields:\\n\\n* `groups` (optional): A list of group identifiers from the external system to which this policy applies.\\n* `users` (optional): A list of user identifiers from the external system to which this policy applies.\\n* `targets`: Defines the DevRev record types the permissions apply to. It uses", - "title": "Permissions | DevRev | Docs" + "id": "ART-2662_KNOWLEDGE_NODE-1", + "text": "[Parts & trails](/docs/product/parts)\\n + [Vistas](/docs/product/vistas)\\n\\n - [Vista Reports](/docs/product/vista-reports)\\n - [Board view](/docs/product/board-view)\\n + [Tasks](/docs/product/tasks)\\n + [Updates](/docs/product/updates)\\n + [Customer email notifications](/docs/product/customer-emails)\\n + [Roles](/docs/product/roles)\\n\\n - [Default privileges by group](/docs/product/privs)\\n + [Access control](/docs/product/access-control)\\n + [Object", + "title": "DevRev Documentation" }, { - "id": "ART-15687_KNOWLEDGE_NODE-31", - "text": "dashboards\\n-------------------\\n\\nDashboards organize and display multiple widgets.\\n\\n* **Access the dashboard builder**:\\n Similar to the widget builder, access the dashboard builder by modifying your DevRev workspace URL. For example, your\\\\_workspace\\\\_slug/dashboard-preview.\\n The builder provides a boilerplate code.\\n\\n ![]()\\n* **Link widgets to the dashboard**:\\n\\n + Scroll to the section that defines the widgets to be linked.\\n + Remove any existing widget IDs and paste the", + "id": "ART-15687_KNOWLEDGE_NODE-34", + "text": "choice.\\n\\n[PreviousObject customization](/docs/product/object-customization)[NextGlossary \\xe2\\x86\\x97\\xef\\xb8\\x8f](/docshttps://support.devrev.ai/devrev/article/ART-16784-glossary)\\n\\n#### On this page\\n\\n* [Dashboards](#dashboards)\\n* [Creating widgets](#creating-widgets)\\n* [Creating dashboards](#creating-dashboards)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer", "title": "Dashboards | Computer by DevRev | DevRev" } ] @@ -3868,24 +3868,19 @@ "query": "Escalation triggers for complex queries requiring human intervention, including probing questions and answer capturing", "retrievals": [ { - "id": "ART-1987_KNOWLEDGE_NODE-27", - "text": "automatically replies to the user query before it gets assigned to support. It goes through the knowledge base (articles and QAs), generates an answer, and checks with the user if the answer is useful or not.\\n\\n* If Computer doesn't understand the query, it gives the user an option to rephrase the question and ask again.\\n* If the user marks the answer as useful, Computer asks the user if they have more questions, then resolves the conversation.\\n* If the user marks the answer as not useful,", - "title": "Turing AI agent | Computer for Support Teams | DevRev" - }, - { - "id": "ART-13178_KNOWLEDGE_NODE-4", - "text": "traditional AI that simply responds to specific queries, agentic AI can make decisions, execute multiple steps, and complete tasks with minimal human intervention, allowing for greater operational efficiency.\\n\\nThink of agentic AI as a digital assistant that doesn\\xe2\\x80\\x99t just answer your questions but actively works to achieve outcomes for you. These autonomous agents can plan sequences of actions, use various tools and systems, adapt to new information, and persist until completing the", - "title": "Understanding Agentic AI: Capabilities and Implications for the Future" + "id": "ART-1709_KNOWLEDGE_NODE-12", + "text": "Significant cost overhead\\n\\n**After:**\\n\\n * AI-powered chatbot deflecting a huge portion of the basic incoming queries, in addition to email and live chat support\\n * Customer support scaled down to a team of two, handling complex queries that require human intervention.\\n * Cost-effective and optimized support operations, while maintaining customer satisfaction\\n\\n## Looking ahead\\n\\nPradeep believes the best customer service is when the customer does not have to reach out for support;", + "title": "ACC-qjz7ErXz - Mad Rewards: MadRewards uses DevRev\u2019s AI to modernize customer su" }, { - "id": "ART-1829_KNOWLEDGE_NODE-331", - "text": "provided users.\\nResponse.\\n\\nThis endpoint returns an object.\\nquestion_answers list of objects\\nThe question-answers entries matching the request.\\nShow 12 properties\\ntotal integer\\nTotal number of question-answer items for the request.\\nnext_cursor string Optional\\nThe cursor used to iterate subsequent results in accordance to the sort order. If not set, then no later elements exist.\\nprev_cursor string Optional\\nThe cursor used to iterate preceding results in accordance to the sort order.", - "title": "Delete \u2014 DevRev | Docs" + "id": "ART-1771_KNOWLEDGE_NODE-7", + "text": "queries instantly, which frees up our human support agents to promptly address more complex issues.\\n\\n![]()\\n\\nAnkur ShresthaCo-Founder of Tough Trucks for Kids\\n\\nThe impact: Automation, scalability, measurable results\\n-------------------------------------------------------\\n\\n#### Powerful AI automation\\n\\nDevRev\\'s Conversational AI agent intelligently handles 85-90% of routine customer inquiries without human intervention, allowing the support team to focus on more complex issues that", + "title": "ToughTrucksForKids.com achieves dramatic efficiency gains and customer satisfaction through AI-powered support automation" }, { - "id": "ART-970_KNOWLEDGE_NODE-48", - "text": "of escalations and have that status automatically reflected in the ticket?\\n\\n\\nSales Representative:\\n\\n\\n What if you had full visibility and could easily monitor the challenges your customers face, receiving notifications when issues arise?\\n What if you could prioritize certain fixes based on deal size?\\n Imagine having immediate insight into matters that your customers care about or being promptly notified about new developments from the engineering team.\\n\\n\\nCustomer Success:\\n\\n\\n", - "title": "The Story" + "id": "ART-4271_KNOWLEDGE_NODE-27", + "text": "via Workflows**\\n\\nSet up automated workflows to convert conversations to tickets based on specific triggers:\\n\\n * When a conversation is updated with certain criteria\\n * When your AI agent identifies an issue requiring escalation\\n * According to your custom business rules\\n\\nWorkflows enable seamless handovers from automated conversations to your support teams when necessary.\\n\\n## End user experience\\n\\n### PLuG widget experience\\n\\nWhen a conversation is converted to a ticket in the", + "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" }, { "id": "ART-4172_KNOWLEDGE_NODE-3", @@ -3893,29 +3888,34 @@ "title": "DevRev Service Level Agreement" }, { - "id": "ART-1637_KNOWLEDGE_NODE-331", - "text": "provided users.\\nResponse.\\n\\nThis endpoint returns an object.\\nquestion_answers list of objects\\nThe question-answers entries matching the request.\\nShow 12 properties\\ntotal integer\\nTotal number of question-answer items for the request.\\nnext_cursor string Optional\\nThe cursor used to iterate subsequent results in accordance to the sort order. If not set, then no later elements exist.\\nprev_cursor string Optional\\nThe cursor used to iterate preceding results in accordance to the sort order.", - "title": "Delete \u2014 DevRev | Docs" + "id": "ART-13178_KNOWLEDGE_NODE-7", + "text": "up with customers at appropriate intervals, and escalate issues only when resolution criteria aren\\xe2\\x80\\x99t met.\\n * **Tool-proficient:** Leverages various digital tools and systems to accomplish tasks. For instance, AI agents can access inventory databases, shipping systems, and customer records to resolve queries about complex order fulfillments.\\n * **Continuously learning:** Improves performance through feedback loops and experience accumulation. For example, an agentic artificial", + "title": "Understanding Agentic AI: Capabilities and Implications for the Future" }, { - "id": "ART-1771_KNOWLEDGE_NODE-7", - "text": "queries instantly, which frees up our human support agents to promptly address more complex issues.\\n\\n![]()\\n\\nAnkur ShresthaCo-Founder of Tough Trucks for Kids\\n\\nThe impact: Automation, scalability, measurable results\\n-------------------------------------------------------\\n\\n#### Powerful AI automation\\n\\nDevRev\\'s Conversational AI agent intelligently handles 85-90% of routine customer inquiries without human intervention, allowing the support team to focus on more complex issues that", - "title": "ToughTrucksForKids.com achieves dramatic efficiency gains and customer satisfaction through AI-powered support automation" + "id": "ART-1036_KNOWLEDGE_NODE-10", + "text": "be tackled decisively instead of escalating\\n\\n![]()\\n\\nDhruv AgrawalCOO & Co-founder, Shipsy\\n\\n### 5. Less time managing work, more time building product\\n\\nShipsy leveraged Computer\\xe2\\x80\\x99s Foundational Services to set up automations like:\\n\\n* Notifications for aging tickets\\n* Time-based triggers to prevent SLA breaches\\n* Approval funnels for product managers to prioritize projects\\n\\nImpact and results\\n------------------\\n\\nShipsy's implementation of DevRev Support and", + "title": "Shipsy elevates logistics support with AI-powered automation and cross team collaboration" }, { - "id": "ART-1655_KNOWLEDGE_NODE-331", - "text": "provided users.\\nResponse.\\n\\nThis endpoint returns an object.\\nquestion_answers list of objects\\nThe question-answers entries matching the request.\\nShow 12 properties\\ntotal integer\\nTotal number of question-answer items for the request.\\nnext_cursor string Optional\\nThe cursor used to iterate subsequent results in accordance to the sort order. If not set, then no later elements exist.\\nprev_cursor string Optional\\nThe cursor used to iterate preceding results in accordance to the sort order.", - "title": "Update \u2014 DevRev | Docs" + "id": "ART-13178_KNOWLEDGE_NODE-4", + "text": "traditional AI that simply responds to specific queries, agentic AI can make decisions, execute multiple steps, and complete tasks with minimal human intervention, allowing for greater operational efficiency.\\n\\nThink of agentic AI as a digital assistant that doesn\\xe2\\x80\\x99t just answer your questions but actively works to achieve outcomes for you. These autonomous agents can plan sequences of actions, use various tools and systems, adapt to new information, and persist until completing the", + "title": "Understanding Agentic AI: Capabilities and Implications for the Future" }, { - "id": "ART-1636_KNOWLEDGE_NODE-331", - "text": "provided users.\\nResponse.\\n\\nThis endpoint returns an object.\\nquestion_answers list of objects\\nThe question-answers entries matching the request.\\nShow 12 properties\\ntotal integer\\nTotal number of question-answer items for the request.\\nnext_cursor string Optional\\nThe cursor used to iterate subsequent results in accordance to the sort order. If not set, then no later elements exist.\\nprev_cursor string Optional\\nThe cursor used to iterate preceding results in accordance to the sort order.", - "title": "Update \u2014 DevRev | Docs" + "id": "ART-15716_KNOWLEDGE_NODE-9", + "text": "tickets for escalation or tracking.\\n\\nQuick summary: If you\\xe2\\x80\\x99re a customer, you create tickets. If you\\xe2\\x80\\x99re a developer, you create issues.PLuG widget and SDK\\n\\nIntegrating PluG in React Native Expo Apps\\n\\nPluG is designed for web, but you can embed it in a React Native Expo app using react-native-webview. Install the package with npx expo install react-native-webview, then use a WebView component to load your PluG widget\\xe2\\x80\\x99s URL. Some advanced features may not", + "title": "Support queries related playbook" }, { - "id": "ART-1709_KNOWLEDGE_NODE-12", - "text": "Significant cost overhead\\n\\n**After:**\\n\\n * AI-powered chatbot deflecting a huge portion of the basic incoming queries, in addition to email and live chat support\\n * Customer support scaled down to a team of two, handling complex queries that require human intervention.\\n * Cost-effective and optimized support operations, while maintaining customer satisfaction\\n\\n## Looking ahead\\n\\nPradeep believes the best customer service is when the customer does not have to reach out for support;", - "title": "ACC-qjz7ErXz - Mad Rewards: MadRewards uses DevRev\u2019s AI to modernize customer su" + "id": "ART-1987_KNOWLEDGE_NODE-27", + "text": "automatically replies to the user query before it gets assigned to support. It goes through the knowledge base (articles and QAs), generates an answer, and checks with the user if the answer is useful or not.\\n\\n* If Computer doesn't understand the query, it gives the user an option to rephrase the question and ask again.\\n* If the user marks the answer as useful, Computer asks the user if they have more questions, then resolves the conversation.\\n* If the user marks the answer as not useful,", + "title": "Turing AI agent | Computer for Support Teams | DevRev" + }, + { + "id": "ART-970_KNOWLEDGE_NODE-48", + "text": "of escalations and have that status automatically reflected in the ticket?\\n\\n\\nSales Representative:\\n\\n\\n What if you had full visibility and could easily monitor the challenges your customers face, receiving notifications when issues arise?\\n What if you could prioritize certain fixes based on deal size?\\n Imagine having immediate insight into matters that your customers care about or being promptly notified about new developments from the engineering team.\\n\\n\\nCustomer Success:\\n\\n\\n", + "title": "The Story" } ] }, @@ -3929,9 +3929,9 @@ "title": "Using a snap-in to perform an external action \u2014 DevRev | Docs" }, { - "id": "ART-1398_KNOWLEDGE_NODE-0", - "text": "b'[](/public/api-reference/auth-tokens/update)\\n\\nPublic\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources", - "title": "Update Auth Token \u2014 DevRev | Docs" + "id": "ART-1193_KNOWLEDGE_NODE-0", + "text": "b'Security tokens | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[auth-tokens](/api-reference/auth-tokens/security-tokens)\\n\\nSecurity tokens\\n===============\\n\\nCopy page\\n\\n`auth-tokens` endpoint\\n\\n\\xe2\\x84\\xb9\\xef\\xb8\\x8f Security tokens are required for accessing DevRev. There are four types of security tokens:\\n\\n* **Application Access Token (AAT)**: Uniquely identifies an application", + "title": "Security tokens | DevRev | Docs" }, { "id": "ART-1276_KNOWLEDGE_NODE-13", @@ -3939,29 +3939,29 @@ "title": "Using a snap-in to perform an external action | DevRev | Docs" }, { - "id": "ART-1391_KNOWLEDGE_NODE-0", - "text": "b'[](/public/api-reference/auth-tokens/delete)\\n\\nPublic\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources", - "title": "Delete Auth Token \u2014 DevRev | Docs" + "id": "ART-1362_KNOWLEDGE_NODE-5", + "text": "APIs on behalf of the corresponding dev user. The lifetime of a PAT is usually in days. The subject of the PAT is set to the corresponding dev users DON (for example, `don:identity:dvrv-us-1:devo/0:devu/30`).\\n\\n## Personal access token usage\\n\\nAuthentication to DevRev APIs requires a personal access token (PAT). A PAT is used to uniquely identify a dev user in context of a dev org and can be used by external third-party applications to access DevRev APIs on behalf of the corresponding dev", + "title": "Authentication \u2014 DevRev | Docs" }, { - "id": "ART-12970_KNOWLEDGE_NODE-0", - "text": "b'[](/public/api-reference/auth-tokens/info-post)\\n\\nPublic\\n\\n[](https://devrev.ai)\\n\\n * Product\\n * Platform\\n * Solutions\\n * Marketplace\\n * Company\\n * Resources\\n * [Pricing](https://devrev.ai/pricing)\\n\\n __\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[](https://devrev.ai)\\n\\n __\\n\\nProduct __\\n\\nPlatform __\\n\\nSolutions __\\n\\nMarketplace __\\n\\nCompany __\\n\\nResources", - "title": "Info Auth Tokens (POST) \u2014 DevRev | Docs" + "id": "ART-1170_KNOWLEDGE_NODE-5", + "text": "DevRev APIs on behalf of the corresponding dev user. The lifetime of a PAT is usually in days. The subject of the PAT is set to the corresponding dev users DON (for example, `don:identity:dvrv-us-1:devo/0:devu/30`).\\n\\nPersonal access token usage\\n---------------------------\\n\\nAuthentication to DevRev APIs requires a personal access token (PAT). A PAT is used to uniquely identify a dev user in context of a dev org and can be used by external third-party applications to access DevRev APIs on", + "title": "Authentication | DevRev | Docs" }, { - "id": "ART-1398_KNOWLEDGE_NODE-1", - "text": "__\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[API Reference](/public/api-reference/getting-started)[Auth Tokens](/public/api-reference/auth-tokens/create)\\n\\n# Update Auth Token\\n\\nPOST\\n\\nhttps://api.devrev.ai/auth-tokens.update\\n\\nTry it\\n\\nUpdates token metadata of a token issued under a given Dev organization.\\n\\n### Request\\n\\nThis endpoint expects an object.\\n\\ntoken_hintstringRequired`format:", - "title": "Update Auth Token \u2014 DevRev | Docs" + "id": "ART-16579_KNOWLEDGE_NODE-12", + "text": "replace the `` and `` with the actual values.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl \\\\ |\\n| > | --location \\'https://api.devrev.ai/auth-tokens.create\\' \\\\ |\\n| > | --header \\'accept: application/json, text/plain, */*\\' \\\\ |\\n| > | --header \\'content-type: application/json\\' \\\\ |\\n| > | --header \\'authorization: \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"rev_info\": { |\\n| > | \"user_ref\": \"\" |\\n| > | } |\\n| > | }\\' |\\n```\\n\\nThe response of the API call", + "title": "Features | DevRev | Docs" }, { - "id": "ART-1391_KNOWLEDGE_NODE-1", - "text": "__\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[API Reference](/public/api-reference/getting-started)[Auth Tokens](/public/api-reference/auth-tokens/create)\\n\\n# Delete Auth Token\\n\\nPOST\\n\\nhttps://api.devrev.ai/auth-tokens.delete\\n\\nTry it\\n\\nRevokes the token that matches the given token ID issued under the given Dev organization.\\n\\n### Request\\n\\nThis endpoint expects an", - "title": "Delete Auth Token \u2014 DevRev | Docs" + "id": "ART-15506_KNOWLEDGE_NODE-5", + "text": "token\\n------------------------\\n\\n##### \\n\\nFor security reasons, this API call must be made from the server side to prevent exposing your application access token (AAT).\\n\\nUsing the `rev_info` method, you can generate and recognize a user within the DevRev system by providing relevant user details. This method enables you to convey information systematically, ensuring alignment between your DevRev CRM and the structured data model. For information regarding terminologies, click", + "title": "Identify your users with Plug | DevRev | Docs" }, { - "id": "ART-1394_KNOWLEDGE_NODE-1", - "text": "__\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[API Reference](/public/api-reference/getting-started)[Auth Tokens](/public/api-reference/auth-tokens/create)\\n\\n# Get Auth Token (POST)\\n\\nPOST\\n\\nhttps://api.devrev.ai/auth-tokens.get\\n\\nTry it\\n\\nGets the token metadata corresponding to the given token ID under the given Dev organization.\\n\\n### Request\\n\\nThis endpoint expects an", - "title": "Get Auth Token (POST) \u2014 DevRev | Docs" + "id": "ART-12970_KNOWLEDGE_NODE-1", + "text": "__\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[API Reference](/public/api-reference/getting-started)[Auth Tokens](/public/api-reference/auth-tokens/create)\\n\\n# Info Auth Tokens (POST)\\n\\nPOST\\n\\nhttps://api.devrev.ai/auth-tokens.info\\n\\nTry it\\n\\nReturns the Dev organization, user and token attributes extracted from the auth token.\\n\\n### Request\\n\\nThis endpoint expects an object.\\n\\n### Response\\n\\nThe Dev", + "title": "Info Auth Tokens (POST) \u2014 DevRev | Docs" }, { "id": "ART-1789_KNOWLEDGE_NODE-62", @@ -3969,9 +3969,9 @@ "title": "List \u2014 DevRev | Docs" }, { - "id": "ART-15506_KNOWLEDGE_NODE-5", - "text": "token\\n------------------------\\n\\n##### \\n\\nFor security reasons, this API call must be made from the server side to prevent exposing your application access token (AAT).\\n\\nUsing the `rev_info` method, you can generate and recognize a user within the DevRev system by providing relevant user details. This method enables you to convey information systematically, ensuring alignment between your DevRev CRM and the structured data model. For information regarding terminologies, click", - "title": "Identify your users with Plug | DevRev | Docs" + "id": "ART-1198_KNOWLEDGE_NODE-0", + "text": "b'List Auth Tokens | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[auth-tokens](/api-reference/auth-tokens/security-tokens)\\n\\nList Auth Tokens\\n================\\n\\nCopy page\\n\\nGET\\n\\nhttps://api.devrev.ai/auth-tokens.list\\n\\nGET\\n\\n/auth-tokens.list\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl https://api.devrev.ai/auth-tokens.list \\\\ |\\n| > | -H \"Authorization: Bearer \" |\\n```\\n\\n[Try", + "title": "List Auth Tokens | DevRev | Docs" } ] }, @@ -3980,54 +3980,54 @@ "query": "SLA metrics dashboard filter not retaining selected data point showing all tickets instead of filtered tickets", "retrievals": [ { - "id": "ART-17231_KNOWLEDGE_NODE-153", - "text": "this object, which is used to track the SLA metrics. |\\n| `source_channel_v2` | reference\\xe2\\x86\\x92[#record:external\\\\_communication\\\\_channel] | | Source channel ID of the ticket |\\n| `stage` | enum | \\xe2\\x9c\\x94\\xef\\xb8\\x8e | Stage of the object |\\n| `tags` | reference (collection)\\xe2\\x86\\x92[#record:tag] | | Tags associated with the object |\\n| `target_close_date` | timestamp | | Timestamp when the work is expected to be complete |\\n| `title` | text | \\xe2\\x9c\\x94\\xef\\xb8\\x8e | Title", - "title": "Supported DevRev object types | DevRev | Docs" - }, - { - "id": "ART-2633_KNOWLEDGE_NODE-3", - "text": "SLA tracker statuses the filter matches.\\n\\n### Response\\n\\nSuccess.\\n\\nsla_trackerslist of objects\\n\\nThe list of SLA trackers.\\n\\nShow 14 properties\\n\\nnext_cursorstringOptional`format: \"text\"`\\n\\nThe cursor used to iterate subsequent results in accordance to the sort order. If not set, then no later elements exist.\\n\\nprev_cursorstringOptional`format: \"text\"`\\n\\nThe cursor used to iterate preceding results in accordance to the sort order. If not set, then no prior elements exist.\\n\\n###", - "title": "List SLA Trackers \u2014 DevRev | Docs" + "id": "ART-1986_KNOWLEDGE_NODE-44", + "text": "**Custom**: Filters all tickets that will breach by the selected date.\\n\\n![]()\\n\\nTroubleshooting: No SLA running on the ticket\\n---------------------------------------------\\n\\n### Issue\\n\\nYou have created and published an SLA, but no SLA is running on the ticket.\\n\\n### Solution\\n\\n1. Check the **SLA Name** attribute:\\n\\n\\xc2\\xa0\\xc2\\xa0 - Verify that the **SLA Name** attribute on the ticket is not empty.\\n\\n\\xc2\\xa0\\xc2\\xa0 - If the **SLA Name** is empty, it means the customer account", + "title": "Service-level agreement | Computer for Support Teams | DevRev" }, { - "id": "ART-1823_KNOWLEDGE_NODE-461", + "id": "ART-1831_KNOWLEDGE_NODE-476", "text": "Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the", "title": "Get \u2014 DevRev | Docs" }, { - "id": "ART-17181_KNOWLEDGE_NODE-12", - "text": "rates.\\n\\nVisibility across the organization has improved through custom dashboards that provide real-time insights into SLA adherence and priorities. Leadership now has a unified operations view that enables data-driven decision making and proactive resource allocation.\\n\\nWith DevRev, our support team can build automations themselves without relying on product teams. A ticket lifecycle needs around 15 workflows, and now we can design and run them easily.\\n\\n![]()\\n\\nRajdeep Hazarika Rajdeep", - "title": "Skedulo reduced effort 30% to 5% and unlocked automation at scale" + "id": "ART-1829_KNOWLEDGE_NODE-476", + "text": "Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the", + "title": "Delete \u2014 DevRev | Docs" }, { - "id": "ART-1651_KNOWLEDGE_NODE-468", + "id": "ART-1588_KNOWLEDGE_NODE-465", "text": "Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the", - "title": "Create \u2014 DevRev | Docs" + "title": "Get \u2014 DevRev | Docs" }, { - "id": "ART-4177_KNOWLEDGE_NODE-6", - "text": "through tickets](https://vimeo.com/1027660342)[![]()\\n\\nUnderstanding Support Analytics and SLAs\\n\\nExplore actionable insights and trends in customer experience metrics with our support analytics dashboard](https://vimeo.com/1027659562)[![]()\\n\\nInteractive walkthrough of SLA tracking\\n\\nLearn how to use DevRev track SLAs of tickets, to ensure that your customer's requests are always responded to in time.](https://devrev.navattic.com/bv10lxn)\\n\\nBuild Products, Not", - "title": "DevRev University - DevRev for Startups" + "id": "ART-1830_KNOWLEDGE_NODE-476", + "text": "Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the", + "title": "Get Post \u2014 DevRev | Docs" }, { - "id": "ART-1829_KNOWLEDGE_NODE-476", + "id": "ART-1824_KNOWLEDGE_NODE-460", "text": "Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the", "title": "Delete \u2014 DevRev | Docs" }, { - "id": "ART-1986_KNOWLEDGE_NODE-44", - "text": "**Custom**: Filters all tickets that will breach by the selected date.\\n\\n![]()\\n\\nTroubleshooting: No SLA running on the ticket\\n---------------------------------------------\\n\\n### Issue\\n\\nYou have created and published an SLA, but no SLA is running on the ticket.\\n\\n### Solution\\n\\n1. Check the **SLA Name** attribute:\\n\\n\\xc2\\xa0\\xc2\\xa0 - Verify that the **SLA Name** attribute on the ticket is not empty.\\n\\n\\xc2\\xa0\\xc2\\xa0 - If the **SLA Name** is empty, it means the customer account", - "title": "Service-level agreement | Computer for Support Teams | DevRev" + "id": "ART-1823_KNOWLEDGE_NODE-461", + "text": "Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the", + "title": "Get \u2014 DevRev | Docs" }, { - "id": "ART-1588_KNOWLEDGE_NODE-465", + "id": "ART-1651_KNOWLEDGE_NODE-468", "text": "Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the", - "title": "Get \u2014 DevRev | Docs" + "title": "Create \u2014 DevRev | Docs" + }, + { + "id": "ART-1607_KNOWLEDGE_NODE-465", + "text": "Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the", + "title": "Get Post \u2014 DevRev | Docs" }, { - "id": "ART-1971_KNOWLEDGE_NODE-24", - "text": "analytics](/docs/product/support-analytics)\\n\\nSupport analytics\\n=================\\n\\nThe support analytics is the gateway to actionable insights\\xc2\\xa0across a spectrum of customer\\xc2\\xa0experience metrics. Whether your focus is on blocker tickets, SLA compliance, or customer satisfaction, support analytics is the one-stop solution. Explore the depths of your data with dynamic filters and\\xc2\\xa0unravel\\xc2\\xa0more details using drill-through functionalities to\\xc2\\xa0understand\\xc2\\xa0the", - "title": "Support analytics | Computer for Support Teams | DevRev" + "id": "ART-1633_KNOWLEDGE_NODE-467", + "text": "Optional\\nFilters for tickets with any of the provided severities.\\nAllowed values: blocker high low medium\\nticket.sla_summary.stage enum Optional\\nFilters for records with any of the provided SLA stages.\\nAllowed values: breached completed paused running warning\\nticket.source_channel string Optional\\nFilters for tickets with any of the provided source channels.\\nticket.subtype string Optional\\nFilters for tickets with any of the provided subtypes.\\ntype enum Optional\\nFilters for work of the", + "title": "List \u2014 DevRev | Docs" } ] }, @@ -4035,30 +4035,25 @@ "query_id": "bebe20f1-dbce-4aaf-8ca4-28bfc94500c3", "query": "automatically change ticket stage when customer responds", "retrievals": [ + { + "id": "ART-1979_KNOWLEDGE_NODE-45", + "text": "a user. In certain cases where the ticket depends on some fix (issues) the stage may go from *in development* to *awaiting customer response* when the corresponding issues have been resolved and the fix needs to be validated with the user.\\n\\n In certain cases, the customer experience engineer may be able to solve directly (without any required issues) which may change the stage from *work in progress* to *awaiting customer response* to validate they have solved the problem. If either has", + "title": "Tickets | Computer for Support Teams | DevRev" + }, { "id": "ART-1974_KNOWLEDGE_NODE-30", "text": "stage.\\n* *Needs response* (NR)\\n\\n The customer has responded; the customer experience engineer needs to review the item and respond or resolve the issue if the user requests or validates the fix. When a customer experience engineer responds the stage transitions to *waiting on user*.\\n\\n In certain cases it may be necessary to escalate the item internally where the conversation may depend on tickets, issues, or a response from someone other than themselves. In this case the stage", "title": "Conversations | Computer for Support Teams | DevRev" }, { - "id": "ART-2007_KNOWLEDGE_NODE-5", - "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", - "title": "Automate opportunities | Automate | Snap-ins | DevRev" - }, - { - "id": "ART-16192_KNOWLEDGE_NODE-5", - "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", - "title": "ServiceNow KB AirSync | AirSync | Snap-ins | DevRev" - }, - { - "id": "ART-1979_KNOWLEDGE_NODE-45", - "text": "a user. In certain cases where the ticket depends on some fix (issues) the stage may go from *in development* to *awaiting customer response* when the corresponding issues have been resolved and the fix needs to be validated with the user.\\n\\n In certain cases, the customer experience engineer may be able to solve directly (without any required issues) which may change the stage from *work in progress* to *awaiting customer response* to validate they have solved the problem. If either has", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1953_KNOWLEDGE_NODE-24", + "text": "conversation](#reply-to-the-customer-on-a-conversation)\\n* [Reply to the customer on a ticket](#reply-to-the-customer-on-a-ticket)\\n* [Ticket linked to a conversation](#ticket-linked-to-a-conversation)\\n* [Change of stage of a ticket/conversation](#change-of-stage-of-a-ticketconversation)\\n* [CSAT survey for conversation/ticket](#csat-survey-for-conversationticket)\\n* [Auto customer reply](#auto-customer-reply)\\n* [Auto reply on email](#auto-reply-on-email)\\n\\n1. [Documentation](/docs)\\n3.", + "title": "Customer email notifications | Computer by DevRev | DevRev" }, { - "id": "ART-16082_KNOWLEDGE_NODE-5", - "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", - "title": "Gmail AirSync | AirSync | Snap-ins | DevRev" + "id": "ART-2012_KNOWLEDGE_NODE-28", + "text": "say \\xe2\\x80\\x9cI would like to add a terminal stage on my tickets\\xe2\\x80\\x9d and we will get it done.\\n\\n * If no terminal stage is set, tickets will reopen on new comments from customers if **Reopen Closed Tickets on customer message** is enabled in the [convergence snap-in](./converge). The tickets move to the _In Progress_ state by default.\\n\\n * If you connected your support email address with DevRev, it is recommended that you enable the **Allow automations to send email** in your", + "title": "Follow-up ticket | Automate | Snap-ins | DevRev" }, { "id": "ART-1979_KNOWLEDGE_NODE-47", @@ -4071,9 +4066,9 @@ "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" }, { - "id": "ART-2053_KNOWLEDGE_NODE-5", - "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", - "title": "Jira Software AirSync | AirSync | Snap-ins | DevRev" + "id": "ART-1981_KNOWLEDGE_NODE-30", + "text": "conversation of which you are not the owner, let the owner know to respond. It's beneficial to retain the same point of contact for the duration of the conversation unless the owner refers some another user.\\n* If the conversation has a customer org that's unidentified or is new, add yourself (the customer experience engineer) as the owner of the ticket. Try to find the appropriate owner for the customer org and update the customer record accordingly.\\n* Change the stage of the conversation to", + "title": "Support best practices | Computer for Support Teams | DevRev" }, { "id": "ART-1645_KNOWLEDGE_NODE-45", @@ -4084,6 +4079,11 @@ "id": "ART-2011_KNOWLEDGE_NODE-5", "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", "title": "CSAT on ticket | Automate | Snap-ins | DevRev" + }, + { + "id": "ART-2015_KNOWLEDGE_NODE-5", + "text": "ticket conversion](/docs/product/conversation-ticket)\\n + [Tickets](/docs/product/tickets)\\n + [Routing](/docs/product/routing)\\n + [Support best practices](/docs/product/support-bp)\\n + [Customer portal](/docs/product/support-portal)\\n + [Questions & answers](/docs/product/qa)\\n + [Knowledge Base](/docs/product/knowledge-base)\\n\\n - [Articles](/docs/product/articles)\\n - [Collections](/docs/product/collection)\\n + [Turing AI agent](/docs/product/conversational-bot)\\n\\n - [Best", + "title": "Descope identity validation | Automate | Snap-ins | DevRev" } ] }, @@ -4091,6 +4091,11 @@ "query_id": "eeedb1ab-bd3a-420d-b9a0-ecb2ce0e8835", "query": "Article 471 not viewable from internal and external links", "retrievals": [ + { + "id": "ART-1985_KNOWLEDGE_NODE-38", + "text": "and **Public Portal**.\\n\\n### Share an article\\n\\nOnce you've created an article, you have two options to share it:\\n\\n* Use **Copy external link** to share with your customers, allowing them to access the article directly.\\n* Use **Copy internal link** to share with your internal organizational team members.\\n\\nThe ability to view the article depends on the settings for **Visible to** and **Status** that have been configured.\\n\\n* If you are sharing an external link with non-signed-in", + "title": "Articles | Knowledge Base | Computer for Support Teams | DevRev" + }, { "id": "ART-1985_KNOWLEDGE_NODE-39", "text": "customers, the article should be visible to customers. If the **Visible to** option is set to **Verified Customers**, only signed-in customers are able to view the article.\\n* When sharing an external link with customers, the article status should be *Published*. If it is in *Draft* mode, they won\\xe2\\x80\\x99t be able to view it.\\n\\nArticle Formatting\\n------------------\\n\\nWhen you\\xe2\\x80\\x99re creating a new article or editing an existing article, formatting options are displayed. While", @@ -4101,15 +4106,25 @@ "text": "and no longer required can be removed by archiving them.\\n\\nVisibility settings\\n-------------------\\n\\n### Article visibility\\n\\nTo control who can view the articles, open the **Visible to** menu. This displays all external groups that the article can be shared with. By default, the following groups are available:\\n\\n* **Customers**: Allows public access without verification.\\n\\n ![]()\\n\\n Public access requires the public portal to be enabled. If the public portal is not enabled, only", "title": "Articles | Knowledge Base | Computer for Support Teams | DevRev" }, + { + "id": "ART-4092_KNOWLEDGE_NODE-2", + "text": "link\\xe2\\x80\\x99s information.\\n\\nlinkobject\\n\\nShow 9 properties\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n404\\n\\nNot Found Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nGET\\n\\n/links.get\\n\\n[code]\\n\\n $| curl -G https://api.devrev.ai/links.get \\\\ \\n ---|--- \\n >| -H \"Authorization: Bearer \" \\\\ \\n >| -d id=id\\n[/code] \\n \\nTry", + "title": "Get Link \u2014 DevRev | Docs" + }, + { + "id": "ART-15297_KNOWLEDGE_NODE-9", + "text": "article\\'s ID.\\n\\naccess\\\\_levelenumOptional\\n\\nAllowed values:externalinternalprivatepublicrestricted\\n\\naliasesobjectOptional\\n\\nShow 1 properties\\n\\napplies\\\\_to\\\\_partsobjectOptional\\n\\nShow 1 properties\\n\\nartifactsobjectOptional\\n\\nShow 1 properties\\n\\nauthored\\\\_byobjectOptional\\n\\nShow 1 properties\\n\\nbrandstring or nullOptional`format: \"id\"`\\n\\nThe updated brand of the article.\\n\\ncontent\\\\_blocksobjectOptional\\n\\nShow 1 properties\\n\\ncontent\\\\_formatenumOptional\\n\\nContent format of", + "title": "Update Article | DevRev | Docs" + }, { "id": "ART-1982_KNOWLEDGE_NODE-27", "text": "visibility settings. Here are a few scenarios:\\n\\n* If a collection is not **Public**, none of the articles within it will be visible to customers, even if the articles are set to be **Visible to Customers**.\\n* If a collection is **Public**, only the articles set to be **Visible to Customers** will be publicly accessible. If an article within the public collection is configured with visibility for **Verified Customers**, non-signed-in customers won\\xe2\\x80\\x99t be able to view it.\\n* If a", "title": "Collections | Knowledge Base | Computer for Support Teams | DevRev" }, { - "id": "ART-1985_KNOWLEDGE_NODE-38", - "text": "and **Public Portal**.\\n\\n### Share an article\\n\\nOnce you've created an article, you have two options to share it:\\n\\n* Use **Copy external link** to share with your customers, allowing them to access the article directly.\\n* Use **Copy internal link** to share with your internal organizational team members.\\n\\nThe ability to view the article depends on the settings for **Visible to** and **Status** that have been configured.\\n\\n* If you are sharing an external link with non-signed-in", - "title": "Articles | Knowledge Base | Computer for Support Teams | DevRev" + "id": "ART-1792_KNOWLEDGE_NODE-40", + "text": "article\\'s ID.\\naccess_level enum Optional\\nAllowed values: external internal private public restricted\\napplies_to_parts object Optional\\nShow property\\nartifacts object Optional\\nShow property\\nauthored_by object Optional\\nShow property\\ncustom_fields map from strings to any Optional\\nApplication-defined custom fields.\\ncustom_schema_spec object Optional\\nRequested custom schemas described abstractly. Every provided schema\\'s custom field must be specified, otherwise a bad request error is", + "title": "Update \u2014 DevRev | Docs" }, { "id": "ART-1783_KNOWLEDGE_NODE-40", @@ -4117,27 +4132,12 @@ "title": "Locate \u2014 DevRev | Docs" }, { - "id": "ART-4070_KNOWLEDGE_NODE-1", - "text": "externalinternalprivatepublicrestricted\\n\\naliasesobjectOptional\\n\\nShow property\\n\\napplies_to_partsobjectOptional\\n\\nShow property\\n\\nartifactsobjectOptional\\n\\nShow property\\n\\nauthored_byobjectOptional\\n\\nShow property\\n\\nbrandstringOptional`format: \"id\"`\\n\\nThe updated brand of the article.\\n\\ncontent_blocksobjectOptional\\n\\nShow property\\n\\ncontent_formatenumOptional\\n\\nAllowed values: drdfv2rt\\n\\nContent format of the article.\\n\\ncustom_fieldsobjectOptional\\n\\nApplication-defined custom", - "title": "Update Article \u2014 DevRev | Docs" - }, - { - "id": "ART-1834_KNOWLEDGE_NODE-40", - "text": "article\\'s ID.\\naccess_level enum Optional\\nAllowed values: external internal private public restricted\\napplies_to_parts object Optional\\nShow property\\nartifacts object Optional\\nShow property\\nauthored_by object Optional\\nShow property\\ncustom_fields map from strings to any Optional\\nApplication-defined custom fields.\\ncustom_schema_spec object Optional\\nRequested custom schemas described abstractly. Every provided schema\\'s custom field must be specified, otherwise a bad request error is", - "title": "Delete \u2014 DevRev | Docs" - }, - { - "id": "ART-1792_KNOWLEDGE_NODE-40", + "id": "ART-1823_KNOWLEDGE_NODE-40", "text": "article\\'s ID.\\naccess_level enum Optional\\nAllowed values: external internal private public restricted\\napplies_to_parts object Optional\\nShow property\\nartifacts object Optional\\nShow property\\nauthored_by object Optional\\nShow property\\ncustom_fields map from strings to any Optional\\nApplication-defined custom fields.\\ncustom_schema_spec object Optional\\nRequested custom schemas described abstractly. Every provided schema\\'s custom field must be specified, otherwise a bad request error is", - "title": "Update \u2014 DevRev | Docs" - }, - { - "id": "ART-4070_KNOWLEDGE_NODE-5", - "text": "article object, or unchanged if not provided.\\n\\nurlstringOptional`format: \"text\"`\\n\\nUpdates the URL of the external article.\\n\\n### Response\\n\\nSuccess.\\n\\narticleobject\\n\\nShow 19 properties\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n404\\n\\nNot Found Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nPOST\\n\\n/articles.update\\n\\n[code]\\n\\n $| curl -X POST", - "title": "Update Article \u2014 DevRev | Docs" + "title": "Get \u2014 DevRev | Docs" }, { - "id": "ART-1822_KNOWLEDGE_NODE-40", + "id": "ART-1605_KNOWLEDGE_NODE-40", "text": "article\\'s ID.\\naccess_level enum Optional\\nAllowed values: external internal private public restricted\\napplies_to_parts object Optional\\nShow property\\nartifacts object Optional\\nShow property\\nauthored_by object Optional\\nShow property\\ncustom_fields map from strings to any Optional\\nApplication-defined custom fields.\\ncustom_schema_spec object Optional\\nRequested custom schemas described abstractly. Every provided schema\\'s custom field must be specified, otherwise a bad request error is", "title": "Create \u2014 DevRev | Docs" } @@ -4148,54 +4148,54 @@ "query": "change Stage state in stage library", "retrievals": [ { - "id": "ART-15344_KNOWLEDGE_NODE-1", - "text": "|\\n```\\n\\n[Try it](/api-reference/customization/stage-diagrams-get?explorer=true)\\n\\n200Retrieved\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"stage_diagram\": { |\\n| 3 | \"id\": \"string\", |\\n| 4 | \"stages\": [ |\\n| 5 | { |\\n| 6 | \"is_deprecated\": true, |\\n| 7 | \"is_start\": true, |\\n| 8 | \"stage\": { |\\n| 9 | \"id\": \"string\", |\\n| 10 | \"display_id\": \"string\", |\\n| 11 | \"name\": \"string\" |\\n| 12 | }, |\\n| 13 | \"transitions\": [ |\\n| 14 | { |\\n| 15 | \"target_stage\": { |\\n| 16 | \"id\": \"string\", |\\n|", - "title": "Get Stage Diagram | DevRev | Docs" + "id": "ART-15353_KNOWLEDGE_NODE-5", + "text": "stage.\\n\\nstate\\\\_idstringOptional`format: \"id\"`\\n\\nThe state ID.\\n\\n### Response\\n\\nSuccess.\\n\\ncustom\\\\_stageobject\\n\\nShow 9 properties\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n404\\n\\nNot Found Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/customization/custom-stages-list-post)[#### Create States", + "title": "Update Stages Custom | DevRev | Docs" }, { - "id": "ART-1456_KNOWLEDGE_NODE-13", - "text": "\"state\": \"active\" \\n 74| } \\n 75| ], \\n 76| \"stage\": { \\n 77| \"name\": \"foo\" \\n 78| }, \\n 79| \"tags\": [ \\n 80| { \\n 81| \"tag\": { \\n 82| \"display_id\": \"foo\", \\n 83| \"id\": \"foo\", \\n 84| \"name\": \"foo\" \\n 85| }, \\n 86| \"value\": \"foo\" \\n 87| } \\n 88| ], \\n 89| \"target_close_date\":", - "title": "List Works (POST) \u2014 DevRev | Docs" + "id": "ART-1509_KNOWLEDGE_NODE-233", + "text": "Optional\\nThe state ID.\\nResponse.\\n\\nThis endpoint returns an object.\\ncustom_stage object\\nShow 9 properties\\nAPI Reference customization Custom States Create.\\n\\nPOST https:// api.devrev.ai / states.custom.create\\nCreates a custom state.\\nRequest.\\n\\nThis endpoint expects an object.\\nname string Required\\nThe name of the custom state.\\nordinal integer Required\\nOrdinal of the custom state used to identify system states.\\nis_final boolean Optional\\nWhether this is a final", + "title": "Prepare \u2014 DevRev | Docs" }, { - "id": "ART-15350_KNOWLEDGE_NODE-6", - "text": "defining\\nstage transitions.\\n\\nstageslist of objectsRequired\\n\\nList of stages in the diagram.\\n\\nShow 4 properties\\n\\nis\\\\_custom\\\\_leaf\\\\_typebooleanOptional\\n\\nWhether the leaf type corresponds to a custom object.\\n\\nis\\\\_defaultbooleanOptional\\n\\nWhether this is a default stage diagram.\\n\\n### Response\\n\\nSuccess.\\n\\nstage\\\\_diagramobject\\n\\nShow 11 properties\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n429\\n\\nToo Many Requests", - "title": "Create Stage Diagram | DevRev | Docs" + "id": "ART-1651_KNOWLEDGE_NODE-231", + "text": "Optional\\nThe state ID.\\nResponse.\\n\\nThis endpoint returns an object.\\ncustom_stage object\\nShow 9 properties\\nAPI Reference customization Custom States Create.\\n\\nPOST https:// api.devrev.ai / states.custom.create\\nCreates a custom state.\\nRequest.\\n\\nThis endpoint expects an object.\\nname string Required\\nThe name of the custom state.\\nordinal integer Required\\nOrdinal of the custom state used to identify system states.\\nis_final boolean Optional\\nWhether this is a final", + "title": "Create \u2014 DevRev | Docs" }, { - "id": "ART-15353_KNOWLEDGE_NODE-5", - "text": "stage.\\n\\nstate\\\\_idstringOptional`format: \"id\"`\\n\\nThe state ID.\\n\\n### Response\\n\\nSuccess.\\n\\ncustom\\\\_stageobject\\n\\nShow 9 properties\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n404\\n\\nNot Found Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable Error\\n\\nWas this page helpful?\\n\\nYesNo\\n\\n[Previous](/api-reference/customization/custom-stages-list-post)[#### Create States", - "title": "Update Stages Custom | DevRev | Docs" + "id": "ART-1595_KNOWLEDGE_NODE-231", + "text": "Optional\\nThe state ID.\\nResponse.\\n\\nThis endpoint returns an object.\\ncustom_stage object\\nShow 9 properties\\nAPI Reference customization Custom States Create.\\n\\nPOST https:// api.devrev.ai / states.custom.create\\nCreates a custom state.\\nRequest.\\n\\nThis endpoint expects an object.\\nname string Required\\nThe name of the custom state.\\nordinal integer Required\\nOrdinal of the custom state used to identify system states.\\nis_final boolean Optional\\nWhether this is a final", + "title": "List \u2014 DevRev | Docs" }, { - "id": "ART-15345_KNOWLEDGE_NODE-1", - "text": "\" |\\n```\\n\\n[Try it](/api-reference/customization/stage-diagrams-list?explorer=true)\\n\\n200Retrieved\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"result\": [ |\\n| 3 | { |\\n| 4 | \"id\": \"string\", |\\n| 5 | \"stages\": [ |\\n| 6 | { |\\n| 7 | \"is_deprecated\": true, |\\n| 8 | \"is_start\": true, |\\n| 9 | \"stage\": { |\\n| 10 | \"id\": \"string\", |\\n| 11 | \"display_id\": \"string\", |\\n| 12 | \"name\": \"string\" |\\n| 13 | }, |\\n| 14 | \"transitions\": [ |\\n| 15 | { |\\n| 16 | \"target_stage\": { |\\n| 17 | \"id\":", - "title": "List Stage Diagrams | DevRev | Docs" + "id": "ART-1649_KNOWLEDGE_NODE-231", + "text": "Optional\\nThe state ID.\\nResponse.\\n\\nThis endpoint returns an object.\\ncustom_stage object\\nShow 9 properties\\nAPI Reference customization Custom States Create.\\n\\nPOST https:// api.devrev.ai / states.custom.create\\nCreates a custom state.\\nRequest.\\n\\nThis endpoint expects an object.\\nname string Required\\nThe name of the custom state.\\nordinal integer Required\\nOrdinal of the custom state used to identify system states.\\nis_final boolean Optional\\nWhether this is a final", + "title": "Create \u2014 DevRev | Docs" }, { - "id": "ART-1592_KNOWLEDGE_NODE-231", + "id": "ART-1650_KNOWLEDGE_NODE-231", "text": "Optional\\nThe state ID.\\nResponse.\\n\\nThis endpoint returns an object.\\ncustom_stage object\\nShow 9 properties\\nAPI Reference customization Custom States Create.\\n\\nPOST https:// api.devrev.ai / states.custom.create\\nCreates a custom state.\\nRequest.\\n\\nThis endpoint expects an object.\\nname string Required\\nThe name of the custom state.\\nordinal integer Required\\nOrdinal of the custom state used to identify system states.\\nis_final boolean Optional\\nWhether this is a final", - "title": "Update \u2014 DevRev | Docs" + "title": "List Post \u2014 DevRev | Docs" }, { - "id": "ART-1834_KNOWLEDGE_NODE-227", - "text": "object\\nShow 9 properties\\nAPI Reference customization Custom Stages List.\\n\\nGET https:// api.devrev.ai / stages.custom.list\\nLists custom stages.\\nQuery parameters.\\n\\ncursor string Optional\\nThe cursor to resume iteration from, otherwise if not provided, then iteration starts from the beginning.\\nlimit integer Optional\\nThe maximum number of items.\\nname string Optional\\nThe list of stage names.\\nordinal integer Optional\\nThe list of stage ordinals.\\nsort_by string Optional\\nThe list of", - "title": "Delete \u2014 DevRev | Docs" + "id": "ART-1605_KNOWLEDGE_NODE-231", + "text": "Optional\\nThe state ID.\\nResponse.\\n\\nThis endpoint returns an object.\\ncustom_stage object\\nShow 9 properties\\nAPI Reference customization Custom States Create.\\n\\nPOST https:// api.devrev.ai / states.custom.create\\nCreates a custom state.\\nRequest.\\n\\nThis endpoint expects an object.\\nname string Required\\nThe name of the custom state.\\nordinal integer Required\\nOrdinal of the custom state used to identify system states.\\nis_final boolean Optional\\nWhether this is a final", + "title": "Create \u2014 DevRev | Docs" }, { - "id": "ART-1828_KNOWLEDGE_NODE-231", + "id": "ART-1826_KNOWLEDGE_NODE-231", "text": "Optional\\nThe state ID.\\nResponse.\\n\\nThis endpoint returns an object.\\ncustom_stage object\\nShow 9 properties\\nAPI Reference customization Custom States Create.\\n\\nPOST https:// api.devrev.ai / states.custom.create\\nCreates a custom state.\\nRequest.\\n\\nThis endpoint expects an object.\\nname string Required\\nThe name of the custom state.\\nordinal integer Required\\nOrdinal of the custom state used to identify system states.\\nis_final boolean Optional\\nWhether this is a final", - "title": "List Post \u2014 DevRev | Docs" + "title": "Get Post \u2014 DevRev | Docs" }, { - "id": "ART-1824_KNOWLEDGE_NODE-227", - "text": "object\\nShow 9 properties\\nAPI Reference customization Custom Stages List.\\n\\nGET https:// api.devrev.ai / stages.custom.list\\nLists custom stages.\\nQuery parameters.\\n\\ncursor string Optional\\nThe cursor to resume iteration from, otherwise if not provided, then iteration starts from the beginning.\\nlimit integer Optional\\nThe maximum number of items.\\nname string Optional\\nThe list of stage names.\\nordinal integer Optional\\nThe list of stage ordinals.\\nsort_by string Optional\\nThe list of", - "title": "Delete \u2014 DevRev | Docs" + "id": "ART-1835_KNOWLEDGE_NODE-231", + "text": "Optional\\nThe state ID.\\nResponse.\\n\\nThis endpoint returns an object.\\ncustom_stage object\\nShow 9 properties\\nAPI Reference customization Custom States Create.\\n\\nPOST https:// api.devrev.ai / states.custom.create\\nCreates a custom state.\\nRequest.\\n\\nThis endpoint expects an object.\\nname string Required\\nThe name of the custom state.\\nordinal integer Required\\nOrdinal of the custom state used to identify system states.\\nis_final boolean Optional\\nWhether this is a final", + "title": "List \u2014 DevRev | Docs" }, { - "id": "ART-1832_KNOWLEDGE_NODE-231", - "text": "Optional\\nThe state ID.\\nResponse.\\n\\nThis endpoint returns an object.\\ncustom_stage object\\nShow 9 properties\\nAPI Reference customization Custom States Create.\\n\\nPOST https:// api.devrev.ai / states.custom.create\\nCreates a custom state.\\nRequest.\\n\\nThis endpoint expects an object.\\nname string Required\\nThe name of the custom state.\\nordinal integer Required\\nOrdinal of the custom state used to identify system states.\\nis_final boolean Optional\\nWhether this is a final", - "title": "Create \u2014 DevRev | Docs" + "id": "ART-15344_KNOWLEDGE_NODE-1", + "text": "|\\n```\\n\\n[Try it](/api-reference/customization/stage-diagrams-get?explorer=true)\\n\\n200Retrieved\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"stage_diagram\": { |\\n| 3 | \"id\": \"string\", |\\n| 4 | \"stages\": [ |\\n| 5 | { |\\n| 6 | \"is_deprecated\": true, |\\n| 7 | \"is_start\": true, |\\n| 8 | \"stage\": { |\\n| 9 | \"id\": \"string\", |\\n| 10 | \"display_id\": \"string\", |\\n| 11 | \"name\": \"string\" |\\n| 12 | }, |\\n| 13 | \"transitions\": [ |\\n| 14 | { |\\n| 15 | \"target_stage\": { |\\n| 16 | \"id\": \"string\", |\\n|", + "title": "Get Stage Diagram | DevRev | Docs" } ] }, @@ -4203,45 +4203,40 @@ "query_id": "d19ed0b4-ecf0-4ac7-b4d3-23c16b1a1d34", "query": "Google Calendar Snap-in connection setup authentication issue", "retrievals": [ - { - "id": "ART-4054_KNOWLEDGE_NODE-2", - "text": "will not be enabled by default for the organization and the user will need to explicitly enable this. Only 5 authentication connections can be created by an organization.\\n\\n### Request\\n\\nThis endpoint expects an object.\\n\\ngoogle_apps\\n\\nObject encapsulating the configuration parameters for a Google Apps authentication connection.\\n\\nShow 6 properties\\n\\nOR\\n\\noidc\\n\\nObject encapsulating the configuration parameters for an OIDC authentication connection.\\n\\nShow 6", - "title": "Create Dev Orgs Auth Connection \u2014 DevRev | Docs" - }, { "id": "ART-16804_KNOWLEDGE_NODE-27", "text": "already exists, you can reuse it; otherwise, click **Add\\n Connection**. \\n In the connection modal, click **Sign in with snap-in** (with the Google\\n Calendar icon), enter a connection name, and proceed to **authorize via your\\n Google account using OAuth**. \\n Provide the necessary permissions and click **Continue** to complete the\\n setup.\\n5. Once the connection is established, select the calendars you want to import\\n and specify the DevRev part that should be used for any", "title": "Google Calendar AirSync | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2032_KNOWLEDGE_NODE-0", - "text": "b\"Google Calendar | Integrate | Snap-ins | DevRev\\n\\n* Product\\n* Platform\\n* Marketplace\\n* Company\\n* Resources\\n* Pricing\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nProduct\\n\\nPlatform\\n\\nMarketplace\\n\\nCompany\\n\\nResources\\n\\nPricing\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [AgentOS platform](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n +", + "id": "ART-2032_KNOWLEDGE_NODE-26", + "text": "section within your DevRev workspace settings.\\n2. Click **Explore Marketplace**.\\n3. Search for **Google Calendar** and click **Install** next to the Google Calendar snap-in.\\n4. In DevRev app, setup the connection in **Settings** > **Snap-ins** > **Connections** on top.\\n\\n * Search and choose an existing connection or create a new one by clicking **+ Connection**.\\n * Select **Google Calendar** from the dowpdown list.\\n * Give it a name and sign in with Google Calendar. Ensure to", "title": "Google Calendar | Integrate | Snap-ins | DevRev" }, { - "id": "ART-1543_KNOWLEDGE_NODE-168", - "text": "for the organization and the user will need to explicitly enable this. Keep in mind that at a time, only one authentication connection can be enabled for a Dev organization. At present, only 5 enterprise connections can be created by an organization.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nGoogle Apps\\n\\nObject encapsulating the configuration parameters for a Google Apps authentication connection.\\n\\nShow 5 properties\\nOR\\nOidc\\n\\nObject encapsulating the configuration parameters for", - "title": "Metric Definitions List Post (Beta) \u2014 DevRev | Docs" + "id": "ART-1283_KNOWLEDGE_NODE-1", + "text": "information, refer to Keyrings in the snap-in manifest. They can be categorized into two main types:\\n\\nDefault keyrings. :\\n\\nOrganization scoped keyrings. : These are secrets used by the entire organization, for example, a Slack token for a workspace.\\nUser scoped keyrings. : These are secrets for a single user, for example, the token to interact with a single person\\xe2\\x80\\x99s Google Calendar.\\n\\nDuring installation, the user will be prompted to provide credentials for each keyring.\\n\\n1", + "title": "Keyrings \u2014 DevRev | Docs" }, { - "id": "ART-2032_KNOWLEDGE_NODE-27", - "text": "toggle on **Make public** to make the connection public for your organization.\\n\\n#### Organization calendar sync\\n\\n1. Update the snap-in configurations as needed.\\n\\n * **Internal Domains**: List of internal domains to be considered as internal users.\\n * **Calendar ID**: ID of Google calendar to be synced to DevRev. The default is primary.\\n * **Exclude Matching Events**: Excludes event if their title starts or ends with the specified string. Default is -.\\n * **Skip Events With", - "title": "Google Calendar | Integrate | Snap-ins | DevRev" + "id": "ART-1491_KNOWLEDGE_NODE-1", + "text": "information, refer to Keyrings in the snap-in manifest. They can be categorized into two main types:\\n\\nDefault keyrings. :\\n\\nOrganization scoped keyrings. : These are secrets used by the entire organization, for example, a Slack token for a workspace.\\nUser scoped keyrings. : These are secrets for a single user, for example, the token to interact with a single person\\xe2\\x80\\x99s Google Calendar.\\n\\nDuring installation, the user will be prompted to provide credentials for each keyring.\\n\\n1", + "title": "Keyrings \u2014 DevRev | Docs" }, { - "id": "ART-1545_KNOWLEDGE_NODE-168", - "text": "for the organization and the user will need to explicitly enable this. Keep in mind that at a time, only one authentication connection can be enabled for a Dev organization. At present, only 5 enterprise connections can be created by an organization.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nGoogle Apps\\n\\nObject encapsulating the configuration parameters for a Google Apps authentication connection.\\n\\nShow 5 properties\\nOR\\nOidc\\n\\nObject encapsulating the configuration parameters for", - "title": "Create (Beta) \u2014 DevRev | Docs" + "id": "ART-2032_KNOWLEDGE_NODE-30", + "text": "sync\\n\\n1. Update the snap-in configurations as needed.\\n\\n * **Calendar ID**: ID of Google calendar to be synced with DevRev. The default is primary.\\n * **Exclude Matching Events**: Excludes event if their title starts or ends with the specified string. Default is -.\\n * **Skip Events With Emails**: Events containing any of these email addresses are completely excluded from sync. No meetings are created in DevRev for events where these emails appear as attendees, organizers, or", + "title": "Google Calendar | Integrate | Snap-ins | DevRev" }, { - "id": "ART-2032_KNOWLEDGE_NODE-26", - "text": "section within your DevRev workspace settings.\\n2. Click **Explore Marketplace**.\\n3. Search for **Google Calendar** and click **Install** next to the Google Calendar snap-in.\\n4. In DevRev app, setup the connection in **Settings** > **Snap-ins** > **Connections** on top.\\n\\n * Search and choose an existing connection or create a new one by clicking **+ Connection**.\\n * Select **Google Calendar** from the dowpdown list.\\n * Give it a name and sign in with Google Calendar. Ensure to", + "id": "ART-2032_KNOWLEDGE_NODE-27", + "text": "toggle on **Make public** to make the connection public for your organization.\\n\\n#### Organization calendar sync\\n\\n1. Update the snap-in configurations as needed.\\n\\n * **Internal Domains**: List of internal domains to be considered as internal users.\\n * **Calendar ID**: ID of Google calendar to be synced to DevRev. The default is primary.\\n * **Exclude Matching Events**: Excludes event if their title starts or ends with the specified string. Default is -.\\n * **Skip Events With", "title": "Google Calendar | Integrate | Snap-ins | DevRev" }, { - "id": "ART-1566_KNOWLEDGE_NODE-168", - "text": "for the organization and the user will need to explicitly enable this. Keep in mind that at a time, only one authentication connection can be enabled for a Dev organization. At present, only 5 enterprise connections can be created by an organization.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nGoogle Apps\\n\\nObject encapsulating the configuration parameters for a Google Apps authentication connection.\\n\\nShow 5 properties\\nOR\\nOidc\\n\\nObject encapsulating the configuration parameters for", - "title": "Transition (Beta) \u2014 DevRev | Docs" + "id": "ART-2666_KNOWLEDGE_NODE-16", + "text": "* [Google Calendar](/docs/integrations/google-calendar)\\n * [Email](/docs/integrations/email)\\n\\n * [Email snap-in configuration](/docs/integrations/email-config)\\n\\n * [Exotel](/docs/integrations/exotel)\\n * [Slack](/docs/integrations/slack)\\n * [WhatsApp](/docs/integrations/whatsapp)\\n * [GitHub](/docs/integrations/github)\\n * [GitLab](/docs/integrations/gitlab)\\n * [Harness](/docs/integrations/harness)\\n *", + "title": "October 5: Left navigation | Changelog | DevRev" }, { "id": "ART-16804_KNOWLEDGE_NODE-0", @@ -4249,9 +4244,14 @@ "title": "Google Calendar AirSync | Integrate | Snap-ins | DevRev" }, { - "id": "ART-1558_KNOWLEDGE_NODE-168", - "text": "for the organization and the user will need to explicitly enable this. Keep in mind that at a time, only one authentication connection can be enabled for a Dev organization. At present, only 5 enterprise connections can be created by an organization.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nGoogle Apps\\n\\nObject encapsulating the configuration parameters for a Google Apps authentication connection.\\n\\nShow 5 properties\\nOR\\nOidc\\n\\nObject encapsulating the configuration parameters for", - "title": "Metric Definitions List (Beta) \u2014 DevRev | Docs" + "id": "ART-2032_KNOWLEDGE_NODE-0", + "text": "b\"Google Calendar | Integrate | Snap-ins | DevRev\\n\\n* Product\\n* Platform\\n* Marketplace\\n* Company\\n* Resources\\n* Pricing\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nProduct\\n\\nPlatform\\n\\nMarketplace\\n\\nCompany\\n\\nResources\\n\\nPricing\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [AgentOS platform](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n +", + "title": "Google Calendar | Integrate | Snap-ins | DevRev" + }, + { + "id": "ART-4271_KNOWLEDGE_NODE-14", + "text": "* [Google Calendar](/docs/integrations/google-calendar?)\\n * [Email](/docs/integrations/email?)\\n\\n * [Email snap-in configuration](/docs/integrations/email-config?)\\n\\n * [Exotel](/docs/integrations/exotel?)\\n * [Slack](/docs/integrations/slack?)\\n * [WhatsApp](/docs/integrations/whatsapp?)\\n * [GitHub](/docs/integrations/github?)\\n * [Harness](/docs/integrations/harness?)\\n * [Marker.io](/docs/integrations/marker-io?)\\n *", + "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" } ] }, @@ -4260,14 +4260,14 @@ "query": "create custom link type using API between custom object Messaging and ticket", "retrievals": [ { - "id": "ART-15664_KNOWLEDGE_NODE-16", - "text": "\\'https://api.devrev.ai/link-types.custom.update\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"id\": \"don:core:dvrv-us-1:devo/demo:custom_link_type/1\", |\\n| > | \"is_deprecated\": true |\\n| > | }\\' |\\n```\\n\\nQuick reference: links from tickets, and issues\\n-----------------------------------------------\\n\\n##### \\n\\nThis section lists common links you can create from tickets and issues. It is not an", + "id": "ART-15664_KNOWLEDGE_NODE-6", + "text": "you want to establish a parent-child relationship between tickets and a custom object\\ntype called \\xe2\\x80\\x9cCampaign\\xe2\\x80\\x9d. This relationship helps track which tickets are assigned to which campaigns.\\n\\nTo create this relationship, make an API call to create a link type:\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\'", "title": "Links | DevRev | Docs" }, { - "id": "ART-15664_KNOWLEDGE_NODE-13", - "text": "\\n\\nYou may want to restrict links to specific subtypes of objects. For example, only allowing issues\\nof a particular subtype to be linked to tickets.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"name\": \"Link between social media issues and tickets\", |\\n| > | \"source_types\": [ |\\n| > | { |\\n|", - "title": "Links | DevRev | Docs" + "id": "ART-1556_KNOWLEDGE_NODE-4", + "text": "object=object\\n[/code] \\n \\nTry it\\n\\n200Retrieved\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"links\": [ \\n 3| { \\n 4| \"id\": \"id\", \\n 5| \"link_type\": \"custom_link\", \\n 6| \"source\": { \\n 7| \"type\": \"ticket\", \\n 8| \"id\": \"source\", \\n 9| \"owned_by\": [ \\n 10| { \\n 11| \"type\": \"sys_user\", \\n 12| \"id\": \"source\" \\n 13| } \\n 14| ], \\n 15|", + "title": "List Links (Beta) \u2014 DevRev | Docs" }, { "id": "ART-15664_KNOWLEDGE_NODE-8", @@ -4275,39 +4275,39 @@ "title": "Links | DevRev | Docs" }, { - "id": "ART-1556_KNOWLEDGE_NODE-4", - "text": "object=object\\n[/code] \\n \\nTry it\\n\\n200Retrieved\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"links\": [ \\n 3| { \\n 4| \"id\": \"id\", \\n 5| \"link_type\": \"custom_link\", \\n 6| \"source\": { \\n 7| \"type\": \"ticket\", \\n 8| \"id\": \"source\", \\n 9| \"owned_by\": [ \\n 10| { \\n 11| \"type\": \"sys_user\", \\n 12| \"id\": \"source\" \\n 13| } \\n 14| ], \\n 15|", - "title": "List Links (Beta) \u2014 DevRev | Docs" + "id": "ART-15664_KNOWLEDGE_NODE-5", + "text": "Supported object types\\n\\nLinks can be created between the following object types:\\n\\n* custom object\\n* work (issue, ticket, task, opportunity)\\n* account, user\\n* part (product, capability, feature, enhancement)\\n\\nFor more details on customization or custom object concepts, please refer to the documentation below:\\n\\n* [Customization](/beta/guides/object-customization)\\n* [Custom objects](/beta/guides/custom-objects)\\n\\nCreate link types\\n-----------------\\n\\n##### \\n\\nLet\\xe2\\x80\\x99s say", + "title": "Links | DevRev | Docs" }, { - "id": "ART-1543_KNOWLEDGE_NODE-121", - "text": "object.\\n\\ntitle string Optional\\n\\nUpdates the title of the custom object.\\n\\nResponse.\\n\\nThis endpoint returns an object.\\ncustom_object object\\nShow 10 properties\\nAPI Reference customization Custom Link Type Create.\\n\\nPOST https://api.devrev.ai / link-types.custom.create\\n\\nCreates a custom link type.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nbackward_name string Required\\n\\nThe name of the link in the backward direction.\\n\\nforward_name string Required\\n\\nThe name of the link in", - "title": "Metric Definitions List Post (Beta) \u2014 DevRev | Docs" + "id": "ART-15664_KNOWLEDGE_NODE-13", + "text": "\\n\\nYou may want to restrict links to specific subtypes of objects. For example, only allowing issues\\nof a particular subtype to be linked to tickets.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"name\": \"Link between social media issues and tickets\", |\\n| > | \"source_types\": [ |\\n| > | { |\\n|", + "title": "Links | DevRev | Docs" }, { - "id": "ART-15664_KNOWLEDGE_NODE-6", - "text": "you want to establish a parent-child relationship between tickets and a custom object\\ntype called \\xe2\\x80\\x9cCampaign\\xe2\\x80\\x9d. This relationship helps track which tickets are assigned to which campaigns.\\n\\nTo create this relationship, make an API call to create a link type:\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\'", - "title": "Links | DevRev | Docs" + "id": "ART-1552_KNOWLEDGE_NODE-2", + "text": "\"target\" \\n >| }\\'\\n[/code] \\n \\nTry it\\n\\n201Created\\n\\n[code]\\n\\n 1| { \\n ---|--- \\n 2| \"link\": { \\n 3| \"id\": \"id\", \\n 4| \"link_type\": \"custom_link\", \\n 5| \"source\": { \\n 6| \"type\": \"ticket\", \\n 7| \"id\": \"source\", \\n 8| \"owned_by\": [ \\n 9| { \\n 10| \"type\": \"sys_user\", \\n 11| \"id\": \"source\" \\n 12| } \\n 13| ], \\n 14| \"title\": \"source\", \\n 15|", + "title": "Create Link (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1545_KNOWLEDGE_NODE-121", - "text": "object.\\n\\ntitle string Optional\\n\\nUpdates the title of the custom object.\\n\\nResponse.\\n\\nThis endpoint returns an object.\\ncustom_object object\\nShow 10 properties\\nAPI Reference customization Custom Link Type Create.\\n\\nPOST https://api.devrev.ai / link-types.custom.create\\n\\nCreates a custom link type.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nbackward_name string Required\\n\\nThe name of the link in the backward direction.\\n\\nforward_name string Required\\n\\nThe name of the link in", - "title": "Create (Beta) \u2014 DevRev | Docs" + "id": "ART-15664_KNOWLEDGE_NODE-16", + "text": "\\'https://api.devrev.ai/link-types.custom.update\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"id\": \"don:core:dvrv-us-1:devo/demo:custom_link_type/1\", |\\n| > | \"is_deprecated\": true |\\n| > | }\\' |\\n```\\n\\nQuick reference: links from tickets, and issues\\n-----------------------------------------------\\n\\n##### \\n\\nThis section lists common links you can create from tickets and issues. It is not an", + "title": "Links | DevRev | Docs" }, { - "id": "ART-1979_KNOWLEDGE_NODE-50", - "text": "customization](./object-customization).\\n\\nViewing attachments on tickets\\n------------------------------\\n\\nYou can view all attachments sent via the ticket's description, internal discussion, or a customer message by going to the **Attachments** section on the ticket for easy access.\\n\\n![]()\\n\\nTuring suggests\\n---------------\\n\\nTuring suggests enables Computer to aid customer experience engineers in resolving current tickets more efficiently. Each time a ticket is viewed, Computer", - "title": "Tickets | Computer for Support Teams | DevRev" + "id": "ART-1543_KNOWLEDGE_NODE-121", + "text": "object.\\n\\ntitle string Optional\\n\\nUpdates the title of the custom object.\\n\\nResponse.\\n\\nThis endpoint returns an object.\\ncustom_object object\\nShow 10 properties\\nAPI Reference customization Custom Link Type Create.\\n\\nPOST https://api.devrev.ai / link-types.custom.create\\n\\nCreates a custom link type.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nbackward_name string Required\\n\\nThe name of the link in the backward direction.\\n\\nforward_name string Required\\n\\nThe name of the link in", + "title": "Metric Definitions List Post (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-15664_KNOWLEDGE_NODE-5", - "text": "Supported object types\\n\\nLinks can be created between the following object types:\\n\\n* custom object\\n* work (issue, ticket, task, opportunity)\\n* account, user\\n* part (product, capability, feature, enhancement)\\n\\nFor more details on customization or custom object concepts, please refer to the documentation below:\\n\\n* [Customization](/beta/guides/object-customization)\\n* [Custom objects](/beta/guides/custom-objects)\\n\\nCreate link types\\n-----------------\\n\\n##### \\n\\nLet\\xe2\\x80\\x99s say", - "title": "Links | DevRev | Docs" + "id": "ART-1545_KNOWLEDGE_NODE-121", + "text": "object.\\n\\ntitle string Optional\\n\\nUpdates the title of the custom object.\\n\\nResponse.\\n\\nThis endpoint returns an object.\\ncustom_object object\\nShow 10 properties\\nAPI Reference customization Custom Link Type Create.\\n\\nPOST https://api.devrev.ai / link-types.custom.create\\n\\nCreates a custom link type.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nbackward_name string Required\\n\\nThe name of the link in the backward direction.\\n\\nforward_name string Required\\n\\nThe name of the link in", + "title": "Create (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1560_KNOWLEDGE_NODE-121", + "id": "ART-1549_KNOWLEDGE_NODE-121", "text": "object.\\n\\ntitle string Optional\\n\\nUpdates the title of the custom object.\\n\\nResponse.\\n\\nThis endpoint returns an object.\\ncustom_object object\\nShow 10 properties\\nAPI Reference customization Custom Link Type Create.\\n\\nPOST https://api.devrev.ai / link-types.custom.create\\n\\nCreates a custom link type.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nbackward_name string Required\\n\\nThe name of the link in the backward direction.\\n\\nforward_name string Required\\n\\nThe name of the link in", - "title": "Assign (Beta) \u2014 DevRev | Docs" + "title": "List Post (Beta) \u2014 DevRev | Docs" } ] }, @@ -4316,34 +4316,34 @@ "query": "where can I view my articles in DevRev", "retrievals": [ { - "id": "ART-16192_KNOWLEDGE_NODE-29", - "text": "permissions in DevRev's articles. Only can read and can contribute permissions are imported from the knowledge base and articles.\\n* **Content & Metadata**: Imports published articles, including content, titles, dates, authors, and source URLs.\\n* **Version History**: Keeps track of published article versions.\\n* **Attachments**: Transfers files attached to articles and links them correctly.\\n* **User Criteria**: Imports users and group rules from ServiceNow.\\n\\n### Limitations\\n\\n* **Access", - "title": "ServiceNow KB AirSync | AirSync | Snap-ins | DevRev" + "id": "ART-15295_KNOWLEDGE_NODE-0", + "text": "b'List Articles | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nPublic\\n\\nPublic\\n\\nSearch\\n\\n`/`\\n\\n[API Reference](/api-reference/getting-started)[articles](/api-reference/articles/create-article)\\n\\nList Articles\\n=============\\n\\nCopy page\\n\\nGET\\n\\nhttps://api.devrev.ai/articles.list\\n\\nGET\\n\\n/articles.list\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl https://api.devrev.ai/articles.list \\\\ |\\n| > | -H \"Authorization: Bearer \" |\\n```\\n\\n[Try", + "title": "List Articles | DevRev | Docs" }, { - "id": "ART-1985_KNOWLEDGE_NODE-37", - "text": "Storage limits for articles\\n\\n* There is no limit to the number of articles that can be created in the DevRev knowledge base.\\n* Each article is stored as an artifact, with a maximum size of 250 MB per artifact.\\n\\n### Enable customer access for your knowledge base\\n\\nTo make your help center, including your knowledge base, accessible to the public, go to **[Settings > Plug & Portal > Portal Settings](https://app.devrev.ai/?setting=portal-settings%2Fconfiguration)** and enable **Help Center**", - "title": "Articles | Knowledge Base | Computer for Support Teams | DevRev" + "id": "ART-15726_KNOWLEDGE_NODE-0", + "text": "b\"If you just imported a bunch of articles from your favorite external system, but can't see them in DevRev, the most important question to ask yourself is whether that article was shared with you in the external system. Airdrop is permission-aware for articles, so if an article (or document, or page, whatever gets imported as an Airdrop article) was not shared with you in the external system, then you won't have access to it in DevRev (even if you're an admin), assuming the default visibility", + "title": "Visibility of Airdrop-imported articles" }, { - "id": "ART-1985_KNOWLEDGE_NODE-49", - "text": "click the **Create** drop-down.\\n2. Select **Create and submit for review**.\\n3. Add reviewers to the approval process, who receive notifications and are tagged in the **Discussions** tab.\\n\\nArticle approval is available only for articles created natively within DevRev.\\n\\n### Review an article\\n\\n1. Open the article and locate the **Review** icon at the top right.\\n2. Choose to either **Request Changes** or **Approve**.\\n3. If requesting changes, provide feedback in the placeholder.\\n\\nAn", - "title": "Articles | Knowledge Base | Computer for Support Teams | DevRev" + "id": "ART-1964_KNOWLEDGE_NODE-27", + "text": "the top of the DevRev app main page, and select either **Ticket** or **Issue**.\\n2. Click the template icon next to the **Select Subtype** drop-down menu and select a template. The selected template is applied to the object.\\n\\nUsing article templates\\n-----------------------\\n\\n1. Under [**Settings > Knowledge Base**](https://app.devrev.ai/devrev/settings/knowledge-base/articles), go to **View Templates**. A modal opens, showing a list and preview of the available templates.\\n2. Select a", + "title": "Templates | Computer by DevRev | DevRev" }, { - "id": "ART-2040_KNOWLEDGE_NODE-43", - "text": "to the relevant articles.\\n* Each synchronization will generate a new version of the article on DevRev if changes were made in Zendesk since the last sync, ensuring content is not overwritten. Users can edit articles within DevRev.\\n\\n### Limitations\\n\\n* While Zendesk's API provides article content in *HTML*, DevRev articles are in a custom *JSON* format. We've made a best-effort conversion between the two formats, which may result in errors. If any errors are detected, a Review Required tag", - "title": "Zendesk AirSync | AirSync | Snap-ins | DevRev" + "id": "ART-4068_KNOWLEDGE_NODE-1", + "text": "__\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[API Reference](/public/api-reference/getting-started)[Articles](/public/api-reference/articles/create-article)\\n\\n# List Articles\\n\\nGET\\n\\nhttps://api.devrev.ai/articles.list\\n\\nTry it\\n\\nLists a collection of articles.\\n\\n### Query parameters\\n\\napplies_to_partslist of stringsOptional\\n\\nFilters for articles belonging to any of the provided", + "title": "List Articles \u2014 DevRev | Docs" }, { - "id": "ART-16192_KNOWLEDGE_NODE-31", - "text": "articles default to English in DevRev, regardless of the original language.\\n If a user in ServiceNow belongs to two different criteria\\xe2\\x80\\x94one allowing read and contribute access, and the other denying it\\xe2\\x80\\x94they may still have access in DevRev. However, if the same criteria appear in both the allow and deny lists for read and contribute access, the user is restricted in DevRev.\\n\\nPost import options\\n-------------------\\n\\nAfter a successful import, you have the following", - "title": "ServiceNow KB AirSync | AirSync | Snap-ins | DevRev" + "id": "ART-15726_KNOWLEDGE_NODE-2", + "text": "articles\\n\\nAs a last resort, you can ask the Airdrop team to check whether the articles are indeed in DevRev's database\"", + "title": "Visibility of Airdrop-imported articles" }, { - "id": "ART-15203_KNOWLEDGE_NODE-10", - "text": "Technical knowledge of web solutions including APIs and Webhooks. Knowledge of Data analytics (SQL) or similar technical skills are also valued.\\n* Outstanding communication (written and verbal), with fluency in English.\\n* Comfort operating in a fast-paced, high-demand, global environment.\\n* Result oriented work-style, ability to get things done, and a learning mindset.\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who", - "title": "DevRev Careers | Senior Customer Success Manager" + "id": "ART-17230_KNOWLEDGE_NODE-12", + "text": "5 | |\\n| 6 | with the company email. |\\n| 7 |

|\\n```\\n\\nThe content in DevRev should look like this:\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 |

|\\n| 2 | You can create an account and log-in |\\n| 3 | |\\n| 4 | only |\\n| 5 | |\\n| 6 | with the company email. |\\n| 7 |

|\\n```\\n\\nWhere `don:core:dvrv-us-1:devo/0:article/10` is the DevRev article ID corresponding to external article", + "title": "Rich text fields | DevRev | Docs" }, { "id": "ART-4066_KNOWLEDGE_NODE-1", @@ -4351,19 +4351,19 @@ "title": "Get Article \u2014 DevRev | Docs" }, { - "id": "ART-4218_KNOWLEDGE_NODE-30", - "text": "a one-time sync to DevRev, follow these steps:\\n\\n1. Go to **Settings** > **Integrations** > **AirSyncs**.\\n2. Locate the previously imported project.\\n3. Select the **\\xe2\\x8b\\xae** > **Sync Azure DevOps Wikis to DevRev** option.\\n\\n![]()\\n\\nA one-time sync may overwrite fields in previously imported articles, even if they were modified in DevRev.\\n\\n### Historical AirSyncs\\n\\nTo view currently running and previous AirSyncs from various sources, do the following:\\n\\n1. Go to **Settings** >", - "title": "Azure DevOps Wikis AirSync | AirSync | Snap-ins | DevRev" + "id": "ART-1985_KNOWLEDGE_NODE-37", + "text": "Storage limits for articles\\n\\n* There is no limit to the number of articles that can be created in the DevRev knowledge base.\\n* Each article is stored as an artifact, with a maximum size of 250 MB per artifact.\\n\\n### Enable customer access for your knowledge base\\n\\nTo make your help center, including your knowledge base, accessible to the public, go to **[Settings > Plug & Portal > Portal Settings](https://app.devrev.ai/?setting=portal-settings%2Fconfiguration)** and enable **Help Center**", + "title": "Articles | Knowledge Base | Computer for Support Teams | DevRev" }, { - "id": "ART-4068_KNOWLEDGE_NODE-1", - "text": "__\\n\\n[Pricing](https://devrev.ai/pricing)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](https://devrev.ai/request-a-demo)\\n\\n[API Reference](/public/api-reference/getting-started)[Articles](/public/api-reference/articles/create-article)\\n\\n# List Articles\\n\\nGET\\n\\nhttps://api.devrev.ai/articles.list\\n\\nTry it\\n\\nLists a collection of articles.\\n\\n### Query parameters\\n\\napplies_to_partslist of stringsOptional\\n\\nFilters for articles belonging to any of the provided", - "title": "List Articles \u2014 DevRev | Docs" + "id": "ART-1985_KNOWLEDGE_NODE-49", + "text": "click the **Create** drop-down.\\n2. Select **Create and submit for review**.\\n3. Add reviewers to the approval process, who receive notifications and are tagged in the **Discussions** tab.\\n\\nArticle approval is available only for articles created natively within DevRev.\\n\\n### Review an article\\n\\n1. Open the article and locate the **Review** icon at the top right.\\n2. Choose to either **Request Changes** or **Approve**.\\n3. If requesting changes, provide feedback in the placeholder.\\n\\nAn", + "title": "Articles | Knowledge Base | Computer for Support Teams | DevRev" }, { - "id": "ART-15726_KNOWLEDGE_NODE-0", - "text": "b\"If you just imported a bunch of articles from your favorite external system, but can't see them in DevRev, the most important question to ask yourself is whether that article was shared with you in the external system. Airdrop is permission-aware for articles, so if an article (or document, or page, whatever gets imported as an Airdrop article) was not shared with you in the external system, then you won't have access to it in DevRev (even if you're an admin), assuming the default visibility", - "title": "Visibility of Airdrop-imported articles" + "id": "ART-4218_KNOWLEDGE_NODE-30", + "text": "a one-time sync to DevRev, follow these steps:\\n\\n1. Go to **Settings** > **Integrations** > **AirSyncs**.\\n2. Locate the previously imported project.\\n3. Select the **\\xe2\\x8b\\xae** > **Sync Azure DevOps Wikis to DevRev** option.\\n\\n![]()\\n\\nA one-time sync may overwrite fields in previously imported articles, even if they were modified in DevRev.\\n\\n### Historical AirSyncs\\n\\nTo view currently running and previous AirSyncs from various sources, do the following:\\n\\n1. Go to **Settings** >", + "title": "Azure DevOps Wikis AirSync | AirSync | Snap-ins | DevRev" } ] }, @@ -4372,19 +4372,29 @@ "query": "Next Best Action recommendations based on case context and history", "retrievals": [ { - "id": "ART-2814_KNOWLEDGE_NODE-5", - "text": "13| surface: issue \\n 14| snap_kit_action_name: show_test_cases \\n 15| initializer: upgrade_test_function_1 \\n 16| snap_kit_body: \\n 17| { \\n 18| \"snaps\":[] \\n 19| }\\n[/code] \\n \\n## Format of context passed to snap-kit action\\n\\n[code]\\n\\n 1| // The payload contains details and values of the snap-kit from which the action was invoked. \\n ---|--- \\n 2| interface Payload { \\n 3| action: { \\n 4| block_id:", - "title": "Snap Components \u2014 DevRev | Docs" + "id": "ART-1272_KNOWLEDGE_NODE-3", + "text": "actions enriched by context.\\n\\nSnap-in\\n-------\\n\\nSnap-ins are collections of objects that extend DevRev\\xe2\\x80\\x99s core platform value. These objects include automation, event sources, keyrings, custom types, and vistas. With snap-ins, developers can develop at \\xe2\\x80\\x9carms-length\\xe2\\x80\\x9d and without making any changes to DevRev\\xe2\\x80\\x99s core platform.\\n\\nSnap-in developers interact with DevRev objects through APIs, get updates on DevRev objects through webhooks, and register", + "title": "Concepts | DevRev | Docs" }, { - "id": "ART-1607_KNOWLEDGE_NODE-164", - "text": "customers impacted due to the incident.\\nmitigated_date datetime Optional\\nTimestamp when the incident was mitigated.\\nowned_by list of strings Optional\\nUser IDs of the users that own the incident.\\npia list of strings Optional\\nThe article ids of the Post-Incident Analysis(PIA) of the incident.\\nplaybooks list of strings Optional\\nThe article ids of the playbook(s) associated with the incident.\\nrelated_docs list of strings Optional\\nThe article ids of other documents associated with the", - "title": "Get Post \u2014 DevRev | Docs" + "id": "ART-12390_KNOWLEDGE_NODE-0", + "text": "b'Workflow action library | Workflows | Computer by DevRev | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n +", + "title": "Workflow action library | Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-1846_KNOWLEDGE_NODE-10", - "text": "|\\n| 42 | ], |\\n| 43 | \"submit_action\": { |\\n| 44 | \"action_id\": \"next\", |\\n| 45 | \"style\": \"primary\", |\\n| 46 | \"text\": { |\\n| 47 | \"text\": \"Next\", |\\n| 48 | \"type\": \"plain_text\" |\\n| 49 | }, |\\n| 50 | \"type\": \"button\", |\\n| 51 | \"value\": \"next\" |\\n| 52 | }, |\\n| 53 | \"type\": \"form\" |\\n| 54 | } |\\n| 55 | ], |\\n| 56 | \"type\": \"card\" |\\n| 57 | } |\\n| 58 | ] |\\n| 59 | } |\\n| 60 | } |\\n| 61 | } |\\n```\\n\\nIn this example, the snap-kit renders a dropdown select for choosing between `Ticket` and", - "title": "Customizing snap-in configuration | DevRev | Docs" + "id": "ART-1290_KNOWLEDGE_NODE-26", + "text": "\"action_id\": \"example_other\", |\\n| 61 | \"type\": \"plain_text_input\" |\\n| 62 | }, |\\n| 63 | \"label\": { |\\n| 64 | \"text\": \"Additional notes\", |\\n| 65 | \"type\": \"plain_text\" |\\n| 66 | }, |\\n| 67 | \"optional\": true, |\\n| 68 | \"type\": \"input_layout\" |\\n| 69 | } |\\n| 70 | ], |\\n| 71 | \"submit_action\": { |\\n| 72 | \"action_id\": \"example_button\", |\\n| 73 | \"style\": \"primary\", |\\n| 74 | \"text\": { |\\n| 75 | \"text\": \"Submit\", |\\n| 76 | \"type\": \"plain_text\" |\\n| 77 | }, |\\n| 78 | \"type\": \"button\", |\\n| 79 |", + "title": "Snapkit | DevRev | Docs" + }, + { + "id": "ART-1290_KNOWLEDGE_NODE-59", + "text": "|\\n| 1 | { |\\n| 2 | \"element\": { |\\n| 3 | \"action_id\": \"age\", |\\n| 4 | \"max_value\": 120, |\\n| 5 | \"min_value\": 10, |\\n| 6 | \"type\": \"number_input\" |\\n| 7 | }, |\\n| 8 | \"label\": { |\\n| 9 | \"text\": \"Age\", |\\n| 10 | \"type\": \"plain_text\" |\\n| 11 | }, |\\n| 12 | \"type\": \"input_layout\" |\\n| 13 | } |\\n```\\n\\n*Action payload*\\n\\nInherits `type`, `action_id`, `action_type`, and `timestamp` from [Base payload](/snapin-development/references/snapkit#base-payload), `type` is set to", + "title": "Snapkit | DevRev | Docs" + }, + { + "id": "ART-2814_KNOWLEDGE_NODE-5", + "text": "13| surface: issue \\n 14| snap_kit_action_name: show_test_cases \\n 15| initializer: upgrade_test_function_1 \\n 16| snap_kit_body: \\n 17| { \\n 18| \"snaps\":[] \\n 19| }\\n[/code] \\n \\n## Format of context passed to snap-kit action\\n\\n[code]\\n\\n 1| // The payload contains details and values of the snap-kit from which the action was invoked. \\n ---|--- \\n 2| interface Payload { \\n 3| action: { \\n 4| block_id:", + "title": "Snap Components \u2014 DevRev | Docs" }, { "id": "ART-1303_KNOWLEDGE_NODE-169", @@ -4392,34 +4402,24 @@ "title": "Export Post \u2014 DevRev | Docs" }, { - "id": "ART-1305_KNOWLEDGE_NODE-171", + "id": "ART-1607_KNOWLEDGE_NODE-164", "text": "customers impacted due to the incident.\\nmitigated_date datetime Optional\\nTimestamp when the incident was mitigated.\\nowned_by list of strings Optional\\nUser IDs of the users that own the incident.\\npia list of strings Optional\\nThe article ids of the Post-Incident Analysis(PIA) of the incident.\\nplaybooks list of strings Optional\\nThe article ids of the playbook(s) associated with the incident.\\nrelated_docs list of strings Optional\\nThe article ids of other documents associated with the", "title": "Get Post \u2014 DevRev | Docs" }, { - "id": "ART-1484_KNOWLEDGE_NODE-64", - "text": "3| \"action_id\": \"name\", \\n 4| \"min_length\": 10, \\n 5| \"placeholder\": { \\n 6| \"text\": \"Enter your name\", \\n 7| \"type\": \"plain_text\" \\n 8| }, \\n 9| \"type\": \"plain_text_input\" \\n 10| }, \\n 11| \"hint\": { \\n 12| \"text\": \"Please enter your name\", \\n 13| \"type\": \"plain_text\" \\n 14| }, \\n 15| \"label\": { \\n 16| \"text\": \"User name\", \\n 17| \"type\": \"plain_text\" \\n 18| }, \\n 19|", - "title": "Snapkit \u2014 DevRev | Docs" - }, - { - "id": "ART-1290_KNOWLEDGE_NODE-82", - "text": "`initial_values` (optional): The initial values in the inputs when they are loaded. This is an array of strings. If `min_items` or `max_items` are set, the length of the array should be within the range.\\n\\n*Example*\\n\\n![]()\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"element\": { |\\n| 3 | \"action_id\": \"numbers\", |\\n| 4 | \"max_item_value\": 90, |\\n| 5 | \"min_item_value\": 0, |\\n| 6 | \"placeholder\": { |\\n| 7 | \"text\": \"Add warning value here (min 0, max 90)\", |\\n| 8 | \"type\": \"plain_text\"", - "title": "Snapkit | DevRev | Docs" + "id": "ART-1305_KNOWLEDGE_NODE-171", + "text": "customers impacted due to the incident.\\nmitigated_date datetime Optional\\nTimestamp when the incident was mitigated.\\nowned_by list of strings Optional\\nUser IDs of the users that own the incident.\\npia list of strings Optional\\nThe article ids of the Post-Incident Analysis(PIA) of the incident.\\nplaybooks list of strings Optional\\nThe article ids of the playbook(s) associated with the incident.\\nrelated_docs list of strings Optional\\nThe article ids of other documents associated with the", + "title": "Get Post \u2014 DevRev | Docs" }, { - "id": "ART-1649_KNOWLEDGE_NODE-164", + "id": "ART-1822_KNOWLEDGE_NODE-164", "text": "customers impacted due to the incident.\\nmitigated_date datetime Optional\\nTimestamp when the incident was mitigated.\\nowned_by list of strings Optional\\nUser IDs of the users that own the incident.\\npia list of strings Optional\\nThe article ids of the Post-Incident Analysis(PIA) of the incident.\\nplaybooks list of strings Optional\\nThe article ids of the playbook(s) associated with the incident.\\nrelated_docs list of strings Optional\\nThe article ids of other documents associated with the", "title": "Create \u2014 DevRev | Docs" }, { - "id": "ART-1833_KNOWLEDGE_NODE-164", + "id": "ART-1826_KNOWLEDGE_NODE-164", "text": "customers impacted due to the incident.\\nmitigated_date datetime Optional\\nTimestamp when the incident was mitigated.\\nowned_by list of strings Optional\\nUser IDs of the users that own the incident.\\npia list of strings Optional\\nThe article ids of the Post-Incident Analysis(PIA) of the incident.\\nplaybooks list of strings Optional\\nThe article ids of the playbook(s) associated with the incident.\\nrelated_docs list of strings Optional\\nThe article ids of other documents associated with the", - "title": "Get \u2014 DevRev | Docs" - }, - { - "id": "ART-1272_KNOWLEDGE_NODE-3", - "text": "actions enriched by context.\\n\\nSnap-in\\n-------\\n\\nSnap-ins are collections of objects that extend DevRev\\xe2\\x80\\x99s core platform value. These objects include automation, event sources, keyrings, custom types, and vistas. With snap-ins, developers can develop at \\xe2\\x80\\x9carms-length\\xe2\\x80\\x9d and without making any changes to DevRev\\xe2\\x80\\x99s core platform.\\n\\nSnap-in developers interact with DevRev objects through APIs, get updates on DevRev objects through webhooks, and register", - "title": "Concepts | DevRev | Docs" + "title": "Get Post \u2014 DevRev | Docs" } ] }, @@ -4427,16 +4427,26 @@ "query_id": "f7f17717-1b4b-40c4-be08-730ba25da4c8", "query": "Pro license pricing cost subscription plan", "retrievals": [ + { + "id": "ART-962_KNOWLEDGE_NODE-2", + "text": "offer).\\n\\n24/5 customer support.\\n\\nPricing: Platform license at $24.99 per MAU, support license at $34.99 per MAU.\\n\\nUltimate: Tailored for complex organizations with strict requirements.\\n\\nAll features from Pro, plus:\\n\\nAudit logging.\\n\\nEnhanced storage and retention.\\n\\nSLA-driven support response times.\\n\\nAdvanced object, subtype, and attribute customization.\\n\\nMulti-region high availability.\\n\\nLive read replica sandboxes.\\n\\nCustom pricing based on specific needs.\\n\\n2.", + "title": "DevRev Pricing" + }, { "id": "ART-962_KNOWLEDGE_NODE-0", "text": "b'1. Core Pricing Plans:\\n\\nStarter: Ideal for small teams (up to 15 users) navigating product-market fit.\\n\\nLimited Time Offer: $1,000 credits.\\n\\nPlatform License: $9.99 per monthly active user (MAU).\\n\\nSupport License: $9.99 per MAU.\\n\\nFeatures:\\n\\nUnlimited viewers at no extra charge.\\n\\nConverge Issue and Ticket Management.\\n\\nMap your product features with Parts and Trails\\n\\nCustomize your data and insights with Vistas.\\n\\nCustomer and user management.\\n\\nLive chat and deflection", "title": "DevRev Pricing" }, { - "id": "ART-15627_KNOWLEDGE_NODE-9", - "text": "that time, DevRev starts charging your credit card for subscription and consumption costs. What is a Platform vs. Support User?\\n\\nPlatform users : Have full access to the Build App and gain visibility across an organization to understand the context between product and customer\\n\\nSupport Users : Users that create or update customer-related records. The per-seat pricing is in addition to the platform license cost and includes customer records (RevO or RevU), plus other related records like", + "id": "ART-15627_KNOWLEDGE_NODE-5", + "text": "included in Build Pro ($24.99/month)?\\n\\nEverything in Starter\\n\\nCustomizable issue management\\n\\nAdvanced reporting & analytics\\n\\n45-day free trial\\n\\nWhat\\'s included in Build Ultimate?\\n\\nEverything in Pro\\n\\nFull object model customization and unlimited integrations\\n\\nEnterprise-grade security, compliance, controls, and policies\\n\\nDevRev PLuG Pricing For detailed pricing and to get started: \\xc2\\xa0 https://devrev.ai/pricing/plug What are the PLuG pricing options?\\n\\nFree : AI-powered", "title": "DevRev Pricing - for the PLuG on the website" }, + { + "id": "ART-3908_KNOWLEDGE_NODE-5", + "text": "users per product. While the $10K credits typically cover around 14 pro-level licenses based on current pricing, you\\xe2\\x80\\x99re free to use as many licenses based on your business needs. Q:-How do my credits get consumed throughout the year?\\n\\nA:- Credits are consumed monthly, primarily based on the number of licenses you provision and any custom integrations you request for. To make the most of your credits, we recommend starting with just the minimum number of licenses you need and", + "title": "DevRev for Startups" + }, { "id": "ART-15258_KNOWLEDGE_NODE-5", "text": "users per product. While the $10K credits typically cover around 14 pro-level licenses based on current pricing, you\\xe2\\x80\\x99re free to use as many licenses based on your business needs. Q:-How do my credits get consumed throughout the year?\\n\\nA:- Credits are consumed monthly, primarily based on the number of licenses you provision and any custom integrations you request for. To make the most of your credits, we recommend starting with just the minimum number of licenses you need and", @@ -4448,14 +4458,9 @@ "title": "DevRev Pricing - for the PLuG on the website" }, { - "id": "ART-3908_KNOWLEDGE_NODE-5", - "text": "users per product. While the $10K credits typically cover around 14 pro-level licenses based on current pricing, you\\xe2\\x80\\x99re free to use as many licenses based on your business needs. Q:-How do my credits get consumed throughout the year?\\n\\nA:- Credits are consumed monthly, primarily based on the number of licenses you provision and any custom integrations you request for. To make the most of your credits, we recommend starting with just the minimum number of licenses you need and", - "title": "DevRev for Startups" - }, - { - "id": "ART-962_KNOWLEDGE_NODE-2", - "text": "offer).\\n\\n24/5 customer support.\\n\\nPricing: Platform license at $24.99 per MAU, support license at $34.99 per MAU.\\n\\nUltimate: Tailored for complex organizations with strict requirements.\\n\\nAll features from Pro, plus:\\n\\nAudit logging.\\n\\nEnhanced storage and retention.\\n\\nSLA-driven support response times.\\n\\nAdvanced object, subtype, and attribute customization.\\n\\nMulti-region high availability.\\n\\nLive read replica sandboxes.\\n\\nCustom pricing based on specific needs.\\n\\n2.", - "title": "DevRev Pricing" + "id": "ART-4169_KNOWLEDGE_NODE-2", + "text": "Credits\\n---------------------------------\\n\\nAvail Pro-level access: Get $6K in credits at sign-up, plus $4K by completing key onboarding milestones\\n-------------------------------------------------------------------------------------------------------\\n\\n50% Off on Follow-up Commit\\n---------------------------\\n\\nClaim discount on the follow-on one-year commitment within 6 months of credits", + "title": "DevRev For Startups" }, { "id": "ART-962_KNOWLEDGE_NODE-4", @@ -4463,18 +4468,13 @@ "title": "DevRev Pricing" }, { - "id": "ART-13178_KNOWLEDGE_NODE-42", - "text": "Subscription-based, transaction-based, and outcome-based models each align with different use cases. Match your pricing structure to anticipated usage patterns and expected value creation.\\n\\nEvaluate these factors systematically against your specific requirements. The right platform accelerates your success with agentic AI while minimizing implementation challenges and technical debt.\\n\\n## Types of AI agents\\n\\nAgentic AI platforms typically offer various agent types, each suited to different", - "title": "Understanding Agentic AI: Capabilities and Implications for the Future" - }, - { - "id": "ART-4169_KNOWLEDGE_NODE-2", - "text": "Credits\\n---------------------------------\\n\\nAvail Pro-level access: Get $6K in credits at sign-up, plus $4K by completing key onboarding milestones\\n-------------------------------------------------------------------------------------------------------\\n\\n50% Off on Follow-up Commit\\n---------------------------\\n\\nClaim discount on the follow-on one-year commitment within 6 months of credits", - "title": "DevRev For Startups" + "id": "ART-15627_KNOWLEDGE_NODE-9", + "text": "that time, DevRev starts charging your credit card for subscription and consumption costs. What is a Platform vs. Support User?\\n\\nPlatform users : Have full access to the Build App and gain visibility across an organization to understand the context between product and customer\\n\\nSupport Users : Users that create or update customer-related records. The per-seat pricing is in addition to the platform license cost and includes customer records (RevO or RevU), plus other related records like", + "title": "DevRev Pricing - for the PLuG on the website" }, { - "id": "ART-15627_KNOWLEDGE_NODE-7", - "text": "session record)\\n\\nWhat\\'s included in PLuG Ultimate?\\n\\nAll Pay-as-you-go features\\n\\nAdvanced functionality for scale\\n\\nVolume discounting\\n\\nUnderstanding users wherever they are\\n\\nDevRev AgentOS Pricing For detailed pricing and to get started: \\xc2\\xa0 https://devrev.ai/pricing/agentos How is AgentOS priced? AgentOS is available only through custom pricing. Contact sales for a quote. What\\'s included in AgentOS?\\n\\nFlexible pricing models: usage-based or predictable fixed pricing\\n\\nFull", + "id": "ART-15627_KNOWLEDGE_NODE-13", + "text": "tier or contact sales for custom arrangements. Is there an enterprise discount for annual payments? Yes, for Pro Plans and above, DevRev can invoice annually and offers discounts. Contact\\xc2\\xa0 support@devrev.ai \\xc2\\xa0to discuss annual pricing options.'", "title": "DevRev Pricing - for the PLuG on the website" } ] @@ -4483,34 +4483,29 @@ "query_id": "4097c810-fcbe-42a6-93bb-79a94adf0faa", "query": "count tickets with customer CSAT review", "retrievals": [ - { - "id": "ART-1004_KNOWLEDGE_NODE-9", - "text": "tickets\\nWHERE EXTRACT(@period FROM created_at) = EXTRACT(@period FROM CURRENT_DATE)\\nGROUP BY engineer_id;\\n-- NOTE: Replace @period with 'DAY', 'WEEK', 'MONTH', or 'QUARTER'.\\n\\n\\nIndividual Customer Satisfaction (CSAT) Score\\n\\n\\n Definition\\n \\n A metric that gauges customer satisfaction with the support provided by a specific engineer, typically collected through surveys.\\n \\n \\n Calculation\\n \\n (Number of satisfied responses for the engineer) / (Total number of", - "title": "Understanding a Support Engineer's Pain Points and KPIs" - }, { "id": "ART-1003_KNOWLEDGE_NODE-20", "text": "AverageResolutionTime\\nFROM tickets t\\nWHERE t.status = 'resolved'\\nAND EXTRACT(@period FROM t.created_at) = EXTRACT(@period FROM CURRENT_DATE);\\n-- NOTE: Replace @period with 'DAY', 'WEEK', 'MONTH', or 'QUARTER'.\\n\\n\\nCustomer Satisfaction Score (CSAT)\\n\\n\\n Definition\\n \\n A metric that gauges customer satisfaction with the support provided, typically collected through surveys.\\n \\n \\n Calculation\\n \\n (Number of satisfied responses) / (Total number of responses) * 100\\n", "title": "Understanding a Support Lead's Pain Points and KPIs" }, + { + "id": "ART-1004_KNOWLEDGE_NODE-9", + "text": "tickets\\nWHERE EXTRACT(@period FROM created_at) = EXTRACT(@period FROM CURRENT_DATE)\\nGROUP BY engineer_id;\\n-- NOTE: Replace @period with 'DAY', 'WEEK', 'MONTH', or 'QUARTER'.\\n\\n\\nIndividual Customer Satisfaction (CSAT) Score\\n\\n\\n Definition\\n \\n A metric that gauges customer satisfaction with the support provided by a specific engineer, typically collected through surveys.\\n \\n \\n Calculation\\n \\n (Number of satisfied responses for the engineer) / (Total number of", + "title": "Understanding a Support Engineer's Pain Points and KPIs" + }, { "id": "ART-1977_KNOWLEDGE_NODE-25", "text": "Average CSAT rating for ticket Owners.\\n* **SLA breaches by Customer tier**\\n\\n Number of Tickets with SLA breaches for ticket owners.\\n* **Active Tickets**\\n\\n A distribution of tickets in Open and In Progress states and the respective owners.\\n* **Closed Tickets**\\n\\n A distribution of tickets in Closed state and the respective owners.\\n* **SLA breaches**\\n\\n Number of Tickets with SLA breaches for ticket owners.\\n* **Tickets Escalated**\\n\\n Number of tickets that are escalated by", "title": "Ticket-Team Performance | Support analytics | Computer for Support Teams | DevRev" }, { - "id": "ART-1004_KNOWLEDGE_NODE-8", - "text": "EXTRACT(@period FROM CURRENT_DATE)\\nGROUP BY engineer_id;\\n-- NOTE: Replace @period with 'DAY', 'WEEK', 'MONTH', or 'QUARTER'.\\n\\n\\nIndividual Ticket Volume\\n\\n\\n Definition\\n \\n The number of support tickets handled by a specific engineer, which can help identify workload distribution and skill set alignment.\\n \\n \\n Calculation\\n \\n Total number of tickets handled by the engineer during a specific period\\n \\n \\n\\n\\nSELECT engineer_id, COUNT(*) AS TicketVolume\\nFROM", - "title": "Understanding a Support Engineer's Pain Points and KPIs" - }, - { - "id": "ART-15716_KNOWLEDGE_NODE-34", - "text": "DevRev provides dashboards for CSAT (Customer Satisfaction) scores:\\n\\nClick the Explore Section and search for the Ticket Insights or Ticket Team Performance Dashboard\\n\\nNavigate to find the CSAT widgets.\\n\\nYou can filter by time, team, or agent to get detailed insights.\\n\\nThis gives you a centralized view of customer feedback trends.3. Visualizing Data Using Dashboards and Widgets\\n\\nTo create dashboards:\\n\\nGo to the Vista you are interested in visualizing\\n\\nApply the necessary", - "title": "Support queries related playbook" + "id": "ART-2011_KNOWLEDGE_NODE-25", + "text": "be customized to align with their requirements.\\n\\nTo manually request CSAT feedback without having to wait until the ticket is resolved, use the /survey command in **Tickets** > **Customer messages**.\\n\\nInstallation\\n------------\\n\\n1. Install the [CSAT on ticket](/marketplace/csat_on_ticket_dwx7b2bp) from the DevRev marketplace.\\n2. Select the workspace to install the snap-in, confirm installation, and click **Deploy snap-in**.\\n\\nConfiguration\\n-------------\\n\\n1. Go to **Snap-ins** >", + "title": "CSAT on ticket | Automate | Snap-ins | DevRev" }, { - "id": "ART-1003_KNOWLEDGE_NODE-24", - "text": "= EXTRACT(@period FROM CURRENT_DATE))) AS TicketBacklog\\nFROM tickets\\nWHERE status != 'closed'\\nAND EXTRACT(@period FROM created_at) = EXTRACT(@period FROM CURRENT_DATE);\\n-- NOTE: Replace @period with 'DAY', 'WEEK', 'MONTH', or 'QUARTER'.\\n\\n\\nEscalation Rate\\n\\n\\n Definition\\n \\n The percentage of support tickets that require escalation to higher-level support or other departments.\\n \\n \\n Calculation\\n \\n (Total number of escalated tickets) / (Total number of tickets)", + "id": "ART-1003_KNOWLEDGE_NODE-25", + "text": "* 100\\n \\n \\n\\n\\nSELECT (COUNT(*) * 100) / (SELECT COUNT(*) FROM tickets WHERE EXTRACT(@period FROM created_at) = EXTRACT(@period FROM CURRENT_DATE)) AS EscalationRate\\nFROM tickets\\nWHERE is_escalated = 1\\nAND EXTRACT(@period FROM created_at) = EXTRACT(@period FROM CURRENT_DATE);\\n-- NOTE: Replace @period with 'DAY', 'WEEK', 'MONTH', or 'QUARTER'.\\n\\n\\nAgent Utilization Rate\\n\\n\\n Definition\\n \\n The percentage of an engineer\\xe2\\x80\\x99s working hours spent on handling customer", "title": "Understanding a Support Lead's Pain Points and KPIs" }, { @@ -4519,19 +4514,24 @@ "title": "CSAT on ticket | Automate | Snap-ins | DevRev" }, { - "id": "ART-1004_KNOWLEDGE_NODE-7", - "text": "time it takes for a specific support engineer to resolve a customer issue from the moment it\\xe2\\x80\\x99s reported.\\n \\n \\n Calculation\\n \\n (Sum of resolution times for all resolved tickets by the engineer) / (Total number of resolved tickets by the engineer)\\n \\n \\n\\n\\nSELECT engineer_id, AVG(TIMESTAMPDIFF(MINUTE, t.created_at, t.resolved_at)) AS IndividualAverageResolutionTime\\nFROM tickets t\\nWHERE t.status = 'resolved'\\nAND EXTRACT(@period FROM t.created_at) =", - "title": "Understanding a Support Engineer's Pain Points and KPIs" + "id": "ART-997_KNOWLEDGE_NODE-16", + "text": "\"type\": \"CSAT\",\\n // these can be kept disjoint and resolved\\n \"response\":\"good\",\\n ...\\n },\\n {\\n \"type\": \"feedback\",\\n \"response\":\"foobar\",\\n ...\\n }\\n ...\\n\\n\\nDon\\xe2\\x80\\x99t\\n\\n ...\\n \"id\":\"don:...:ticket/44\",\\n \"object_type\": \"ticket\",\\n \"csat_respose\": \"good\"\\n ...\\n\\n\\nAs new survey types come, nothing needs to be restructured and we have uniformity. Instead, we turn something from a early binding build-time item into something that can", + "title": "How to Write an Object Model That Doesn't Suck" }, { - "id": "ART-1004_KNOWLEDGE_NODE-12", - "text": "The percentage of support tickets resolved by a support engineer during the first interaction with the customer, which can indicate the engineer\\xe2\\x80\\x99s efficiency and problem-solving abilities.\\n \\n \\n Calculation\\n \\n (Total number of tickets resolved on first contact by the engineer) / (Total number of tickets handled by the engineer) * 100\\n \\n \\n\\n\\nTraining Hours per Employee\\n\\n\\n Definition\\n \\n The average number of training hours completed by a", - "title": "Understanding a Support Engineer's Pain Points and KPIs" + "id": "ART-2011_KNOWLEDGE_NODE-0", + "text": "b\"CSAT on ticket | Automate | Snap-ins | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CMD`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", + "title": "CSAT on ticket | Automate | Snap-ins | DevRev" }, { - "id": "ART-2011_KNOWLEDGE_NODE-25", - "text": "be customized to align with their requirements.\\n\\nTo manually request CSAT feedback without having to wait until the ticket is resolved, use the /survey command in **Tickets** > **Customer messages**.\\n\\nInstallation\\n------------\\n\\n1. Install the [CSAT on ticket](/marketplace/csat_on_ticket_dwx7b2bp) from the DevRev marketplace.\\n2. Select the workspace to install the snap-in, confirm installation, and click **Deploy snap-in**.\\n\\nConfiguration\\n-------------\\n\\n1. Go to **Snap-ins** >", - "title": "CSAT on ticket | Automate | Snap-ins | DevRev" + "id": "ART-15716_KNOWLEDGE_NODE-34", + "text": "DevRev provides dashboards for CSAT (Customer Satisfaction) scores:\\n\\nClick the Explore Section and search for the Ticket Insights or Ticket Team Performance Dashboard\\n\\nNavigate to find the CSAT widgets.\\n\\nYou can filter by time, team, or agent to get detailed insights.\\n\\nThis gives you a centralized view of customer feedback trends.3. Visualizing Data Using Dashboards and Widgets\\n\\nTo create dashboards:\\n\\nGo to the Vista you are interested in visualizing\\n\\nApply the necessary", + "title": "Support queries related playbook" + }, + { + "id": "ART-1003_KNOWLEDGE_NODE-23", + "text": "CURRENT_DATE);\\n-- NOTE: Replace @period with 'DAY', 'WEEK', 'MONTH', or 'QUARTER'.\\n\\n\\nTicket Backlog\\n\\n\\n Definition\\n \\n The number of unresolved support tickets at any given time, which can indicate workload and efficiency issues.\\n \\n \\n Calculation\\n \\n (Total number of open tickets) - (Total number of tickets closed during a specific period)\\n \\n \\n\\n\\nSELECT (COUNT(*) - (SELECT COUNT(*) FROM tickets WHERE status = 'closed' AND EXTRACT(@period FROM created_at)", + "title": "Understanding a Support Lead's Pain Points and KPIs" } ] }, @@ -4539,30 +4539,40 @@ "query_id": "490c9edc-3bd6-40c6-9fc1-381ffa7f0dc0", "query": "save filters in support portal", "retrievals": [ + { + "id": "ART-10697_KNOWLEDGE_NODE-31", + "text": "boosting engagement and reducing repetitive inquiries. To enable Plug, go to **Settings > Portal Settings**, activate Plug widget, and **Save** and **Publish**.\\n\\n![]()\\xc2\\xa0For more information about *Support App*, refer to the following articles: \\xe2\\x80\\xa3 [Support snap-ins | Support](/docs/product/snapins-support) \\xe2\\x80\\xa3 [Support best practices | Support](/docs/product/support-bp) \\xe2\\x80\\xa3 [Support](/docs/product/support) \\xe2\\x80\\xa3", + "title": "February 2025 | Changelog | DevRev" + }, { "id": "ART-1978_KNOWLEDGE_NODE-37", "text": "portal\\n-----------------------------\\n\\nYou can customize the look of your support portal to match your branding goals.\\n\\n1. Go to **Settings** > **Plug & Portal** > **Portal Settings**.\\n2. Under **Configuration**, enter your site name and upload your company logo.\\n * (Optional) Enable the footer and add your social media and text links in their respective fields.\\n * (Optional) Enable **Search** to get answers in search results.\\n * (Optional) Enable Plug widget to facilitate", "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-1294_KNOWLEDGE_NODE-6", - "text": "your filters.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | devrev snap_in_package logs --after \"2023-06-06T00:00:00Z\" --filters \\'{}\\' | jq -r \\'[\"total\", .log_summary.total.value, \"next_cursor\", .next_cursor], (.logs[] | [.level,.timestamp,.msg]) | @tsv\\' | code - |\\n```\\n\\nTroubleshooting\\n---------------\\n\\n### Error \\xe2\\x80\\x9cYou are not authorized to perform this operation\\xe2\\x80\\x9d\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | devrev snap_in draft |\\n```\\n\\n```\\n| |\\n| --- |\\n| POST", - "title": "Debugging | DevRev | Docs" + "id": "ART-10697_KNOWLEDGE_NODE-30", + "text": "New filtering options let agents view tickets tied to specific articles, while updated analytics reveal the most and least linked articles, improving knowledge sharing and support strategy.\\n* Plug is our live chat widget designed for real-time conversations in your customer portal. It reduces ticket volume by resolving common queries instantly, enhancing self-service and speeding up issue resolution. Use spotlight cards or banners to notify customers about incidents, updates, or promotions,", + "title": "February 2025 | Changelog | DevRev" + }, + { + "id": "ART-1978_KNOWLEDGE_NODE-31", + "text": "only.\\n\\nThe customer portal is SEO-compatible, enhancing its discoverability so end customers can find answers directly through search engines, even before contacting support.\\n\\nKey highlights:\\n\\n* Search engine indexing - Public articles are discoverable by search engines like Google.\\n* Meta tags - The article title is used as the title tag, and the article description serves as the meta description for the article.\\n\\nGet started\\n-----------\\n\\n* Your customer portal is by default hosted", + "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-10697_KNOWLEDGE_NODE-31", - "text": "boosting engagement and reducing repetitive inquiries. To enable Plug, go to **Settings > Portal Settings**, activate Plug widget, and **Save** and **Publish**.\\n\\n![]()\\xc2\\xa0For more information about *Support App*, refer to the following articles: \\xe2\\x80\\xa3 [Support snap-ins | Support](/docs/product/snapins-support) \\xe2\\x80\\xa3 [Support best practices | Support](/docs/product/support-bp) \\xe2\\x80\\xa3 [Support](/docs/product/support) \\xe2\\x80\\xa3", - "title": "February 2025 | Changelog | DevRev" + "id": "ART-1978_KNOWLEDGE_NODE-27", + "text": "portal\\n-------------------------------------\\n\\n* **Enhanced customer experience**: Customers can access self-service options, track their tickets, and receive timely updates, leading to improved satisfaction.\\n* **Efficient ticket management**: The portal streamlines the ticket creation, assignment, and tracking process, ensuring faster resolution times.\\n* **Seamless, timely, and transparent communication**: Customers and support teams can engage in threaded conversations within the portal,", + "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-1645_KNOWLEDGE_NODE-22", - "text": "`\"2020-10-20T00:00:00Z\"` (RFC3339) \\ndate| `\"2020-10-20\"` (YYYY-MM-DD) \\nid| `\"don:core:dvrv-us-1:devo/test:issue/1\"` \\n \\nThe list variants of all the supported custom field types are also supported. In the example above, the `impacted_environments` field is a list of enum values.\\n\\n## Filter DevRev objects\\n\\n#####\\n\\nTo demonstrate filtering capabilities, consider finding all bugs in the production environment that had a customer impact.\\n\\nThis translates to filtering _issue_ objects", - "title": "Object customization (Beta) \u2014 DevRev | Docs" + "id": "ART-1978_KNOWLEDGE_NODE-32", + "text": "on the following URL: support.devrev.ai/.\\n* Your customers can log in on the portal by entering their registered email address and OTP sent to that email address.\\n\\n![]()\\n\\n### Customer roles and permissions\\n\\nThe customer portal has two levels of customer roles and permissions:\\n\\n* **Verified customers**: Customers who can log in on the portal and see the tickets that they have created.\\n* **Customer admins**: Customers who can log in on the portal and see not just their own", + "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-15716_KNOWLEDGE_NODE-30", - "text": "further investigation.\\n\\nSetting up a custom domain for my support portal\\n\\nThis can be handled by our team. Kindly reach out to us, and we\\xe2\\x80\\x99ll be happy to assist you with setting up a custom domain. Would you like us to create a ticket for this?\\n\\nAdding custom job title in dev users\\n\\nThis can be handled by our team. Kindly reach out to us, and we\\xe2\\x80\\x99ll be happy to assist you with setting up a custom job title. Would you like us to create a ticket for this?\\n\\nApplying", - "title": "Support queries related playbook" + "id": "ART-1978_KNOWLEDGE_NODE-0", + "text": "b\"Customer portal | Computer for Support Teams | DevRev\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nSearch\\n\\n`CTRL`\\xc2\\xa0+\\xc2\\xa0`K`\\n\\n* [Introduction](/docs)\\n* [Computer by DevRev](/docs/intro)\\n\\n + [Core concepts](/docs/product/core)\\n + [Apps](/docs/product/apps)\\n +", + "title": "Customer portal | Computer for Support Teams | DevRev" }, { "id": "ART-1547_KNOWLEDGE_NODE-519", @@ -4570,24 +4580,14 @@ "title": "Get Post (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1562_KNOWLEDGE_NODE-519", + "id": "ART-1543_KNOWLEDGE_NODE-517", "text": "Optional\\n\\nFilters for works with selected sync statuses.\\n\\nAllowed values: failed succeeded\\nsync_metadata.last_sync_out.sync_unit string Optional\\n\\nFilters for works modified with selected sync units.\\n\\nsync_metadata.origin_system string Optional\\n\\nFilters for issues synced from this specific origin system.\\n\\ntags string Optional\\n\\nFilters for work with any of the provided tags.\\n\\nticket.channels enum Optional\\n\\nFilters for tickets with any of the provided channels.\\n\\nAllowed", - "title": "Get (Beta) \u2014 DevRev | Docs" - }, - { - "id": "ART-1036_KNOWLEDGE_NODE-4", - "text": "- Expanding support beyond email and customer portal to integrate directly with their product\\n2. **Gathering more user context** - Improving access to in-app user behavior to enable more effective issue resolution\\n3. **Connecting teams** - Bringing support and product teams closer together to accelerate response times and feature development\\n\\nThe solution: DevRev support and conversational product management through", - "title": "Shipsy elevates logistics support with AI-powered automation and cross team collaboration" + "title": "Metric Definitions List Post (Beta) \u2014 DevRev | Docs" }, { - "id": "ART-1564_KNOWLEDGE_NODE-518", + "id": "ART-1562_KNOWLEDGE_NODE-519", "text": "Optional\\n\\nFilters for works with selected sync statuses.\\n\\nAllowed values: failed succeeded\\nsync_metadata.last_sync_out.sync_unit string Optional\\n\\nFilters for works modified with selected sync units.\\n\\nsync_metadata.origin_system string Optional\\n\\nFilters for issues synced from this specific origin system.\\n\\ntags string Optional\\n\\nFilters for work with any of the provided tags.\\n\\nticket.channels enum Optional\\n\\nFilters for tickets with any of the provided channels.\\n\\nAllowed", - "title": "List (Beta) \u2014 DevRev | Docs" - }, - { - "id": "ART-4159_KNOWLEDGE_NODE-8", - "text": "with no human intervention.\\n\\n50%\\n\\nreduction in customer support costs.\\n\\n10\\n\\nhours saved per employee, every week.\\n\\n![]()\\n\\n![]()\\n\\n![]()\\n\\n![]()\\n\\n![]()\\n\\n![]()\\n\\n![]()\\n\\nBe the first to try Computer\\n\\nYou read all the way down here, so don\\xe2\\x80\\x99t try telling us you\\xe2\\x80\\x99re not interested. Sign up for the waitlist. Then never look back.\\n\\nSIGN UP\\n\\nNews\\n\\n[![]()\\n\\nBlog\\n\\nSep 09, 2025\\n\\nThe conversational computer: towards human", - "title": "Meet Computer, by DevRev. Your new AI teammate." + "title": "Get (Beta) \u2014 DevRev | Docs" } ] }, @@ -4596,34 +4596,29 @@ "query": "unable to convert conversation into ticket and can't fill customer information", "retrievals": [ { - "id": "ART-4271_KNOWLEDGE_NODE-29", - "text": "end user.\\n\\n## Why you should convert a Conversation to a Ticket\\n\\nConsider converting a conversation to a ticket in these scenarios:\\n\\n * **Complex issues** : When a customer inquiry requires in-depth investigation that can't be resolved in a quick conversation.\\n * **Cross-team collaboration** : Issues requiring input from multiple departments or specialists.\\n * **Escalation needs** : When a conversation needs to be escalated to a higher support tier.\\n * **Feature requests** :", - "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" + "id": "ART-6174_KNOWLEDGE_NODE-28", + "text": "tickets\\n--------------------------------\\n\\n**Manual conversion**\\n\\nGo to the conversation record pane and select **Convert to Ticket** to create a new ticket from the conversation.\\n\\n![]()\\n\\n**Automated conversion via workflows**\\n\\nSet up automated [workflows](./workflow-engine) to convert conversations to tickets based on specific triggers:\\n\\n* When a conversation meets defined criteria\\n* When the AI agent identifies an issue requiring escalation\\n* According to custom business", + "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" }, { - "id": "ART-4271_KNOWLEDGE_NODE-33", - "text": "remains archived.\\n\\n[PreviousConversations](/docs/product/conversation)[NextTickets](/docs/product/tickets)\\n\\n#### On this page\\n\\n * How Conversation conversion works\\n * How to convert Conversations to Tickets\\n * End user experience\\n * PLuG widget experience\\n * Slack experience\\n * Why you should convert a Conversation to a Ticket\\n * Key information\\n\\n[Enterprise grade security to protect customer dataLearn more about it.](/blog/soc-compliance?)\\n\\nProduct\\n\\n *", + "id": "ART-4271_KNOWLEDGE_NODE-24", + "text": "[Support](/docs/product/support?)\\n 4. [Conversations](/docs/product/conversation?)\\n 5. [Convert Conversations to Tickets](/docs/product/Conversation-Tickets?)\\n\\n# Convert Conversations to Tickets\\n\\nYou can now convert conversations from PLuG and Slack directly into tickets. Previously, conversations were only linked to tickets. This update streamlines workflows and enhances the customer experience.\\n\\nFor conversations originating from PLuG or Slack, the **Link to Ticket** functionality", "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" }, { - "id": "ART-2024_KNOWLEDGE_NODE-27", - "text": "help now... ask again in 5d\\n\\nSample response:\\n\\n> I am unable to assist you at the moment, however please reach out to me again in five days and I will be happy to help you.\\n\\n### Summarize\\n\\nUsing the summarize command, you can sum up the entire conversation. It applies to the following:\\n\\n* Conversation\\n* Tickets\\n* Issues\\n* Part\\n* Workspace\\n* Customer\\n* Account\\n\\nSample response:\\n\\n> **Summary:**\\n>\\n> * Rahul from DummyOrg is having difficulty installing the Plug Widget.\\n> *", - "title": "Slash commands | Automate | Snap-ins | DevRev" - }, - { - "id": "ART-4271_KNOWLEDGE_NODE-24", - "text": "[Support](/docs/product/support?)\\n 4. [Conversations](/docs/product/conversation?)\\n 5. [Convert Conversations to Tickets](/docs/product/Conversation-Tickets?)\\n\\n# Convert Conversations to Tickets\\n\\nYou can now convert conversations from PLuG and Slack directly into tickets. Previously, conversations were only linked to tickets. This update streamlines workflows and enhances the customer experience.\\n\\nFor conversations originating from PLuG or Slack, the **Link to Ticket** functionality", + "id": "ART-4271_KNOWLEDGE_NODE-25", + "text": "is being replaced with a new **Convert to Ticket** feature. This change provides a more seamless transition from conversation to ticket management.\\n\\n## How Conversation conversion works\\n\\nWhen you convert a conversation to a ticket, the following happens automatically:\\n\\n * The original conversation is moved to _Archived_ stage and cannot be reopened.\\n * A new ticket is created with: \\n * All internal discussions and customer messages copied from the conversation.\\n * Preserved", "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" }, { - "id": "ART-1508_KNOWLEDGE_NODE-27", - "text": "for tickets that are associated with any of the brands.\\n\\nchannelslist of stringsOptional\\n\\nFilters for conversations that are associated with any of the\\nchannels.\\n\\ncustom\\\\_fieldsobjectOptional\\n\\nFilters for custom fields.\\n\\nfirstintegerOptional\\n\\nThe number of conversation items to return. The default is \\'50\\', the\\nmaximum is \\'5000\\'.\\n\\ngrouplist of stringsOptional\\n\\nFilters for conversation that belong to the given groups.\\n\\nis\\\\_creator\\\\_verifiedbooleanOptional\\n\\nFilters for", - "title": "Export Conversations | DevRev | Docs" + "id": "ART-4271_KNOWLEDGE_NODE-26", + "text": "conversation metadata including: \\n * Source channel\\n * Customer account information\\n * External members added as **reported by** on the ticket\\n * An AI-generated ticket title and description based on customer messages.\\n\\n### How to convert Conversations to Tickets\\n\\n**Manual Conversion**\\n\\nTo manually convert a conversation to a ticket:\\n\\n 1. Open the conversation record pane view.\\n 2. Click **Convert to Ticket** to initiate the conversion.\\n\\n**Automated Conversion", + "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" }, { - "id": "ART-6174_KNOWLEDGE_NODE-28", - "text": "tickets\\n--------------------------------\\n\\n**Manual conversion**\\n\\nGo to the conversation record pane and select **Convert to Ticket** to create a new ticket from the conversation.\\n\\n![]()\\n\\n**Automated conversion via workflows**\\n\\nSet up automated [workflows](./workflow-engine) to convert conversations to tickets based on specific triggers:\\n\\n* When a conversation meets defined criteria\\n* When the AI agent identifies an issue requiring escalation\\n* According to custom business", - "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" + "id": "ART-15716_KNOWLEDGE_NODE-7", + "text": "Tickets from Chat ConversationsYes, you can create a ticket from a conversation without leaving the chat. Some fields may be prefilled from the conversation.\\n\\nDetails:\\xc2\\xa0[Conv \\xe2\\x86\\x92 Ticket Creation](https://devrev.ai/docs/product/conversation-ticket)\\n\\n5. Viewing Ticket Activity to Avoid Duplicate Responses\\n\\nCurrently, there\\xe2\\x80\\x99s no direct feature to see who is viewing a ticket in real time. But, we can see if someone is typing on a ticket.\\n\\n6. Generating AI Summaries", + "title": "Support queries related playbook" }, { "id": "ART-6174_KNOWLEDGE_NODE-0", @@ -4631,19 +4626,24 @@ "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" }, { - "id": "ART-4271_KNOWLEDGE_NODE-23", - "text": "22 to May 22, 2023](/docs/changelog/_2023-05-22?)\\n\\n * [Developer](https://developer.devrev.ai/?)\\n * [DevRevU](/docs/DevRevU?)\\n\\n * [Product demos](/docs/DevRevU/demos?)\\n\\nOn this page\\n\\n * How Conversation conversion works\\n * How to convert Conversations to Tickets\\n * End user experience\\n * PLuG widget experience\\n * Slack experience\\n * Why you should convert a Conversation to a Ticket\\n * Key information\\n\\n 1. [Documentation](/docs?)\\n 2. 3.", - "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" + "id": "ART-2024_KNOWLEDGE_NODE-27", + "text": "help now... ask again in 5d\\n\\nSample response:\\n\\n> I am unable to assist you at the moment, however please reach out to me again in five days and I will be happy to help you.\\n\\n### Summarize\\n\\nUsing the summarize command, you can sum up the entire conversation. It applies to the following:\\n\\n* Conversation\\n* Tickets\\n* Issues\\n* Part\\n* Workspace\\n* Customer\\n* Account\\n\\nSample response:\\n\\n> **Summary:**\\n>\\n> * Rahul from DummyOrg is having difficulty installing the Plug Widget.\\n> *", + "title": "Slash commands | Automate | Snap-ins | DevRev" }, { - "id": "ART-1981_KNOWLEDGE_NODE-26", - "text": "a small number of tags to help categorize tickets. For example, at DevRev we have the following: bug, feature-request, other-request, question, and incident.\\n* Designate one or more customer experience engineers to be on call. Add them to the **Support** group inside **Settings > Groups** and as default owner in the **Support Routing** snap-in. Default owners are notified through email and the DevRev app as soon as a new conversation is started.\\n\\nMonitor the inbox\\n-----------------\\n\\n*", - "title": "Support best practices | Computer for Support Teams | DevRev" + "id": "ART-4271_KNOWLEDGE_NODE-27", + "text": "via Workflows**\\n\\nSet up automated workflows to convert conversations to tickets based on specific triggers:\\n\\n * When a conversation is updated with certain criteria\\n * When your AI agent identifies an issue requiring escalation\\n * According to your custom business rules\\n\\nWorkflows enable seamless handovers from automated conversations to your support teams when necessary.\\n\\n## End user experience\\n\\n### PLuG widget experience\\n\\nWhen a conversation is converted to a ticket in the", + "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" }, { - "id": "ART-4271_KNOWLEDGE_NODE-26", - "text": "conversation metadata including: \\n * Source channel\\n * Customer account information\\n * External members added as **reported by** on the ticket\\n * An AI-generated ticket title and description based on customer messages.\\n\\n### How to convert Conversations to Tickets\\n\\n**Manual Conversion**\\n\\nTo manually convert a conversation to a ticket:\\n\\n 1. Open the conversation record pane view.\\n 2. Click **Convert to Ticket** to initiate the conversion.\\n\\n**Automated Conversion", + "id": "ART-4271_KNOWLEDGE_NODE-29", + "text": "end user.\\n\\n## Why you should convert a Conversation to a Ticket\\n\\nConsider converting a conversation to a ticket in these scenarios:\\n\\n * **Complex issues** : When a customer inquiry requires in-depth investigation that can't be resolved in a quick conversation.\\n * **Cross-team collaboration** : Issues requiring input from multiple departments or specialists.\\n * **Escalation needs** : When a conversation needs to be escalated to a higher support tier.\\n * **Feature requests** :", "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" + }, + { + "id": "ART-2035_KNOWLEDGE_NODE-38", + "text": "recommended if you already have a conversation in progress. Configure the snap-in to send or not send a ticket summary card to the Slack thread using the **Notify on conversation to ticket conversion** setting. Regardless, the Slack thread will sync with the new ticket instead of the ongoing conversation.\\n\\n![]()\\n\\nSlack does not support slash commands in threads.\\n\\nChoosing one of the first two options will open a pop-up modal with the new ticket form. Complete the required fields; some", + "title": "Slack | Integrate | Snap-ins | DevRev" } ] }, @@ -4656,106 +4656,106 @@ "text": "**Configure** > **Notification Sender Email Address** and select the required option.\\n\\nReply to the customer on a conversation\\n---------------------------------------\\n\\n* **Trigger**: When a reply is made to a customer on a conversation and they are not online anymore.\\n* **Action**: The system sends out a notification to the customer with the recent messages while highlighting the latest message that triggered the email.\\n* **Sender**: {Sender\\\\_Name}", "title": "Customer email notifications | Computer by DevRev | DevRev" }, + { + "id": "ART-2015_KNOWLEDGE_NODE-29", + "text": "the user during OTP collection.\\n * Customize the message that is shown to the user on successful verification\\n of email.\\n * You can trigger this either for all new conversations from an unverified\\n user or when Computer is unable to deflect a conversation.\\n\\n + To activate the automation for every new conversation, toggle on **Send\\n on Create**.\\n + If you prefer the automation to only be triggered when Computer is unable\\n to deflect a conversation, make", + "title": "Descope identity validation | Automate | Snap-ins | DevRev" + }, { "id": "ART-1953_KNOWLEDGE_NODE-27", "text": "conversation, ensuring seamless and continuous communication.\\n\\nBy default, notifications are sent from [notifications@devrev.ai](mailto:notifications@devrev.ai). However, this setting can be overridden to use the organization\\xe2\\x80\\x99s primary email address as the sender, or notifications can be turned off entirely.\\n\\nTo configure the notifications setting, under [**Settings** > **Snap-ins** > **Email Integration**](https://app.devrev.ai/devrev/settings/snap-ins/email-with-tickets), go to", "title": "Customer email notifications | Computer by DevRev | DevRev" }, - { - "id": "ART-1983_KNOWLEDGE_NODE-30", - "text": "creation, go to **Settings** > **Turing** > **Q&As** > **Preferences** on the top right and enable **Auto generate Q&As** and click **Save**.\\n\\n![]()\\n\\nYou need to be an admin to set preferences.\\n\\n![]()\\n\\nWhen Computer creates a new Q&A, the conversation's owner receives a notification. It's their chance to ensure accuracy before deciding whether to *Publish* them if needed or *Archive* if not.\\n\\nOnce approved and published, these Q&As enter Computer's knowledge base, ready to tackle", - "title": "Questions & answers | Computer for Support Teams | DevRev" - }, - { - "id": "ART-1954_KNOWLEDGE_NODE-24", - "text": "triaging](#filters-and-tools-for-triaging)\\n* [Notification priorities and channels](#notification-priorities-and-channels)\\n* [Email and push notifications](#email-and-push-notifications)\\n* [Personalizing notifications](#personalizing-notifications)\\n* [Collision and prioritization](#collision-and-prioritization)\\n* [Follow conversations](#follow-conversations)\\n* [Daily email digest](#daily-email-digest)\\n\\n1. [Documentation](/docs)\\n3. [Computer by", - "title": "Updates | Computer by DevRev | DevRev" - }, - { - "id": "ART-1790_KNOWLEDGE_NODE-83", - "text": "object.\\nnotifications list of objects Required\\nThe list of notifications to send.\\nShow variant\\nResponse.\\n\\nThis endpoint returns a map from strings to any.\\nAPI Reference conversations Create.\\n\\nPOST https:// api.devrev.ai / conversations.create\\nCreates a conversation.\\nRequest.\\n\\nThis endpoint expects an object.\\ntype \"support\" Required\\ndescription string Optional\\nDescription for the conversation.\\ngroup string Optional\\nThe group that the conversation is associated with.\\nis_spam", - "title": "List Post \u2014 DevRev | Docs" - }, - { - "id": "ART-1954_KNOWLEDGE_NODE-29", - "text": "notifications.\\n\\n* Unread vs All: Toggle between **Unread** and **All** updates, with **Unread** as the default to achieve inbox zero.\\n* Subscription management: Unsubscribe using the bell icon on hover if a specific record is no longer relevant.\\n* Mark as read: Use the check mark icon on hover to mark notifications as read.\\n* Filters: Filter notifications by record type (such as ticket or Issue), notification type (mentions, comments, assignments, etc.), or notified by (select from your", - "title": "Updates | Computer by DevRev | DevRev" - }, - { - "id": "ART-1301_KNOWLEDGE_NODE-88", - "text": "Required\\nThe list of notifications to send.\\nShow variant\\nResponse.\\n\\nThis endpoint returns a map from strings to any.\\nAPI Reference conversations Create.\\n\\nPOST https:// api.devrev.ai / conversations.create\\nCreates a conversation.\\nRequest.\\n\\nThis endpoint expects an object.\\ntype \"support\" Required\\ndescription string Optional\\nDescription for the conversation.\\ngroup string Optional\\nThe group that the conversation is associated with.\\nis_spam boolean Optional\\nWhether the", - "title": "Delete \u2014 DevRev | Docs" - }, { "id": "ART-3068_KNOWLEDGE_NODE-24", "text": "[Documentation](/docs)\\n3. [Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[Conversation reminder](/docs/automations/conversation-reminder)\\n\\nConversation reminder\\n=====================\\n\\nThe Conversation Reminder Snap-in is designed to automatically send a\\nnotification to the customer who initiated the conversation if it remains in\\n\"Waiting on User\" stage for an extended period, as defined in the configured\\ntime settings. The notification message sent to the customer can be", "title": "Conversation reminder | Automate | Snap-ins | DevRev" }, + { + "id": "ART-1983_KNOWLEDGE_NODE-30", + "text": "creation, go to **Settings** > **Turing** > **Q&As** > **Preferences** on the top right and enable **Auto generate Q&As** and click **Save**.\\n\\n![]()\\n\\nYou need to be an admin to set preferences.\\n\\n![]()\\n\\nWhen Computer creates a new Q&A, the conversation's owner receives a notification. It's their chance to ensure accuracy before deciding whether to *Publish* them if needed or *Archive* if not.\\n\\nOnce approved and published, these Q&As enter Computer's knowledge base, ready to tackle", + "title": "Questions & answers | Computer for Support Teams | DevRev" + }, { "id": "ART-1953_KNOWLEDGE_NODE-30", "text": "linked to a conversation\\n-------------------------------\\n\\n* **Trigger**: A ticket is linked to an existing conversation.\\n* **Action**: The system sends out a notification with the linked ticket number.\\n* **Sender**: {Company\\\\_Name} [support@yourdomain.com](mailto:support@yourdomain.com)\\n* **Subject**: \"\"\\n\\n![]()\\n\\nThis email is only sent to the organizations with [Convergence snap-in](https://docs.devrev.ai/automations/converge)\\n\\nChange of", "title": "Customer email notifications | Computer by DevRev | DevRev" }, { - "id": "ART-1302_KNOWLEDGE_NODE-88", - "text": "Required\\nThe list of notifications to send.\\nShow variant\\nResponse.\\n\\nThis endpoint returns a map from strings to any.\\nAPI Reference conversations Create.\\n\\nPOST https:// api.devrev.ai / conversations.create\\nCreates a conversation.\\nRequest.\\n\\nThis endpoint expects an object.\\ntype \"support\" Required\\ndescription string Optional\\nDescription for the conversation.\\ngroup string Optional\\nThe group that the conversation is associated with.\\nis_spam boolean Optional\\nWhether the", - "title": "Export \u2014 DevRev | Docs" - } - ] - }, - { - "query_id": "0356839f-87ec-43ff-9844-4c0e5e5ba032", - "query": "create mandatory field time log spent on a ticket", - "retrievals": [ + "id": "ART-2035_KNOWLEDGE_NODE-36", + "text": "Slack Channel ID in the **Channel ID to send conversation notifications** snap-in configuration as the target to post notifications.\\n\\n* Any new message within tickets in the customer messages panel is also subjected to the same automation.\\n* To prevent notification overload, each conversation or ticket is subject to a five minute cooldown period between notifications. Multiple consecutive messages within this window will not trigger additional notifications.\\n* Notification threads are not", + "title": "Slack | Integrate | Snap-ins | DevRev" + }, { - "id": "ART-2028_KNOWLEDGE_NODE-24", - "text": "[Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[Work duration](/docs/automations/work-duration)\\n\\nWork duration\\n=============\\n\\n[Work duration](/marketplace/work-duration) offers the ability\\nto track how much work issues and tickets took to complete, measured by time\\nspent in work sessions.\\n\\nThe snap-in adds a new attribute to tickets and issues which automatically\\ncalculates the work duration for that item. Work duration is meassured in time\\nspent through work sessions. A work", - "title": "Work duration | Automate | Snap-ins | DevRev" + "id": "ART-1790_KNOWLEDGE_NODE-83", + "text": "object.\\nnotifications list of objects Required\\nThe list of notifications to send.\\nShow variant\\nResponse.\\n\\nThis endpoint returns a map from strings to any.\\nAPI Reference conversations Create.\\n\\nPOST https:// api.devrev.ai / conversations.create\\nCreates a conversation.\\nRequest.\\n\\nThis endpoint expects an object.\\ntype \"support\" Required\\ndescription string Optional\\nDescription for the conversation.\\ngroup string Optional\\nThe group that the conversation is associated with.\\nis_spam", + "title": "List Post \u2014 DevRev | Docs" }, { - "id": "ART-2048_KNOWLEDGE_NODE-30", - "text": "as necessary.\\n\\n If you want ClickUp tasks to become tickets rather than issues, map the task object to Works.Issue.\\n\\n While DevRev attempts to automatically map fields, you may be prompted to manually map indicated fields.\\n\\nThe duration of the import depends on the size of the ClickUp workspace and the\\ndata being imported. It can take seconds for a workspace with only a few dozen\\ntasks to a few hours for a workspace with tens of thousands of\\nitems with many attachments. DevRev", - "title": "ClickUp AirSync | AirSync | Snap-ins | DevRev" + "id": "ART-1954_KNOWLEDGE_NODE-24", + "text": "triaging](#filters-and-tools-for-triaging)\\n* [Notification priorities and channels](#notification-priorities-and-channels)\\n* [Email and push notifications](#email-and-push-notifications)\\n* [Personalizing notifications](#personalizing-notifications)\\n* [Collision and prioritization](#collision-and-prioritization)\\n* [Follow conversations](#follow-conversations)\\n* [Daily email digest](#daily-email-digest)\\n\\n1. [Documentation](/docs)\\n3. [Computer by", + "title": "Updates | Computer by DevRev | DevRev" }, + { + "id": "ART-1954_KNOWLEDGE_NODE-38", + "text": "triaging](#filters-and-tools-for-triaging)\\n* [Notification priorities and channels](#notification-priorities-and-channels)\\n* [Email and push notifications](#email-and-push-notifications)\\n* [Personalizing notifications](#personalizing-notifications)\\n* [Collision and prioritization](#collision-and-prioritization)\\n* [Follow conversations](#follow-conversations)\\n* [Daily email digest](#daily-email-digest)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about", + "title": "Updates | Computer by DevRev | DevRev" + } + ] + }, + { + "query_id": "0356839f-87ec-43ff-9844-4c0e5e5ba032", + "query": "create mandatory field time log spent on a ticket", + "retrievals": [ { "id": "ART-15688_KNOWLEDGE_NODE-29", "text": "system automatically validates:\\n\\n * Date format and range (within last 10 days to next 10 days)\\n * Hours and minutes values\\n * Prevents logging when both hours and minutes are zero\\n3. **Confirmation**: After successful validation, the effort is logged and a confirmation message appears in the timeline.\\n\\nSupported object types\\n----------------------\\n\\nThe Effort logger snap-in works with the following object types:\\n\\n* **Tickets**: Log effort against support tickets, bug reports,", "title": "Effort logger | Automate | Snap-ins | DevRev" }, - { - "id": "ART-1508_KNOWLEDGE_NODE-27", - "text": "for tickets that are associated with any of the brands.\\n\\nchannelslist of stringsOptional\\n\\nFilters for conversations that are associated with any of the\\nchannels.\\n\\ncustom\\\\_fieldsobjectOptional\\n\\nFilters for custom fields.\\n\\nfirstintegerOptional\\n\\nThe number of conversation items to return. The default is \\'50\\', the\\nmaximum is \\'5000\\'.\\n\\ngrouplist of stringsOptional\\n\\nFilters for conversation that belong to the given groups.\\n\\nis\\\\_creator\\\\_verifiedbooleanOptional\\n\\nFilters for", - "title": "Export Conversations | DevRev | Docs" - }, { "id": "ART-2021_KNOWLEDGE_NODE-24", "text": "[Documentation](/docs)\\n3. [Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[Ticket age in engineering](/docs/automations/ticket-age-in-engineering)\\n\\nTicket age in engineering\\n=========================\\n\\n[Ticket age in engineering](/marketplace/ticket-age-in-engineering)\\noffers the ability to track how much time tickets spend on engineering, measured\\nby ticket time spent on engineering stages.\\n\\nThe snap-in adds a new attribute to tickets which automatically calculates the\\ntime", "title": "Ticket age in engineering | Automate | Snap-ins | DevRev" }, + { + "id": "ART-2028_KNOWLEDGE_NODE-24", + "text": "[Snap-ins](/docs/snapins)\\n[Automate](/docs/automate)\\n[Work duration](/docs/automations/work-duration)\\n\\nWork duration\\n=============\\n\\n[Work duration](/marketplace/work-duration) offers the ability\\nto track how much work issues and tickets took to complete, measured by time\\nspent in work sessions.\\n\\nThe snap-in adds a new attribute to tickets and issues which automatically\\ncalculates the work duration for that item. Work duration is meassured in time\\nspent through work sessions. A work", + "title": "Work duration | Automate | Snap-ins | DevRev" + }, + { + "id": "ART-1275_KNOWLEDGE_NODE-7", + "text": "account\\xe2\\x80\\x99s display name to better reflect the\\nsnap-in\\xe2\\x80\\x99s behavior.\\n\\nmanifest.yaml\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | version: \"2\" |\\n| 2 | |\\n| 3 | name: \"Timely Ticketer\" |\\n| 4 | description: \"Snap-in to create ticket every 10 minutes\" |\\n| 5 | |\\n| 6 | service_account: |\\n| 7 | display_name: Automatic Ticket Creator Bot |\\n```\\n\\nNext, update the `event_sources` section to use the `timer-events` event source.\\nThe `timer-events` source type takes a `config` of", + "title": "Using a snap-in to perform a DevRev action | DevRev | Docs" + }, { "id": "ART-12391_KNOWLEDGE_NODE-27", "text": "workflow.\\n\\nNow, your workflow runs whenever a conversation or a ticket gets created and it\\nassigns it to an AI agent, which handles the conversation. No brittle rules.\\n\\nFind below a detailed explanation of all the fields needed to configure in the\\n\"Talk to Agent\" Step\\n\\n| Parameter | Type | Description |\\n| --- | --- | --- |\\n| agent | String | ID of the AI agent to use. Use the dropdown to select one. |\\n| object | String | ID of the conversation or ticket where the agent operate.s |\\n|", "title": "Conversational workflows | Workflows | Computer by DevRev | DevRev" }, { - "id": "ART-15664_KNOWLEDGE_NODE-13", - "text": "\\n\\nYou may want to restrict links to specific subtypes of objects. For example, only allowing issues\\nof a particular subtype to be linked to tickets.\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/link-types.custom.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"name\": \"Link between social media issues and tickets\", |\\n| > | \"source_types\": [ |\\n| > | { |\\n|", - "title": "Links | DevRev | Docs" + "id": "ART-2012_KNOWLEDGE_NODE-26", + "text": "customer knows why a new ticket was created. The following fields are automatically set on the follow-up ticket based on the archived ticket:\\n\\n * **Title**\\n * **Customer**\\n * **Reported By**\\n * **Tag** is_followup In addition, the tag has_followup is added to the archived ticket.\\n\\nIf the customer responds to a ticket in the terminal stage for the second time, their message will be added to that ticket and the **Needs response** toggle will be enabled. However, no follow-up tickets", + "title": "Follow-up ticket | Automate | Snap-ins | DevRev" + }, + { + "id": "ART-1508_KNOWLEDGE_NODE-27", + "text": "for tickets that are associated with any of the brands.\\n\\nchannelslist of stringsOptional\\n\\nFilters for conversations that are associated with any of the\\nchannels.\\n\\ncustom\\\\_fieldsobjectOptional\\n\\nFilters for custom fields.\\n\\nfirstintegerOptional\\n\\nThe number of conversation items to return. The default is \\'50\\', the\\nmaximum is \\'5000\\'.\\n\\ngrouplist of stringsOptional\\n\\nFilters for conversation that belong to the given groups.\\n\\nis\\\\_creator\\\\_verifiedbooleanOptional\\n\\nFilters for", + "title": "Export Conversations | DevRev | Docs" }, { - "id": "ART-6174_KNOWLEDGE_NODE-14", + "id": "ART-6176_KNOWLEDGE_NODE-14", "text": "migrator](/docs/automations/ticket-issue-field-migrator)\\n - [Ticket Immutability](/docs/automations/ticket-immutability)\\n - [Ticket email notifier](/docs/automations/ticket-email-notifier)\\n - [Task tracker](/docs/automations/task-tracker)\\n - [Ticket Tagger](/docs/automations/ticket-tagger)\\n - [Tracxn sync](/docs/automations/tracxn-sync)\\n - [User group validator](/docs/automations/user-group-validator)\\n - [Work duration](/docs/automations/work-duration)\\n -", - "title": "Conversation to ticket conversion | Conversations | Computer for Support Teams | DevRev" + "title": "Real-time sentiment evaluator | Automate | Snap-ins | DevRev" }, { - "id": "ART-1968_KNOWLEDGE_NODE-14", + "id": "ART-2575_KNOWLEDGE_NODE-14", "text": "migrator](/docs/automations/ticket-issue-field-migrator)\\n - [Ticket Immutability](/docs/automations/ticket-immutability)\\n - [Ticket email notifier](/docs/automations/ticket-email-notifier)\\n - [Task tracker](/docs/automations/task-tracker)\\n - [Ticket Tagger](/docs/automations/ticket-tagger)\\n - [Tracxn sync](/docs/automations/tracxn-sync)\\n - [User group validator](/docs/automations/user-group-validator)\\n - [Work duration](/docs/automations/work-duration)\\n -", - "title": "Conversation insights | Support analytics | Computer for Support Teams | DevRev" + "title": "Account and contact import | Computer for Growth Teams | DevRev" }, { - "id": "ART-1275_KNOWLEDGE_NODE-7", - "text": "account\\xe2\\x80\\x99s display name to better reflect the\\nsnap-in\\xe2\\x80\\x99s behavior.\\n\\nmanifest.yaml\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | version: \"2\" |\\n| 2 | |\\n| 3 | name: \"Timely Ticketer\" |\\n| 4 | description: \"Snap-in to create ticket every 10 minutes\" |\\n| 5 | |\\n| 6 | service_account: |\\n| 7 | display_name: Automatic Ticket Creator Bot |\\n```\\n\\nNext, update the `event_sources` section to use the `timer-events` event source.\\nThe `timer-events` source type takes a `config` of", - "title": "Using a snap-in to perform a DevRev action | DevRev | Docs" + "id": "ART-4186_KNOWLEDGE_NODE-14", + "text": "migrator](/docs/automations/ticket-issue-field-migrator)\\n - [Ticket Immutability](/docs/automations/ticket-immutability)\\n - [Ticket email notifier](/docs/automations/ticket-email-notifier)\\n - [Task tracker](/docs/automations/task-tracker)\\n - [Ticket Tagger](/docs/automations/ticket-tagger)\\n - [Tracxn sync](/docs/automations/tracxn-sync)\\n - [User group validator](/docs/automations/user-group-validator)\\n - [Work duration](/docs/automations/work-duration)\\n -", + "title": "Computer for User Insights | Session analytics | Computer for Your Customers | DevRev" } ] }, @@ -4763,25 +4763,15 @@ "query_id": "688b4c65-6882-4450-9a0a-ab28df4fd6e7", "query": "Just-in-time (JIT) provisioning for dynamic access", "retrievals": [ - { - "id": "ART-1978_KNOWLEDGE_NODE-41", - "text": "If no such contact is found, JIT provisioning automatically creates a user account, allowing immediate access to the portal. This means users can sign up and log in without manual contact creation within the app.\\n* **Existing contacts without mapped accounts**: If a user is already a contact within the app but does not have a mapped account, they can still log in and create a ticket. In this scenario, the login is performed under the default workspace assigned to the contact.\\n* **Account", - "title": "Customer portal | Computer for Support Teams | DevRev" - }, { "id": "ART-1978_KNOWLEDGE_NODE-40", "text": " portion is based on your company name.\\n\\nIf you want to host your customer portal on a custom domain, please contact our support team.\\n\\nJust-in-time access to the customer portal\\n------------------------------------------\\n\\nDevRev offers just-in-time (JIT) provisioning to streamline login processes by automatically handling user account management.\\n\\n* **Automatic account creation**: When a user logs in, the system verifies if the user exists as a contact within an account.", "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-17222_KNOWLEDGE_NODE-3", - "text": "external system and facilitate HTTP calls to the external system. Both loading functions must manage rate limiting for the external system and handle errors. The `create` and `update` functions should return an `id` of the record in the external system and optionally also `modifiedDate`. If a record cannot be created or updated, they indicate the rate-limiting offset or errors.\\n\\n##### \\n\\nThe snap-in must always emit a single message.\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 |", - "title": "Load data | DevRev | Docs" - }, - { - "id": "ART-1786_KNOWLEDGE_NODE-53", - "text": "provisioned and/or issue a Rev session token.\\nShow 9 properties\\nscope string Optional\\nThe requested set of scopes associated with the issued token. A space-delimited list of values in which the order of values does not matter.\\nsubject_token string Optional\\nRepresents the entity that requests the token. Not required when requesting an application access token (AAT).\\nsubject_token_type enum Optional\\nThe type of the subject token.\\nShow 9 enum values\\ntoken_hint string Optional\\nA hint that", - "title": "Delete \u2014 DevRev | Docs" + "id": "ART-1978_KNOWLEDGE_NODE-41", + "text": "If no such contact is found, JIT provisioning automatically creates a user account, allowing immediate access to the portal. This means users can sign up and log in without manual contact creation within the app.\\n* **Existing contacts without mapped accounts**: If a user is already a contact within the app but does not have a mapped account, they can still log in and create a ticket. In this scenario, the login is performed under the default workspace assigned to the contact.\\n* **Account", + "title": "Customer portal | Computer for Support Teams | DevRev" }, { "id": "ART-4022_KNOWLEDGE_NODE-25", @@ -4789,29 +4779,39 @@ "title": "CSV work item uploader | Automate | Snap-ins | DevRev" }, { - "id": "ART-1549_KNOWLEDGE_NODE-316", - "text": "evaluation_period \" : \" monthly \" , 14 \" modified_date \" : \" 2023-01-01T12:00:00Z \" , 15 \" policies \" : [ 16 { 17 \" key \" : \" value \" 18 } 19 ] , 20 \" sla_type \" : \" external \" 21 } 22 ] , 23 \" next_cursor \" : \" next_cursor \" , 24 \" prev_cursor \" : \" prev_cursor \" 25 }\\nAPI Reference slas Transition.\\n\\nPOST https://api.devrev.ai / slas.transition\\n\\nChanges the status of an SLA.\\n\\nRequest.\\n\\nThis endpoint expects an object.\\nid string Required\\n\\nThe updated SLA.\\n\\nstatus enum", - "title": "List Post (Beta) \u2014 DevRev | Docs" + "id": "ART-16570_KNOWLEDGE_NODE-13", + "text": "and improve, making information access increasingly effortless over time.\\n\\nData-backed transformation\\n--------------------------\\n\\nSince the rollout in June 2025, the data shows clear improvements in operational efficiency:\\n\\n* **+10 hrs saved** every user each week\\n* **~40% faster ticket resolution** when DevRev is used\\n* **Up to 75% faster resolution** in specific cases\\n* **Consistent adoption** across the team through June and July\\n\\nBenefits\\n--------\\n\\nFAME\\'s adoption of", + "title": "FAME transforms information access with AI-powered enterprise search" }, { - "id": "ART-1827_KNOWLEDGE_NODE-53", + "id": "ART-1641_KNOWLEDGE_NODE-53", "text": "provisioned and/or issue a Rev session token.\\nShow 9 properties\\nscope string Optional\\nThe requested set of scopes associated with the issued token. A space-delimited list of values in which the order of values does not matter.\\nsubject_token string Optional\\nRepresents the entity that requests the token. Not required when requesting an application access token (AAT).\\nsubject_token_type enum Optional\\nThe type of the subject token.\\nShow 9 enum values\\ntoken_hint string Optional\\nA hint that", - "title": "Update \u2014 DevRev | Docs" + "title": "Get Post \u2014 DevRev | Docs" }, { - "id": "ART-15419_KNOWLEDGE_NODE-2", - "text": "|\\n| 5 | \"definedness\": \"immutable\", |\\n| 6 | \"is_active\": true, |\\n| 7 | \"next_transition\": \"2023-01-01T12:00:00.000Z\" |\\n| 8 | } |\\n| 9 | ] |\\n| 10 | } |\\n```\\n\\nEvaluates an organization\\'s schedule at specified instants.\\n\\n### Headers\\n\\nAuthorizationstringRequired\\n\\nBearer authentication of the form `Bearer `, where token is your auth token.\\n\\n### Request\\n\\nThis endpoint expects an object.\\n\\nidstringRequired`format: \"id\"`\\n\\nOrganization schedule ID.\\n\\ninstantslist of", - "title": "Evaluate Org Schedules (POST) | DevRev | Docs" + "id": "ART-1802_KNOWLEDGE_NODE-53", + "text": "provisioned and/or issue a Rev session token.\\nShow 9 properties\\nscope string Optional\\nThe requested set of scopes associated with the issued token. A space-delimited list of values in which the order of values does not matter.\\nsubject_token string Optional\\nRepresents the entity that requests the token. Not required when requesting an application access token (AAT).\\nsubject_token_type enum Optional\\nThe type of the subject token.\\nShow 9 enum values\\ntoken_hint string Optional\\nA hint that", + "title": "Get Post \u2014 DevRev | Docs" }, { - "id": "ART-1639_KNOWLEDGE_NODE-53", + "id": "ART-1650_KNOWLEDGE_NODE-53", "text": "provisioned and/or issue a Rev session token.\\nShow 9 properties\\nscope string Optional\\nThe requested set of scopes associated with the issued token. A space-delimited list of values in which the order of values does not matter.\\nsubject_token string Optional\\nRepresents the entity that requests the token. Not required when requesting an application access token (AAT).\\nsubject_token_type enum Optional\\nThe type of the subject token.\\nShow 9 enum values\\ntoken_hint string Optional\\nA hint that", - "title": "Export Post \u2014 DevRev | Docs" + "title": "List Post \u2014 DevRev | Docs" }, { - "id": "ART-2818_KNOWLEDGE_NODE-26", - "text": "snap-in**.\\n\\nOnce installation completes, the operational SLA metrics are available on ticket\\nand conversation SLA policies.\\n\\n[PreviousWork duration](/docs/automations/work-duration)[NextCustom field migration](/docs/automations/custom-field-migration)\\n\\n#### On this page\\n\\n* [Installation](#installation)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer", - "title": "Operational SLA Metrics | Automate | Snap-ins | DevRev" + "id": "ART-1607_KNOWLEDGE_NODE-53", + "text": "provisioned and/or issue a Rev session token.\\nShow 9 properties\\nscope string Optional\\nThe requested set of scopes associated with the issued token. A space-delimited list of values in which the order of values does not matter.\\nsubject_token string Optional\\nRepresents the entity that requests the token. Not required when requesting an application access token (AAT).\\nsubject_token_type enum Optional\\nThe type of the subject token.\\nShow 9 enum values\\ntoken_hint string Optional\\nA hint that", + "title": "Get Post \u2014 DevRev | Docs" + }, + { + "id": "ART-1835_KNOWLEDGE_NODE-53", + "text": "provisioned and/or issue a Rev session token.\\nShow 9 properties\\nscope string Optional\\nThe requested set of scopes associated with the issued token. A space-delimited list of values in which the order of values does not matter.\\nsubject_token string Optional\\nRepresents the entity that requests the token. Not required when requesting an application access token (AAT).\\nsubject_token_type enum Optional\\nThe type of the subject token.\\nShow 9 enum values\\ntoken_hint string Optional\\nA hint that", + "title": "List \u2014 DevRev | Docs" + }, + { + "id": "ART-1597_KNOWLEDGE_NODE-53", + "text": "provisioned and/or issue a Rev session token.\\nShow 9 properties\\nscope string Optional\\nThe requested set of scopes associated with the issued token. A space-delimited list of values in which the order of values does not matter.\\nsubject_token string Optional\\nRepresents the entity that requests the token. Not required when requesting an application access token (AAT).\\nsubject_token_type enum Optional\\nThe type of the subject token.\\nShow 9 enum values\\ntoken_hint string Optional\\nA hint that", + "title": "Update \u2014 DevRev | Docs" } ] }, @@ -4825,49 +4825,49 @@ "title": "Computer General FAQs" }, { - "id": "ART-4955_KNOWLEDGE_NODE-4", - "text": "these insights, you can quickly analyze user sessions over a period of up to 30 days.\\n\\nAdditionally, our drill-through capabilities allow you to go from high-level metrics directly to session replays, enabling a more granular data exploration and understanding of specific user interactions.\\n\\nRecent Sessions on Support Conversations and Tickets\\n\\nYou can access recent user sessions directly within support conversations and tickets. When a user raises a support request, their latest recorded", - "title": "Transitioning to the New PLuG Sessions Experience" - }, - { - "id": "ART-1978_KNOWLEDGE_NODE-31", - "text": "only.\\n\\nThe customer portal is SEO-compatible, enhancing its discoverability so end customers can find answers directly through search engines, even before contacting support.\\n\\nKey highlights:\\n\\n* Search engine indexing - Public articles are discoverable by search engines like Google.\\n* Meta tags - The article title is used as the title tag, and the article description serves as the meta description for the article.\\n\\nGet started\\n-----------\\n\\n* Your customer portal is by default hosted", - "title": "Customer portal | Computer for Support Teams | DevRev" - }, - { - "id": "ART-2012_KNOWLEDGE_NODE-4", - "text": "Analytics](/docs/dashboards/ticket-sla-analytics?)\\n * [Ticket-Team Performance](/docs/dashboards/ticket-team-performance?)\\n\\n * [Conversations](/docs/product/conversation?)\\n\\n * [Convert Conversations to Tickets](/docs/product/Conversation-Tickets?)\\n\\n * [Tickets](/docs/product/tickets?)\\n * [Routing](/docs/product/routing?)\\n * [Support best practices](/docs/product/support-bp?)\\n * [Customer portal](/docs/product/support-portal?)\\n * [Questions &", - "title": "Follow-up ticket | Automate | Snap-ins | DevRev" + "id": "ART-15688_KNOWLEDGE_NODE-30", + "text": "and feature requests\\n* **Conversations**: Track time spent on customer conversations and discussions\\n\\n[PreviousDescope identity validation](/docs/automations/descope-identity-validation)[NextHTTP archive file upload & sanitization](/docs/automations/har-sanitization)\\n\\n#### On this page\\n\\n* [Installation](#installation)\\n* [Configuration](#configuration)\\n* [Features](#features)\\n* [How to use](#how-to-use)\\n* [Supported object types](#supported-object-types)\\n\\n[Enterprise grade security", + "title": "Effort logger | Automate | Snap-ins | DevRev" }, { "id": "ART-1978_KNOWLEDGE_NODE-32", "text": "on the following URL: support.devrev.ai/.\\n* Your customers can log in on the portal by entering their registered email address and OTP sent to that email address.\\n\\n![]()\\n\\n### Customer roles and permissions\\n\\nThe customer portal has two levels of customer roles and permissions:\\n\\n* **Verified customers**: Customers who can log in on the portal and see the tickets that they have created.\\n* **Customer admins**: Customers who can log in on the portal and see not just their own", "title": "Customer portal | Computer for Support Teams | DevRev" }, + { + "id": "ART-2050_KNOWLEDGE_NODE-27", + "text": "[methods](https://developer.devrev.ai/public/sdks/web/methods) providing the framework for customer support interactions.\\n\\n### \\xf0\\x9f\\x8e\\x9e\\xef\\xb8\\x8f Session recording and analytics\\n\\n[Session analytics](/docs/plug/session-analytics-intro) captures user website interactions through recordings and detailed logging, enabling businesses to visualize behavior patterns, analyze conversion funnels, and optimize user experience through Computer for User Insights.\\n\\n### \\xf0\\x9f\\x93\\x9d", + "title": "Computer for Your Customers | DevRev" + }, { "id": "ART-15716_KNOWLEDGE_NODE-23", "text": "steps, your customer portal will be accessible at the custom domain you\\'ve chosen.Account and Authentication\\n\\nTroubleshooting Sign-Up Issues\\n\\nIf a user can\\xe2\\x80\\x99t sign up:\\n\\nConfirm which signup method they\\xe2\\x80\\x99re using (email, SSO, etc.).\\n\\nCheck if they\\xe2\\x80\\x99re seeing an error message\\xe2\\x80\\x94if so, note the exact wording.\\n\\nCommon blockers include: email already in use, password policy issues, or incomplete form fields.\\n\\nIf the issue persists after retrying,", "title": "Support queries related playbook" }, { - "id": "ART-4966_KNOWLEDGE_NODE-4", - "text": "Analytics](/docs/dashboards/ticket-sla-analytics?)\\n * [Ticket-Team Performance](/docs/dashboards/ticket-team-performance?)\\n\\n * [Conversations](/docs/product/conversation?)\\n\\n * [Convert Conversations to Tickets](/docs/product/Conversation-Tickets?)\\n\\n * [Tickets](/docs/product/tickets?)\\n * [Routing](/docs/product/routing?)\\n * [Support best practices](/docs/product/support-bp?)\\n * [Customer portal](/docs/product/support-portal?)\\n * [Questions &", - "title": "Zoho Projects Airdrop | Airdrop | Snap-ins | DevRev" + "id": "ART-1978_KNOWLEDGE_NODE-40", + "text": " portion is based on your company name.\\n\\nIf you want to host your customer portal on a custom domain, please contact our support team.\\n\\nJust-in-time access to the customer portal\\n------------------------------------------\\n\\nDevRev offers just-in-time (JIT) provisioning to streamline login processes by automatically handling user account management.\\n\\n* **Automatic account creation**: When a user logs in, the system verifies if the user exists as a contact within an account.", + "title": "Customer portal | Computer for Support Teams | DevRev" }, { - "id": "ART-1985_KNOWLEDGE_NODE-38", - "text": "and **Public Portal**.\\n\\n### Share an article\\n\\nOnce you've created an article, you have two options to share it:\\n\\n* Use **Copy external link** to share with your customers, allowing them to access the article directly.\\n* Use **Copy internal link** to share with your internal organizational team members.\\n\\nThe ability to view the article depends on the settings for **Visible to** and **Status** that have been configured.\\n\\n* If you are sharing an external link with non-signed-in", - "title": "Articles | Knowledge Base | Computer for Support Teams | DevRev" + "id": "ART-2665_KNOWLEDGE_NODE-36", + "text": "Insights](/docs/plug/observability)[NextCross-domain session tracking](/docs/plug/cross-domain-session)\\n\\n#### On this page\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer works](/how-computer-works)\\n\\nApps\\n\\n* [For Support Teams](/for-support-teams)\\n* [For Builders](/for-builders)\\n* [For Customers](/for-customers)\\n* [For User Insights](/for-user-insights)\\n*", + "title": "Session recording options | Session analytics | Computer for Your Customers | DevRev" }, { - "id": "ART-4271_KNOWLEDGE_NODE-4", - "text": "Analytics](/docs/dashboards/ticket-sla-analytics?)\\n * [Ticket-Team Performance](/docs/dashboards/ticket-team-performance?)\\n\\n * [Conversations](/docs/product/conversation?)\\n\\n * [Convert Conversations to Tickets](/docs/product/Conversation-Tickets?)\\n\\n * [Tickets](/docs/product/tickets?)\\n * [Routing](/docs/product/routing?)\\n * [Support best practices](/docs/product/support-bp?)\\n * [Customer portal](/docs/product/support-portal?)\\n * [Questions &", - "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" + "id": "ART-1978_KNOWLEDGE_NODE-27", + "text": "portal\\n-------------------------------------\\n\\n* **Enhanced customer experience**: Customers can access self-service options, track their tickets, and receive timely updates, leading to improved satisfaction.\\n* **Efficient ticket management**: The portal streamlines the ticket creation, assignment, and tracking process, ensuring faster resolution times.\\n* **Seamless, timely, and transparent communication**: Customers and support teams can engage in threaded conversations within the portal,", + "title": "Customer portal | Computer for Support Teams | DevRev" }, { "id": "ART-13178_KNOWLEDGE_NODE-65", "text": "potentially perpetuating unfair treatment across customer groups.\\n\\n**Solution:** Develop comprehensive bias detection frameworks and conduct regular audits across agent functions to identify and correct problematic patterns.\\n\\n### Accountability questions\\n\\n**Challenge:** Autonomous decision-making creates uncertainty about responsibility when systems make problematic choices.\\n\\n**Solution:** Establish clear accountability structures defining human oversight responsibilities and explicit", "title": "Understanding Agentic AI: Capabilities and Implications for the Future" + }, + { + "id": "ART-15688_KNOWLEDGE_NODE-29", + "text": "system automatically validates:\\n\\n * Date format and range (within last 10 days to next 10 days)\\n * Hours and minutes values\\n * Prevents logging when both hours and minutes are zero\\n3. **Confirmation**: After successful validation, the effort is logged and a confirmation message appears in the timeline.\\n\\nSupported object types\\n----------------------\\n\\nThe Effort logger snap-in works with the following object types:\\n\\n* **Tickets**: Log effort against support tickets, bug reports,", + "title": "Effort logger | Automate | Snap-ins | DevRev" } ] }, @@ -4880,11 +4880,6 @@ "text": "go to **Settings > Support > Plug Chat > Layout** through the settings icon on the top-left corner.\\n2. Select **Add a Card** and enter a title, description, image, and redirect URL.\\n3. Click **Save and Publish** in the top-right corner. The new card is visible in your Plug widget.\\n\\nWant to add more personalization to your Plug widget? Create your own. Visit [SDK Methods and Customization](https://developer.devrev.ai/sdks/web/customize) to create your own Plug from the ground", "title": "Plug widget customization | Computer for Your Customers | DevRev" }, - { - "id": "ART-1484_KNOWLEDGE_NODE-37", - "text": "\"card\" \\n 20| }\\n[/code] \\n \\n###### Plain text\\n\\nA plain text element is used to define unformatted text.\\n\\n_Properties_\\n\\n * `text` (required): The plain text content.\\n\\n_Inherited properties_\\n\\nInherited from [Snap](/public/snapin-development/references/snapkit#snap):\\n\\n * `type` (required): The type of the element, should be set to `\"plain_text\"`.\\n * `block_id` (optional): A unique identifier for the snap. If not provided, a random ID is generated.\\n\\n_Example_\\n\\n[code]\\n\\n", - "title": "Snapkit \u2014 DevRev | Docs" - }, { "id": "ART-1846_KNOWLEDGE_NODE-12", "text": "snap-in configuration.\\n\\n**Note: This endpoint is currently in beta and may be subject to change in the future. Reach out to us via Plug to subscribe to changes to beta endpoints.**\\n\\n### Request payload\\n\\nThe request payload should be a JSON object with the following properties:\\n\\n* `id` (string, required): The ID of the snap-in to update.\\n* `inputs_values` (object, required): An object containing the input values to update. The properties of this object should match the input names", @@ -4896,34 +4891,39 @@ "title": "Customizing snap-in configuration \u2014 DevRev | Docs" }, { - "id": "ART-1484_KNOWLEDGE_NODE-32", - "text": "\\n 81| \"type\": \"form\" \\n 82| } \\n 83| ], \\n 84| \"type\": \"card\" \\n 85| }\\n[/code] \\n \\n###### Image\\n\\nAn image block that displays an image. Works with [Content](/public/snapin-development/references/snapkit#content) blocks.\\n\\n_Properties_\\n\\n * `image_url` (required): The URL of the image.\\n * `alt_text` (required): The alt text to be displayed when the image can\\xe2\\x80\\x99t be displayed. This shouldn\\xe2\\x80\\x99t contain any markup.\\n * `fill_container`", - "title": "Snapkit \u2014 DevRev | Docs" + "id": "ART-1304_KNOWLEDGE_NODE-25", + "text": "information.\\nRequest.\\n\\nThis endpoint expects an object.\\nid string Required\\nThe ID of account to update.\\nartifacts object Optional\\nShow property\\ncustom_fields map from strings to any Optional\\nApplication-defined custom fields.\\ndescription string Optional\\nUpdated description of the account.\\ndisplay_name string Optional\\nUpdated display name for the account.\\ndomains list of strings Optional\\nUpdated list of company\\'s domain names. Example - [\\'devrev.ai\\'].\\nexternal_refs list of", + "title": "Get \u2014 DevRev | Docs" }, { - "id": "ART-4063_KNOWLEDGE_NODE-2", - "text": "documented endpoint is for exposition and not provided by DevRev.\\n\\n### Request\\n\\nThis endpoint expects an object.\\n\\nidstringRequired`format: \"id\"`\\n\\nThe event\\xe2\\x80\\x99s ID.\\n\\nwebhook_idstringRequired`format: \"id\"`\\n\\nID of the webhook for the event.\\n\\ntypeenumOptional\\n\\nThe event types that the webhook will receive.\\n\\nShow 70 enum values\\n\\naccount_createdobjectOptional\\n\\nShow property\\n\\naccount_deletedobjectOptional\\n\\nShow 2 properties\\n\\naccount_updatedobjectOptional\\n\\nShow 2", - "title": "Event Webhooks \u2014 DevRev | Docs" + "id": "ART-2035_KNOWLEDGE_NODE-59", + "text": "customization will be shown.\\n* Summary cards are static Slack messages and may not reflect real-time data.\\n + Use the **Refresh** button at the bottom of the card to update.\\n + A timestamp indicates the last update time.\\n* To view all fields or update the object, click the **View/Update** button.\\n\\nThe information shown in the summary card differs by channel:\\n\\n* In **Internal channels**, all summary fields are shown.\\n* In an **External channels**, summary fields are", + "title": "Slack | Integrate | Snap-ins | DevRev" }, { - "id": "ART-1847_KNOWLEDGE_NODE-13", - "text": "\"text\": \"Next\", \\n 48| \"type\": \"plain_text\" \\n 49| }, \\n 50| \"type\": \"button\", \\n 51| \"value\": \"next\" \\n 52| }, \\n 53| \"type\": \"form\" \\n 54| } \\n 55| ], \\n 56| \"type\": \"card\" \\n 57| } \\n 58| ] \\n 59| } \\n 60| } \\n 61| }\\n[/code] \\n \\nIn this example, the snap-kit renders a dropdown select for", - "title": "Customizing snap-in configuration \u2014 DevRev | Docs" + "id": "ART-15506_KNOWLEDGE_NODE-26", + "text": "relevant user information. Plug can only be initialized once per page load.\\n\\nIn most cases, this works as expected\\xe2\\x80\\x94user identification typically happens after login or signup, which causes a page reload and clears any previous Plug instance.\\n\\nHowever, if your application needs to update the user identity without a full page refresh, you need to explicitly delete the existing Plug instance before initializing it again with the new user information.\\n\\n```\\n| | |\\n| --- | ---", + "title": "Identify your users with Plug | DevRev | Docs" }, { - "id": "ART-1290_KNOWLEDGE_NODE-31", - "text": "\"https://docs.devrev.ai/_next/image?url=%2Fimg%2Fgroups.gif&w=750&q=75\", |\\n| 13 | \"type\": \"image\" |\\n| 14 | } |\\n| 15 | ], |\\n| 16 | \"type\": \"content\" |\\n| 17 | } |\\n| 18 | ], |\\n| 19 | \"type\": \"card\" |\\n| 20 | } |\\n```\\n\\n###### Plain text\\n\\nA plain text element is used to define unformatted text.\\n\\n*Properties*\\n\\n* `text` (required): The plain text content.\\n\\n*Inherited properties*\\n\\nInherited from [Snap](/snapin-development/references/snapkit#snap):\\n\\n* `type` (required): The type of", - "title": "Snapkit | DevRev | Docs" + "id": "ART-1846_KNOWLEDGE_NODE-18", + "text": "`updateSnapInInputs` function to make the POST request to the `snap-ins.update` endpoint.\\n\\nIf the request is successful, it returns a success response with a status code of 200 and a message indicating that the snap-in was updated successfully.\\n\\nIf an error occurs, it catches the error and returns an error response with an appropriate status code and an error message containing the error details.\\n\\n##### \\n\\nNote: This endpoint is currently in beta, and its functionality or parameters may", + "title": "Customizing snap-in configuration | DevRev | Docs" }, { - "id": "ART-1466_KNOWLEDGE_NODE-5", - "text": "\\n+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------+--------+\\n| The unique identifier for your PLuG SDK. This parameter is required.", - "title": "Methods \u2014 DevRev | Docs" + "id": "ART-1296_KNOWLEDGE_NODE-6", + "text": "Component | Compatibility check |\\n| --- | --- |\\n| Keyrings | For existing keyrings: - The description can be changed. - The display name can be changed. - New values for allowed types under that connection could be added, but existing allowed types can\\xe2\\x80\\x99t be removed. Any existing connection can be removed A new connection can\\xe2\\x80\\x99t be added. |\\n| Event sources | For existing event sources: - The description can be changed. - The display name can be changed.", + "title": "Upgrade snap-ins | DevRev | Docs" }, { - "id": "ART-1290_KNOWLEDGE_NODE-20", - "text": "\"DISABLED\", |\\n| 57 | \"type\": \"plain_text\" |\\n| 58 | }, |\\n| 59 | \"type\": \"button\", |\\n| 60 | \"value\": \"PRIMARY\" |\\n| 61 | } |\\n| 62 | ], |\\n| 63 | \"type\": \"actions\" |\\n| 64 | } |\\n| 65 | ], |\\n| 66 | \"type\": \"card\" |\\n| 67 | } |\\n```\\n\\n*Action payload*\\n\\nInherits `type`, `action_id`, `action_type` and `timestamp` from [Base payload](/snapin-development/references/snapkit#base-payload), `type` is set to `\"button\"`.\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"type\": \"button\", |\\n| 3 |", - "title": "Snapkit | DevRev | Docs" + "id": "ART-4063_KNOWLEDGE_NODE-2", + "text": "documented endpoint is for exposition and not provided by DevRev.\\n\\n### Request\\n\\nThis endpoint expects an object.\\n\\nidstringRequired`format: \"id\"`\\n\\nThe event\\xe2\\x80\\x99s ID.\\n\\nwebhook_idstringRequired`format: \"id\"`\\n\\nID of the webhook for the event.\\n\\ntypeenumOptional\\n\\nThe event types that the webhook will receive.\\n\\nShow 70 enum values\\n\\naccount_createdobjectOptional\\n\\nShow property\\n\\naccount_deletedobjectOptional\\n\\nShow 2 properties\\n\\naccount_updatedobjectOptional\\n\\nShow 2", + "title": "Event Webhooks \u2014 DevRev | Docs" + }, + { + "id": "ART-1588_KNOWLEDGE_NODE-392", + "text": "an object.\\nsnap_in_version object\\nShow 2 properties\\nevent_sources map from strings to strings Optional\\nThe event sources for the snap-in.\\ninputs map from strings to any Optional\\nThe inputs for the snap-in.\\nkeyrings map from strings to objects Optional\\nMap of keyring names and its data.\\nShow 2 properties\\nAPI Reference snap-ins Update.\\n\\nPOST https:// api.devrev.ai / snap-ins.update\\nUpdates a snap-in.\\nRequest.\\n\\nThis endpoint expects an object.\\nid string Required\\nThe ID of the", + "title": "Get \u2014 DevRev | Docs" } ] }, @@ -4932,54 +4932,54 @@ "query": "ticket resolution time close to breach after ticket resolved", "retrievals": [ { - "id": "ART-1977_KNOWLEDGE_NODE-26", - "text": "owner.\\n* **Average Resolution Time**\\n\\n Average time taken to resolve tickets by ticket owners.\\n\\n[PreviousTicket-SLA Analytics](/docs/dashboards/ticket-sla-analytics)[NextConversations](/docs/product/conversation)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer works](/how-computer-works)\\n\\nApps\\n\\n* [For Support Teams](/for-support-teams)\\n* [For", - "title": "Ticket-Team Performance | Support analytics | Computer for Support Teams | DevRev" + "id": "ART-2017_KNOWLEDGE_NODE-25", + "text": "ticket\\'s owner and subscribers, when a ticket\\'s resolution time SLA changes into the *Warning* or *Breached* stage.\\n\\n![]()\\n\\nFor more information, refer to the\\n[SLA status change Slack notifier snap-in](/marketplace/sla-status-change-slack-notifier) on the DevRev\\nmarketplace.\\n\\nInstallation\\n------------\\n\\n1. Create a Slack app for your workspace in .\\n2. In App features, generate bot token in **OAuth & Permissions**.\\n3. Grant the app bot the following", + "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" }, { "id": "ART-1004_KNOWLEDGE_NODE-7", "text": "time it takes for a specific support engineer to resolve a customer issue from the moment it\\xe2\\x80\\x99s reported.\\n \\n \\n Calculation\\n \\n (Sum of resolution times for all resolved tickets by the engineer) / (Total number of resolved tickets by the engineer)\\n \\n \\n\\n\\nSELECT engineer_id, AVG(TIMESTAMPDIFF(MINUTE, t.created_at, t.resolved_at)) AS IndividualAverageResolutionTime\\nFROM tickets t\\nWHERE t.status = 'resolved'\\nAND EXTRACT(@period FROM t.created_at) =", "title": "Understanding a Support Engineer's Pain Points and KPIs" }, - { - "id": "ART-1970_KNOWLEDGE_NODE-26", - "text": "Conversations with SLA breaches with breach type for ticket owners.\\n* **SLA breaches w.r.t. Customer Tier**\\n\\n Number of Conversations with SLA breaches per owner.\\n* **Average Resolution Time**\\n\\n Indicates the average time taken to resolve requests for each conversation owner.\\n\\n[PreviousConversation-SLA Analytics](/docs/dashboards/conversation-sla-analytics)[NextTicket insights](/docs/dashboards/ticket-insights)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about", - "title": "Conversation-Team Performance | Support analytics | Computer for Support Teams | DevRev" - }, { "id": "ART-1986_KNOWLEDGE_NODE-43", "text": "tickets that have been in breach for more than one hour.\\n + **Over a day**: Filters all tickets that have been in breach for more than one day.\\n + **Custom**: Filters all tickets that have been in breach from a given date.\\n* **Will breach in**:\\n\\n + **Any**: Filters all tickets that are currently not in breach.\\n + **Over an hour**: Filters all tickets that have less than 1 hour left for breach.\\n + **Over a day**: Filters all tickets that have less than 1 day left for breach.\\n +", "title": "Service-level agreement | Computer for Support Teams | DevRev" }, { - "id": "ART-2017_KNOWLEDGE_NODE-25", - "text": "ticket\\'s owner and subscribers, when a ticket\\'s resolution time SLA changes into the *Warning* or *Breached* stage.\\n\\n![]()\\n\\nFor more information, refer to the\\n[SLA status change Slack notifier snap-in](/marketplace/sla-status-change-slack-notifier) on the DevRev\\nmarketplace.\\n\\nInstallation\\n------------\\n\\n1. Create a Slack app for your workspace in .\\n2. In App features, generate bot token in **OAuth & Permissions**.\\n3. Grant the app bot the following", - "title": "SLA status change Slack notifier | Automate | Snap-ins | DevRev" + "id": "ART-1986_KNOWLEDGE_NODE-41", + "text": "resolution is due in one day, the vista displays five minutes. In the case where the first response isn't provided within five minutes, the timer displays negative values (such as -10m), which indicates that it's been 10 minutes since the first response was due. Conversations or tickets can also be grouped by SLA stages.\\n\\nIn the **Detailed View**, all metrics applied to the ticket or conversation can be viewed along with their current stage.\\n\\nFiltering tickets by Next SLA", + "title": "Service-level agreement | Computer for Support Teams | DevRev" }, { - "id": "ART-1975_KNOWLEDGE_NODE-26", - "text": "resolve tickets.\\n* **Tickets awaiting response**\\n\\n The number of active tickets awaiting response to customer.\\n* **Unassigned tickets**\\n\\n The number of tickets not yet assigned to a support agent.\\n* **Active blocker tickets**\\n\\n The number of tickets with severity Blocker that are in the Open or In Progress state.\\n* **SLA compliance rate**\\n\\n The percentage of tickets where the SLA was met out of all tickets where the SLA was applied.\\n* **Average CSAT score**\\n\\n The average", - "title": "Ticket insights | Support analytics | Computer for Support Teams | DevRev" + "id": "ART-1970_KNOWLEDGE_NODE-26", + "text": "Conversations with SLA breaches with breach type for ticket owners.\\n* **SLA breaches w.r.t. Customer Tier**\\n\\n Number of Conversations with SLA breaches per owner.\\n* **Average Resolution Time**\\n\\n Indicates the average time taken to resolve requests for each conversation owner.\\n\\n[PreviousConversation-SLA Analytics](/docs/dashboards/conversation-sla-analytics)[NextTicket insights](/docs/dashboards/ticket-insights)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about", + "title": "Conversation-Team Performance | Support analytics | Computer for Support Teams | DevRev" }, { - "id": "ART-4181_KNOWLEDGE_NODE-1", - "text": "context-aware, and customer-centric with SLAs that are connected to your customers, parts of your product, and issues - not just tickets.\\n\\nNever miss an SLA with DevRev\\n\\nReduction in SLA breaches\\n\\n40%\\n\\nImprovement in response time\\n\\n60%\\n\\nFaster ticket resolution\\n\\n4X\\n\\nEffortlessly create SLAs\\n========================\\n\\nSay goodbye to the hassle of creating SLAs using complex flowcharts\\n===================================================================\\n\\n[Read our", - "title": "Support like a lightning fast pit-crew" + "id": "ART-1986_KNOWLEDGE_NODE-37", + "text": "a customer * The ticket was created by a customer experience engineer but reported by a customer | A new comment on the ticket by the customer after the customer experience engineer replied | * The agent added a comment to the customer chat * The ticket is moved to Awaiting Customer Response, or the ticket is closed | | |\\n| Full resolution time | * Ticket created by a customer * The ticket was created by a customer experience engineer but reported by a customer | Ticket created | The", + "title": "Service-level agreement | Computer for Support Teams | DevRev" }, { - "id": "ART-4181_KNOWLEDGE_NODE-16", - "text": "breach\\n\\n![]()\\n\\nSLA timers on Conversation and Ticket panel\\n\\nEquip agents with the comprehensive context they need to prioritize based on service level commitments\\n\\n![]()\\n\\nSLA timers on Conversation and Ticket panel\\n\\nEquip agents with the comprehensive context they need to prioritize based on service level commitments\\n\\n![]()\\n\\nView SLA targets in Inbox view\\n\\nSee critical SLA information directly on your Omnichannel Inbox to prioritize and take action before breach", - "title": "Support like a lightning fast pit-crew" + "id": "ART-1035_KNOWLEDGE_NODE-0", + "text": "b'Goodmeetings uses PLuG to reduce ticket resolution time\\n\\n* Computer\\n* Resources\\n* [Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\nComputer\\n\\nResources\\n\\n[Our Customers](/case-study)\\n\\n[Login](https://app.devrev.ai/login)[Book a demo](/request-a-demo)\\n\\n- [Case Studies](/case-study)\\n\\n- Goodmeetings\\n\\nGoodmeetings uses DevRev to reduce ticket resolution time\\n=========================================================\\n\\n3 min", + "title": "Goodmeetings uses PLuG to reduce ticket resolution time" }, { - "id": "ART-1986_KNOWLEDGE_NODE-37", - "text": "a customer * The ticket was created by a customer experience engineer but reported by a customer | A new comment on the ticket by the customer after the customer experience engineer replied | * The agent added a comment to the customer chat * The ticket is moved to Awaiting Customer Response, or the ticket is closed | | |\\n| Full resolution time | * Ticket created by a customer * The ticket was created by a customer experience engineer but reported by a customer | Ticket created | The", - "title": "Service-level agreement | Computer for Support Teams | DevRev" + "id": "ART-4965_KNOWLEDGE_NODE-26", + "text": "snap-in.\\n\\nConfiguration\\n-------------\\n\\nIn the **Configuration Settings**, select the number of days (0 < x < 365) after which a closed ticket becomes immutable.\\n\\n[PreviousTicket issue field migrator](/docs/automations/ticket-issue-field-migrator)[NextTicket email notifier](/docs/automations/ticket-email-notifier)\\n\\n#### On this page\\n\\n* [Installation](#installation)\\n* [Configuration](#configuration)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about", + "title": "Ticket Immutability | Automate | Snap-ins | DevRev" }, { - "id": "ART-4181_KNOWLEDGE_NODE-18", - "text": "breach\\n\\n![]()\\n\\nSLA timers on Conversation and Ticket panel\\n\\nEquip agents with the comprehensive context they need to prioritize based on service level commitments\\n\\n![]()\\n\\nSLA timers on Conversation and Ticket panel\\n\\nEquip agents with the comprehensive context they need to prioritize based on service level commitments\\n\\n![]()\\n\\nView SLA targets in Inbox view\\n\\nSee critical SLA information directly on your Omnichannel Inbox to prioritize and take action before breach", - "title": "Support like a lightning fast pit-crew" + "id": "ART-1972_KNOWLEDGE_NODE-25", + "text": "SLA breaches**\\n\\n Number of Active Tickets that breached an SLA.\\n* **Tickets with SLA warning**\\n\\n Number of Active Tickets that about to breach an SLA.\\n* **Resolution compliance rate**\\n\\n Percentage of tickets where Resolution SLA was met out of all tickets where Resolution SLA is applied.\\n* **First Response compliance rate**\\n\\n Percentage of tickets where First Response SLA was met out of all tickets where First Response SLA is applied.\\n* **Next Response compliance rate**\\n\\n", + "title": "Ticket-SLA Analytics | Support analytics | Computer for Support Teams | DevRev" + }, + { + "id": "ART-1977_KNOWLEDGE_NODE-26", + "text": "owner.\\n* **Average Resolution Time**\\n\\n Average time taken to resolve tickets by ticket owners.\\n\\n[PreviousTicket-SLA Analytics](/docs/dashboards/ticket-sla-analytics)[NextConversations](/docs/product/conversation)\\n\\n[Enterprise grade security to protect customer data\\n\\nLearn more about it.\\n\\n![]()](/blog/soc-compliance)\\n\\nComputer\\n\\n* [Meet Computer](/meet-computer)\\n* [How Computer works](/how-computer-works)\\n\\nApps\\n\\n* [For Support Teams](/for-support-teams)\\n* [For", + "title": "Ticket-Team Performance | Support analytics | Computer for Support Teams | DevRev" } ] }, @@ -4993,18 +4993,8 @@ "title": "Account and contact import | Computer for Growth Teams | DevRev" }, { - "id": "ART-2575_KNOWLEDGE_NODE-31", - "text": "Pre-create the tag in the app before importing. |\\n| Account with external reference \\'non-existing-account\\' not found | Ensure the parent account exists in the app before importing. |\\n| Mandatory field \\'external\\\\_refs\\' is empty | Fill all mandatory fields in the CSV. |\\n| Found non utf-8 character | Export the CSV with UTF-8 encoding. |\\n| Input CSV has no rows | Ensure the CSV contains data rows. |\\n| No user found with email | Ensure the email is correct and not a name. |\\n| Missing", - "title": "Account and contact import | Computer for Growth Teams | DevRev" - }, - { - "id": "ART-2575_KNOWLEDGE_NODE-26", - "text": "the sample CSV.\\n\\n ![]()\\n\\n Columns with headers that do not conform to the predefined schema will not be imported.\\n4. In the dialog box, upload the populated CSV file.\\n5. (Optional) Configure import settings.\\n\\n * **Add tags to identify new imports**: Attach any existing tags to new imports for easy identification post-import.\\n * **Update existing accounts**: Select to update existing accounts by appending new values, rather than creating new objects.\\n6. Click **Import** to", - "title": "Account and contact import | Computer for Growth Teams | DevRev" - }, - { - "id": "ART-2575_KNOWLEDGE_NODE-29", - "text": "Tags\\n\\nEnsure all tags listed in the CSV file already exist within the application. Tags are not created automatically during the import process to prevent errors and maintain control. For example, if your CSV contains a tag in the tags.name column such as Q3FY25\\\\_CSS\\\\_Forum\\\\_Bay\\\\_Area, ensure to create the tag in the system first.\\n\\n### Owner fields\\n\\nFor accounts, owner information must be provided in email format. Avoid using names or display names.\\n\\nLimitations\\n-----------\\n\\nThe", + "id": "ART-2575_KNOWLEDGE_NODE-27", + "text": "initiate the process. Notifications about successful imports and any errors will appear in the form of toasts at the bottom left.\\n\\nCSV file requirements\\n---------------------\\n\\n### Mandatory fields\\n\\nTo ensure a successful import, certain fields are required.\\n\\n**Accounts**:\\n\\n* display\\\\_name\\n* external\\\\_refs (a unique identifier for the account, such as the company\\'s website domain.)\\n\\n**Contacts:**\\n\\n* display\\\\_name\\n* external\\\\_ref (a unique identifier for the contact, such as", "title": "Account and contact import | Computer for Growth Teams | DevRev" }, { @@ -5013,28 +5003,38 @@ "title": "Airtable | Automate | Snap-ins | DevRev" }, { - "id": "ART-2575_KNOWLEDGE_NODE-30", - "text": "CSV import feature currently supports a maximum of 500 rows per request. For larger datasets, split the CSV into smaller files containing up to 500 rows each.\\n\\nTroubleshooting\\n---------------\\n\\nThe following table describes the errors you may encounter during import and how to troubleshoot them:\\n\\n| Error | Resolution |\\n| --- | --- |\\n| Invalid format for phone numbers | Validate the phone number is in E164 Format. For example, +12014631690. |\\n| Tags not found in organization |", + "id": "ART-12395_KNOWLEDGE_NODE-27", + "text": "update**: Link multiple accounts using /slack\\\\_broadcaster\\\\_upload external or /slack\\\\_broadcaster\\\\_upload internal and upload a CSV with account display names and Slack channel IDs.\\n* **Internal release notes**: Share internal updates by uploading a CSV with channel names and IDs using /slack\\\\_broadcaster\\\\_upload internal.\\n* **Configuration management**: Only authorized users in specific groups can post to Slack channels.\\n\\nSlash Commands\\n--------------\\n\\nThe Slack Broadcaster", + "title": "Slack Broadcaster | Automate | Snap-ins | DevRev" + }, + { + "id": "ART-2575_KNOWLEDGE_NODE-26", + "text": "the sample CSV.\\n\\n ![]()\\n\\n Columns with headers that do not conform to the predefined schema will not be imported.\\n4. In the dialog box, upload the populated CSV file.\\n5. (Optional) Configure import settings.\\n\\n * **Add tags to identify new imports**: Attach any existing tags to new imports for easy identification post-import.\\n * **Update existing accounts**: Select to update existing accounts by appending new values, rather than creating new objects.\\n6. Click **Import** to", "title": "Account and contact import | Computer for Growth Teams | DevRev" }, { - "id": "ART-16355_KNOWLEDGE_NODE-26", - "text": "**Reported\\\\_by,** and **Contact** columns, provide the email of the person to be assigned as the owner or reporter of the work item. If the CSV lists multiple owners, only the first will be set as the owner.\\n* For the **Applies to Part**, **Stage**, **Account**, **Developed with Parts**, and **Tags** columns, provide the part name, stage name, account name, part name, and tag name respectively as it is present in the UI, ensuring case sensitivity.\\n* For **Date** and **Timestamp** related", - "title": "CSV commands uploader | Automate | Snap-ins | DevRev" + "id": "ART-8442_KNOWLEDGE_NODE-8", + "text": "import](/docs/product/account-contact-import)\\n * [Grow snap-ins](/docs/product/snapins-grow)\\n\\n * [Snap-ins](/docs/snapins)\\n\\n * [Automate](/docs/automate)\\n\\n * [Account deduplication](/docs/automations/account-deduplication)\\n * [Airtable](/docs/automations/airtable)\\n * [Auto-link DevRev GitHub accounts](/docs/automations/auto-link-github-devrev)\\n * [Automatic customer reply](/docs/automations/auto-reply)\\n * [Auto parts to", + "title": "January 2025 | Changelog | DevRev" }, { - "id": "ART-6175_KNOWLEDGE_NODE-34", - "text": "contact are linked. Use tnt values only.\\n **Format:**\\n\\n ```\\n ```\\n 1 { \"Account\": \"tnt__customer\", \"Contact\": \"tnt__contact\" }\\n ```\\n ```\\n\\n **Example:**\\n\\n ```\\n ```\\n 1 { \"Account\": \"tnt__customer\", \"Contact\": \"tnt__user\" }\\n ```\\n ```\\n* **Other Information Mapping:**\\n Define the field name where unmapped Airtable fields should be collected into a single field.\\n\\n[PreviousAccount deduplication](/docs/automations/account-deduplication)[NextAuto-link DevRev GitHub", - "title": "Airtable | Automate | Snap-ins | DevRev" + "id": "ART-13083_KNOWLEDGE_NODE-8", + "text": "import](/docs/product/account-contact-import)\\n * [Grow snap-ins](/docs/product/snapins-grow)\\n\\n * [Snap-ins](/docs/snapins)\\n\\n * [Automate](/docs/automate)\\n\\n * [Account deduplication](/docs/automations/account-deduplication)\\n * [Airtable](/docs/automations/airtable)\\n * [Auto-link DevRev GitHub accounts](/docs/automations/auto-link-github-devrev)\\n * [Automatic customer reply](/docs/automations/auto-reply)\\n * [Auto parts to", + "title": "| Automate | Snap-ins | DevRev" }, { - "id": "ART-12395_KNOWLEDGE_NODE-27", - "text": "update**: Link multiple accounts using /slack\\\\_broadcaster\\\\_upload external or /slack\\\\_broadcaster\\\\_upload internal and upload a CSV with account display names and Slack channel IDs.\\n* **Internal release notes**: Share internal updates by uploading a CSV with channel names and IDs using /slack\\\\_broadcaster\\\\_upload internal.\\n* **Configuration management**: Only authorized users in specific groups can post to Slack channels.\\n\\nSlash Commands\\n--------------\\n\\nThe Slack Broadcaster", - "title": "Slack Broadcaster | Automate | Snap-ins | DevRev" + "id": "ART-2666_KNOWLEDGE_NODE-8", + "text": "import](/docs/product/account-contact-import)\\n * [Grow snap-ins](/docs/product/snapins-grow)\\n\\n * [Snap-ins](/docs/snapins)\\n\\n * [Automate](/docs/automate)\\n\\n * [Account deduplication](/docs/automations/account-deduplication)\\n * [Airtable](/docs/automations/airtable)\\n * [Auto-link DevRev GitHub accounts](/docs/automations/auto-link-github-devrev)\\n * [Automatic customer reply](/docs/automations/auto-reply)\\n * [Auto parts to", + "title": "October 5: Left navigation | Changelog | DevRev" }, { - "id": "ART-2575_KNOWLEDGE_NODE-27", - "text": "initiate the process. Notifications about successful imports and any errors will appear in the form of toasts at the bottom left.\\n\\nCSV file requirements\\n---------------------\\n\\n### Mandatory fields\\n\\nTo ensure a successful import, certain fields are required.\\n\\n**Accounts**:\\n\\n* display\\\\_name\\n* external\\\\_refs (a unique identifier for the account, such as the company\\'s website domain.)\\n\\n**Contacts:**\\n\\n* display\\\\_name\\n* external\\\\_ref (a unique identifier for the contact, such as", + "id": "ART-2575_KNOWLEDGE_NODE-28", + "text": "a database identifier or an email address.)\\n* account\\\\_external\\\\_reference (the external reference of the contact\\'s parent account)\\n\\n### Array fields\\n\\nFor fields that accept multiple values, such as **owners** and **industry**, values should be separated by commas (,). For example, Agriculture and Forestry should be written as Agriculture,Forestry.\\n\\n![]()\\n\\nIf a value contains a comma, enclose it in backticks. For example, enter \"Rail, Bus & Taxi\" as `Rail, Bus & Taxi`.\\n\\n###", + "title": "Account and contact import | Computer for Growth Teams | DevRev" + }, + { + "id": "ART-2575_KNOWLEDGE_NODE-31", + "text": "Pre-create the tag in the app before importing. |\\n| Account with external reference \\'non-existing-account\\' not found | Ensure the parent account exists in the app before importing. |\\n| Mandatory field \\'external\\\\_refs\\' is empty | Fill all mandatory fields in the CSV. |\\n| Found non utf-8 character | Export the CSV with UTF-8 encoding. |\\n| Input CSV has no rows | Ensure the CSV contains data rows. |\\n| No user found with email | Ensure the email is correct and not a name. |\\n| Missing", "title": "Account and contact import | Computer for Growth Teams | DevRev" } ] @@ -5054,19 +5054,9 @@ "title": "Computer for Your Customers: AI Self-Service Support | DevRev" }, { - "id": "ART-16079_KNOWLEDGE_NODE-7", - "text": "agent systems is highly valued.\\n* Proven experience building high-scale systems and driving technical leadership across teams.\\n* Passion for deeply technical work that bridges infra, ML, and product innovation\\n\\n**Culture**\\n\\nThe foundation of DevRev is its culture -- our commitment to those who are hungry, humble, honest, and who act with heart. Our vision is to help build the earth\\xe2\\x80\\x99s most customer-centric companies. Our mission is to leverage design, data engineering, and", - "title": "DevRev Careers | Member of Technical Staff \u2013 Search & AI" - }, - { - "id": "ART-17219_KNOWLEDGE_NODE-27", - "text": "`collection`.\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | { |\\n| 2 | \"name\": \"Assignees\", |\\n| 3 | \"is_required\": true, |\\n| 4 | \"type\": \"reference\", |\\n| 5 | \"reference\": { |\\n| 6 | \"refers_to\": { |\\n| 7 | \"#category:agents\": {} |\\n| 8 | } |\\n| 9 | }, |\\n| 10 | \"collection\": { |\\n| 11 | \"max_length\": 5 |\\n| 12 | } |\\n| 13 | } |\\n```\\n\\nSome references have the role of parent or child.\\nThis means that the child record doesn\\xe2\\x80\\x99t make sense without its parent, for example a comment\\nattached", - "title": "Metadata extraction | DevRev | Docs" - }, - { - "id": "ART-12585_KNOWLEDGE_NODE-7", - "text": "prompts, logic, and agent configurations for accuracy, reliability, and scalability.\\n* **Own Requirements**: Partner with customers to deeply understand their needs and translate them into technical agent specifications.\\n* **Prototype & Iterate**: Lead live demos, build rapid proof-of-concepts, and refine solutions through customer feedback.\\n* **Lead Execution**: Define project plans, align internal teams, and ensure timely delivery of deployments.\\n* **Advise Customers**: Act as a trusted", - "title": "DevRev Careers | Forward Deployed Engineer" + "id": "ART-13178_KNOWLEDGE_NODE-69", + "text": "data.\\n\\n * Define your agent\\xe2\\x80\\x99s specific goal and purpose.\\n * Write clear instructions for its operation.\\n * Connect your business knowledge and existing workflows.\\n\\nEvery team gains powerful capabilities without technical skills. It\\xe2\\x80\\x99s like having expert analysts and operators working 24/7.\\n\\nNeed to route customer requests? Create sales materials? Recommend support actions? All possible without writing a single line of code, including the generation of original", + "title": "Understanding Agentic AI: Capabilities and Implications for the Future" }, { "id": "ART-3880_KNOWLEDGE_NODE-5", @@ -5074,24 +5064,34 @@ "title": "How Orum built a collaborative, AI-ready support engine" }, { - "id": "ART-13178_KNOWLEDGE_NODE-44", - "text": "action demonstrates this approach.\\n * **Goal-based agents** evaluate actions based on how they contribute to achieving specific objectives. DevRev\\xe2\\x80\\x99s product development AI agents exemplify this approach by coordinating activities specifically designed to meet release deadlines and quality targets.\\n * **Utility-based agents** use sophisticated evaluation mechanisms to maximize overall benefit across multiple objectives. For instance, a marketing campaign optimizer might balance", - "title": "Understanding Agentic AI: Capabilities and Implications for the Future" + "id": "ART-4206_KNOWLEDGE_NODE-4", + "text": "create a webhook to receive agent execution events:\\n\\nBashJavaScript\\n\\n```\\n| | |\\n| --- | --- |\\n| $ | curl --location \\'https://api.devrev.ai/internal/webhooks.create\\' \\\\ |\\n| > | --header \\'Content-Type: application/json\\' \\\\ |\\n| > | --header \\'Authorization: Bearer \\' \\\\ |\\n| > | --data \\'{ |\\n| > | \"url\": \"https://your-application.com/webhook-endpoint\", |\\n| > | \"event_types\": [\"ai_agent_response\"], |\\n| > | \"headers\": [ |\\n| > | { |\\n| > | \"name\": \"x-api-key\", |\\n| >", + "title": "Agents async API | DevRev | Docs" }, { - "id": "ART-13178_KNOWLEDGE_NODE-21", - "text": "**Prompt:** This defines the system\\xe2\\x80\\x99s operation blueprint, outlining specific goals and constraints. Think of it as the master plan guiding each agent. For complex systems, responsibilities are distributed across multiple AI agents to maintain simplicity and effectiveness.\\n * **Knowledge:** This serves as the agent\\xe2\\x80\\x99s knowledge repository, storing experiences and context. Like humans rely on past experiences, LLM agents use memory to understand situations and make", - "title": "Understanding Agentic AI: Capabilities and Implications for the Future" + "id": "ART-12585_KNOWLEDGE_NODE-7", + "text": "prompts, logic, and agent configurations for accuracy, reliability, and scalability.\\n* **Own Requirements**: Partner with customers to deeply understand their needs and translate them into technical agent specifications.\\n* **Prototype & Iterate**: Lead live demos, build rapid proof-of-concepts, and refine solutions through customer feedback.\\n* **Lead Execution**: Define project plans, align internal teams, and ensure timely delivery of deployments.\\n* **Advise Customers**: Act as a trusted", + "title": "DevRev Careers | Forward Deployed Engineer" }, { - "id": "ART-1959_KNOWLEDGE_NODE-36", - "text": "subtype:book AI agents\\n```\\n```\\n\\nSearch for book custom objects related to AI agents with tenant field author:\\n\\n```\\n```\\n1 subtype:book author:\"Chip Huyen\" AI agents\\n```\\n```\\n\\nFor detailed information on creating custom objects, see the [Custom objects guide](https://developer.devrev.ai/beta/guides/custom-objects).\\n\\n[PreviousGlossary \\xe2\\x86\\x97\\xef\\xb8\\x8f](/docshttps://support.devrev.ai/devrev/article/ART-16784-glossary)[NextWorkflows](/docs/product/workflow-engine)\\n\\n#### On", - "title": "Search | Computer by DevRev | DevRev" + "id": "ART-13178_KNOWLEDGE_NODE-71", + "text": "real-world setting**\\n * **Train your own AI Agent using DevRev**\\n * **Connect the tools you already use**\\n * **Go from demo to deployment in days**\\n\\n _Just reach out. Let\\xe2\\x80\\x99s make Agentic AI work for you._ [**Book a demo.**](/request-a-demo)\\n\\n### Frequently Asked Questions\\n\\n###\\n\\nWhat are the main components of Agentic AI systems?\\n\\n__\\n\\n###\\n\\nCan small businesses benefit from Agentic AI platforms?\\n\\n__\\n\\n###\\n\\nWhat makes Agentic AI different from chatbots and", + "title": "Understanding Agentic AI: Capabilities and Implications for the Future" }, { "id": "ART-4206_KNOWLEDGE_NODE-0", "text": "b'Agents async API | DevRev | Docs\\n\\n[![]()![]()](https://developer.devrev.ai/)\\n\\nBeta\\n\\nBeta\\n\\nBeta\\n\\nSearch\\n\\n`/`\\n\\nOn this page\\n\\n* [Set up webhook](/beta/guides/agents-async-api#set-up-webhook)\\n* [Make async API calls](/beta/guides/agents-async-api#make-async-api-calls)\\n* [Handle webhook events](/beta/guides/agents-async-api#handle-webhook-events)\\n* [Progress messages](/beta/guides/agents-async-api#progress-messages)\\n* [Final", "title": "Agents async API | DevRev | Docs" + }, + { + "id": "ART-15621_KNOWLEDGE_NODE-9", + "text": "engineering)\\n\\nEach agent requiring individual configuration\\n\\nOperational complexity through multiple specialized systems\\n\\nSeparate prompt library and agent library adding user complexity\\n\\nDevRev Approach : Unified agent architecture\\n\\nSingle interface with dynamic skill loading per user requests\\n\\nEliminates operational overhead through centralized management\\n\\nPredictable performance model with coupled AI agent-LLM architecture\\n\\nConsistent reasoning patterns ensuring reliable", + "title": "Glean - Competitive - for the PLuG on website" + }, + { + "id": "ART-13178_KNOWLEDGE_NODE-19", + "text": "interact with the agentic AI system using natural language. Unlike traditional systems requiring precise commands, you communicate conversationally. The autonomous agents interpret your intent and may ask clarifying questions.\\n 2. **Agent system plans, allocates, and executes work:** The system transforms your request into [structured workflows](/blog/native-workflow-engine), dividing it into tasks and subtasks. A managing component assigns these to specialized subagents.\\n 3. **Agent system", + "title": "Understanding Agentic AI: Capabilities and Implications for the Future" } ] }, @@ -5099,40 +5099,25 @@ "query_id": "27785a74-4a2c-44da-90eb-dc3411f865b5", "query": "multiple messages sent quickly AI interpretation delay", "retrievals": [ - { - "id": "ART-2027_KNOWLEDGE_NODE-41", - "text": "AI to improve tone, grammar, or length of your message. |\\n| Preview & Expand View | Expand icon (top-right of editor) | Open full-screen view to preview and edit the outgoing message as it would appear to the customer. |\\n| Include Conversation History | Three-dot menu (bottom-right) | Shows previous non-editable email exchanges. Default inclusion can be set in snap-in settings. |\\n| Use Slash Commands | Lightning icon (bottom-left) | Insert templated responses or quick actions using slash", - "title": "Email | Integrate | Snap-ins | DevRev" - }, - { - "id": "ART-15327_KNOWLEDGE_NODE-21", - "text": "\"text\"`\\n\\nThe updated status of the conversation.\\n\\ntagsobjectOptional\\n\\nShow 3 properties\\n\\ntitlestringOptional`format: \"text\"`\\n\\nThe updated title of the conversation.\\n\\n### Response\\n\\nThe response for updating a conversation.\\n\\nconversationobject\\n\\nShow 20 properties\\n\\n### Errors\\n\\n400\\n\\nBad Request Error\\n\\n401\\n\\nUnauthorized Error\\n\\n403\\n\\nForbidden Error\\n\\n404\\n\\nNot Found Error\\n\\n429\\n\\nToo Many Requests Error\\n\\n500\\n\\nInternal Server Error\\n\\n503\\n\\nService Unavailable", - "title": "Update Conversation | DevRev | Docs" - }, - { - "id": "ART-1986_KNOWLEDGE_NODE-39", - "text": "marked as spam | | |\\n| Next response time | | A new message on the conversation with the customer after the customer experience engineer replied | * The agent replied to the conversation * The conversation is moved to Waiting on User/Resolved * The conversation is marked as spam | | |\\n| Full resolution time | | Conversation created | * The conversation has moved to the Resolved/Archived * The conversation is marked as spam | The conversation is moved to Waiting on User | The", - "title": "Service-level agreement | Computer for Support Teams | DevRev" - }, { "id": "ART-1640_KNOWLEDGE_NODE-20", "text": "260| \"namespace\": \"ai_assistant_message\", \\n 261| \"raw_email_artifact\": { \\n 262| \"id\": \"id\", \\n 263| \"display_id\": \"display_id\", \\n 264| \"file\": { \\n 265| \"type\": \"type\", \\n 266| \"name\": \"name\", \\n 267| \"size\": 1 \\n 268| } \\n 269| }, \\n 270| \"sent_timestamp\": \"sent_timestamp\", \\n 271| \"subject\": \"subject\", \\n 272| \"text_body\": \"text_body\" \\n 273| } \\n 274|", "title": "Create Snap Widget (Beta) \u2014 DevRev | Docs" }, - { - "id": "ART-15617_KNOWLEDGE_NODE-21", - "text": "Continue to strengthen messaging platform integrations\\n\\nCustomer Support Quality : Maintain high service standards as competitive advantage Market Positioning Strategy\\n\\nTarget Mid-Market Growth : Focus on companies outgrowing Pylon\\'s basic capabilities\\n\\nEmphasize AI Sophistication : Highlight advanced AI features that Pylon cannot match\\n\\nDemonstrate ROI : Show value of unified data and proactive capabilities\\n\\nLeverage Technical Superiority : Use superior architecture as competitive", - "title": "Pylon - Competitive - for the PLuG on website" - }, { "id": "ART-4206_KNOWLEDGE_NODE-13", "text": "2 | \"payload\": { |\\n| 3 | \"ai_agent_response\": { |\\n| 4 | \"agent\": \"don:core:dvrv-us-1:devo/xyz:ai_agent/123\", |\\n| 5 | \"agent_response\": \"message\", |\\n| 6 | \"client_metadata\": { |\\n| 7 | /* your original metadata */ |\\n| 8 | }, |\\n| 9 | \"message\": \"The agent\\'s final response message\", |\\n| 10 | \"session\": \"don:core:dvrv-us-1:devo/xyz:ai_agent_session/3810\", |\\n| 11 | \"session_object\": \"unique_conversation_identifier\" |\\n| 12 | }, |\\n| 13 | \"type\": \"ai_agent_response\" |\\n| 14 | } |\\n| 15 | }", "title": "Agents async API | DevRev | Docs" }, { - "id": "ART-1786_KNOWLEDGE_NODE-83", - "text": "send.\\nShow variant\\nResponse.\\n\\nThis endpoint returns a map from strings to any.\\nAPI Reference conversations Create.\\n\\nPOST https:// api.devrev.ai / conversations.create\\nCreates a conversation.\\nRequest.\\n\\nThis endpoint expects an object.\\ntype \"support\" Required\\ndescription string Optional\\nDescription for the conversation.\\ngroup string Optional\\nThe group that the conversation is associated with.\\nis_spam boolean Optional\\nWhether the conversation is spam.\\nmembers list of strings", - "title": "Delete \u2014 DevRev | Docs" + "id": "ART-4109_KNOWLEDGE_NODE-1", + "text": "-X POST https://api.devrev.ai/ai-agents.events.execute-async \\\\ |\\n| > | -H \"Authorization: Bearer \" \\\\ |\\n| > | -H \"Content-Type: application/json\" \\\\ |\\n| > | -d \\'{ |\\n| > | \"agent\": \"string\", |\\n| > | \"event\": { |\\n| > | \"input_message\": { |\\n| > | \"message\": \"string\" |\\n| > | } |\\n| > | }, |\\n| > | \"session_object\": \"string\" |\\n| > | }\\' |\\n```\\n\\n[Try it](/beta/api-reference/ai-agents/ai-agent-events-execute-async?explorer=true)\\n\\n200Successful\\n\\n```\\n| | |\\n| --- | --- |\\n| 1", + "title": "Execute-Async Ai Agents Events | DevRev | Docs" + }, + { + "id": "ART-2027_KNOWLEDGE_NODE-41", + "text": "AI to improve tone, grammar, or length of your message. |\\n| Preview & Expand View | Expand icon (top-right of editor) | Open full-screen view to preview and edit the outgoing message as it would appear to the customer. |\\n| Include Conversation History | Three-dot menu (bottom-right) | Shows previous non-editable email exchanges. Default inclusion can be set in snap-in settings. |\\n| Use Slash Commands | Lightning icon (bottom-left) | Insert templated responses or quick actions using slash", + "title": "Email | Integrate | Snap-ins | DevRev" }, { "id": "ART-4271_KNOWLEDGE_NODE-31", @@ -5140,9 +5125,24 @@ "title": "Convert Conversations to Tickets | Conversations | Support | DevRev" }, { - "id": "ART-1792_KNOWLEDGE_NODE-86", - "text": "send.\\nShow variant\\nResponse.\\n\\nThis endpoint returns a map from strings to any.\\nAPI Reference conversations Create.\\n\\nPOST https:// api.devrev.ai / conversations.create\\nCreates a conversation.\\nRequest.\\n\\nThis endpoint expects an object.\\ntype \"support\" Required\\ndescription string Optional\\nDescription for the conversation.\\ngroup string Optional\\nThe group that the conversation is associated with.\\nis_spam boolean Optional\\nWhether the conversation is spam.\\nmembers list of strings", - "title": "Update \u2014 DevRev | Docs" + "id": "ART-15509_KNOWLEDGE_NODE-13", + "text": "unread messages and display them to the user.\\n* `ON_CONVERSATION_START`: Indicates that the user has started a new conversation.\\n* `ON_SEARCH_AGENT_QUERY`: Indicates that a new search query has been made in the Plug search agent.\\n* `ON_OBSERVABILITY_READY`: Triggered when the session analytics capabilities of Plug are initialized.\\n\\n```\\n| | |\\n| --- | --- |\\n| 1 | useEffect(() => { |\\n| 2 | window.plugSDK.onEvent((payload) => { |\\n| 3 | if (payload.type === PAYLOAD_TYPE) { |\\n| 4 |", + "title": "Methods | DevRev | Docs" + }, + { + "id": "ART-1301_KNOWLEDGE_NODE-88", + "text": "Required\\nThe list of notifications to send.\\nShow variant\\nResponse.\\n\\nThis endpoint returns a map from strings to any.\\nAPI Reference conversations Create.\\n\\nPOST https:// api.devrev.ai / conversations.create\\nCreates a conversation.\\nRequest.\\n\\nThis endpoint expects an object.\\ntype \"support\" Required\\ndescription string Optional\\nDescription for the conversation.\\ngroup string Optional\\nThe group that the conversation is associated with.\\nis_spam boolean Optional\\nWhether the", + "title": "Delete \u2014 DevRev | Docs" + }, + { + "id": "ART-1780_KNOWLEDGE_NODE-83", + "text": "Required\\nThe list of notifications to send.\\nShow variant\\nResponse.\\n\\nThis endpoint returns a map from strings to any.\\nAPI Reference conversations Create.\\n\\nPOST https:// api.devrev.ai / conversations.create\\nCreates a conversation.\\nRequest.\\n\\nThis endpoint expects an object.\\ntype \"support\" Required\\ndescription string Optional\\nDescription for the conversation.\\ngroup string Optional\\nThe group that the conversation is associated with.\\nis_spam boolean Optional\\nWhether the", + "title": "Get Post \u2014 DevRev | Docs" + }, + { + "id": "ART-1302_KNOWLEDGE_NODE-88", + "text": "Required\\nThe list of notifications to send.\\nShow variant\\nResponse.\\n\\nThis endpoint returns a map from strings to any.\\nAPI Reference conversations Create.\\n\\nPOST https:// api.devrev.ai / conversations.create\\nCreates a conversation.\\nRequest.\\n\\nThis endpoint expects an object.\\ntype \"support\" Required\\ndescription string Optional\\nDescription for the conversation.\\ngroup string Optional\\nThe group that the conversation is associated with.\\nis_spam boolean Optional\\nWhether the", + "title": "Export \u2014 DevRev | Docs" }, { "id": "ART-15618_KNOWLEDGE_NODE-23", diff --git a/test_queries_results.parquet b/test_queries_results.parquet index 8beb6f550532d7ee1962d9f9f7e11146e2887726..16cc34c981988e33a68e5d77def43dbac7213fb3 100644 GIT binary patch literal 175809 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 z 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 b=I;hc^ThC(uoTPHAOA$3kBU5Y%E literal 179918 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 O{~;Zi?j>|t{Qm-M%y9Mq