# INTRODUCTION

- [What is FlyCode?](https://docs.flycode.com/docs/introduction/what-is-flycode.md): Customers don’t always leave on purpose. FlyCode helps you catch the ones who didn’t mean to.
- [🎟 What causes payment failures & involuntary churn?](https://docs.flycode.com/docs/introduction/what-causes-payment-failures-and-involuntary-churn.md): Most teams think failed payments are just a cost of doing business. But many are preventable - if you know where to look.
- [🚨 How teams handle failed payments before FlyCode?](https://docs.flycode.com/docs/introduction/how-teams-handle-failed-payments-before-flycode.md): Most recovery efforts fail because they treat all errors the same, even though banks and card networks apply different rules and risk scores to each transaction.
- [Involuntary churn and failed payments](https://docs.flycode.com/docs/introduction/involuntary-churn-and-failed-payments.md): Learn how to reduce failed payment churn with FlyCode’s intelligent payment recovery and subscription optimization tools.
- [Analyze your subscription churn (free report)](https://docs.flycode.com/docs/introduction/analyze-your-subscription-churn-free-report.md): We’ll show you which types of failures are costing you most and how smarter retry logic can get that revenue back.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.flycode.com/docs/introduction.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
