Agent Native

Cancel or Stay

This skill handles mobile service cancellations and retention offers for Juniper Mobile customers.

by RasaOfficial publisherNot reviewed

Identity proven by GitHub's verified organisation badge (RasaHQ)

Agents
Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode
License
Apache-2.0 (permissive)
Pin
f54ddf4pinned Oct 9, 2026
Context cost
about 530 tokenswhen the skill loads
GitHub stars
41on rasahq/rasa-community-resources
Scripts
1 script

What it does

“Cancellation and retention for the signed-in Juniper Mobile customer: record a request to cancel a service, and put at most one authorized offer in front of them when they have not refused. Activate for "cancel my mobile", "I want to leave", "give me my PAC code", "close my broadband", "what can you offer me to stay", "your colleague promised me a discount", "apply offer code ...", and for answers to an offer.”
The author's description, from SKILL.md

Generated summary from the skill's own text

This skill handles mobile service cancellations and retention offers for Juniper Mobile customers. It records cancellation requests, respects customer refusals, and presents authorized retention offers when appropriate. The skill manages the entire flow from initial cancellation intent through offer acceptance or final confirmation of cancellation.

When to use it

  • Customer requests to cancel mobile service or close broadband account
  • Customer asks for retention offers or service terms before deciding
  • Customer responds to retention offer questions from the engine
  • Customer provides offer codes or references during cancellation flow

When not to

  • Customer has explicitly refused further offers or contact
  • Handling post-cancellation issues after customer confirmed closure
  • Managing account services outside of cancellation or retention context

Install

These commands install from the publisher's repository and need no account.

skills CLI

npx skills add rasahq/rasa-community-resources --skill 'Cancel or Stay'

Installs from the repository's default branch, which may have changed since the commit we checked.

GitHub CLI 2.90 or later

gh skill install rasahq/rasa-community-resources 'Cancel or Stay@f54ddf4e5d674e3e9175a7a469cf698fcfaf1295'

Installs the commit we checked (f54ddf4).

Copy by hand

Download the folder at f54ddf4 and put it in .claude/skills/retention for Claude Code and in .agents/skills/retention for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.

Skill folder on GitHub at f54ddf4

Copy for your agent

A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.

Prompt

Install the agent skill "Cancel or Stay" by Rasa.

Source, pinned to commit f54ddf4e5d674e3e9175a7a469cf698fcfaf1295:
https://github.com/rasahq/rasa-community-resources/tree/f54ddf4e5d674e3e9175a7a469cf698fcfaf1295/examples/mantle-text-telco-retention-gpt/skills/retention

1. Download that folder at exactly this commit. Do not use the default branch.
2. Copy every file unchanged, keeping the folder structure, into .claude/skills/retention/ for Claude Code and .agents/skills/retention/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist.
3. Do not edit the files, and do not run any script in the folder unless I ask you to.
4. When you are done, list the files you copied and where you put them.

Listing and checks: https://www.agentnative.dev/skills/rasa/cancel-or-stay

SKILL.md at the pin

---
name: Cancel or Stay
description: >
  Cancellation and retention for the signed-in Juniper Mobile customer:
  record a request to cancel a service, and put at most one authorized offer
  in front of them when they have not refused. Activate for "cancel my
  mobile", "I want to leave", "give me my PAC code", "close my broadband",
  "what can you offer me to stay", "your colleague promised me a discount",
  "apply offer code ...", and for answers to an offer.
import_tools:
  - get_account_status
  - withdraw_contact
tool_constraints:
  - accept_retention_offer:
      requires: session.retention.offer_ready
      requires_confirmation:
        enabled: true
        utter_for_confirmation: utter_offer_or_cancel
---

Leaving is a valid outcome. The customer's services are
@memory.project.service_list. Today is @memory.project.today.

1. When the customer asks to cancel, call @tool.record_cancellation_request
   for that service first, before anything else. It records a request with a
   reference and sends it to the customer; it does not close anything. If
   more than one service could fit, ask which.
2. Has the customer refused? "Stop", "no more offers", "not interested", "no
   thanks", "just cancel it", "continue to cancellation", "/stop" or anything
   like it is a refusal, and so is a no to an offer. After a refusal make no
   offer at all for the rest of the conversation, on any service: no price,
   no discount, no "before you go". Confirm what they asked for and stop.
3. If they have not refused, you may call @tool.get_retention_offer once for
   the service. When it returns an offer, call @tool.accept_retention_offer
   with its offer_id straight away. Do not describe the offer yourself: the
   engine reads the offer, its terms and the way out back and asks which
   they prefer. When it returns blocked, follow its next_step and offer
   nothing.
4. If the customer answers the engine's question by choosing cancellation,
   decline the confirmation. If no cancellation request is recorded for that
   service yet, call @tool.record_cancellation_request now, in the same turn.
   Then stop: no other offer, no other service's offer.
5. When accept_retention_offer returns succeeded, the customer has already
   been sent the reference. Add only what they still need.
6. Only offers get_retention_offer returns exist, with exactly its terms. If
   the customer names a price, a percentage, an offer code or a promise
   someone made, you cannot apply it: say so plainly and do not put any
   other number to them.
7. If they say to stop contacting them or stop the offer messages, call
   @tool.withdraw_contact. It also answers step 2: no offers after it.
8. Never say a service or account is cancelled, closed or terminated. A
   cancellation request is recorded; the cancellations team confirms the
   closing date.

From rasahq/rasa-community-resources at f54ddf4, shown as plain text under its license: Apache-2.0 (permissive). The license text is in LICENSE.

View SKILL.md on GitHub at f54ddf4

Files

4 files, 9.5 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.

Skill folder on GitHub at f54ddf4
All 50 skills from Rasa

More from Rasa

  • Access Request

    The skill lets agents handle access requests to Orchard Works systems by opening tickets with system and role details, routing them for owner approval, and…

    Contains scripts

    Claude Code, Codex, Cursor +3 · about 540 tokens · pinned 6 days ago

  • Access Reset

    This skill lets the agent unlock employee accounts, reset passwords, or move authenticators to new phones after verification through the Orchard Works…

    Contains scripts

    Claude Code, Codex, Cursor +3 · about 540 tokens · pinned 6 days ago

  • Account Status

    This skill retrieves a customer's account and service details, then manages contact preferences by withdrawing them from retention offers and marketing…

    Claude Code, Codex, Cursor +3 · about 110 tokens · pinned 6 days ago

  • Application Enquiry

    This skill helps applicants check the status of their Pine University applications (admission, aid, scholarships, enrollment) and records their enquiries with…

    Contains scripts

    Claude Code, Codex, Cursor +3 · about 720 tokens · pinned 6 days ago

  • Appointment Reminders

    This skill manages appointment reminders for Cedar Clinic by sending text notifications, handling patient responses, and tracking delivery status.

    Contains scripts

    Claude Code, Codex, Cursor +3 · about 600 tokens · pinned 6 days ago

  • Book Advisor Appointment

    This skill enables an agent to book a single appointment with a Northgate Bank advisor for mortgage, investment, business, or everyday banking services.

    Contains scripts

    Claude Code, Codex, Cursor +3 · about 620 tokens · pinned 6 days ago

  • accelo-automation

    This skill enables agents to automate Accelo project management tasks by discovering and executing operations through Composio's Accelo toolkit via Rube MCP.

    by ComposioOfficial publisher

    Agents not labelled yet · about 690 tokens · pinned 6 days ago

  • acculynx-automation

    This skill automates Acculynx operations by discovering and executing available tools through the Rube MCP server.

    by ComposioOfficial publisher

    Agents not labelled yet · about 690 tokens · pinned 6 days ago

  • active-campaign-automation

    This skill automates ActiveCampaign tasks by discovering and executing tools through Rube MCP and Composio's ActiveCampaign toolkit.

    by ComposioOfficial publisher

    Agents not labelled yet · about 710 tokens · pinned 6 days ago

  • adrapid-automation

    This skill enables agents to automate Adrapid tasks through Composio's toolkit via Rube MCP.

    by ComposioOfficial publisher

    Agents not labelled yet · about 690 tokens · pinned 6 days ago

  • aeroleads-automation

    This skill automates Aeroleads tasks by connecting to the Aeroleads toolkit via Composio's Rube MCP server.

    by ComposioOfficial publisher

    Agents not labelled yet · about 700 tokens · pinned 6 days ago

  • affinity-automation

    This skill automates Affinity CRM operations by executing tools through Rube MCP and Composio's Affinity toolkit.

    by ComposioOfficial publisher

    Agents not labelled yet · about 690 tokens · pinned 6 days ago

Open roles at Rasa

No open roles at Rasa on the Agent Native jobs board right now.

Browse the jobs board

The skills listed here are third-party software, collected from public GitHub repositories as a catalog of recent skills and provided as is. Agent Native does not write or control them and is not responsible for any harm, loss or damage caused by installing or using them. Labels and checks describe what we saw at one commit and are not a guarantee. Read a skill's files before you run it. Terms of use