diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 00000000..bd3d7995
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,25 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: ''
+labels: bug
+assignees: ''
+
+---
+
+I tried this code:
+```rust
+<code>
+```
+I expected to see this happen: _explanation_
+
+Instead, this happened: _explanation_
+
+## Meta
+
+- `teloxide` version: <!-- (e.g.: `0.3.1`) -->
+- rustc version:
+  ```
+  <version>
+  ```
+  <!-- use `rustc --version --verbose` to get it -->
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 00000000..f6b479f7
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,22 @@
+---
+name: Feature request
+about: Suggest an idea for this project
+title: 'Feature Request: <feature>'
+labels: feature-request
+assignees: Hirrolot, WaffleLapkin
+
+---
+
+<!-- Describe your idea here -->
+
+### Pros
+
+<!-- Describe good parts of your idea -->
+
+### Cons
+
+<!-- Describe bad parts of your idea -->
+
+### Alternatives
+
+<!-- Of any, describe alternatives here -->
diff --git a/.github/ISSUE_TEMPLATE/parse-error.md b/.github/ISSUE_TEMPLATE/parse-error.md
new file mode 100644
index 00000000..0e3a05b8
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/parse-error.md
@@ -0,0 +1,30 @@
+---
+name: Parse error
+about: Report issue with `teloxide` parsing of telegram response
+title: 'Parse Error: <type or error description>'
+labels: FIXME, bug
+assignees: WaffleLapkin
+
+---
+
+When using `<...>` method I've got  `RequestError::InvalidJson` error with the following description:
+```text
+<Description of the inner serde error here>
+```
+
+## Steps to reproduce
+
+<!-- Steps to reproduce the issue - get the same error -->
+
+## Meta
+
+- `teloxide` version: <!-- (e.g.: `0.3.1`) -->
+- rustc version:
+  ```
+  <version>
+  ```
+  <!-- use `rustc --version --verbose` to get it -->
+
+### Additional context
+
+<!-- Describe any additional context here, if needed-->
diff --git a/.github/ISSUE_TEMPLATE/unknown-telegram-error.md b/.github/ISSUE_TEMPLATE/unknown-telegram-error.md
new file mode 100644
index 00000000..6b5eafe2
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/unknown-telegram-error.md
@@ -0,0 +1,30 @@
+---
+name: Unknown telegram error
+about: You've found telegram error which is not known to teloxide
+title: 'Unknown Error: <error description>'
+labels: FIXME, bug, good first issue
+assignees: ''
+
+---
+
+When using `<...>` method I've got  `ApiError::Unknown` error with the following description:
+```text
+<Description of the error here (an inner string of ApiError::Unknown)>
+```
+
+## Steps to reproduce
+
+<!-- Steps to reproduce the issue - get the same error -->
+
+## Meta
+
+- `teloxide` version: <!-- (e.g.: `0.3.1`) -->
+- rustc version:
+  ```
+  <version>
+  ```
+  <!-- use `rustc --version --verbose` to get it -->
+
+### Additional context
+
+<!-- Describe any additional context here, if needed-->