Skip to content

Commit

Permalink
Feature/forms (#254)
Browse files Browse the repository at this point in the history
* adding documentation
  • Loading branch information
iruzevic authored Aug 25, 2023
1 parent 2b877ba commit b948ad7
Show file tree
Hide file tree
Showing 87 changed files with 1,505 additions and 347 deletions.
2 changes: 1 addition & 1 deletion website/docs/additional-libraries/forms.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ title: Eightshift Forms

This plugin is based on Eightshift Boilerplate. It lets you create a cool-looking forms using custom blocks and much more. We implemented a bunch of integrations and all sorts of cool stuff.

* [Documentation](/forms/intro)
* [Documentation](/forms/welcome)
* [Github](https://github.com/infinum/eightshift-forms)
2 changes: 0 additions & 2 deletions website/docs/welcome.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ id: welcome
title: Welcome
---

## Eightshift Development Kit

Eightshift Development Kit is a modern, developer-friendly solution that makes building large, feature-rich WordPress projects painless.
It contains all the tools you need to start building a modern WordPress theme or plugin, using battle-tested front-end and back-end development tools and practices.

Expand Down
4 changes: 2 additions & 2 deletions website/docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ module.exports = {
position: 'right',
},
{
to: 'forms/intro',
to: 'forms/welcome',
activeBasePath: 'forms',
label: 'Forms',
position: 'right',
Expand Down Expand Up @@ -139,7 +139,7 @@ module.exports = {
blogDescription: 'Tutorials and articles about Eightshift development kit',
blogSidebarTitle: 'Latest posts',
showReadingTime: true,
postsPerPage: 6,
postsPerPage: 9,
},
sitemap: {
changefreq: 'weekly',
Expand Down
30 changes: 29 additions & 1 deletion website/forms/features/cache.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,32 @@ id: cache
title: Cache
---

*Coming soon*
Eightshift Forms utilizes WordPress's internal cache tools to store integration API response data, reducing API calls and improving site performance. Clear the cache via our global Settings page to retrieve fresh data from the API.

![Cache screen](/img/forms/cache.png)

## Integration cache

For example, if you are using HubSpot integration, we pull the API data and store it in the cache. When you need to show the form on the front end, we no longer pull the data from the API but from the cache. This way, we can reduce the number of API calls and improve the site's performance. If you change the form fields on HubSpot, you should clear the cache before pulling the data again.

When using forms editor builder there is also an cache clear button in the block editor sidebar options.

:::note
The integration cache is stored for 60 minutes.
:::

## Country

The country list is set using the `JSON` format in the repository, and we use the WordPress internal cache to store it for a short time. This way, we don't need to read the file from the disk every time. You should clear the cache by changing the country list using WordPress filters.

:::note
The country cache is stored for 3 minutes.
:::

## Validation labels

The validation label is a list we use to provide UX responses in every form interaction on the front end. This list is extensive, so we reduced the load time by storing it in the WordPress internal cache. You should clear the cache if you change the validation labels using the provided WordPress filters.

:::note
The validation labels cache is stored for 3 minutes.
:::
4 changes: 3 additions & 1 deletion website/forms/features/debug.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,6 @@ id: debug
title: Debugging
---

*Coming soon*
The debugging screen provides configuration options and overrides default functionalities for developers, but caution should be used as these options can break form functionality.

![Debug screen](/img/forms/debug.png)
12 changes: 11 additions & 1 deletion website/forms/features/fallback-emails.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,14 @@ id: fallback-emails
title: Fallback e-mails
---

*Coming soon*
Fallback email options are used in multiple locations, and we encourage you to set them up. You can add multiple emails by separating them with commas.

![Fallback screen](/img/forms/fallback.png)

## Global settings fallback email

This setting is used to set the fallback email for all forms, no mater the integration and type. This is useful for developers to debug issues with the forms and to make sure that data is never lost.

## Global integration fallback email

You can set the fallback email for each integration. This is useful if you have multiple integrations and you want to make sure that the fallback data is also sent to the additional email.
4 changes: 3 additions & 1 deletion website/forms/features/migrations.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,6 @@ id: migrations
title: Migrations
---

*Coming soon*
As forms evolve, so does the code, and it is inevitable that we will produce some breaking changes in the future. To make sure that your forms are always up to date, we provide a migration system that will help you migrate your forms to the latest version.

![Migrations screen](/img/forms/migrations.png)
26 changes: 26 additions & 0 deletions website/forms/features/validation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
id: validation
title: Validation
---

Validation is used to ensure that the form is populated in the correct way and that the data is valid. Every field has a set of validation rules that can be configured from the form builder.

## Integration validation rules

If you are using an integration, validation rules set on the integration will be automatically set in your form in the sync process, and you will not be able to change them from the form builder. You can always add additional validation rules, but external rules cannot be changed.

For example, on the HubSpot form, the field email is set as required, so you cannot change that from the form builder, but you can add additional validation rules like limiting the number of characters.

## Email validation

Eightshift Form provides a set of validation rules for email fields, like validating the email format and adding checks for top-level domains.

Top-level domains are provided using [Iana](https://www.iana.org/domains/root/db) website database.

## Custom validation patterns

With all the native validations provided, you can also add your own custom validation patterns. This is useful if you want to add custom validation for a field that is not provided by default.

For example, you want an email field not to allow emails with a `.org` domain. You can provide a custom validation pattern using a regular expression to check if the email has a `.org` domain.

![Validation screen](/img/forms/validation.png)
31 changes: 30 additions & 1 deletion website/forms/integrations/active-campaign.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,33 @@ id: active-campaign
title: ActiveCampaign
---

*Coming soon*
ActiveCampaign is an integrated email marketing, automation, sales software, and CRM platform.

### Website

* [Visit website](https://www.activecampaign.com/)

### API Version

* V3

### API Documentation

* [Documentation](https://developers.activecampaign.com/reference/overview)

### Integration type

* Form builder provided by the service.

### Supported fields:
* Full name
* First name
* Last name
* Hidden
* Textarea
* Email
* Phone
* Checkbox
* Radio
* Dropdown

30 changes: 29 additions & 1 deletion website/forms/integrations/airtable.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,32 @@ id: airtable
title: Airtable
---

*Coming soon*
Airtable is an platform that makes it easy to build powerful, custom applications.

### Website

* [Visit website](https://airtable.com/)

### API Version

* V0 - beta

### API Documentation

* [Documentation](https://airtable.com/developers/web/api/introduction)

### Integration type

* Form builder provided by the service.

### Supported fields:
* Input
* Email
* Url
* Number
* Date
* Phone number
* Textarea
* Single Select
* Multiple Choices
* Checkbox
21 changes: 20 additions & 1 deletion website/forms/integrations/clearbit.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,23 @@ id: clearbit
title: Clearbit
---

*Coming soon*
Clearbit is an marketing intelligence tool that you can use to effectively get quality B2B data for understanding customers, identifying prospects, and creating personalised marketing and sales exchanges.

### Website

* [Visit website](https://clearbit.com/)

### API Version

* V2

### API Documentation

* [Documentation](https://dashboard.clearbit.com/docs)

### Integration type

* Manual fields mapping from the admin settings.

### Supported integrations:
* Hubspot
23 changes: 22 additions & 1 deletion website/forms/integrations/goodbits.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,25 @@ id: goodbits
title: Goodbits
---

*Coming soon*
Goodbits is an service that helps you and your business create stellar newsletters from the best links your team and customers are reading.

### Website

* [Visit website](https://goodbits.io/)

### API Version

* V1

### API Documentation

* [Documentation](https://gist.github.com/kalv/84c37780d277da5b7a3cdf5c28359c6b)

### Integration type

* Form builder provided by the service.

### Supported fields:
* Email
* First name
* Last name
27 changes: 26 additions & 1 deletion website/forms/integrations/greenhouse.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,29 @@ id: greenhouse
title: Greenhouse
---

*Coming soon*
Greenhouse is an sourcing automation tool to help hiring teams find, reach and engage top talent quickly and effectively.

### Website

* [Visit website](https://www.greenhouse.io/)

### API Version

* V1

### API Documentation

* [Documentation](https://developers.greenhouse.io/job-board.html)

### Integration type

* Form builder provided by the service.

### Supported fields:
* Phone
* Text
* Email
* File
* Textarea
* Select
* Checkbox
28 changes: 27 additions & 1 deletion website/forms/integrations/hubspot.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,30 @@ id: hubspot
title: Hubspot
---

*Coming soon*
Hubspot is an CRM platform that connects everything scaling companies need to deliver a best-in-class customer experience into one place.

### Website

* [Visit website](https://www.hubspot.com/)

### API Version

* V3 - Submit
* V2 - Items

### API Documentation

* [Documentation](https://legacydocs.hubspot.com/docs/overview)
* [API Submit](https://legacydocs.hubspot.com/docs/methods/forms/submit_form)
* [API Files](https://legacydocs.hubspot.com/docs/methods/files/v3/upload_new_file)
* [API Update Contact](https://legacydocs.hubspot.com/docs/methods/contacts/create_or_update)
* [API Properties](https://legacydocs.hubspot.com/docs/methods/contacts/v2/get_contacts_properties)
* [API Forms](https://legacydocs.hubspot.com/docs/methods/forms/v2/get_forms)

### Integration type

* Form builder provided by the service.

### Not supported fields:
* Heading
* Paragraph
33 changes: 32 additions & 1 deletion website/forms/integrations/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,35 @@ id: intro
title: Intro
---

*Coming soon*
Integrations with external services give Eightshift Forms its power of automation. You can connect your forms with any supported services and send data to them. In general, we support two ways of form connections.

## Integration provided form builder

If an external service provides the form builder, you can create your form there and use Eightshift Forms to connect with that form. All important data will be synced with the push of a button. Also, forms allow you to use more advanced features like conditional logic and multi-step forms not provided in any external services.

### How to use it?
1. Connect the API data.
2. Create a form on the external service.
3. Create a new form in Eightshift Forms and select the external service block used.
4. Select the form you created in step 2 using the forms picker.
5. Click publish, and you are ready to go.

### What if the form changed on the external service?
1. Open that form on Eightshift Forms.
2. Click the clear cache button to get the latest data from the external service.
3. Click the sync data button to sync the data with the external service.
4. Click publish, and you are ready to go.

## Integration not provided form builder

If the external service doesn't provide any form builder or doesn't support API, you can use Eightshift forms to create forms like you would create a simple mailer form and then connect the fields with the external service. This way, you can use all the power of Eightshift Forms to create your forms and then send the data to the external service.

### How to use it?
1. Connect the API data.
2. Create a new form in Eightshift Forms and add all necessary fields.
3. Click publish and open form settings.
4. Fill out needed data in the form settings to map fields to the external service.
5. Click save, and you are ready to go.

### What if the form changed on the external service?
1. As the form is not connected to the external service form builder, there is no way form data can go out of sync.
25 changes: 24 additions & 1 deletion website/forms/integrations/jira.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,27 @@ id: jira
title: Jira
---

*Coming soon*
Jira is an marketing intelligence tool that you can use to effectively get quality B2B data for understanding customers, identifying prospects, and creating personalised marketing and sales exchanges.

### Website

* [Visit website](https://jira.atlassian.com/)

### API Version

* V3 - Cloud solution
* V2 - Self-hosted

### API Documentation - Cloud solution

* [Documentation](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#version)
* [Description nodes](https://developer.atlassian.com/cloud/jira/platform/apis/document/nodes/table_cell/)

### API Documentation - Self-hosted

* [Documentation](https://docs.atlassian.com/software/jira/docs/api/REST/9.8.0/#api/2)

### Integration type

* Form builder **not** provided by the service.
* The form is created using our forms fields and connected to Jira custom fields using form settings.
Loading

0 comments on commit b948ad7

Please sign in to comment.