Streamline Your Document Processes with Saas Funnel in Onboarding Forms

Effortlessly send and eSign documents with airSlate SignNow's cost-effective solution tailored for SMBs and Mid-Market. Experience the great ROI and superior support!

airSlate SignNow regularly wins awards for ease of use and setup

See airSlate SignNow eSignatures in action

Create secure and intuitive e-signature workflows on any device, track the status of documents right in your account, build online fillable forms – all within a single solution.

Collect signatures
24x
faster
Reduce costs by
$30
per document
Save up to
40h
per employee / month

Our user reviews speak for themselves

illustrations persone
Kodi-Marie Evans
Director of NetSuite Operations at Xerox
airSlate SignNow provides us with the flexibility needed to get the right signatures on the right documents, in the right formats, based on our integration with NetSuite.
illustrations reviews slider
illustrations persone
Samantha Jo
Enterprise Client Partner at Yelp
airSlate SignNow has made life easier for me. It has been huge to have the ability to sign contracts on-the-go! It is now less stressful to get things done efficiently and promptly.
illustrations reviews slider
illustrations persone
Megan Bond
Digital marketing management at Electrolux
This software has added to our business value. I have got rid of the repetitive tasks. I am capable of creating the mobile native web forms. Now I can easily make payment contracts through a fair channel and their management is very easy.
illustrations reviews slider
Walmart
ExxonMobil
Apple
Comcast
Facebook
FedEx
be ready to get more

Why choose airSlate SignNow

  • Free 7-day trial. Choose the plan you need and try it risk-free.
  • Honest pricing for full-featured plans. airSlate SignNow offers subscription plans with no overages or hidden fees at renewal.
  • Enterprise-grade security. airSlate SignNow helps you comply with global security standards.
illustrations signature

Saas Funnel in Onboarding Forms

Looking to streamline your document signing process? airSlate SignNow by airSlate is the perfect solution for businesses of all sizes. With a user-friendly interface and cost-effective plans, airSlate SignNow makes it easy to send and eSign documents hassle-free.

Saas Funnel in Onboarding Forms Step-by-Step Guide:

Experience the efficiency of airSlate SignNow today and revolutionize your document workflow. With airSlate SignNow, you can say goodbye to the hassle of printing, signing, scanning, and faxing documents. Streamline your processes and increase productivity by switching to airSlate SignNow's digital solution.

Get started with airSlate SignNow and discover the benefits of a seamless document signing experience.

airSlate SignNow features that users love

Speed up your paper-based processes with an easy-to-use eSignature solution.

Edit PDFs
online
Generate templates of your most used documents for signing and completion.
Create a signing link
Share a document via a link without the need to add recipient emails.
Assign roles to signers
Organize complex signing workflows by adding multiple signers and assigning roles.
Create a document template
Create teams to collaborate on documents and templates in real time.
Add Signature fields
Get accurate signatures exactly where you need them using signature fields.
Archive documents in bulk
Save time by archiving multiple documents at once.
be ready to get more

Get legally-binding signatures now!

FAQs online signature

Here is a list of the most common customer questions. If you can’t find an answer to your question, please don’t hesitate to reach out to us.

Need help? Contact support

Trusted e-signature solution — what our customers are saying

Explore how the airSlate SignNow e-signature platform helps businesses succeed. Hear from real users and what they like most about electronic signing.

This service is really great! It has helped...
5
anonymous

This service is really great! It has helped us enormously by ensuring we are fully covered in our agreements. We are on a 100% for collecting on our jobs, from a previous 60-70%. I recommend this to everyone.

Read full review
I've been using airSlate SignNow for years (since it...
5
Susan S

I've been using airSlate SignNow for years (since it was CudaSign). I started using airSlate SignNow for real estate as it was easier for my clients to use. I now use it in my business for employement and onboarding docs.

Read full review
Everything has been great, really easy to incorporate...
5
Liam R

Everything has been great, really easy to incorporate into my business. And the clients who have used your software so far have said it is very easy to complete the necessary signatures.

Read full review
video background

How to create outlook signature

hey welcome back all SAS applications need a couple different things when it comes to users and user onboarding one is authentication that is knowing the user is who they say they are and the second is authorization meaning they are authorized to see what they are trying to see and in our case when we're talking about SAS application oftentimes that authentic or the authorization is based on what they're paying for or the level that they've paid for sort of the tier of the subscription and so in this episode we're going to talk about how we onboard customers using a rails application we're going to use the devise gem for authentication and then we'll talk about how you might set up a customer inside of stripe that is related to your object inside of the database that is the the rails user in the device in the device context [Music] all right so we're going to get started by adding the devise gem so we're going to say bundle add device and this device gem is a well-known gem in the rails ecosystem for handling authentication next we're going to say rails G devise colon this will devise and this comes out with a bunch of different instructions for us to follow for setting up some errors in our application HTML so we'll open up our application HTML Erb and drop in this to our template just so that we can see those alerts and notices and it also asks us to generate some device views so here we can say rails G devise colon views that will fire up our views and finally it wants to make sure that we have device associated with a specific user model we haven't actually created a user model yet so first we'll say rails G model user and that will create just an empty user model so that has this this file here for users.rb and next what we're going to say is rails G devise user and when we run this command it's going to generate a migration for us that we can open up and you'll notice that there are a bunch of different concerns that devise will enable and those concerns depend on database Fields so we're gonna we can uncomment sections of this if we'd like so here we'll turn on the trackability of users and this will just let us know when they have logged in or out so we're going to add trackable here to the user model that was created for us when we run railsdb migrate this will create the two tables that we just talked about so that created the users table and it added devise to the users table now we can restart our development environment with Bim Dev head back over to our browser and go to localhost 3000 slash uh user slash sign up and this will show us the devise view for signing up as a new user it's not very stylish but you can go back and style this to your heart's content so if we log in or create a new account with Jenny Rosen and the password is just password and click sign up we're going to get this error that says undefined method user URL for device registrations now this will happen if we have not gone into the device RB initializer and set a couple different configs so the first is that we want to inside of the navigational format what we want to do is add turbo stream here which is going to be a new default that's part of rail7 we can also add we want to be able to sign out via get requests just so that we don't have to add any buttons to the page that will just add a little bit of overhead and during the demo we'll be able to sign out via get request here since we changed the initializer we need to restart our development environment head back over to the browser go back to users sign up and let's log in as test at example .com or we're going to sign up as this and now when we log in we are brought back to the root route now one thing we want to do is have some page that is actually protected so we should not be able to see a certain page if we're not authenticated and we're not logged in so to do so we'll generate a new controller so rails G controller dashboards and this will have just a show page so if we go over to our routes file we'll add a new route for that so we're going to say resource dashboard and in our dashboards controller we can say we can add a before action that says if you're not authenticated it'll redirect you to the sign in flow so we're going to say B4 action authenticate user Bang so now if we attempt to view the dashboards page we can see it because we're actually signed in or we're signed up but if we if we were signed out so users slash sign out and we try to go back to the dashboard page we are going to be redirected back through the sign in flow so then we would have to log in with test at example .com password login and now we can successfully see the dashboard page all right so that is going to be our really basic addition of authentication now what we want to do is talk about how we're going to create that stripe customer that will enable us to do authorization based on payment much like devise is for authentication there's another gem or another rails engine called pay pay abstracts away a lot of the interactions for setting up stripe web hooks handling the database tables and and the database layer for you and gives you a lot of helpful abstractions for going through the checkout flow and then the customer life cycle So today we're going to use the page M so we're going to jump over to the terminal here and we'll say bundle add pay this is the the rubygem that we're going to and this will come with some migrations that we can generate once we've installed the page M we can run pay rails pay migrations this will generate the migrations for us to create the pay tables if we want we can open this up and take a look at the migrations it's going to create tables for customer objects Merchants for using stripe connect payment methods subscriptions charges and web Hooks and it keeps track of all of this stuff for you automatically that's really handy so that you don't have to write all this by hand but just know that you could technically Implement all of the features and functionality using the stripe ruby gem directly to make API calls directly to stripe but we're going to use the page M to abstract some of that away so now we have the gem installed we have generated our migrations now we can say rails DB migrate to make our database reflect those changes and we can also generate some views so if we want we can say rails G pay views and this will generate a bunch of views for different mailers or for the stripe checkout buttons or showing different payments Etc now that we have the page M installed let's jump into our user model and make the user a billable user so we're going to jump over to the user now it's worth mentioning that if you want to collect payment at a different level than from the user so for instance if you're charging at the team level or at an account level where multiple users are all sharing the same account you may want to enable this sort of billable thing at a different level for our use case we're going to add Pay customer at the user model level that means that each individual user is going to require payment before they can access certain pages before they can be authorized to view certain pages so by default you can just call Pay customer and then you can use all of the pay Jam functionality out of the box with a user object however in our case what we want to do is to set the default payment processor so I'm going to set the default payment processor to stripe so that all of our payments run through stripe now let's take a look at what this gives us let's jump into the rails console and take a look so if we create a brand new user maybe we're going to say you is user.create the email of like one two three at example.com and we need to give it a password of oh gosh very secret password okay so now that we have a user object we can say U dot payment processor so that's going to give us back a Pay customer object so this is a model from the database this is an active record model it looks like an active record model it is an active record model and its processor is set to stripe but you'll notice that the processor to ID is nil now if you're implementing this entire SAS product yourself and you're not using pay you want to store the ID of the stripe customer object at a minimum in your database alongside your authenticated user whether that's just a column in the database that's called stripe customer ID or whether that's a separate model called customer or something like this that is associated with your user you want to store that ID somewhere now when we're using the page M that's stored in the Pay customer object that is stored as the processor ID Now by default pay does this really clever thing where it will only create the stripe customer using the API when a customer is needed when it's absolutely needed so until we go and try to create a checkout session or if we attempt to access the customer there is no ID for the stripe customer and there is no ID here yet so if we say U dot payment processor Dot customer oops if I can spell customer right customer this will fire the API call to create a brand new stripe customer and you can see that the response is actually a stripe customer object directly from the API and it has this ID cus underscore lnu blah blah blah now this is a stripe customer object you'll notice a couple of things here number one it has the email address set from the user that's the same email address that we use to create the user with and there's a couple there's like a lot of other settings here like the address that's null currency default Source Etc a lot of these things we can set and we're going to look at that in just a moment we can set that by default every time we create a customer with a stripe API but now when we go to access payment processor we're given back a processor object or a Pay customer object that has that stripe customer ID so that we're always interacting with the same stripe customer object on stripe now if you again if you're implementing this yourself what I would recommend doing is inside of the user model one way to achieve the same thing is perhaps you say before validation ensure stripe customer and then you make a method here ensure stripe customer and then you make your API call stripe customer dot create and you pass along the email which is like self.email and then you want to store this off into a variable and ultimately update so like self.update the stripe customer ID to be this new customer dot ID so if you're implementing this yourself and you were not using the pagem this is how I would recommend uh going about it um because we're using the page M under the hood we don't actually have to to implement it this way so at the end after we have um after we have created the user model because we're using the pagem we can immediately check out so there's another thing that we want that I want to look at on the user model that we can now access so let's say user.last so we have this user object and it has a pay has a payment processor and we can ask if we are subscribed this will look to see if there's any subscriptions that are trialing or active Now by default we don't have any subscriptions created for us those subscription objects will be created using stripe web hooks which we're going to look at in another episode but this is a method that we can use to tell whether or not a the current user is subscribed so let's go add some logic into our application that will prevent anyone from seeing the dashboard view if they are not subscribed so we can jump into the application controller we're going to add a method that we can then use as a before filter to sort of paywall the user or require that they have subscribed so here we're going to say ensure subscribed and I'm going to add an exclamation point to indicate that this is going to be an action that is going to like forcefully redirect them somewhere if they're not subscribed then we can say current user.payment processor got subscribed and if they're not subscribed then we can say redirect to slash pricing perhaps now on now we can use this ensure subscribed method as a before filter so if we go back to our dashboards controller here in addition to authenticating the user we can ensure that they're subscribed first we need to restart our development environment then we can go back to our dashboard page refresh the page and we are redirected to slash pricing we don't have a pricing page set up so that'll be in the next episode we're going to talk all about building out a pricing page but at this point we are preventing someone who does not have a subscription from accessing our sort of paid content so now we have authentication set up we have authorization set up and we have a user onboarding flow that is sort of getting closer in the next episode we're going to talk all about building out this pricing table and pricing page and a few different approaches to that there's a couple other things I wanted to go over though during onboarding so if we go back over to our user model here so far we have set the default payment processor to stripe if there are other arguments that we want to pass when we're creating that customer object we can do that here inside of the user model another argument we want to pass to pay customer here is stripe attributes we're going to pass it the name of a method inside of the model and this should return a hash so we're going to just create some attributes here and that's what we'll return now these might be any arguments that you would otherwise pass to the stripe API to create a customer object so for instance we could say description and this might be like created with hey or we could pass some meta data and one really common approach is to use an argument that is passed into stripe attributes called the Pay customer and set the metadata so that in stripe we know the ID of the Pay customer we also know the ID of the user so we can say Pay customer ID is Pay customer dot ID we can also say user ID is ID that will set up some metadata on the on the customer so that inside stripe we can sort of associate back and forth very easily so let's go through the onboarding flow once again here so let's go sign out so we're gonna go to users sign out and then we're going to sign up as test metadata at example.com all right so we just created a brand new user now let's open up the rails console also we can attempt to access dashboard here and again we're going to be like forced to that pricing page so if we say U dot payment processor Dot customer that will sort of cause the lazily loaded customer object to be created and here we can now see that inside of the metadata we have the Pay customer ID is set to five and the user ID is set to five so those are going to be the IDS of those objects in the database we also have our description set to created with paste so that's one way that we can add some data to a customer great there's one other thing that I wanted to talk about and that this is a bit Advanced but this can help a ton when you're in development and you're testing and that is using a feature of the API called test clocks so inside of stripe there is a way to sort of simulate changes through time and that is using test clocks and so one thing that I like to do is during the onboarding process when I'm creating the stripe customer for the first time I want to create a test clock and Associate that new customer with a test clock that'll allow me to sort of control through time and simulate any events that would fire down the road so imagine for a second that you wanted to like test out which emails are sent to the customer in a month from now when they're renewing their plan or which emails are going to happen in a month from now when their payment fails you can do that using a test clock and so here what I'm going to say is if rails.n.development we only want to do this in development because test clocks are not available in in live mode so if we're in development I want to create a new clock and it works like this we're going to say stripe test helpers test clock dot create Frozen time is time.now.2i and then we're going to set inside of our adders we're going to set our test clock equal to clock.id all right let's take this for a spin in the rails console so we're going to open up rails console and we're going to say U is another user another user that we're going to create so we're going to say give us a new user called Test Plus clocks and that created a new user now we can say U dot payment processor Dot customer and again that will create a customer object for us we can grab the ID of that customer and we can jump into the stripe dashboard here and look for that customer and now we can see that this customer is attached to a clock that is in a simulation if we wanted to we can advance time and move this customer maybe we can we can see what it is like to look at the customer object in you know 20 days from now or something click Advanced that'll fire all of the different web hook events that are happening related to that customer so this is sort of like a pro tip and a way that you can really supercharge your customer objects in development mode is by automatically attaching test clocks to them when they first register so again we're using the page M and that's offloading a lot of the hard work for us by using stripe as the default payment processor and then setting these attributes when the stripe customer is lazily created now again by default what we would recommend is either using this page M if you're using rails and if you're going to implement it yourself then as soon as the customer signs up for your service ensure that there is a stripe customer object associated with that user so that from then on you can attach every single subscription payment method charge all related back to that same user with that stripe customer object it helps you sort of collect and organize all of the life cycle of a given user or given team or given organization all around a stripe customer and that's how we onboard stripe customers that wraps up our customer onboarding episode in the next episode we're going to talk all about that pricing page so we finally have redirected to a pricing page but we haven't built it out at all so we're going to go into detail about how to build and wire up an effective and really solid pricing page that allows you to do some testing so we'll see you in the next one

Show more
be ready to get more

Get legally-binding signatures now!

Sign up with Google