I am trying to string together lambda functions. The first lambda function is on a 30 minute timer to scrape and put the data in a S3 bucket, the next lambda function retrieves and parses that data and puts it in a seperate S3 bucket, and the last function performs analysis on that data and sends the user (in this case myself) an email of the results via pythons smtplib module.
Instead of having the last two lambda functions running on timers, I want the second function to be triggered when the first function is done, and the last function to be triggered when the second function is done. As well as, deleting the two folders in the first S3 bucket and the contents in the second S3 bucket to save on memory and processing time.
Is there a way to do this totally in the AWS web interface rather than rewrite the python code I already have?
All the answers here work. To summarize, you could:

Trigger the lambdas when a file arrives in an S3 bucket
Use Step Functions co-ordinate the 3 lambda functions, one after another
Use Lambda destinations (on success) to orchestrate the workflow

All of these accomplish what you wish for, and here's some extra info.

For the S3 option you can specify which events trigger the lambda (e.g. PutObject), and even the prefix and suffix of the file(s).
For Step functions, this is my favorite options. It's an expensive option (typically 5-10x more than lambda) but, it actually orchestrate everything, and the view you get from the console is amazing. It's very easy to triage issues if they occur.
For Lambda destinations, you can also set a onFailure mode, so that the you can get alerted if the function fails. onSuccess will of course lead to the next function in question.

Hope that helps.
AWS Lambda function completion triggers another lambda function