> ## Documentation Index
> Fetch the complete documentation index at: https://developer.supernotes.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Readwise to Supernotes

<Info>
  This was originally posted by @freisatz in the [Supernotes
  Community](https://community.supernotes.app/t/readwise-to-supernotes-via-pipedream/1987).
</Info>

Discover a seamless way to integrate [Readwise](https://readwise.io/) with Supernotes, even though it's not official integration (yet!). Leverage the power of APIs and [Pipedream](https://pipedream.com/apps/supernotes) to create a workflow that automates note-taking.

### The Flow

1. **Readwise Highlight**: Select text in the Reader app or using the Readwise extension.
2. **Pipedream Trigger**: A new highlight in Readwise triggers the Pipedream workflow.
3. **Get Book Details**: A Python step retrieves book details (title and author) from the Readwise API.
4. **Create Supernotes Card**: The workflow composes a new card in Supernotes, respecting your traditional syntax for literature notes.

### Code Example and Instructions

Get started by using two consecutive Python steps to retrieve book information and format the note.

After a new highlight is triggered in Readwise, compose your card by gathering additional data in two consecutive Python steps for the card's markup, first making a call to the Readwise API to retrieve some information on the book, which contains the book or website and the author, using the following code:

```python theme={null}
import requests

def handler(pd: "pipedream"):
    # Prepare inputs
    readwise_auth = pd.inputs["readwise"]["$auth"]["access_token"]
    highlight = pd.steps["trigger"]["event"]
    # Request data from Readwise API
    result = requests.get(
        f'https://readwise.io/api/v2/books/{highlight["book_id"]}',
        headers={"Authorization": f'Token {readwise_auth}'}
    )
    # Export data for use in future steps
    return result.json()
```

Then prepare some pre-formatted strings

```python theme={null}
import tld
import re
import dateutil.parser as p

def get_domain_base(url):
    dom = ""
    try:
        res = tld.get_tld(url, as_object=True)
        dom = f'{res.domain}.{res.tld}'
    except:
        dom = url
    return dom

def get_indented_text(text):
    prefix = "> "
    return re.sub("\n", f"\n{prefix}", re.sub("^", prefix, text))

def get_date(timestamp, date_format):
    d = p.parse(timestamp)
    return d.strftime(date_format)

def handler(pd: "pipedream"):
    # Set constants
    date_format = "%d.%m.%Y"

    # Prepare inputs
    book = pd.steps["book"]["$return_value"]
    highlight = pd.steps["trigger"]["event"]

    # Get domain base
    url = book["source_url"]
    domain_base = get_domain_base(url)

    # Get indented text
    text = highlight["text"]
    indented_text = get_indented_text(text)

    # Get highlight date
    book_updated = book["updated"]
    formatted_date = get_date(book_updated, date_format)

    # Return data for use in future steps
    return {
        "formatted_date": formatted_date,
        "domain_base": domain_base,
        "indented_text": indented_text
    }
```

Get started with Pipedream and connect Readwise to Supernotes today!
