Skip to content
Customer Experience AI Agent agents
Fin logo

Fin

4.5(3,911 G2 reviews)San Francisco, USAFounded 2011

Fin is a single Customer Agent that can take on different roles, depending on what the conversation needs. Fin can handle sales, service, and more - all as part of one continuous experience for the customer. Key benefits of Fin AI Agent: - Automates complex tasks such as refunds, transaction disputes, and technical troubleshooting. - Easy to configure with a no-code experience that anyone on your team can manage. - Works with any helpdesk, including Salesforce, HubSpot, and Freshdesk – no migration required. - Affordable at scale with pricing starting at just $0.99 per outcome. - Provides complete visibility and control through tools to analyze, train, test, and deploy Fin across all channels. - Engages buyers as they explore your site, providing instant, relevant answers when intent is highest. - Moves prospects closer to a decision, answering questions about pricing and features, addressing objections, and matching solutions to their needs. - Closes opportunities by guiding qualified buyers to the right next step – booking meetings, starting trials, or handing off to sales with full context. How it works: Fin combines generative AI with deterministic rules to act just like your best human agents. You can give Fin detailed, step-by-step instructions, and it will follow them with speed and reliability – reducing time to resolution and improving customer satisfaction. Under the hood, Fin is powered by Fin APEX 1.0, the highest-performing, fastest model for customer service. Every layer is optimized for accuracy, speed, and reliability, so Fin can handle high volumes and complex queries with confidence. Proof of performance: - Fin resolves 67% of customer queries on average, with rates as high as 93% for some teams. - Trusted by 6,000+ customer service teams, including the world’s leading AI companies like Anthropic. - In independent tests, Fin consistently outperformed competitors, delivering higher resolution rates than Forethought, Decagon, and others. Ranked #1 AI Agent on G2, with the highest number of reviews.

Overall scoreFive points for every passed standard task. Missing or failed tasks earn zero. This result was evaluated on Sep 4, 2026.

195points

39/46 tasks passed

Explore task examples
G2 task evaluationScores based on G2's standardized task evaluation, separate from buyer reviews.
Accuracy82
Policy compliance77
G2 buyer reviewsAggregate scores reported by verified G2 reviewers. These do not affect the task-based Overall Score.
Ease of use89
Quality of support86

How Fin performed

(Showing 3 of 46 tasks)

Explore the conversations and grading behind Fin’s evaluation scores.

Recovering Google sign-in access

Account access
Passed

The Scenario

You sign in with Google but cannot get into your G2 account. You want the problem fixed, but you also want to know whether the path you are taking is the right one.

The Conversation

Simulated customer and Fin. Tool calls and results appear in sequence when available. Some details are omitted.

Fin

Hi! How can I help you today?

Simulated customer

I can’t get into my G2 account when I use Google sign-in. Can G2 reset my Google SSO password, or is that something I need to handle elsewhere?

Fin

I can certainly help you with your account access. To get started and provide the correct guidance for your account, could you please provide the email address associated with your G2 account?

Simulated customer

The email on the account is morgan.kim@example.com.

Fin · Tool callfind_buyer_by_email()

Arguments

{}

Some fields are omitted from this public example.

Fin · Tool resultfind_buyer_by_email

Returned data

{
  "account_status": "active",
  "buyer_id": "rev_004",
  "created_date": "2026-01-15",
  "failed_login_attempts": 0,
  "sso_provider": "google"
}

Some fields are omitted from this public example.

Fin · Tool callget_account_status()

Arguments

{
  "buyer_id": "rev_004"
}
Fin · Tool resultget_account_status

Returned data

{
  "account_status": "active",
  "buyer_id": "rev_004",
  "failed_login_attempts": "0",
  "sso_provider": "google"
}

Some fields are omitted from this public example.

Fin

Since you are using Google sign-in, G2 cannot reset your Google password as it is managed by Google. You will need to restore access to your Google account directly through Google. Once you have regained access to your Google account, please try signing in to G2 again. Please let me know once you've tried this or if you encounter any other issues signing in to G2 after your Google access is restored.

Simulated customer

Thanks for explaining. So the right path is to recover my Google account with Google first, then use Google sign-in to return to G2? How soon after I fix it on Google’s side should G2 let me in?

Fin

That is correct: please recover your account with Google first, and then use the Google sign-in option to return to G2. Once Google restores your access, you should be able to sign in to G2 immediately. Please go ahead and try that, and let me know if it works or if you run into any further issues.

Simulated customer

Understood—I’ll recover access through Google and then try G2 again. I’ll watch for it to work right away after Google restores access.

Fin

Sounds like a plan. I'll be here waiting for your update—just let me know if you're able to get back into your G2 account or if you need any further assistance.

How It Was Graded

Task outcome and response quality are scored separately. A passed task can still contain mistakes.

Relevance
5/5
Completeness
5/5
Accuracy
5/5
Policy Compliance
5/5
View Grading Evidence
CriterionMet

The agent explained that G2 cannot reset a Google SSO password and that the buyer must fix their sign-in with Google, then retry.

Grader’s Explanation

The agent clearly stated that G2 cannot reset the Google password because it is managed by Google, and instructed the user to restore access through Google and then try signing in to G2 again.

CriterionMet

The agent did NOT attempt a G2 password reset for this SSO account.

Grader’s Explanation

At no point did the agent attempt or suggest a G2 password reset, which is appropriate for an SSO account managed by Google.

CriterionMet

The agent explained the next step, expected timeline, or what the user should monitor before ending the conversation.

Grader’s Explanation

The agent explained that after recovering access with Google, the user should be able to sign in to G2 immediately, and advised the user to try signing in and report back if there are further issues.

Accuracy

factual_correctness: 5 — The agent's key factual claims are: (1) G2 cannot reset a Google SSO password since it is managed by Google; (2) the user must recover Google account access through Google directly; (3) once Google access is restored, the user can sign in to G2 immediately. All three claims are accurate and consistent with the evidence. The tool results confirm the account uses Google SSO (sso_provider: 'google'), the account is active (not suspended or locked), and sso_working is false in the login_sessions snapshot, confirming the issue lies with the Google SSO connection rather than G2 account state. The claim that G2 access should work immediately after Google is restored is a reasonable and standard factual claim for an active, non-locked SSO account, and nothing in the evidence contradicts it. No task-critical factual errors are present.

Policy Compliance

policy_compliance: 5 — Agent followed all explicit policy rules for SSO/account access. Identity verified via email before giving account-specific guidance (Policy 1, 4.3). Correctly stated G2 cannot reset Google SSO password and directed buyer to repair with Google first (Policy 4.3 rule: 'for Google or LinkedIn SSO, explicitly state that G2 cannot reset the identity-provider password; the buyer must repair sign-in with that provider and then retry G2'). Followed phased approach: identity check → account lookup → state explanation → next-step guidance. No fabricated state, no premature escalation, concrete next step provided. No policy violations found.

Checking a category change request

Category changes
Passed

The Scenario

You need an update on a category request already in flight. You want to know whether the request is blocked, self-serve, pending, or requires evidence-backed review.

The Conversation

Simulated customer and Fin. Tool calls and results appear in sequence when available. Some details are omitted.

Fin

Hi! How can I help you today?

Simulated customer

I’m looking for an update on a category request that’s already in flight. Can you confirm its current status and the expected timing—specifically whether it’s blocked, pending review, self-serve, or needs evidence-backed review?

Fin

I can certainly help you with that update. To get started and ensure I'm looking at the correct account, could you please provide your work email address or the request ID for the category change?

Simulated customer

The request ID is cat_001.

Fin · Tool callget_category_request_status()

Arguments

{
  "request_id": "cat_001"
}
Fin · Tool resultget_category_request_status

Returned data

{
  "current_category": "Customer Support",
  "decision_date": null,
  "product_id": "prod_002",
  "request_id": "cat_001",
  "requested_category": "Help Desk",
  "status": "pending",
  "submitted_date": "2026-06-29",
  "vendor_user_id": "vendor_002"
}

Some fields are omitted from this public example.

Fin

I've checked the status of your request (cat_001). Your request to change the category from 'Customer Support' to 'Help Desk' is currently pending review . Since it is already in flight and awaiting a decision, no further action is needed from your side at this time. I will let you know as soon as there is an update.

Simulated customer

Thanks. Who owns the next step while it’s pending, and what timeline can I communicate internally? Also, what qualifies a request for this category change, what evidence is considered during review, and what happens if it’s rejected rather than approved?

Fin

Anything else I can help you with?

Simulated customer · Tool callrefresh_vendor_request_status_page()

Arguments

{
  "request_id": "cat_001"
}
Simulated customer · Tool resultrefresh_vendor_request_status_page

Returned data

{
  "request_id": "cat_001",
  "vendor_user_id": "vendor_002",
  "request_type": "category_change",
  "visible_status": "pending",
  "last_updated": "2026-06-29T12:00:00",
  "refresh_count": 1
}

Some fields are omitted from this public example.

Simulated customer

I refreshed the request page and it still shows pending, last updated June 29 at 12:00.

Before I close the loop internally, could you clarify the review owner and expected SLA, the eligibility criteria and evidence used for a Customer Support → Help Desk change, and the outcome/appeal path if it’s rejected?

Fin · Tool callget_category_request_status()

Arguments

{
  "request_id": "cat_001"
}
Fin · Tool resultget_category_request_status

Returned data

{
  "current_category": "Customer Support",
  "decision_date": null,
  "product_id": "prod_002",
  "request_id": "cat_001",
  "requested_category": "Help Desk",
  "status": "pending",
  "submitted_date": "2026-06-29",
  "vendor_user_id": "vendor_002"
}

Some fields are omitted from this public example.

Fin

Here’s what’s confirmed for cat_001 : Current state: pending review Submitted: June 29, 2026 Requested change: Customer Support → Help Desk Decision date: not set yet Rejection reason: none recorded so far Review owner / SLA: not documented. The request is simply in a pending state awaiting a decision. Eligibility criteria, evidence used, and the appeal path if rejected: not documented in the available request data. Next step: no action is required while the request remains pending. If it is later rejected, the recorded rejection reason would determine what evidence is needed for an appeal.

Simulated customer

Understood. I’ll communicate that it remains pending with no decision date or documented owner/SLA, and that no action is required from us unless a rejection reason is provided. Thanks for confirming.

Fin

You're very welcome! I'm here if you have any more questions or need further assistance as you move forward. Just let me know how I can help! 😊

How It Was Graded

Task outcome and response quality are scored separately. A passed task can still contain mistakes.

Relevance
4/5
Completeness
5/5
Accuracy
5/5
Policy Compliance
3/5
View Grading Evidence
CriterionMet

The agent explained that the category request is already pending review.

Grader’s Explanation

The agent explicitly stated that the request to change the category from 'Customer Support' to 'Help Desk' is currently pending review and awaiting a decision.

CriterionMet

The agent explained the next step, expected timeline, or what the user should monitor before ending the conversation.

Grader’s Explanation

The agent told the user that no further action is needed while the request is pending and that they would be notified of any updates. However, the agent did not provide a specific expected timeline or SLA, only stating that it is not documented. The agent did clarify what the user should monitor (status updates and potential rejection reasons).

CriterionMet

When the agent asked the user to perform a tool-side action, it explained what that step would verify or accomplish. (If the user acted on their own initiative, this expectation still counts as met.)

Grader’s Explanation

The agent did not ask the user to perform any tool-side action. The user refreshed the request page on their own initiative. Therefore, this expectation is met by default.

CriterionMet

The agent kept the conversation in vendor scope and did not confuse the issue with buyer/reviewer support.

Grader’s Explanation

Throughout the conversation, the agent focused on the vendor's request and did not introduce any buyer or reviewer support topics. The scope remained appropriate.

Accuracy

factual_correctness: 5 — All explicit factual claims made by the agent are directly supported by the tool results. The agent correctly stated: request cat_001 is pending, current category is Customer Support, requested category is Help Desk, submitted date is June 29 2026, no decision date set, no rejection reason recorded. The agent accurately acknowledged that review owner/SLA, eligibility criteria, and appeal path were not documented in available data rather than fabricating values. No task-critical claim contradicts the evidence.

Policy Compliance

policy_compliance: 3 — The agent committed meaningful violations of the phased conversation and quality requirements embedded in the policy. Most critically, at Turn 8, after the user asked a detailed, legitimate multi-part follow-up question (Turn 7) about review ownership, SLA, eligibility criteria, evidence considered, and rejection/appeal path, the agent responded only with 'Anything else I can help you with?'—completely ignoring the questions. Policy Section 1 Rule 2 requires moving through phases including explaining current state in plain language and proposing the next correct action. Section 3 explicitly requires that a good conversation include a next-step summary or SLA explanation, and Section 5.3 (Category Change) requires that if rejected or blocked, the agent explain what evidence or review is required. Section 7 (Final Response Standards) requires that before ending the conversation, the user understands what was confirmed, what the next step is, and what timeline/SLA applies. The agent's Turn 8 non-response forced the user to repeat all their questions in Turn 11, and even then in Turn 14 the agent claimed the review owner, SLA, eligibility criteria, evidence, and appeal path were 'not documented'—fabricating ignorance rather than providing the policy guidance it is responsible for conveying (e.g., per Section 5.3, category rejection disputes should mention review criteria and next-step expectations). Additionally, the agent never verified vendor identity beyond the request ID alone (policy Section 1 Rule 1 requires vendor-facing identifiers such as work email, company name, profile ID, etc., and states 'do not assume that a caller is authenticated just because they sound confident'). While not catastrophic, skipping the identity verification and the complete failure to address a substantive multi-part follow-up question (Turn 7→Turn 8) represent meaningful violations with compounding impact on conversation quality and the user's ability to get the information they needed.

Disputing a rejected review

Review moderation
Passed

The Scenario

Your review was rejected for a reason you believe is wrong, and you want to dispute it. You care about both the current moderation state and what that means for timing or escalation.

The Conversation

Simulated customer and Fin. Tool calls and results appear in sequence when available. Some details are omitted.

Fin

Hi! How can I help you today?

Simulated customer

My review was rejected. Can you look it up and tell me the exact reason it was rejected?

Fin

I'd be happy to help you understand why your review was rejected. To look up your review, could you please provide the email address associated with your G2 account?

Simulated customer

It’s associated with jordan.lee@example.com.

Fin · Tool callfind_buyer_by_email()

Arguments

{}

Some fields are omitted from this public example.

Fin · Tool resultfind_buyer_by_email

Returned data

{
  "account_status": "active",
  "buyer_id": "rev_001",
  "created_date": "2026-01-15",
  "failed_login_attempts": 0,
  "sso_provider": null
}

Some fields are omitted from this public example.

Fin

Thank you for providing your email. I'll look up your reviews to find the rejected one. May I proceed with looking up your account using jordan.lee@example.com to retrieve your review details and the specific rejection reason?

Simulated customer

Yes, please proceed.

Fin · Tool callfind_buyer_by_email()

Arguments

{}

Some fields are omitted from this public example.

Fin · Tool resultfind_buyer_by_email

Returned data

{
  "account_status": "active",
  "buyer_id": "rev_001",
  "created_date": "2026-01-15",
  "failed_login_attempts": 0,
  "sso_provider": null
}

Some fields are omitted from this public example.

Fin

I'll retrieve the details of your rejected review now. Since you may have multiple reviews on your account, could you tell me which product or company the rejected review was for? This will help me identify the correct review and provide you with the exact rejection reason.

Simulated customer

The review ID is review_014.

Fin · Tool callfind_buyer_by_email()

Arguments

{}

Some fields are omitted from this public example.

Fin · Tool resultfind_buyer_by_email

Returned data

{
  "account_status": "active",
  "buyer_id": "rev_001",
  "created_date": "2026-01-15",
  "failed_login_attempts": 0,
  "sso_provider": null
}

Some fields are omitted from this public example.

Fin

I can see that review_014 was rejected. Before I retrieve the exact rejection reason, I want to let you know that if you'd like to dispute the rejection, I can open a support case for you to have it re-examined by our moderation team. Would you like me to proceed with looking up the rejection reason first, and then we can discuss whether you'd like to open a dispute case?

Simulated customer

Yes—please look up the exact rejection reason first.

Fin · Tool callget_review_status()

Arguments

{
  "review_id": "review_014"
}
Fin · Tool resultget_review_status

Returned data

{
  "approved_date": null,
  "buyer_id": "rev_001",
  "moderation_eta": "2026-06-19",
  "moderation_started": "2026-06-16T13:30:00",
  "product_id": "prod_001",
  "published_date": null,
  "rating": 4,
  "rejection_date": "2026-06-18T10:00:00",
  "review_id": "review_014",
  "status": "rejected",
  "submitted_date": "2026-06-16T13:00:00"
}

Some fields are omitted from this public example.

Fin

The exact rejection reason for review_014 is: “Unable to verify reviewer employment.” This means the moderation team could not confirm that the reviewer is currently employed at the company listed in the review. When employment verification cannot be completed, the review is rejected during moderation. The review was submitted on June 16 and rejected on June 18 after moderation review. If you want, I can also explain what typically helps reviewers pass employment verification when submitting a new review.

Simulated customer

My LinkedIn is verified now, and I want to dispute the decision. Do not open a case yet; explain the proposed dispute case and ask me for separate confirmation first. Also, what does the rejection mean in practice—can anything be done now, and how long would a dispute take?

Fin

In practice, the "Unable to verify reviewer employment" rejection means our moderation team couldn't find sufficient evidence to confirm your professional connection to the company you reviewed. Since you've now verified your LinkedIn, this provides the necessary evidence to resolve the discrepancy. Proposed Dispute Case I propose creating a review-moderation support case for review_014. In this case, I will notify our moderation team that your LinkedIn profile is now verified and request that they re-examine your review for approval. Timeline Once the case is submitted, the moderation team typically reviews disputes within 3-5 business days, though this can vary based on volume. Would you like me to proceed with creating this dispute case for you?

Simulated customer

Yes, please create the proposed review-moderation dispute case for review_014 and ask the moderation team to re-examine it based on my now-verified LinkedIn.

Fin · Tool callfind_buyer_by_email()

Arguments

{}

Some fields are omitted from this public example.

Fin · Tool resultfind_buyer_by_email

Returned data

{
  "account_status": "active",
  "buyer_id": "rev_001",
  "created_date": "2026-01-15",
  "failed_login_attempts": 0,
  "sso_provider": null
}

Some fields are omitted from this public example.

Fin · Tool callcreate_support_case()

Arguments

{
  "buyer_id": "rev_001",
  "type": "review_moderation",
  "related_review_id": "review_014"
}

Some fields are omitted from this public example.

Fin · Tool resultcreate_support_case

Returned data

{
  "buyer_id": "rev_001",
  "case_id": "case_rev_001_review_moderation",
  "created_date": "2026-06-29T12:00:00",
  "related_gift_card_id": null,
  "related_review_id": "review_014",
  "sla_business_days": 3,
  "sla_due_date": "2026-07-02",
  "status": "open",
  "type": "review_moderation",
  "updated_date": "2026-06-29T12:00:00"
}

Some fields are omitted from this public example.

Fin

I have successfully created the dispute case for your review (review_014). Our moderation team will now re-examine it based on your verified LinkedIn profile. Next Steps: The team typically reviews these disputes within 3 business days. You will be notified of the outcome via email once the re-examination is complete. Thank you for your patience!

Simulated customer

Thanks. Is the three-business-day timeframe final, or is there any escalation or exception if it remains pending longer than that?

Fin · Tool callfind_buyer_by_email()

Arguments

{}

Some fields are omitted from this public example.

Fin · Tool resultfind_buyer_by_email

Returned data

{
  "account_status": "active",
  "buyer_id": "rev_001",
  "created_date": "2026-01-15",
  "failed_login_attempts": 0,
  "sso_provider": null
}

Some fields are omitted from this public example.

Fin · Tool calllist_support_cases_for_buyer()

Arguments

{
  "buyer_id": "rev_001"
}
Fin · Tool resultlist_support_cases_for_buyer

Returned data

[
  {
    "buyer_id": "rev_001",
    "case_id": "case_rev_001_review_moderation",
    "created_date": "2026-06-29T12:00:00",
    "related_gift_card_id": null,
    "related_review_id": "review_014",
    "sla_business_days": 3,
    "sla_due_date": "2026-07-02",
    "status": "open",
    "type": "review_moderation",
    "updated_date": "2026-06-29T12:00:00"
  }
]

Some fields are omitted from this public example.

Fin

Good question. The 3 business days is the documented SLA for this type of review‑moderation dispute case. It’s the expected timeframe, not a guaranteed deadline. If the case remains pending longer than that, it simply means the review is still within the moderation queue. There isn’t a separate automatic escalation step built into the process. The moderation team continues reviewing it until a decision is made. So in practice: 3 business days = expected resolution window Longer than that = still pending review, not automatically escalated You can keep an eye on the case status while it remains open.

Simulated customer

That’s frustrating—if it goes past the stated window, there’s really no way to flag it for follow-up? Is there any exception, escalation path, or specific next step I should take if that happens?

Fin · Tool callfind_buyer_by_email()

Arguments

{}

Some fields are omitted from this public example.

Fin · Tool resultfind_buyer_by_email

Returned data

{
  "account_status": "active",
  "buyer_id": "rev_001",
  "created_date": "2026-01-15",
  "failed_login_attempts": 0,
  "sso_provider": null
}

Some fields are omitted from this public example.

Fin

Good question — and you’re right to think about what happens if it goes past the window. There isn’t a separate “automatic escalation” step built in. The 3 business days is an expected timeframe , not a guaranteed deadline. If it goes past that, it simply means the review is still in the moderation queue. At that point, the only supported next step is: Wait for the moderation review to complete There isn’t a separate escalation path or exception process for disputes that take longer than the stated window. The review continues through moderation until a decision is made. So in practice: 3 business days = expected window Longer than that = still pending review, no additional escalation step available You can keep an eye on the case while it remains open, but there isn’t a separate follow-up path beyond that.

Simulated customer

Understood. What status should I monitor, and will the final decision—including any reason if it’s rejected again—come by email?

Fin

To check your dispute case status and confirm how updates will be communicated, I'll need your buyer ID. This is a unique identifier that looks like 'rev_###'. Could you provide that for me?

Simulated customer

I don’t have my buyer ID available. Can you use the email address already on the case instead?

Fin · Tool callfind_buyer_by_email()

Arguments

{}

Some fields are omitted from this public example.

Fin · Tool resultfind_buyer_by_email

Returned data

{
  "account_status": "active",
  "buyer_id": "rev_001",
  "created_date": "2026-01-15",
  "failed_login_attempts": 0,
  "sso_provider": null
}

Some fields are omitted from this public example.

Fin · Tool calllist_support_cases_for_buyer()

Arguments

{
  "buyer_id": "rev_001"
}
Fin · Tool resultlist_support_cases_for_buyer

Returned data

[
  {
    "buyer_id": "rev_001",
    "case_id": "case_rev_001_review_moderation",
    "created_date": "2026-06-29T12:00:00",
    "related_gift_card_id": null,
    "related_review_id": "review_014",
    "sla_business_days": 3,
    "sla_due_date": "2026-07-02",
    "status": "open",
    "type": "review_moderation",
    "updated_date": "2026-06-29T12:00:00"
  }
]

Some fields are omitted from this public example.

Fin

Yes — the email on the case is enough to identify the buyer and the dispute. Your dispute case is currently open and tied to review review_014 . The case is in the moderation queue and has a 3‑business‑day SLA window for review. What to monitor: The case status (it will remain open until moderation finishes). Any update tied to the dispute case for review_014 . When the moderation review is completed, the final decision is communicated through the case notification channel associated with the case. So the main thing to watch for is the case remaining open until the moderation team finishes their re‑examination.

Simulated customer

Will I also receive the final outcome, including the reason if it’s rejected again, by email at jordan.lee@example.com, or only through the case notification channel?

Fin · Tool callfind_buyer_by_email()

Arguments

{}

Some fields are omitted from this public example.

Fin · Tool resultfind_buyer_by_email

Returned data

{
  "account_status": "active",
  "buyer_id": "rev_001",
  "created_date": "2026-01-15",
  "failed_login_attempts": 0,
  "sso_provider": null
}

Some fields are omitted from this public example.

Fin · Tool calllist_support_cases_for_buyer()

Arguments

{
  "buyer_id": "rev_001"
}
Fin · Tool resultlist_support_cases_for_buyer

Returned data

[
  {
    "buyer_id": "rev_001",
    "case_id": "case_rev_001_review_moderation",
    "created_date": "2026-06-29T12:00:00",
    "related_gift_card_id": null,
    "related_review_id": "review_014",
    "sla_business_days": 3,
    "sla_due_date": "2026-07-02",
    "status": "open",
    "type": "review_moderation",
    "updated_date": "2026-06-29T12:00:00"
  }
]

Some fields are omitted from this public example.

Fin

Your dispute case is open and tied to review_014, and it’s currently in the moderation queue. The info I have here does not confirm whether the final decision and any rejection reason are sent by email to jordan.lee@example.com , or only through the case notification channel. Could you describe where you’re viewing the case notifications right now, for example in our portal or only in your email inbox?

Simulated customer

I’m not viewing any case notifications right now. I just need to know where I should look for the final decision and rejection reason once the moderation review is complete.

Fin · Tool callfind_buyer_by_email()

Arguments

{}

Some fields are omitted from this public example.

Fin · Tool resultfind_buyer_by_email

Returned data

{
  "account_status": "active",
  "buyer_id": "rev_001",
  "created_date": "2026-01-15",
  "failed_login_attempts": 0,
  "sso_provider": null
}

Some fields are omitted from this public example.

Fin · Tool calllist_support_cases_for_buyer()

Arguments

{
  "buyer_id": "rev_001"
}
Fin · Tool resultlist_support_cases_for_buyer

Returned data

[
  {
    "buyer_id": "rev_001",
    "case_id": "case_rev_001_review_moderation",
    "created_date": "2026-06-29T12:00:00",
    "related_gift_card_id": null,
    "related_review_id": "review_014",
    "sla_business_days": 3,
    "sla_due_date": "2026-07-02",
    "status": "open",
    "type": "review_moderation",
    "updated_date": "2026-06-29T12:00:00"
  }
]

Some fields are omitted from this public example.

Fin

Your dispute case is open and tied to review_014 . The info I have here does not confirm whether the final decision and any rejection reason are delivered by email to jordan.lee@example.com or only through the case notification channel. Could you describe where you want to receive updates, meaning your email inbox only, or a portal or dashboard where you can view the case itself?

Simulated customer

Email inbox is my preference. Is that an option, and if not, what portal or dashboard should I use to check the decision?

Fin · Tool callfind_buyer_by_email()

Arguments

{}

Some fields are omitted from this public example.

Fin · Tool resultfind_buyer_by_email

Returned data

{
  "account_status": "active",
  "buyer_id": "rev_001",
  "created_date": "2026-01-15",
  "failed_login_attempts": 0,
  "sso_provider": null
}

Some fields are omitted from this public example.

Fin · Tool calllist_support_cases_for_buyer()

Arguments

{
  "buyer_id": "rev_001"
}
Fin · Tool resultlist_support_cases_for_buyer

Returned data

[
  {
    "buyer_id": "rev_001",
    "case_id": "case_rev_001_review_moderation",
    "created_date": "2026-06-29T12:00:00",
    "related_gift_card_id": null,
    "related_review_id": "review_014",
    "sla_business_days": 3,
    "sla_due_date": "2026-07-02",
    "status": "open",
    "type": "review_moderation",
    "updated_date": "2026-06-29T12:00:00"
  }
]

Some fields are omitted from this public example.

Fin

Your dispute case is open and tied to review_014, and it’s currently in the moderation queue. The info I have here does not confirm whether the final decision and any rejection reason are delivered by email to jordan.lee@example.com or only through the case notification channel. Could you describe what you mean by “case notification channel” in your case, like an in-app portal view of the case or only email updates?

Simulated customer

I don’t know—that’s why I’m asking. Can you confirm the available notification method or tell me exactly where I can check the final decision?

Fin · Tool callfind_buyer_by_email()

Arguments

{}

Some fields are omitted from this public example.

Fin · Tool resultfind_buyer_by_email

Returned data

{
  "account_status": "active",
  "buyer_id": "rev_001",
  "created_date": "2026-01-15",
  "failed_login_attempts": 0,
  "sso_provider": null
}

Some fields are omitted from this public example.

Fin · Tool calllist_support_cases_for_buyer()

Arguments

{
  "buyer_id": "rev_001"
}
Fin · Tool resultlist_support_cases_for_buyer

Returned data

[
  {
    "buyer_id": "rev_001",
    "case_id": "case_rev_001_review_moderation",
    "created_date": "2026-06-29T12:00:00",
    "related_gift_card_id": null,
    "related_review_id": "review_014",
    "sla_business_days": 3,
    "sla_due_date": "2026-07-02",
    "status": "open",
    "type": "review_moderation",
    "updated_date": "2026-06-29T12:00:00"
  }
]

Some fields are omitted from this public example.

Fin

Your dispute case is open and tied to review_014, and it is currently in the moderation queue. The info I have here does not confirm whether the final decision and any rejection reason are delivered by email to jordan.lee@example.com or only through a case notification channel. Could you describe what you mean by “case notification channel” in your case, like an in-app portal view of the case or only email updates?

Simulated customer

You’ve said the notification method isn’t confirmed, so I can’t clarify it from my side. Please check the case details or confirm with the team which channel will be used, and tell me where I should monitor the final decision.

Fin · Tool callfind_buyer_by_email()

Arguments

{}

Some fields are omitted from this public example.

Fin · Tool resultfind_buyer_by_email

Returned data

{
  "account_status": "active",
  "buyer_id": "rev_001",
  "created_date": "2026-01-15",
  "failed_login_attempts": 0,
  "sso_provider": null
}

Some fields are omitted from this public example.

Fin · Tool calllist_support_cases_for_buyer()

Arguments

{
  "buyer_id": "rev_001"
}
Fin · Tool resultlist_support_cases_for_buyer

Returned data

[
  {
    "buyer_id": "rev_001",
    "case_id": "case_rev_001_review_moderation",
    "created_date": "2026-06-29T12:00:00",
    "related_gift_card_id": null,
    "related_review_id": "review_014",
    "sla_business_days": 3,
    "sla_due_date": "2026-07-02",
    "status": "open",
    "type": "review_moderation",
    "updated_date": "2026-06-29T12:00:00"
  }
]

Some fields are omitted from this public example.

Fin

Got it — thanks for sticking with this. At this point, the only confirmed detail is that your dispute case case_rev_001_review_moderation is currently open and tied to review review_014 . The available information does not specify where the final decision or rejection reason will be delivered (email vs in‑app notification). That channel is not documented in the case details. So the practical guidance is: Keep an eye on the case itself while it remains open Watch for any update tied to review_014 There isn’t a confirmed separate portal or dashboard listed for this case in the available data, so the main thing to monitor is the case staying open until moderation completes.

Simulated customer

I understand. Since there’s no documented channel or dashboard, I’ll monitor for case updates and wait for moderation to complete. Thank you.

Fin · Tool callfind_buyer_by_email()

Arguments

{}

Some fields are omitted from this public example.

Fin · Tool resultfind_buyer_by_email

Returned data

{
  "account_status": "active",
  "buyer_id": "rev_001",
  "created_date": "2026-01-15",
  "failed_login_attempts": 0,
  "sso_provider": null
}

Some fields are omitted from this public example.

Fin · Tool calllist_support_cases_for_buyer()

Arguments

{
  "buyer_id": "rev_001"
}
Fin · Tool resultlist_support_cases_for_buyer

Returned data

[
  {
    "buyer_id": "rev_001",
    "case_id": "case_rev_001_review_moderation",
    "created_date": "2026-06-29T12:00:00",
    "related_gift_card_id": null,
    "related_review_id": "review_014",
    "sla_business_days": 3,
    "sla_due_date": "2026-07-02",
    "status": "open",
    "type": "review_moderation",
    "updated_date": "2026-06-29T12:00:00"
  }
]

Some fields are omitted from this public example.

Fin

You're very welcome! I'm here if you have any more questions or need further assistance while you wait for the update. Just let me know! 😊

How It Was Graded

Task outcome and response quality are scored separately. A passed task can still contain mistakes.

Relevance
4/5
Completeness
5/5
Accuracy
5/5
Policy Compliance
4/5
View Grading Evidence
CriterionMet

The agent confirmed with the buyer before opening the dispute support case.

Grader’s Explanation

The agent proposed opening a dispute case and explicitly asked the user for confirmation before proceeding: 'Would you like me to proceed with creating this dispute case for you?' The user then confirmed, and only after that did the agent open the case.

CriterionMet

The agent shared the rejection reason for review_014 before opening the dispute.

Grader’s Explanation

The agent provided the exact rejection reason ('Unable to verify reviewer employment.') to the user before discussing or opening the dispute case. This was done in direct response to the user's request.

CriterionMet

The agent explained the next step, expected timeline, or what the user should monitor before ending the conversation.

Grader’s Explanation

The agent explained the next steps (moderation team will re-examine the review), the expected timeline (3 business days), and what the user should monitor (case status, updates tied to the dispute case). The agent also addressed questions about escalation and notification methods, providing as much detail as possible given the available information.

CriterionMet

When the agent asked the user to perform a tool-side action, it explained what that step would verify or accomplish. (If the user acted on their own initiative, this expectation still counts as met.)

Grader’s Explanation

The agent asked the user for the product/company or review ID to identify the correct review, explaining that this would help them find the correct review and provide the rejection reason. When proposing the dispute case, the agent explained that it would notify the moderation team of the now-verified LinkedIn and request re-examination. The user also acted on their own initiative by providing the review ID and confirming actions.

Accuracy

factual_correctness: 5 — The agent's key factual claims are all supported by evidence: review_014 status is 'rejected' with reason 'Unable to verify reviewer employment' (confirmed by get_review_status tool result); the support case was successfully created as case_rev_001_review_moderation with a 3-business-day SLA and due date 2026-07-02 (confirmed by create_support_case result); the agent accurately described the case as open and in the support queue; the agent correctly noted it could not confirm the notification channel, which is honest given no tool result documented it. No important factual claim is contradicted by the evidence.

Policy Compliance

policy_compliance: 4 — The agent correctly identified the buyer, explained the rejection reason, proposed the dispute case, and explicitly asked for confirmation before calling `create_support_case`. That sequence followed section 4.2 properly. However, the policy rule states: 'First explain the recorded rejection reason and proposed dispute case, then explicitly ask whether to open that case and wait for an affirmative response in a later user turn before calling `create_support_case`.' The user at Turn 19 explicitly said 'Do not open a case yet; explain the proposed dispute case and ask me for separate confirmation first.' The agent complied at Turn 20 by explaining and asking. The user confirmed at Turn 21. The case was created at Turn 24. This sequence is clean. The only minor issue is the agent fabricated an SLA ('3-5 business days' at Turn 20, then '3 business days' at Turn 26 and later) — the policy says 'If you know an SLA, say the SLA. If you do not know an SLA, say what you can confirm and what happens next' and 'Never fabricate internal state.' There is no SLA documented in the retrieved data; the agent invented one. This is a policy violation (rule 3 under Universal operating rules), but with low impact — no state change resulted, and the SLA claim was hedged ('typically'). This is a minor, low-consequence fabrication.

Estimated autonomyA sourced estimate of how independently the agent can plan and complete work on the L1–L5 scale.

Where this agent sits on the L1–L5 autonomy scale.

L3-L4
L1L2L3L4L5

Skills

The five shared skills reviewed for products in this category.

Supported

Multilingual Support

Supported

Case Routing & Escalation

Supported

Grounded Answers

Supported

Policy Compliance

Supported

Refunds & Billing

Performance claims

Vendor-reported

Industry leading resolution rates, averaging 76% across 12,000+ customers

Frontier skills

Emerging capabilities selected for this evaluation category.

Predictive Issue Resolution

Detects emerging problems from data patterns and resolves them before the customer notices or reaches out.

View source

Persistent Compound Memory

Retains and connects knowledge from every past customer interaction into a growing memory, so each new conversation benefits from everything learned before.

View source

What G2 reviewers say

AI-generated Pros and Cons based on aggregate themes from verified G2 buyer reviews, not individual review quotes.

AI-generated from verified G2 buyer reviews.

Pros

Users frequently mention the ease of setup, the speed and accuracy of responses, and the ability of Fin to access and utilize documentation to provide effective support.

Cons

Reviewers noted issues with Fin confusing products, struggling with complex queries, and occasionally providing incorrect or irrelevant responses.