# Get Started

{% hint style="success" %}
**Maya is new way to program a machine using just natural language**. Build custom apps, automations and internal tooling in minutes without writing code.
{% endhint %}

Here's a demo of it in action :&#x20;

{% embed url="<https://vimeo.com/739992073>" %}

{% hint style="info" %}
We use a combination of conditional logic, neural search, classification, fine-tuned language models and template generation to make this work predictably and reliably in response to words you type. &#x20;
{% endhint %}

Today, you can build one particular type of app well using Maya that let's you :&#x20;

1. **Fetch custom data** : Query custom data from an external source (like SQL, Gsheets, Notion etc), setup your details
2. **Visualize it** : Plot and visualize it in a custom table, chart or graph
3. **Perform actions** : Select and act on a particular data item (send an email, upload a file, trigger an API)

In the ideal experience we're trying to craft, Maya will incrementally generate programs & show results in response to steps you type in English.  This should require no documentation, and should feel as natural as talking to a programmer friend. &#x20;

Till we reach that ideal stage, this page of documentation is an attempt to fill in the gaps. It is currently a single page long, but should get shorter over time.

## Quickstarter (5 mins)

1 . Log in to Maya at [app.mayalabs.io](https://app.mayalabs.io).&#x20;

2\. Create and start a new workspace. Your screen should now look like this :&#x20;

<figure><img src="https://1242713857-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcHsq2XrlRI2SY9ayu5pF%2Fuploads%2FYOpmAE67wSdV1XRJ42eC%2Fimage.png?alt=media&#x26;token=bfbafc2d-b2c4-4c70-ad2e-f798e95633a7" alt=""><figcaption></figcaption></figure>

3\. Copy and paste (by clicking the <img src="https://1242713857-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcHsq2XrlRI2SY9ayu5pF%2Fuploads%2FLfOQacffsGC5M2bqkCnC%2Fimage.png?alt=media&#x26;token=9e492f78-ac70-4e8e-b53c-b11d57bdd77b" alt="" data-size="line"> button) the following steps into the Synthesis Panel, right below the text "Flow 1". This natural language program does what it says it does!

```markup
1. from gsheet get Name and Email
2. put into a table
3. modify in a form with fields Name, Email
4. put fields Name, Email into sql
```

Maya generates a visual flow program step-by-step. The nodes with a "purple dot" ( like this one <img src="https://1242713857-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcHsq2XrlRI2SY9ayu5pF%2Fuploads%2FyKf3dyZB8FoHAUf6a6Yx%2Fimage.png?alt=media&#x26;token=ac113d8a-cd7d-48b7-a085-a14dcd2bfbf1" alt="" data-size="line">) indicate that the dependencies are still missing, and this program is undeployed (the text on each node indicates what that node is doing)

5\. Hit `[Shift + Enter]`  or hit the <img src="https://1242713857-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcHsq2XrlRI2SY9ayu5pF%2Fuploads%2F1cSTohhRBQjVArNDLe5v%2Fimage.png?alt=media&#x26;token=c1806feb-6052-43bf-b58f-f3ae8447c39d" alt="" data-size="line"> button to deploy the app. Maya searches & auto-installs missing dependencies, handling authentication wherever required.

6\. Make sure you have a Google Sheet at hand. You can use one you already have, or duplicate this [one](https://docs.google.com/spreadsheets/d/1s9SXGHKedX19gLEgJ2he1Wsvr7KuodozAGABJg-Rd8k/edit#gid=0) and add your own columns. Click on/focus your cursor to the first command : `"from gsheet get Name and Email"`. Maya zooms into the relevant part of the generated program.

7\. Double click the `<Insert Sheel URL>` node and add the gsheet url. Click Done, and hit the Deploy button again (or Shift + Enter).

8\. The first bit of your program is now functional! You are connected to a data source. Open the dashboard by clicking the dashboard <img src="https://1242713857-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcHsq2XrlRI2SY9ayu5pF%2Fuploads%2FwpifEd818HrhPtIGtGhG%2Fimage.png?alt=media&#x26;token=d44920a8-da89-4829-84b2-f44c59c89c8b" alt="" data-size="line"> icon in the left toolbar. Click the "Fetch" button and check the fetched data array by clicking the  button debug<img src="https://1242713857-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcHsq2XrlRI2SY9ayu5pF%2Fuploads%2Fq7xUTlrrMa2slQpdDXaE%2Fimage.png?alt=media&#x26;token=33a9dff0-3361-425b-80b5-29768a910dac" alt="" data-size="line">. It should get plotted in a table, like this :&#x20;

<figure><img src="https://1242713857-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcHsq2XrlRI2SY9ayu5pF%2Fuploads%2FqG7jrbHqw6mbZtOBraSu%2Fimage.png?alt=media&#x26;token=4e7b4c0f-708f-4f4d-891c-91acbf8b0ca7" alt=""><figcaption></figcaption></figure>

9\. You can now authenticate the SQL part of the natural language program as well, change around the field/column names. Edit, delete, replace steps as you'd edit a normal program, and Maya works as you'd expect.

10\. Click the copy icon to share it with your friends or team :)

{% hint style="danger" %}
Want to go back to blank slate? Click the Clear icon and hit Deploy to start from zero
{% endhint %}

## Build from scratch (30 mins)

{% hint style="success" %}
We'll be describing + making a quick application that fetches only certain columns from a certain Google Sheet and generates a custom email to send each person in the DB.&#x20;
{% endhint %}

1 . Log in to Maya at [app.mayalabs.io](https://app.mayalabs.io).&#x20;

2\. Create and start a new workspace. Your screen should now look like this :&#x20;

<figure><img src="https://1242713857-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcHsq2XrlRI2SY9ayu5pF%2Fuploads%2FYOpmAE67wSdV1XRJ42eC%2Fimage.png?alt=media&#x26;token=bfbafc2d-b2c4-4c70-ad2e-f798e95633a7" alt=""><figcaption></figcaption></figure>

3\. Now, start typing into the text box in the synthesis panel : `"from gsheet get Name, Email".`&#x20;

<img src="https://1242713857-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcHsq2XrlRI2SY9ayu5pF%2Fuploads%2FQaC1Taj7q0cGlWPbp2Xr%2Fimage.png?alt=media&#x26;token=6becd385-5bf4-495e-a773-8a0ac770c5c5" alt="" data-size="original">

{% hint style="info" %}
Based on what app you type, Maya suggests possible commands you could use. You could try out a few other prompt variations also : "from notion fetch Name and Email" or "from google sheet select Name, Email" or "from sql fetch Email and Name". Just make sure the column names **exactly** match the ones in your database.
{% endhint %}

4\. Hit `Enter`. Maya generates a few nodes to fetch the Name & Email fields from a dummy Google Sheet. The purple circle above these nodes indicate that these are currently temporary, their dependencies are missing and have not been deployed for running yet.

<figure><img src="https://1242713857-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcHsq2XrlRI2SY9ayu5pF%2Fuploads%2FiSlZQBTaBU2Glpky3BQB%2Fimage.png?alt=media&#x26;token=9c7e3fc3-3bb6-4dfb-a8be-3904bb7f6a01" alt=""><figcaption></figcaption></figure>

5\. Hit `Shift + Enter` to deploy them and see changes. Maya detects that the Google Sheet nodes are missing and tries to install the Gsheet module + . Sign in with your Gmail account to authenticate it to interact with your Google Sheet. This is now what you should see.

<figure><img src="https://1242713857-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcHsq2XrlRI2SY9ayu5pF%2Fuploads%2FnIctzcCsApMImq5QCs5x%2Fimage.png?alt=media&#x26;token=643502f2-7fd9-4c89-a9ed-39820d123bf3" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Make sure you have a Google Sheet at hand. You can use one you already have, or duplicate this [one](https://docs.google.com/spreadsheets/d/1s9SXGHKedX19gLEgJ2he1Wsvr7KuodozAGABJg-Rd8k/edit#gid=0).
{% endhint %}

6\. You can set up your Google Sheet url in the node called `<Insert Sheet URL>`. Check out the <`Query Data>` node to see which data is being extracted (in this case, only the columns Name and Email). Hit the Deploy Button again so these changes reflect.

{% hint style="success" %}
The first bit of your program is now functional! You are connected to a data source. Open the dashboard by clicking the dashboard <img src="https://1242713857-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcHsq2XrlRI2SY9ayu5pF%2Fuploads%2FwpifEd818HrhPtIGtGhG%2Fimage.png?alt=media&#x26;token=d44920a8-da89-4829-84b2-f44c59c89c8b" alt="" data-size="line"> icon in the left toolbar. Click the "Fetch" button and check the fetched data array by clicking the  button debug<img src="https://1242713857-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcHsq2XrlRI2SY9ayu5pF%2Fuploads%2Fq7xUTlrrMa2slQpdDXaE%2Fimage.png?alt=media&#x26;token=33a9dff0-3361-425b-80b5-29768a910dac" alt="" data-size="line">
{% endhint %}

<figure><img src="https://1242713857-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcHsq2XrlRI2SY9ayu5pF%2Fuploads%2FHomFaGJ1FUaI3SUGoK8U%2Fimage.png?alt=media&#x26;token=bdd35cab-3485-439b-8235-137ba1669919" alt=""><figcaption></figcaption></figure>

6\. Its time to now visualize this data! in the second step, type  `put into a table.`Maya generates the next set of nodes to take the data and put it into a table. Hit `Enter` to see the nodes then `Shift + Enter` to deploy. Click the **"Fetch"** button again on the dashboard to plot the data in the table.

<figure><img src="https://1242713857-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcHsq2XrlRI2SY9ayu5pF%2Fuploads%2FOQwfX1ZWLRfbuXgKWmVz%2Fimage.png?alt=media&#x26;token=24f5293d-79ce-4cd0-8154-36553822bb94" alt=""><figcaption></figcaption></figure>

8\. You can now perform an action on this data - say generating a custom email for each item in the list. For the next step, type in something like and hit Enter:&#x20;

> `create a template for a custom email to user {{payload.Name}} asking them about how they're using your basketweaving product`

7\. Maya generates a custom template linked to items in the table, if you click each item in the table, you should see a different email with the fields filled in. Hit `Shift + Enter` to deploy. Don't like the email template? Just edit the command and hit Enter again to generate another variation of it.

<figure><img src="https://1242713857-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcHsq2XrlRI2SY9ayu5pF%2Fuploads%2F0k48dTr6Xi7h91UXUzFr%2Fimage.png?alt=media&#x26;token=8938892f-2c8c-4ddf-81d4-31b82e9e976b" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
`Your first natural language program is now setup! You can edit and modify steps like you would a normal list of steps, and Maya should respond as you expect.` &#x20;
{% endhint %}

8\. **Share** : Click the Copy button to copy it to your clipboard - you can now paste it into a note-taking app, or share your natural language program with a friend/colleague, . It's just a set of steps in English that they can then paste & modify for their own use.

&#x20;![](https://1242713857-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcHsq2XrlRI2SY9ayu5pF%2Fuploads%2FxgR8aJ7mKEVvSujl6HR1%2Fimage.png?alt=media\&token=24de9ca4-da0f-43f3-ae90-b814085d9111)

{% hint style="danger" %}
Want to go back to blank slate? Click the Clear icon and hit Deploy to start from zero.
{% endhint %}

## Further Steps

Now that you're done with a simple "Hello World" natural language program, you might want to try a few other things. Here are some more prompts to try out :

1. `"1. Get data from a dummy SQL, 2. put it into a table with name and email"`
2. `"1. From sql fetch users who churned 15 days back 2. put into a table with name, latitude and longitude, 3. plot in a map"`
3. `"1. Get a list of all users who signed up a week back from a dummy SQL, 2. put it into a table, 3. add a button to send them a custom email"`

### 1. Query data from a custom data source

coming soon.

### 2. Plot in a table or a graph

coming soon.

### 3. Perform an action on a selected item

coming soon.

## Future Roadmap

We are starting narrow with a single kind of custom app but based on demand will later expand to many more use cases. You can check what Maya can be used to build on the [Maya Store](https://mayalabs.io/store).

1. Scraping & navigating the web
2. Connecting apps together
3. Creating platform bots (Reddit, Twitter, Telegram etc)
4. Automation data entry
5. A command bar to trigger tasks manually

Send over a mail to <humans@mayalabs.io> if you get stuck / have any further questions.
